[SCM] snd/master: New upstream version 17.6

umlaeute at users.alioth.debian.org umlaeute at users.alioth.debian.org
Wed Aug 16 19:53:23 UTC 2017


The following commit has been merged in the master branch:
commit 75bedf4141806f1b12c07964ae633c6893a2efa6
Author: IOhannes m zmölnig <zmoelnig at umlautQ.umlaeute.mur.at>
Date:   Wed Aug 16 20:29:13 2017 +0200

    New upstream version 17.6

diff --git a/HISTORY.Snd b/HISTORY.Snd
index 0212ed4..6c3a1d4 100644
--- a/HISTORY.Snd
+++ b/HISTORY.Snd
@@ -1,5 +1,6 @@
 Snd change log
 
+ 2-Aug:     Snd 17.6.
  16-Jun:    Snd 17.5.
  6-May:     Snd 17.4. New clm optimizer.
  28-Mar:    Snd 17.3. 
diff --git a/NEWS b/NEWS
index 364c170..281e7d3 100644
--- a/NEWS
+++ b/NEWS
@@ -1,11 +1,15 @@
-Snd 17.5:
+Snd 17.6.
 
-s7: s7_history and s7_add_to_history (Kjetil's suggestion).
-    (*s7* 'history) for non-error scheme-side access to the history info
-    lambda* keyword argument handling changed slightly.
-    multithread sanity-checks thanks to Kjetil.
-    Kjetil also ported s7 to mingw.
+s7: (*s7* 'heap-size) is settable
+    added s7_define_typed_function_star to s7.h
+    changed to the new (c99?) int64_t style int types.
+    added two optional args to c-pointer: type, info
+      and added s7_is_c_pointer_of_type.
+    libgtk_s7.c (in-progress)
 
-checked: gtk 3.91.0, sbcl 1.3.18, FC 26 (gcc 7.1.1)
+clm: removed clm-default-frequency
+     object->let support for generators
 
-Thanks!: Kjetil Matheussen, Rick Taube
+checked: sbcl 1.3.19|20, gtk 3.91.1
+
+Thanks!: Mike Scholz, James Hearon
diff --git a/_sndlib.h b/_sndlib.h
index 6c215e1..7fa28b0 100644
--- a/_sndlib.h
+++ b/_sndlib.h
@@ -21,29 +21,6 @@
 
 #define is_power_of_2(x)	((((x) - 1) & (x)) == 0)
 
-#if 0
-#define clear_floats(Arr, Len) memset((void *)(Arr), 0, (Len) * sizeof(mus_float_t))
-#define copy_floats(Dst, Src, Len) memcpy((void *)(Dst), (void *)(Src), (Len) * sizeof(mus_float_t))
-#else
-#define clear_floats(Arr, Len)			\
-  do {						\
-    mus_long_t K;				\
-    mus_float_t *dst;				\
-    dst = Arr;				\
-    for (K = Len; K > 0; K--)		\
-      *dst++ = 0.0;			\
-  } while (0)
-#define copy_floats(Dst, Src, Len)		\
-  do {						\
-    mus_long_t K;				\
-    mus_float_t *dst, *src;			\
-    dst = Dst;					\
-    src = Src;					\
-    for (K = Len; K > 0; K--)			\
-      *dst++ = *src++;				\
-    } while (0)
-#endif
-
 #define MUS_MAX_MALLOC_DEFAULT (1 << 26)
 #define MUS_MAX_TABLE_SIZE_DEFAULT (1024 * 1024 * 20) /* delay line allocation etc */
 
diff --git a/animals.scm b/animals.scm
index 63173f5..b52fec7 100644
--- a/animals.scm
+++ b/animals.scm
@@ -232,8 +232,6 @@
     (require snd-ws.scm)
     (require sndlib-ws.scm))
 
-(set! *clm-default-frequency* 0.0)
-
 (define-macro (define-animal args . body)
   (let ((name (car args))
 	(targs (cdr args)))
diff --git a/bess1.scm b/bess1.scm
index 20991d7..02377fb 100644
--- a/bess1.scm
+++ b/bess1.scm
@@ -268,7 +268,7 @@
       (let ((col (XColor))
 	    (cmap (DefaultColormap dpy (DefaultScreen dpy))))
 	(if (= (XAllocNamedColor dpy cmap color col col) 0)
-	    (error (format #f "can't allocate ~A" color))
+	    (error 'no-memory "can't allocate ~A" color)
 	    (.pixel col))))
 
     (XtSetValues shell (list XmNtitle "FM Forever!"))
diff --git a/big-gens.scm b/big-gens.scm
index b25d170..72dfcc9 100644
--- a/big-gens.scm
+++ b/big-gens.scm
@@ -121,7 +121,7 @@
 (defgenerator (big-oscil 
   :make-wrapper 
     (lambda (g) (set! (g 'frequency) (big-hz->radians (g 'frequency))) g))
-  (frequency *clm-default-frequency*) 
+  (frequency 0.0) 
   (angle 0.0))
 
 (define* (big-oscil gen (fm 0.0) (pm 0.0))
@@ -149,7 +149,7 @@
      (set! (g 'r) (/ (g 'n)))
      (set! (g 'frequency) (big-hz->radians (g 'frequency)))
      g))
-   (frequency *clm-default-frequency*) 
+   (frequency 0.0) 
    (n 1) 
    (angle 0.0)
    (r 1.0))
@@ -200,7 +200,7 @@
 				 (set! (g 'r) (/ 1.0 (find-scaler (g 'n) 0.0 (/ pi (+ (g 'n) 1/2)))))
 				 (set! (g 'frequency) (big-hz->radians (g 'frequency)))
 				 g)))
-  (frequency *clm-default-frequency*) 
+  (frequency 0.0) 
   (n 1) 
   (angle 0.0) 
   (r 1.0))
@@ -236,7 +236,7 @@
       (set! (g 'frequency) (/ (* (g 'frequency) (g 'size)) *clm-srate*))
       (set! (g 'angle) (/ (* (g 'angle) (g 'size)) (* 2 pi)))
       g))
-  (frequency *clm-default-frequency*) 
+  (frequency 0.0) 
   (angle 0.0) 
   (wave #f) 
   (size *clm-table-size*))
diff --git a/clm-strings.h b/clm-strings.h
index f4c152f..7242de4 100644
--- a/clm-strings.h
+++ b/clm-strings.h
@@ -26,7 +26,6 @@
 #define S_bohman_window              "bohman-window"
 #define S_cauchy_window              "cauchy-window"
 #define S_clear_sincs                "clear-sincs"
-#define S_clm_default_frequency      "clm-default-frequency"
 #define S_clm_table_size             "clm-table-size"
 #define S_comb                       "comb"
 #define S_is_comb                    "comb?"
diff --git a/clm.c b/clm.c
index 590bccb..5c441fa 100644
--- a/clm.c
+++ b/clm.c
@@ -146,7 +146,7 @@ int mus_make_generator_type(void) {return(mus_generator_type++);}
 
 static const char *interp_name[] = {"step", "linear", "sinusoidal", "all-pass", "lagrange", "bezier", "hermite"};
 
-static const char *interp_type_to_string(int type)
+const char *mus_interp_type_to_string(int type)
 {
   if (mus_is_interp_type(type))
     return(interp_name[type]);
@@ -798,6 +798,46 @@ mus_long_t mus_location(mus_any *gen)
   return((mus_long_t)mus_error(MUS_NO_LOCATION, "can't get %s's location", mus_name(gen)));
 }
 
+mus_long_t mus_set_location(mus_any *gen, mus_long_t loc)
+{
+  if ((check_gen(gen, S_set S_mus_location)) &&
+      (gen->core->set_location))
+    return((*(gen->core->set_location))(gen, loc));
+  return((mus_long_t)mus_error(MUS_NO_LOCATION, "can't set %s's location", mus_name(gen)));
+}
+
+char *mus_file_name(mus_any *gen)
+{
+  if ((check_gen(gen, S_mus_file_name)) &&
+      (gen->core->file_name))
+    return((*(gen->core->file_name))(gen));
+  else mus_error(MUS_NO_FILE_NAME, "can't get %s's file name", mus_name(gen));
+  return(NULL);
+}
+
+
+bool mus_phase_exists(mus_any *gen)       {return(gen->core->phase);}
+bool mus_frequency_exists(mus_any *gen)   {return(gen->core->frequency);}
+bool mus_length_exists(mus_any *gen)      {return(gen->core->length);}
+bool mus_order_exists(mus_any *gen)       {return(gen->core->length);}
+bool mus_data_exists(mus_any *gen)        {return(gen->core->data);}
+bool mus_name_exists(mus_any *gen)        {return(gen->core->name);}
+bool mus_scaler_exists(mus_any *gen)      {return(gen->core->scaler);}
+bool mus_offset_exists(mus_any *gen)      {return(gen->core->offset);}
+bool mus_width_exists(mus_any *gen)       {return(gen->core->width);}
+bool mus_file_name_exists(mus_any *gen)   {return(gen->core->file_name);}
+bool mus_xcoeffs_exists(mus_any *gen)     {return(gen->core->xcoeffs);}
+bool mus_ycoeffs_exists(mus_any *gen)     {return(gen->core->ycoeffs);}
+bool mus_increment_exists(mus_any *gen)   {return(gen->core->increment);}
+bool mus_location_exists(mus_any *gen)    {return(gen->core->location);}
+bool mus_channel_exists(mus_any *gen)     {return(gen->core->channel);}
+bool mus_channels_exists(mus_any *gen)    {return(gen->core->channels);}
+bool mus_interp_type_exists(mus_any *gen) {return(gen->core->channels);}
+bool mus_ramp_exists(mus_any *gen)        {return(gen->core->ramp);}
+bool mus_hop_exists(mus_any *gen)         {return(gen->core->hop);}
+bool mus_feedforward_exists(mus_any *gen) {return(gen->core->scaler);}
+bool mus_feedback_exists(mus_any *gen)    {return(gen->core->increment);}
+
 
 /* ---------------- AM etc ---------------- */
 
@@ -861,7 +901,6 @@ static bool clm_arrays_are_equal(mus_float_t *arr1, mus_float_t *arr2, mus_long_
   return(mus_arrays_are_equal(arr1, arr2, float_equal_fudge_factor, len));
 }
 
-
 mus_float_t mus_dot_product(mus_float_t *data1, mus_float_t *data2, mus_long_t size)
 {
   mus_long_t i, size4;
@@ -1404,7 +1443,7 @@ static mus_any *ob_copy(mus_any *ptr)
   /* we have to make a new phases array -- otherwise the original and copy step on each other */
   g->free_phases = true;
   g->phases = (mus_float_t *)malloc(g->size * sizeof(mus_float_t));
-  copy_floats(g->phases, p->phases, g->size);
+  mus_copy_floats(g->phases, p->phases, g->size);
   return((mus_any *)g);
 }
 
@@ -1441,7 +1480,7 @@ static void oscil_bank_reset(mus_any *ptr)
 {
   ob *p = (ob *)ptr;
   p->size = p->orig_size;
-  clear_floats(p->phases, p->orig_size);
+  mus_clear_floats(p->phases, p->orig_size);
 }
 
 
@@ -2794,7 +2833,7 @@ mus_float_t *mus_partials_to_wave(mus_float_t *partial_data, int partials, mus_f
 {
   int partial, k;
   if (!table) return(NULL);
-  clear_floats(table, table_size);
+  mus_clear_floats(table, table_size);
   for (partial = 0, k = 1; partial < partials; partial++, k += 2)
     {
       mus_float_t amp;
@@ -2818,7 +2857,7 @@ mus_float_t *mus_phase_partials_to_wave(mus_float_t *partial_data, int partials,
 {
   int partial, k, n;
   if (!table) return(NULL);
-  clear_floats(table, table_size);
+  mus_clear_floats(table, table_size);
   for (partial = 0, k = 1, n = 2; partial < partials; partial++, k += 3, n += 3)
     {
       mus_float_t amp;
@@ -2972,7 +3011,7 @@ static char *describe_table_lookup(mus_any *ptr)
 	       mus_frequency(ptr),
 	       mus_phase(ptr),
 	       (int)mus_length(ptr),
-	       interp_type_to_string(table_lookup_interp_type(ptr)));
+	       mus_interp_type_to_string(table_lookup_interp_type(ptr)));
   return(describe_buffer);
 }
 
@@ -3009,7 +3048,7 @@ static mus_any *tbl_copy(mus_any *ptr)
   memcpy((void *)g, (void *)ptr, sizeof(tbl));
 
   g->table = (mus_float_t *)malloc(g->table_size * sizeof(mus_float_t));
-  copy_floats(g->table, p->table, g->table_size);
+  mus_copy_floats(g->table, p->table, g->table_size);
   g->table_allocated = true;
 
   return((mus_any *)g);
@@ -4043,7 +4082,8 @@ static mus_any_class POLYSHAPE_CLASS = {
   MUS_NOT_SPECIAL, 
   NULL, 0,
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 
+  &pw_choice,
   0, 0, 0, 0,
   &pw_reset,
   0, &pw_copy
@@ -4108,7 +4148,7 @@ static mus_any *wt_copy(mus_any *ptr)
   g = (wt *)malloc(sizeof(wt));
   memcpy((void *)g, (void *)ptr, sizeof(wt));
   g->out_data = (mus_float_t *)malloc(g->out_data_size * sizeof(mus_float_t));
-  copy_floats(g->out_data, p->out_data, g->out_data_size);
+  mus_copy_floats(g->out_data, p->out_data, g->out_data_size);
   /* g->wave is caller's data */
   return((mus_any *)g);
 }
@@ -4139,7 +4179,7 @@ static char *describe_wt(mus_any *ptr)
 	       mus_frequency(ptr), 
 	       mus_phase(ptr), 
 	       mus_length(ptr), 
-	       interp_type_to_string(wt_interp_type(ptr)));
+	       mus_interp_type_to_string(wt_interp_type(ptr)));
   return(describe_buffer);
 }
 
@@ -4167,9 +4207,9 @@ static mus_float_t mus_wave_train_any(mus_any *ptr, mus_float_t fm)
 	  mus_long_t good_samps;
 	  good_samps = gen->out_data_size - gen->out_pos;
 	  memmove((void *)out_data, (void *)(out_data + gen->out_pos), good_samps * sizeof(mus_float_t));
-	  clear_floats(out_data + good_samps, gen->out_pos);
+	  mus_clear_floats(out_data + good_samps, gen->out_pos);
 	}
-      else clear_floats(out_data, gen->out_data_size);
+      else mus_clear_floats(out_data, gen->out_data_size);
       if (gen->interp_type == MUS_INTERP_LINEAR)
 	{
 	  /* gen->phase doesn't change, and i is an int, so we can precalculate the fractional part, etc
@@ -4257,7 +4297,7 @@ static void wt_reset(mus_any *ptr)
 {
   wt *gen = (wt *)ptr;
   gen->phase = 0.0;
-  clear_floats(gen->out_data, gen->out_data_size);
+  mus_clear_floats(gen->out_data, gen->out_data_size);
   gen->out_pos = gen->out_data_size;
   gen->next_wave_time = 0.0;
   gen->first_time = true;
@@ -4482,7 +4522,7 @@ static mus_any *dly_copy(mus_any *ptr)
   memcpy((void *)g, (void *)ptr, sizeof(dly));
 
   g->line = (mus_float_t *)malloc(g->size * sizeof(mus_float_t));
-  copy_floats(g->line, p->line, g->size);
+  mus_copy_floats(g->line, p->line, g->size);
   g->line_allocated = true;
 
   if (p->filt)
@@ -4505,12 +4545,12 @@ static char *describe_delay(mus_any *ptr)
 		 mus_name(ptr),
 		 gen->size, 
 		 gen->zsize, 
-		 interp_type_to_string(gen->type),
+		 mus_interp_type_to_string(gen->type),
 		 str = float_array_to_string(gen->line, gen->size, gen->zloc));
   else snprintf(describe_buffer, DESCRIBE_BUFFER_SIZE, "%s line[%u, %s]: %s", 
 		    mus_name(ptr),
 		    gen->size, 
-		    interp_type_to_string(gen->type), 
+		    mus_interp_type_to_string(gen->type), 
 		    str = float_array_to_string(gen->line, gen->size, gen->loc));
   if (str) free(str);
   return(describe_buffer);
@@ -4595,7 +4635,7 @@ static void delay_reset(mus_any *ptr)
   gen->loc = 0;
   gen->zloc = 0;
   gen->yn1 = 0.0;
-  clear_floats(gen->line, gen->zsize);
+  mus_clear_floats(gen->line, gen->zsize);
 }
 
 
@@ -4746,13 +4786,13 @@ static char *describe_comb(mus_any *ptr)
 		 gen->yscl, 
 		 gen->size, 
 		 gen->zsize, 
-		 interp_type_to_string(gen->type),
+		 mus_interp_type_to_string(gen->type),
 		 str = float_array_to_string(gen->line, gen->size, gen->zloc));
   else snprintf(describe_buffer, DESCRIBE_BUFFER_SIZE, "%s scaler: %.3f, line[%u, %s]: %s", 
 		    mus_name(ptr),
 		    gen->yscl, 
 		    gen->size, 
-		    interp_type_to_string(gen->type),
+		    mus_interp_type_to_string(gen->type),
 		    str = float_array_to_string(gen->line, gen->size, gen->loc));
   if (str) free(str);
   return(describe_buffer);
@@ -5009,13 +5049,13 @@ static char *describe_notch(mus_any *ptr)
 		 gen->xscl, 
 		 gen->size, 
 		 gen->zsize, 
-		 interp_type_to_string(gen->type),
+		 mus_interp_type_to_string(gen->type),
 		 str = float_array_to_string(gen->line, gen->size, gen->zloc));
   else snprintf(describe_buffer, DESCRIBE_BUFFER_SIZE, "%s scaler: %.3f, line[%u, %s]: %s", 
 		    mus_name(ptr),
 		    gen->xscl, 
 		    gen->size, 
-		    interp_type_to_string(gen->type),
+		    mus_interp_type_to_string(gen->type),
 		    str = float_array_to_string(gen->line, gen->size, gen->loc));
   if (str) free(str);
   return(describe_buffer);
@@ -5154,14 +5194,14 @@ static char *describe_all_pass(mus_any *ptr)
 		 gen->xscl, 
 		 gen->size, 
 		 gen->zsize, 
-		 interp_type_to_string(gen->type),
+		 mus_interp_type_to_string(gen->type),
 		 str = float_array_to_string(gen->line, gen->size, gen->zloc));
   else snprintf(describe_buffer, DESCRIBE_BUFFER_SIZE, "%s feedback: %.3f, feedforward: %.3f, line[%u, %s]:%s",
 		    mus_name(ptr),
 		    gen->yscl, 
 		    gen->xscl, 
 		    gen->size, 
-		    interp_type_to_string(gen->type),
+		    mus_interp_type_to_string(gen->type),
 		    str = float_array_to_string(gen->line, gen->size, gen->loc));
   if (str) free(str);
   return(describe_buffer);
@@ -5623,6 +5663,11 @@ mus_float_t mus_moving_norm(mus_any *ptr, mus_float_t input)
   return(gen->norm / gen->y1);
 }
 
+static mus_float_t moving_norm_norm(mus_any *ptr)
+{
+  dly *gen = (dly *)ptr;
+  return(gen->norm / (gen->size + 1.0));
+}
 
 static mus_float_t run_mus_moving_norm(mus_any *ptr, mus_float_t input, mus_float_t unused) {return(mus_moving_norm(ptr, input));}
 
@@ -5670,7 +5715,7 @@ static mus_any_class MOVING_NORM_CLASS = {
   &run_mus_moving_norm,
   MUS_DELAY_LINE,
   NULL, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  &moving_norm_norm, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   0, 0, 0, 0,
   &delay_loc,
   0, 0,
@@ -7488,24 +7533,24 @@ static mus_any *frm_bank_copy(mus_any *ptr)
   bytes = g->size * sizeof(mus_float_t);
 
   g->x0 = (mus_float_t *)malloc(bytes);
-  copy_floats(g->x0, p->x0, g->size);
+  mus_copy_floats(g->x0, p->x0, g->size);
   g->x1 = (mus_float_t *)malloc(bytes);
-  copy_floats(g->x1, p->x1, g->size);
+  mus_copy_floats(g->x1, p->x1, g->size);
   g->x2 = (mus_float_t *)malloc(bytes);
-  copy_floats(g->x2, p->x2, g->size);
+  mus_copy_floats(g->x2, p->x2, g->size);
   g->y0 = (mus_float_t *)malloc(bytes);
-  copy_floats(g->y0, p->y0, g->size);
+  mus_copy_floats(g->y0, p->y0, g->size);
   g->y1 = (mus_float_t *)malloc(bytes);
-  copy_floats(g->y1, p->y1, g->size);
+  mus_copy_floats(g->y1, p->y1, g->size);
   g->y2 = (mus_float_t *)malloc(bytes);
-  copy_floats(g->y2, p->y2, g->size);
+  mus_copy_floats(g->y2, p->y2, g->size);
 
   g->rr = (mus_float_t *)malloc(bytes);
-  copy_floats(g->rr, p->rr, g->size);
+  mus_copy_floats(g->rr, p->rr, g->size);
   g->fdbk = (mus_float_t *)malloc(bytes);
-  copy_floats(g->fdbk, p->fdbk, g->size);
+  mus_copy_floats(g->fdbk, p->fdbk, g->size);
   g->gain = (mus_float_t *)malloc(bytes);
-  copy_floats(g->gain, p->gain, g->size);
+  mus_copy_floats(g->gain, p->gain, g->size);
 
   return((mus_any *)g);
 }
@@ -7525,12 +7570,12 @@ static mus_long_t formant_bank_length(mus_any *ptr)
 static void formant_bank_reset(mus_any *ptr)
 {
   frm_bank *f = (frm_bank *)ptr;
-  clear_floats((f->x0), f->size);
-  clear_floats((f->x1), f->size);
-  clear_floats((f->x2), f->size);
-  clear_floats((f->y0), f->size);
-  clear_floats((f->y1), f->size);
-  clear_floats((f->y2), f->size);
+  mus_clear_floats((f->x0), f->size);
+  mus_clear_floats((f->x1), f->size);
+  mus_clear_floats((f->x2), f->size);
+  mus_clear_floats((f->y0), f->size);
+  mus_clear_floats((f->y1), f->size);
+  mus_clear_floats((f->y2), f->size);
 }
 
 
@@ -8566,8 +8611,7 @@ mus_float_t mus_fir_filter(mus_any *ptr, mus_float_t input)
   return((((flt *)ptr)->filtw)(ptr, input));
 }
 
-
-static mus_float_t fir_n(mus_any *ptr, mus_float_t input)
+static inline mus_float_t fir_n(mus_any *ptr, mus_float_t input)
 {
   mus_float_t xout = 0.0;
   flt *gen = (flt *)ptr;
@@ -8600,6 +8644,75 @@ static mus_float_t fir_n(mus_any *ptr, mus_float_t input)
 }
  
 
+static inline mus_float_t fir_3(mus_any *ptr, mus_float_t input)
+{
+  mus_float_t xout;
+  flt *gen = (flt *)ptr;
+  mus_float_t *state, *ts, *x;
+
+  x = (mus_float_t *)(gen->x);
+  state = (mus_float_t *)(gen->state + gen->loc);
+  ts = (mus_float_t *)(state + 4); /* gen->order == 4 in this case */
+
+  /* gen->loc = (gen->loc == 3) ? 0 : (gen->loc + 1); */
+  gen->loc = (gen->loc + 1) & 0x3;
+  (*state) = input;
+  (*ts) = input;
+
+  xout = (*ts--) * (*x++);
+  xout += (*ts--) * (*x++);
+  xout += (*ts--) * (*x++);
+  return(xout + ((*ts) * (*x)));
+}
+
+static inline mus_float_t fir_4(mus_any *ptr, mus_float_t input)
+{
+  mus_float_t xout;
+  flt *gen = (flt *)ptr;
+  mus_float_t *state, *ts, *x;
+
+  x = (mus_float_t *)(gen->x);
+  state = (mus_float_t *)(gen->state + gen->loc);
+  ts = (mus_float_t *)(state + 5);
+
+  gen->loc = (gen->loc == 4) ? 0 : (gen->loc + 1);
+  (*state) = input;
+  (*ts) = input;
+
+  xout = (*ts--) * (*x++);
+  xout += (*ts--) * (*x++);
+  xout += (*ts--) * (*x++);
+  xout += (*ts--) * (*x++);
+  return(xout + ((*ts) * (*x)));
+}
+ 
+static inline mus_float_t fir_9(mus_any *ptr, mus_float_t input)
+{
+  mus_float_t xout;
+  flt *gen = (flt *)ptr;
+  mus_float_t *state, *ts, *x;
+
+  x = (mus_float_t *)(gen->x);
+  state = (mus_float_t *)(gen->state + gen->loc);
+  ts = (mus_float_t *)(state + 10);
+
+  gen->loc = (gen->loc == 9) ? 0 : (gen->loc + 1);
+  (*state) = input;
+  (*ts) = input;
+
+  xout = (*ts--) * (*x++);
+  xout += (*ts--) * (*x++);
+  xout += (*ts--) * (*x++);
+  xout += (*ts--) * (*x++);
+  xout += (*ts--) * (*x++);
+  xout += (*ts--) * (*x++);
+  xout += (*ts--) * (*x++);
+  xout += (*ts--) * (*x++);
+  xout += (*ts--) * (*x++);
+  return(xout + ((*ts) * (*x)));
+}
+
+
 static mus_float_t fir_ge_20(mus_any *ptr, mus_float_t input)
 {
   mus_float_t xout = 0.0;
@@ -8640,7 +8753,7 @@ static mus_float_t fir_ge_20(mus_any *ptr, mus_float_t input)
     }
   while (ts > state)
     xout += (*ts--) * (*x++);
-  
+
   gen->loc++;
   if (gen->loc == gen->order)
     gen->loc = 0;
@@ -8678,7 +8791,10 @@ static mus_float_t iir_n(mus_any *ptr, mus_float_t input)
 }
 
 
-static mus_float_t run_filter(mus_any *ptr, mus_float_t input, mus_float_t unused) {return((((flt *)ptr)->filtw)(ptr, input));}
+static mus_float_t run_filter(mus_any *ptr, mus_float_t input, mus_float_t unused) 
+{
+  return((((flt *)ptr)->filtw)(ptr, input));
+}
 
 bool mus_is_filter(mus_any *ptr) 
 {
@@ -8833,7 +8949,7 @@ static mus_any *flt_copy(mus_any *ptr)
   /* we have to make a new state array -- otherwise the original and copy step on each other */
   g->state_allocated = true;
   g->state = (mus_float_t *)malloc(p->order * 2 * sizeof(mus_float_t));
-  copy_floats(g->state, p->state, p->order * 2);
+  mus_copy_floats(g->state, p->state, p->order * 2);
   return((mus_any *)g);
 }
 
@@ -8906,7 +9022,7 @@ static char *describe_iir_filter(mus_any *ptr)
 static void filter_reset(mus_any *ptr)
 {
   flt *gen = (flt *)ptr;
-  clear_floats(gen->state, gen->allocated_size * 2);
+  mus_clear_floats(gen->state, gen->allocated_size * 2);
 }
 
 
@@ -9010,9 +9126,7 @@ static void set_filter_function(flt *gen)
 		  if (order >= 10)
 		    gen->filtw = filter_ge_10;
 		  else gen->filtw = filter_lt_10;
-		}
-	    }
-	}
+		}}}
     }
   else
     {
@@ -9020,8 +9134,20 @@ static void set_filter_function(flt *gen)
 	{
 	  if (order >= 20)
 	    gen->filtw = fir_ge_20;
-	  else gen->filtw = fir_n;
-	}
+	  else 
+	    {
+	      if (order == 3)
+		gen->filtw = fir_3;
+	      else
+		{
+		  if (order == 4)
+		    gen->filtw = fir_4;
+		  else
+		    {
+		      if (order == 9)
+			gen->filtw = fir_9;
+		      else gen->filtw = fir_n;
+		      }}}}
       else gen->filtw = iir_n;
     }
 }
@@ -9151,7 +9277,7 @@ mus_float_t *mus_make_fir_coeffs(int order, mus_float_t *envl, mus_float_t *aa)
       rl = (mus_float_t *)calloc(fsize, sizeof(mus_float_t));
       im = (mus_float_t *)calloc(fsize, sizeof(mus_float_t));
       lim = order / 2;
-      copy_floats(rl, envl, lim);
+      mus_copy_floats(rl, envl, lim);
 
       mus_fft(rl, im, fsize, 1);
 
@@ -9203,9 +9329,9 @@ static mus_any *onepall_copy(mus_any *ptr)
 
   bytes = g->size * sizeof(mus_float_t);
   g->x = (mus_float_t *)malloc(bytes);
-  copy_floats(g->x, p->x, g->size);
+  mus_copy_floats(g->x, p->x, g->size);
   g->y = (mus_float_t *)malloc(bytes);
-  copy_floats(g->y, p->y, g->size);
+  mus_copy_floats(g->y, p->y, g->size);
 
   return((mus_any *)g);
 }
@@ -9217,17 +9343,14 @@ static mus_float_t run_onepall(mus_any *ptr, mus_float_t input, mus_float_t unus
 }
 
 
-static mus_long_t onepall_length(mus_any *ptr)
-{
-  return(((onepall *)ptr)->size);
-}
-
+static mus_long_t onepall_length(mus_any *ptr) {return(((onepall *)ptr)->size);}
+static mus_float_t onepall_scaler(mus_any *ptr) {return(((onepall *)ptr)->coeff);}
 
 static void onepall_reset(mus_any *ptr)
 {
   onepall *f = (onepall *)ptr;
-  clear_floats(f->x, f->size);
-  clear_floats(f->y, f->size);
+  mus_clear_floats(f->x, f->size);
+  mus_clear_floats(f->y, f->size);
 }
 
 
@@ -9326,7 +9449,7 @@ static mus_any_class ONE_POLE_ALL_PASS_CLASS = {
   &onepall_length, 0,
   0, 0, 
   0, 0,
-  0, 0,
+  &onepall_scaler, 0,
   0, 0,
   &run_onepall,
   MUS_NOT_SPECIAL, 
@@ -9741,7 +9864,7 @@ static mus_any *seg_copy(mus_any *ptr)
 	{
 	  int bytes;
 	  e->rates = (mus_float_t *)malloc(p->size * sizeof(mus_float_t));
-	  copy_floats(e->rates, p->rates, p->size);
+	  mus_copy_floats(e->rates, p->rates, p->size);
 
 	  bytes = (p->size + 1) * sizeof(mus_long_t);
 	  e->locs = (mus_long_t *)malloc(bytes);
@@ -9756,7 +9879,7 @@ static mus_any *seg_copy(mus_any *ptr)
 
       bytes = p->size * sizeof(mus_float_t);
       r = e->rates;
-      copy_floats(r, p->rates, p->size);
+      mus_copy_floats(r, p->rates, p->size);
 
       bytes = (p->size + 1) * sizeof(mus_long_t);
       l = e->locs;
@@ -10284,16 +10407,6 @@ static mus_float_t mus_read_sample(mus_any *fd, mus_long_t frample, int chan)
 }
 
 
-char *mus_file_name(mus_any *gen)
-{
-  if ((check_gen(gen, S_mus_file_name)) &&
-      (gen->core->file_name))
-    return((*(gen->core->file_name))(gen));
-  else mus_error(MUS_NO_FILE_NAME, "can't get %s's file name", mus_name(gen));
-  return(NULL);
-}
-
-
 bool mus_is_input(mus_any *gen) 
 {
   return((gen) && 
@@ -10390,7 +10503,7 @@ static mus_any *rdin_copy(mus_any *ptr)
       mus_long_t len;
       len = make_ibufs(g);
       for (i = 0; i < g->chans; i++)
-	copy_floats(g->ibufs[i], p->ibufs[i], len);
+	mus_copy_floats(g->ibufs[i], p->ibufs[i], len);
     }
   return((mus_any *)g);
 }
@@ -10769,16 +10882,6 @@ mus_any *mus_make_readin_with_buffer_size(const char *filename, int chan, mus_lo
  */
 
 
-mus_long_t mus_set_location(mus_any *gen, mus_long_t loc)
-{
-  if ((check_gen(gen, S_set S_mus_location)) &&
-      (gen->core->set_location))
-    return((*(gen->core->set_location))(gen, loc));
-  return((mus_long_t)mus_error(MUS_NO_LOCATION, "can't set %s's location", mus_name(gen)));
-}
-
-
-
 /* ---------------- in-any ---------------- */
 
 mus_float_t mus_in_any(mus_long_t samp, int chan, mus_any *IO)
@@ -10955,7 +11058,7 @@ static mus_any *rdout_copy(mus_any *ptr)
       for (i = 0; i < g->chans; i++)
 	{
 	  g->obufs[i] = (mus_float_t *)malloc(clm_file_buffer_size * sizeof(mus_float_t));
-	  copy_floats(g->obufs[i], p->obufs[i], clm_file_buffer_size);
+	  mus_copy_floats(g->obufs[i], p->obufs[i], clm_file_buffer_size);
 	}
       g->obuf0 = g->obufs[0];
       if (g->chans > 1)
@@ -10966,6 +11069,8 @@ static mus_any *rdout_copy(mus_any *ptr)
 }
 
 static int sample_to_file_channels(mus_any *ptr) {return((int)(((rdout *)ptr)->chans));}
+static mus_long_t sample_to_file_samp_type(mus_any *ptr) {return((int)(((rdout *)ptr)->output_sample_type));}
+static int sample_to_file_head_type(mus_any *ptr) {return((int)(((rdout *)ptr)->output_header_type));}
 
 static mus_long_t bufferlen(mus_any *ptr) {return(clm_file_buffer_size);}
 
@@ -10997,7 +11102,8 @@ static mus_any_class SAMPLE_TO_FILE_CLASS = {
   &mus_out_any_to_file,
   &sample_to_file_file_name,
   &sample_to_file_end,
-  0, 0, 0,
+  &sample_to_file_samp_type, 0, 
+  &sample_to_file_head_type,
   0, 0, 0, 0,
   &no_reset,
   0, &rdout_copy
@@ -11205,24 +11311,9 @@ static void flush_buffers(rdout *gen)
 	  for (j = 0; j < gen->chans; j++)
 	    {
 	      mus_float_t *adder, *vals;
-	      mus_long_t add4;
 	      adder = addbufs[j];
 	      vals = gen->obufs[j];
-	      add4 = framples_to_add - 4;
-	      i = 0;
-	      while (i <= add4)
-		{
-		  adder[i] += vals[i];
-		  i++;
-		  adder[i] += vals[i];
-		  i++;
-		  adder[i] += vals[i];
-		  i++;
-		  adder[i] += vals[i];
-		  i++;
-		}
-	      for (; i <= framples_to_add; i++)
-		adder[i] += vals[i];
+	      mus_add_floats(adder, vals, framples_to_add + 1);
 	    }
 	  
 	  mus_file_seek_frample(fd, gen->data_start);
@@ -11261,7 +11352,7 @@ mus_any *mus_sample_to_file_add(mus_any *out1, mus_any *out2)
       mus_long_t i;
       for (i = 0; i < min_framples; i++)
 	dest->obufs[chn][i] += in_coming->obufs[chn][i];
-      clear_floats(in_coming->obufs[chn], min_framples);
+      mus_clear_floats(in_coming->obufs[chn], min_framples);
     }
 
   if (min_framples > dest->out_end)
@@ -11292,7 +11383,7 @@ mus_float_t mus_out_any_to_file(mus_any *ptr, mus_long_t samp, int chan, mus_flo
       if (samp < 0) return(val);
       flush_buffers(gen);
       for (j = 0; j < gen->chans; j++)
-	clear_floats(gen->obufs[j], clm_file_buffer_size);
+	mus_clear_floats(gen->obufs[j], clm_file_buffer_size);
       gen->data_start = samp;
       gen->data_end = samp + clm_file_buffer_size - 1;
       gen->obufs[chan][0] += val;
@@ -11322,7 +11413,7 @@ static void mus_out_chans_to_file(rdout *gen, mus_long_t samp, int chans, mus_fl
       if (samp < 0) return;
       flush_buffers(gen);
       for (j = 0; j < gen->chans; j++)
-	clear_floats(gen->obufs[j], clm_file_buffer_size);
+	mus_clear_floats(gen->obufs[j], clm_file_buffer_size);
       gen->data_start = samp;
       gen->data_end = samp + clm_file_buffer_size - 1;
       for (i = 0; i < chans; i++)
@@ -11353,7 +11444,7 @@ static mus_float_t mus_outa_to_file(mus_any *ptr, mus_long_t samp, mus_float_t v
       if (samp < 0) return(val);
       flush_buffers(gen);
       for (j = 0; j < gen->chans; j++)
-	clear_floats(gen->obufs[j], clm_file_buffer_size);
+	mus_clear_floats(gen->obufs[j], clm_file_buffer_size);
       gen->data_start = samp;
       gen->data_end = samp + clm_file_buffer_size - 1;
       gen->obuf0[0] += val;
@@ -11384,7 +11475,7 @@ static mus_float_t mus_outb_to_file(mus_any *ptr, mus_long_t samp, mus_float_t v
       if (samp < 0) return(val);
       flush_buffers(gen);
       for (j = 0; j < gen->chans; j++)
-	clear_floats(gen->obufs[j], clm_file_buffer_size);
+	mus_clear_floats(gen->obufs[j], clm_file_buffer_size);
       gen->data_start = samp;
       gen->data_end = samp + clm_file_buffer_size - 1;
       gen->obuf1[0] += val;
@@ -11554,7 +11645,7 @@ mus_float_t mus_safe_out_any_to_file(mus_long_t samp, mus_float_t val, int chan,
       if (samp < 0) return(val);
       flush_buffers(gen);
       for (j = 0; j < gen->chans; j++)
-	clear_floats(gen->obufs[j], clm_file_buffer_size);
+	mus_clear_floats(gen->obufs[j], clm_file_buffer_size);
       gen->data_start = samp;
       gen->data_end = samp + clm_file_buffer_size - 1;
       gen->obufs[chan][0] += val;
@@ -11588,7 +11679,6 @@ static char *describe_frample_to_file(mus_any *ptr)
   return(describe_buffer);
 }
 
-
 static mus_float_t run_frample_to_file(mus_any *ptr, mus_float_t arg1, mus_float_t arg2) 
 {
   mus_error(MUS_NO_RUN, "no run method for frample->file"); 
@@ -11616,7 +11706,8 @@ static mus_any_class FRAMPLE_TO_FILE_CLASS = {
   &mus_out_any_to_file,
   &sample_to_file_file_name,
   &sample_to_file_end,
-  0, 0, 0,
+  &sample_to_file_samp_type, 0, 
+  &sample_to_file_head_type,
   0, 0, 0, 0,
   &no_reset,
   0, &rdout_copy
@@ -11696,7 +11787,7 @@ typedef struct {
   mus_float_t *revn;
   int chans, rev_chans;
   mus_interp_t type;
-  mus_float_t reverb;
+  mus_float_t reverb, degree, distance;
   bool safe_output;
   void *closure;
   void (*locsig_func)(mus_any *ptr, mus_long_t loc, mus_float_t val);
@@ -11768,7 +11859,7 @@ static char *describe_locsig(mus_any *ptr)
       strcat(describe_buffer, str);
     }
 
-  snprintf(str, STR_SIZE, ", interp: %s", interp_type_to_string(gen->type));
+  snprintf(str, STR_SIZE, ", interp: %s", mus_interp_type_to_string(gen->type));
   strcat(describe_buffer, str);
   free(str);
   return(describe_buffer);
@@ -11810,28 +11901,32 @@ static mus_any *locs_copy(mus_any *ptr)
   if (p->outn)
     {
       g->outn = (mus_float_t *)malloc(bytes);
-      copy_floats(g->outn, p->outn, g->chans);
+      mus_copy_floats(g->outn, p->outn, g->chans);
     }
   if (p->outf)
     {
       g->outf = (mus_float_t *)malloc(bytes);
-      copy_floats(g->outf, p->outf, g->chans);
+      mus_copy_floats(g->outf, p->outf, g->chans);
     }
   bytes = g->rev_chans * sizeof(mus_float_t);
   if (p->revn)
     {
       g->revn = (mus_float_t *)malloc(bytes);
-      copy_floats(g->revn, p->revn, g->rev_chans);
+      mus_copy_floats(g->revn, p->revn, g->rev_chans);
     }
   if (p->revf)
     {
       g->revf = (mus_float_t *)malloc(bytes);
-      copy_floats(g->revf, p->revf, g->rev_chans);
+      mus_copy_floats(g->revf, p->revf, g->rev_chans);
     }
   return((mus_any *)g);
 }
 
 static mus_long_t locsig_length(mus_any *ptr) {return(((locs *)ptr)->chans);}
+static mus_long_t locsig_type(mus_any *ptr) {return(((locs *)ptr)->type);}
+static mus_float_t locsig_degree(mus_any *ptr) {return(((locs *)ptr)->degree);}
+static mus_float_t locsig_distance(mus_any *ptr) {return(((locs *)ptr)->distance);}
+static mus_float_t locsig_reverb(mus_any *ptr) {return(((locs *)ptr)->reverb);}
 
 static int locsig_channels(mus_any *ptr) {return(((locs *)ptr)->chans);}
 
@@ -11855,8 +11950,8 @@ void mus_locsig_set_detour(mus_any *ptr, void (*detour)(mus_any *ptr, mus_long_t
 static void locsig_reset(mus_any *ptr)
 {
   locs *gen = (locs *)ptr;
-  if (gen->outn) clear_floats(gen->outn, gen->chans);
-  if (gen->revn) clear_floats(gen->revn, gen->rev_chans);
+  if (gen->outn) mus_clear_floats(gen->outn, gen->chans);
+  if (gen->revn) mus_clear_floats(gen->revn, gen->rev_chans);
 }
 
 
@@ -11992,15 +12087,16 @@ static mus_any_class LOCSIG_CLASS = {
   &locsig_length,
   0,
   0, 0, 0, 0,
-  0, 0,
-  0, 0,
+  &locsig_degree, 0,
+  &locsig_distance, 0,
   &run_locsig,
   MUS_OUTPUT,
   &mus_locsig_closure,
   &locsig_channels,
-  0, 0, 0, 0,
+  &locsig_reverb, 0,
+  0, 0,
   &locsig_xcoeff, &locsig_set_xcoeff, 
-  0, 0, 0, 0,
+  &locsig_type, 0, 0, 0,
   0, 0, 0, 0, 0, 0, 0,
   0, 0, 
   &locsig_xcoeffs, 0,
@@ -12171,7 +12267,6 @@ static void mus_locsig_safe_mono(mus_any *ptr, mus_long_t loc, mus_float_t val)
   else mus_outa_to_file((mus_any *)writer, loc, val * gen->revn[0]);
 }
 
-
 static void mus_locsig_safe_stereo_no_reverb(mus_any *ptr, mus_long_t loc, mus_float_t val)
 {
   locs *gen = (locs *)ptr;
@@ -12346,6 +12441,8 @@ mus_any *mus_make_locsig(mus_float_t degree, mus_float_t distance, mus_float_t r
 
   gen->type = type;
   gen->reverb = reverb;
+  gen->distance = distance;
+  gen->degree = degree;
   gen->safe_output = false;
   if (distance > 1.0)
     dist = 1.0 / distance;
@@ -12463,11 +12560,11 @@ void mus_move_locsig(mus_any *ptr, mus_float_t degree, mus_float_t distance)
   if (gen->rev_chans > 0)
     {
       if (gen->rev_chans > 2)
-	clear_floats(gen->revn, gen->rev_chans);
+	mus_clear_floats(gen->revn, gen->rev_chans);
       mus_locsig_fill(gen->revn, gen->rev_chans, degree, (gen->reverb * sqrt(dist)), gen->type);
     }
   if (gen->chans > 2)
-    clear_floats(gen->outn, gen->chans);
+    mus_clear_floats(gen->outn, gen->chans);
   mus_locsig_fill(gen->outn, gen->chans, degree, dist, gen->type);
 }
 
@@ -12605,13 +12702,13 @@ static mus_any *dloc_copy(mus_any *ptr)
     {
       bytes = p->out_channels * sizeof(mus_float_t);
       g->outf = (mus_float_t *)malloc(bytes);
-      copy_floats(g->outf, p->outf, p->out_channels);
+      mus_copy_floats(g->outf, p->outf, p->out_channels);
     }
   if (p->revf)
     {
       bytes = p->rev_channels * sizeof(mus_float_t);
       g->revf = (mus_float_t *)malloc(bytes);
-      copy_floats(g->revf, p->revf, p->rev_channels);
+      mus_copy_floats(g->revf, p->revf, p->rev_channels);
     }
 
   g->free_arrays = true;
@@ -12997,13 +13094,13 @@ static mus_any *sr_copy(mus_any *ptr)
 
   bytes = (2 * g->lim + 1) * sizeof(mus_float_t);
   g->data = (mus_float_t *)malloc(bytes);
-  copy_floats(g->data, p->data, 2 * g->lim + 1);
+  mus_copy_floats(g->data, p->data, 2 * g->lim + 1);
   
   if (p->coeffs)
     {
       bytes = p->lim * sizeof(mus_float_t);
       g->coeffs = (mus_float_t *)malloc(bytes);
-      copy_floats(g->coeffs, p->coeffs, p->lim);
+      mus_copy_floats(g->coeffs, p->coeffs, p->lim);
     }
   return((mus_any *)g);
 }
@@ -13037,7 +13134,7 @@ static mus_float_t *src_sinc_table(mus_any *rd) {return(((sr *)rd)->sinc_table);
 static void src_reset(mus_any *ptr)
 {
   sr *gen = (sr *)ptr;
-  clear_floats(gen->data, gen->lim + 1);
+  mus_clear_floats(gen->data, gen->lim + 1);
   gen->x = 0.0;
   /* center the data if possible */
   if (gen->feeder)
@@ -13298,7 +13395,7 @@ void mus_src_to_buffer(mus_any *srptr, mus_float_t (*input)(void *arg, int direc
   /* sr_change = 0.0
    */
   sr *srp = (sr *)srptr;
-  mus_float_t sum, x, zf, srx, factor, sincx, srpx;
+  mus_float_t x, zf, srx, factor, sincx, srpx;
   int lim, i, xi, xs, dir = 1;
   bool int_ok;
   mus_long_t k;
@@ -13334,6 +13431,7 @@ void mus_src_to_buffer(mus_any *srptr, mus_float_t (*input)(void *arg, int direc
   for (k = 0; k < dur; k++)
     {
       int loc;
+      mus_float_t sum;
       loc = srp->start;
       if (srpx >= 1.0)
 	{
@@ -13430,7 +13528,6 @@ void mus_src_to_buffer(mus_any *srptr, mus_float_t (*input)(void *arg, int direc
 mus_float_t *mus_src_20(mus_any *srptr, mus_float_t *in_data, mus_long_t dur)
 {
   sr *srp = (sr *)srptr;
-  mus_float_t sum;
   int lim, i, width, wid1, wid10, xs, xi;
   mus_long_t k, dur2;
   mus_float_t *out_data, *ldata, *coeffs;
@@ -13461,6 +13558,7 @@ mus_float_t *mus_src_20(mus_any *srptr, mus_float_t *in_data, mus_long_t dur)
   for (k = 0; k < dur2; k++, ldata += 2)
     {
       int j;
+      mus_float_t sum;
       sum = ldata[wid1];
       i = 0;
       j = 0;
@@ -13490,7 +13588,6 @@ mus_float_t *mus_src_20(mus_any *srptr, mus_float_t *in_data, mus_long_t dur)
 mus_float_t *mus_src_05(mus_any *srptr, mus_float_t *in_data, mus_long_t dur)
 {
   sr *srp = (sr *)srptr;
-  mus_float_t sum;
   int lim, i, width, wid1, wid10, xs, xi;
   mus_long_t k, dur2;
   mus_float_t *out_data, *ldata, *coeffs;
@@ -13518,6 +13615,7 @@ mus_float_t *mus_src_05(mus_any *srptr, mus_float_t *in_data, mus_long_t dur)
 
   for (k = 0; k < dur2; k += 2)
     {
+      mus_float_t sum;
       out_data[k] = ldata[wid1];
 
       sum = 0.0;
@@ -13558,7 +13656,7 @@ typedef struct {
   int s20;
   int s50;
   int rmp;
-  mus_float_t amp;
+  mus_float_t amp, jitter;
   int cur_out;
   int input_hop;
   int ctr;
@@ -13591,13 +13689,14 @@ static char *describe_granulate(mus_any *ptr)
   grn_info *gen = (grn_info *)ptr;
   char *describe_buffer;
   describe_buffer = (char *)malloc(DESCRIBE_BUFFER_SIZE);
-  snprintf(describe_buffer, DESCRIBE_BUFFER_SIZE, "%s expansion: %.3f (%d/%d), scaler: %.3f, length: %.3f secs (%d samps), ramp: %.3f",
-	       mus_name(ptr),
-	       (mus_float_t)(gen->output_hop) / (mus_float_t)(gen->input_hop),
-	       gen->input_hop, gen->output_hop,
-	       gen->amp,
-	       (mus_float_t)(gen->grain_len) / (mus_float_t)sampling_rate, gen->grain_len,
-	       (mus_float_t)(gen->rmp) / (mus_float_t)sampling_rate);
+  snprintf(describe_buffer, DESCRIBE_BUFFER_SIZE, "%s expansion: %.3f (%d/%d), scaler: %.3f, length: %.3f secs (%d samps), ramp: %.3f, jitter: %.3f",
+	   mus_name(ptr),
+	   (mus_float_t)(gen->output_hop) / (mus_float_t)(gen->input_hop),
+	   gen->input_hop, gen->output_hop,
+	   gen->amp,
+	   (mus_float_t)(gen->grain_len) / (mus_float_t)sampling_rate, gen->grain_len,
+	   (mus_float_t)(gen->rmp) / (mus_float_t)gen->grain_len,
+	   gen->jitter);
   return(describe_buffer);
 }
 
@@ -13622,13 +13721,13 @@ static mus_any *grn_info_copy(mus_any *ptr)
 
   bytes = g->out_data_len * sizeof(mus_float_t);
   g->out_data = (mus_float_t *)malloc(bytes);
-  copy_floats(g->out_data, p->out_data, g->out_data_len);
+  mus_copy_floats(g->out_data, p->out_data, g->out_data_len);
 
   bytes = g->in_data_len * sizeof(mus_float_t);
   g->in_data = (mus_float_t *)malloc(bytes);
-  copy_floats(g->in_data, p->in_data, g->in_data_len);
+  mus_copy_floats(g->in_data, p->in_data, g->in_data_len);
   g->grain = (mus_float_t *)malloc(bytes);
-  copy_floats(g->grain, p->grain, g->in_data_len);
+  mus_copy_floats(g->grain, p->grain, g->in_data_len);
   
   return((mus_any *)g);
 }
@@ -13685,6 +13784,8 @@ int mus_granulate_grain_max_length(mus_any *ptr) {return(((grn_info *)ptr)->in_d
 static mus_long_t grn_location(mus_any *ptr) {return((mus_long_t)(((grn_info *)ptr)->randx));}
 static mus_long_t grn_set_location(mus_any *ptr, mus_long_t val) {((grn_info *)ptr)->randx = (unsigned long)val; return(val);}
 
+static mus_float_t grn_jitter(mus_any *ptr) {return(((grn_info *)ptr)->jitter);}
+
 static mus_float_t run_granulate(mus_any *ptr, mus_float_t unused1, mus_float_t unused2) {return(mus_granulate(ptr, NULL));}
 
 
@@ -13693,9 +13794,9 @@ static void grn_reset(mus_any *ptr)
   grn_info *gen = (grn_info *)ptr; 
   gen->cur_out = 0;
   gen->ctr = 0;
-  clear_floats(gen->out_data, gen->out_data_len);
-  clear_floats(gen->in_data, gen->in_data_len);
-  clear_floats(gen->grain, gen->in_data_len);
+  mus_clear_floats(gen->out_data, gen->out_data_len);
+  mus_clear_floats(gen->in_data, gen->in_data_len);
+  mus_clear_floats(gen->grain, gen->in_data_len);
   gen->first_samp = true;
 }
 
@@ -13728,7 +13829,7 @@ static mus_any_class GRANULATE_CLASS = {
   MUS_NOT_SPECIAL,
   &grn_closure,
   0,
-  0, 0, 0, 0, 0, 0, 
+  &grn_jitter, 0, 0, 0, 0, 0, 
   &grn_hop, &grn_set_hop, 
   &grn_ramp, &grn_set_ramp,
   0, 0, 0, 0, 
@@ -13772,6 +13873,7 @@ mus_any *mus_make_granulate(mus_float_t (*input)(void *arg, int direction),
   spd->grain_len = (int)(ceil(length * sampling_rate));
   spd->rmp = (int)(ramp * spd->grain_len);
   spd->amp = scaler;
+  spd->jitter = jitter;
   spd->output_hop = (int)(hop * sampling_rate);
   spd->input_hop = (int)((mus_float_t)(spd->output_hop) / expansion);
   spd->s20 = 2 * (int)(jitter * sampling_rate * hop); /* was *.05 here and *.02 below */
@@ -13843,7 +13945,7 @@ mus_float_t mus_granulate_with_editor(mus_any *ptr, mus_float_t (*input)(void *a
 	  if (spd->cur_out >= spd->out_data_len)
 	    {
 	      /* entire buffer has been output, and in fact we've been sending 0's for awhile to fill out hop */
-	      clear_floats(spd->out_data, spd->out_data_len); /* so zero the entire thing (it's all old) */
+	      mus_clear_floats(spd->out_data, spd->out_data_len); /* so zero the entire thing (it's all old) */
 	    }
 	  else 
 	    {
@@ -13851,7 +13953,7 @@ mus_float_t mus_granulate_with_editor(mus_any *ptr, mus_float_t (*input)(void *a
 	      int good_samps;
 	      good_samps = (spd->out_data_len - spd->cur_out);
 	      memmove((void *)(spd->out_data), (void *)(spd->out_data + spd->cur_out), good_samps * sizeof(mus_float_t));
-	      clear_floats(spd->out_data + good_samps, spd->cur_out); /* must be cur_out trailing samples to 0 */
+	      mus_clear_floats(spd->out_data + good_samps, spd->cur_out); /* must be cur_out trailing samples to 0 */
 	    }
 
 	  /* align input buffer */
@@ -13897,7 +13999,7 @@ mus_float_t mus_granulate_with_editor(mus_any *ptr, mus_float_t (*input)(void *a
 	else
 	  {
 	    if (lim < spd->grain_len)
-	      clear_floats(spd->grain, spd->grain_len - lim);
+	      mus_clear_floats(spd->grain, spd->grain_len - lim);
 	  }
 	if (spd->rmp > 0)
 	  {
@@ -13925,7 +14027,7 @@ mus_float_t mus_granulate_with_editor(mus_any *ptr, mus_float_t (*input)(void *a
 	  {
 	    /* ramp is 0.0, so just scale the input buffer by the current amp */
 	    if (spd->amp == 1.0)
-	      copy_floats(spd->grain, spd->in_data + curstart, lim);
+	      mus_copy_floats(spd->grain, spd->in_data + curstart, lim);
 	    else
 	      {
 		for (i = 0, j = curstart; i < lim; i++, j++)
@@ -13951,8 +14053,7 @@ mus_float_t mus_granulate_with_editor(mus_any *ptr, mus_float_t (*input)(void *a
 	else new_len = spd->grain_len;
 	if (new_len > spd->out_data_len) /* can be off-by-one here if hop is just barely greater then 0.0 (user is screwing around...) */
 	  new_len = spd->out_data_len;
-	for (i = 0; i < new_len; i++)
-	  spd->out_data[i] += spd->grain[i];
+	mus_add_floats(spd->out_data, spd->grain, new_len);
       }
       
       /* set location of next grain calculation */
@@ -14881,7 +14982,7 @@ mus_float_t *mus_make_fft_window_with_window(mus_fft_window_t type, mus_long_t s
 	  }
 	else
 	  {
-	    copy_floats(window, rl, size);
+	    mus_copy_floats(window, rl, size);
 	  }
 
 	free(rl);
@@ -14951,7 +15052,7 @@ mus_float_t *mus_make_fft_window_with_window(mus_fft_window_t type, mus_long_t s
 	  }
 	else
 	  {
-	    copy_floats(window, rl, size);
+	    mus_copy_floats(window, rl, size);
 	  }
 	free(rl);
 	free(im);
@@ -15009,7 +15110,7 @@ mus_float_t *mus_spectrum(mus_float_t *rdat, mus_float_t *idat, mus_float_t *win
       for (i = 0; i < n; i++) 
 	rdat[i] *= window[i];
     }
-  clear_floats(idat, n);
+  mus_clear_floats(idat, n);
   mus_fft(rdat, idat, n, 1);
 
   lowest = 0.000001;
@@ -15061,7 +15162,7 @@ mus_float_t *mus_autocorrelate(mus_float_t *data, mus_long_t n)
   mus_fft(data, im, n, 1);
   for (i = 0; i < n; i++)
     data[i] = data[i] * data[i] + im[i] * im[i];
-  clear_floats(im, n);
+  mus_clear_floats(im, n);
 
   mus_fft(data, im, n, -1);
   for (i = 0; i <= n2; i++) 
@@ -15120,7 +15221,7 @@ mus_float_t *mus_cepstrum(mus_float_t *data, mus_long_t n)
 
   rl = (mus_float_t *)malloc(n * sizeof(mus_float_t));
   im = (mus_float_t *)calloc(n, sizeof(mus_float_t));
-  copy_floats(rl, data, n);
+  mus_copy_floats(rl, data, n);
 
   mus_fft(rl, im, n, 1);
 
@@ -15131,7 +15232,7 @@ mus_float_t *mus_cepstrum(mus_float_t *data, mus_long_t n)
 	rl[i] = -10.0;
       else rl[i] = log(sqrt(rl[i]));
     }
-  clear_floats(im, n);
+  mus_clear_floats(im, n);
 
   mus_fft(rl, im, n, -1);
 
@@ -15239,11 +15340,11 @@ static mus_any *conv_copy(mus_any *ptr)
   memcpy((void *)g, (void *)ptr, sizeof(conv));
   bytes = g->fftsize * sizeof(mus_float_t);
   g->rl1 = (mus_float_t *)malloc(bytes);
-  copy_floats(g->rl1, p->rl1, g->fftsize);
+  mus_copy_floats(g->rl1, p->rl1, g->fftsize);
   g->rl2 = (mus_float_t *)malloc(bytes);
-  copy_floats(g->rl2, p->rl2, g->fftsize);
+  mus_copy_floats(g->rl2, p->rl2, g->fftsize);
   g->buf = (mus_float_t *)malloc(bytes);
-  copy_floats(g->buf, p->buf, g->fftsize);
+  mus_copy_floats(g->buf, p->buf, g->fftsize);
   return((mus_any *)g);
 }
 
@@ -15258,9 +15359,9 @@ static void convolve_reset(mus_any *ptr)
 {
   conv *gen = (conv *)ptr;
   gen->ctr = gen->fftsize2;
-  clear_floats(gen->rl1, gen->fftsize);
-  clear_floats(gen->rl2, gen->fftsize);
-  clear_floats(gen->buf, gen->fftsize);
+  mus_clear_floats(gen->rl1, gen->fftsize);
+  mus_clear_floats(gen->rl2, gen->fftsize);
+  mus_clear_floats(gen->buf, gen->fftsize);
 }
 
 
@@ -15295,21 +15396,21 @@ mus_float_t mus_convolve(mus_any *ptr, mus_float_t (*input)(void *arg, int direc
   mus_float_t result;
   if (gen->ctr >= gen->fftsize2)
     {
-      mus_long_t i, N;
+      mus_long_t N;
       N = gen->fftsize2;
-
       if (input) {gen->feeder = input; gen->block_feeder = NULL;}
-      clear_floats(gen->rl2, N * 2);
-      copy_floats(gen->rl2, gen->filter, gen->filtersize);
 
-      copy_floats(gen->buf, gen->buf + N, N);
-      clear_floats(gen->buf + N, N);
-      clear_floats(gen->rl1 + N, N);
+      mus_clear_floats(gen->rl2, N * 2);
+      mus_copy_floats(gen->rl2, gen->filter, gen->filtersize);
+      mus_copy_floats(gen->buf, gen->buf + N, N);
+      mus_clear_floats(gen->buf + N, N);
+      mus_clear_floats(gen->rl1 + N, N);
 
       if (gen->block_feeder)
 	gen->block_feeder(gen->closure, 1, gen->rl1, 0, N);
       else
 	{
+	  mus_long_t i;
 	  for (i = 0; i < N;)
 	    {
 	      gen->rl1[i] = gen->feeder(gen->closure, 1); i++;
@@ -15318,13 +15419,8 @@ mus_float_t mus_convolve(mus_any *ptr, mus_float_t (*input)(void *arg, int direc
 	}
 
       mus_convolution(gen->rl1, gen->rl2, gen->fftsize);
-
-      for (i = 0; i < N;)
-	{
-	  gen->buf[i] += gen->rl1[i]; i++;
-	  gen->buf[i] += gen->rl1[i]; i++;
-	}
-      copy_floats(gen->buf + N, gen->rl1 + N, N);
+      mus_add_floats(gen->buf, gen->rl1, N);
+      mus_copy_floats(gen->buf + N, gen->rl1 + N, N);
       gen->ctr = 0;
     }
   result = gen->buf[gen->ctr];
@@ -15453,8 +15549,8 @@ void mus_convolve_files(const char *file1, const char *file2, mus_float_t maxamp
 	  c2++; 
 	  if (c2 >= file2_chans) c2 = 0;
 
-	  clear_floats(data1, fftlen);
-	  clear_floats(data2, fftlen);
+	  mus_clear_floats(data1, fftlen);
+	  mus_clear_floats(data2, fftlen);
 	}
 
       for (i = 0; i < totallen; i++) 
@@ -15565,26 +15661,26 @@ static mus_any *pv_info_copy(mus_any *ptr)
 
   bytes = p->N * sizeof(mus_float_t);
   g->freqs = (mus_float_t *)malloc(bytes);
-  copy_floats(g->freqs, p->freqs, p->N);
+  mus_copy_floats(g->freqs, p->freqs, p->N);
   g->ampinc = (mus_float_t *)malloc(bytes);
-  copy_floats(g->ampinc, p->ampinc, p->N);
+  mus_copy_floats(g->ampinc, p->ampinc, p->N);
   g->win = (mus_float_t *)malloc(bytes);
-  copy_floats(g->win, p->win, p->N);
+  mus_copy_floats(g->win, p->win, p->N);
   if (p->in_data)
     {
       g->in_data = (mus_float_t *)malloc(bytes);
-      copy_floats(g->in_data, p->in_data, p->N);
+      mus_copy_floats(g->in_data, p->in_data, p->N);
     }
 
   bytes = (p->N / 2) * sizeof(mus_float_t);
   g->amps = (mus_float_t *)malloc(bytes);
-  copy_floats(g->amps, p->amps, p->N / 2);
+  mus_copy_floats(g->amps, p->amps, p->N / 2);
   g->phases = (mus_float_t *)malloc(bytes);
-  copy_floats(g->phases, p->phases, p->N / 2);
+  mus_copy_floats(g->phases, p->phases, p->N / 2);
   g->lastphase = (mus_float_t *)malloc(bytes);
-  copy_floats(g->lastphase, p->lastphase, p->N / 2);
+  mus_copy_floats(g->lastphase, p->lastphase, p->N / 2);
   g->phaseinc = (mus_float_t *)malloc(bytes);
-  copy_floats(g->phaseinc, p->phaseinc, p->N / 2);
+  mus_copy_floats(g->phaseinc, p->phaseinc, p->N / 2);
 
 #if HAVE_SINCOS
   bytes = (p->N / 2) * sizeof(int);
@@ -15640,12 +15736,12 @@ static void pv_reset(mus_any *ptr)
   gen->in_data = NULL;
   gen->outctr = gen->interp;
   gen->filptr = 0;
-  clear_floats(gen->ampinc, gen->N);
-  clear_floats(gen->freqs, gen->N);
-  clear_floats(gen->amps, gen->N / 2);
-  clear_floats(gen->phases, gen->N / 2);
-  clear_floats(gen->lastphase, gen->N / 2);
-  clear_floats(gen->phaseinc, gen->N / 2);
+  mus_clear_floats(gen->ampinc, gen->N);
+  mus_clear_floats(gen->freqs, gen->N);
+  mus_clear_floats(gen->amps, gen->N / 2);
+  mus_clear_floats(gen->phases, gen->N / 2);
+  mus_clear_floats(gen->lastphase, gen->N / 2);
+  mus_clear_floats(gen->phaseinc, gen->N / 2);
 }
 
 
@@ -15728,7 +15824,7 @@ mus_any *mus_make_phase_vocoder(mus_float_t (*input)(void *arg, int direction),
   if ((fftsize == pv_last_fftsize) && (pv_last_window))
     {
       pv->win = (mus_float_t *)malloc(fftsize * sizeof(mus_float_t));
-      copy_floats(pv->win, pv_last_window, fftsize);
+      mus_copy_floats(pv->win, pv_last_window, fftsize);
     }
   else
     {
@@ -15741,7 +15837,7 @@ mus_any *mus_make_phase_vocoder(mus_float_t (*input)(void *arg, int direction),
       scl = 2.0 / (0.54 * (mus_float_t)fftsize);
       for (i = 0; i < fftsize; i++) 
 	pv->win[i] *= scl;
-      copy_floats(pv_last_window, pv->win, fftsize);
+      mus_copy_floats(pv_last_window, pv->win, fftsize);
     }
 
 #if HAVE_SINCOS
@@ -15766,7 +15862,6 @@ mus_float_t mus_phase_vocoder_with_editors(mus_any *ptr,
  {
   pv_info *pv = (pv_info *)ptr;
   int N2, i;
-  mus_float_t sum, sum1;
   mus_float_t (*pv_synthesize)(void *arg) = synthesize;
 
   if (!pv_synthesize) pv_synthesize = pv->synthesize;
@@ -15787,7 +15882,7 @@ mus_float_t mus_phase_vocoder_with_editors(mus_any *ptr,
 	  ((*pv_analyze)(pv->closure, pv->input)))
 	{
 	  int buf;
-	  clear_floats(pv->freqs, pv->N);
+	  mus_clear_floats(pv->freqs, pv->N);
 	  if (!pv->in_data)
 	    {
 	      pv->in_data = (mus_float_t *)malloc(pv->N * sizeof(mus_float_t));
@@ -15918,6 +16013,7 @@ mus_float_t mus_phase_vocoder_with_editors(mus_any *ptr,
 
   if (pv->calc)
     {
+      mus_float_t sum, sum1;
       mus_float_t *pinc, *frq, *ph, *amp, *panc;
       int topN;
 #if HAVE_SINCOS
@@ -15953,7 +16049,6 @@ mus_float_t mus_phase_vocoder_with_editors(mus_any *ptr,
        * If the amp zero phase is off (incorrectly incremented above), the effect is a sort of low-pass filter??
        *   Are we getting cancellation from the overlap?
        */
-      
 #if HAVE_SINCOS
       for (j = 0; j < topN; j++)
 	{
@@ -16207,7 +16302,7 @@ static mus_any *ssbam_copy(mus_any *ptr)
 
   bytes = p->size * sizeof(mus_float_t);
   g->coeffs = (mus_float_t *)malloc(bytes);
-  copy_floats(g->coeffs, p->coeffs, p->size);
+  mus_copy_floats(g->coeffs, p->coeffs, p->size);
 
   return((mus_any *)g);
 }
@@ -16403,7 +16498,7 @@ mus_any *mus_make_ssb_am(mus_float_t freq, int order)
   if ((flen == ssb_am_last_flen) && (ssb_am_last_coeffs))
     {
       gen->coeffs = (mus_float_t *)malloc(flen * sizeof(mus_float_t));
-      copy_floats(gen->coeffs, ssb_am_last_coeffs, flen);
+      mus_copy_floats(gen->coeffs, ssb_am_last_coeffs, flen);
     }
   else
     {
@@ -16424,7 +16519,7 @@ mus_any *mus_make_ssb_am(mus_float_t freq, int order)
       if (ssb_am_last_coeffs) free(ssb_am_last_coeffs);
       ssb_am_last_flen = flen;
       ssb_am_last_coeffs = (mus_float_t *)malloc(flen * sizeof(mus_float_t));
-      copy_floats(ssb_am_last_coeffs, gen->coeffs, flen);
+      mus_copy_floats(ssb_am_last_coeffs, gen->coeffs, flen);
     }
 
   gen->hilbert = mus_make_fir_filter(flen, gen->coeffs, NULL);
@@ -16446,6 +16541,66 @@ mus_float_t (*mus_run_function(mus_any *g))(mus_any *gen, mus_float_t arg1, mus_
   return(NULL);
 }
 
+mus_float_t (*mus_run1_function(mus_any *g))(mus_any *gen, mus_float_t arg)
+{
+  if (g)
+    {
+      switch (g->core->type)
+	{
+	case MUS_FILTER:
+	case MUS_FIR_FILTER:
+	case MUS_IIR_FILTER:    return(((flt *)g)->filtw);
+
+	case MUS_FORMANT:       return(mus_formant);
+	case MUS_FIRMANT:       return(mus_firmant);
+	  
+	case MUS_ONE_POLE:      return(mus_one_pole);
+	case MUS_ONE_ZERO:      return(mus_one_zero);
+	case MUS_TWO_POLE:      return(mus_two_pole);
+	case MUS_TWO_ZERO:      return(mus_two_zero);
+	case MUS_ONE_POLE_ALL_PASS: return(((onepall *)g)->f);
+
+	case MUS_DELAY:         return(mus_delay_unmodulated);
+	case MUS_COMB:          return(mus_comb_unmodulated);
+	case MUS_NOTCH:         return(mus_notch_unmodulated);
+	case MUS_ALL_PASS:      return(mus_all_pass_unmodulated);
+
+	case MUS_TRIANGLE_WAVE: return(mus_triangle_wave);
+	case MUS_SAWTOOTH_WAVE: return(mus_sawtooth_wave);
+	case MUS_SQUARE_WAVE:   return(mus_square_wave);
+	case MUS_PULSE_TRAIN:   return(mus_pulse_train);
+	case MUS_PULSED_ENV:    return(mus_pulsed_env);
+	  
+	case MUS_OSCIL:         return(mus_oscil_fm);
+	case MUS_NCOS:          return(mus_ncos);
+	case MUS_NSIN:          return(mus_nsin);
+	case MUS_NRXYCOS:       return(mus_ncos);
+	case MUS_NRXYSIN:       return(mus_nsin);
+	case MUS_RXYKCOS:       return(mus_ncos);
+	case MUS_RXYKSIN:       return(mus_nsin);
+
+	case MUS_TABLE_LOOKUP:  return(((tbl *)g)->tbl_look);
+	case MUS_POLYWAVE:      return(((pw *)g)->polyw);
+	  
+	case MUS_WAVE_TRAIN:    return(mus_wave_train);
+	case MUS_COMB_BANK:     return(((cmb_bank *)g)->cmbf);
+	case MUS_ALL_PASS_BANK: return(((allp_bank *)g)->apf);
+	case MUS_FILTERED_COMB_BANK: return(((fltcmb_bank *)g)->cmbf);
+	case MUS_FORMANT_BANK:  return(((frm_bank *)g)->one_input);
+
+	case MUS_MOVING_AVERAGE: return(mus_moving_average);
+	case MUS_MOVING_MAX:    return(mus_moving_max);
+	case MUS_MOVING_NORM:   return(mus_moving_norm);
+
+	case MUS_RAND:          return(mus_rand);
+	case MUS_RAND_INTERP:   return(mus_rand_interp);
+
+	case MUS_SSB_AM:        return(mus_ssb_am_unmodulated);
+	}
+    }
+  return(NULL);
+}
+
 mus_float_t mus_apply(mus_any *gen, mus_float_t f1, mus_float_t f2)
 {
   /* what about non-gen funcs such as polynomial, ring_modulate etc? */
diff --git a/clm.h b/clm.h
index c174fca..d6b5ee5 100644
--- a/clm.h
+++ b/clm.h
@@ -2,8 +2,8 @@
 #define CLM_H
 
 #define MUS_VERSION 6
-#define MUS_REVISION 13
-#define MUS_DATE "5-Aug-15"
+#define MUS_REVISION 16
+#define MUS_DATE "18-Jul-17"
 
 /* isn't mus_env_interp backwards? */
 
@@ -108,6 +108,7 @@ MUS_EXPORT mus_float_t mus_odd_multiple(mus_float_t x, mus_float_t y);
 MUS_EXPORT mus_float_t mus_even_multiple(mus_float_t x, mus_float_t y);
 MUS_EXPORT mus_float_t mus_odd_weight(mus_float_t x);
 MUS_EXPORT mus_float_t mus_even_weight(mus_float_t x);
+MUS_EXPORT const char *mus_interp_type_to_string(int type);
 
 MUS_EXPORT mus_float_t mus_srate(void);
 MUS_EXPORT mus_float_t mus_set_srate(mus_float_t val);
@@ -139,6 +140,7 @@ MUS_EXPORT bool mus_is_fft_window(int val);
 
 MUS_EXPORT int mus_sample_type_zero(mus_sample_t samp_type);
 MUS_EXPORT mus_float_t (*mus_run_function(mus_any *g))(mus_any *gen, mus_float_t arg1, mus_float_t arg2);
+MUS_EXPORT mus_float_t (*mus_run1_function(mus_any *g))(mus_any *gen, mus_float_t arg);
 
 
 /* -------- generic functions -------- */
@@ -190,6 +192,29 @@ MUS_EXPORT mus_float_t mus_set_feedforward(mus_any *gen, mus_float_t val);
 MUS_EXPORT mus_float_t mus_feedback(mus_any *rd);
 MUS_EXPORT mus_float_t mus_set_feedback(mus_any *rd, mus_float_t dir);
 
+MUS_EXPORT bool mus_phase_exists(mus_any *gen);
+MUS_EXPORT bool mus_frequency_exists(mus_any *gen);
+MUS_EXPORT bool mus_length_exists(mus_any *gen);
+MUS_EXPORT bool mus_order_exists(mus_any *gen);
+MUS_EXPORT bool mus_data_exists(mus_any *gen);
+MUS_EXPORT bool mus_name_exists(mus_any *gen);
+MUS_EXPORT bool mus_scaler_exists(mus_any *gen);
+MUS_EXPORT bool mus_offset_exists(mus_any *gen);
+MUS_EXPORT bool mus_width_exists(mus_any *gen);
+MUS_EXPORT bool mus_file_name_exists(mus_any *gen);
+MUS_EXPORT bool mus_xcoeffs_exists(mus_any *gen);
+MUS_EXPORT bool mus_ycoeffs_exists(mus_any *gen);
+MUS_EXPORT bool mus_increment_exists(mus_any *gen);
+MUS_EXPORT bool mus_location_exists(mus_any *gen);
+MUS_EXPORT bool mus_channel_exists(mus_any *gen);
+MUS_EXPORT bool mus_channels_exists(mus_any *gen);
+MUS_EXPORT bool mus_position_exists(mus_any *gen);
+MUS_EXPORT bool mus_interp_type_exists(mus_any *gen);
+MUS_EXPORT bool mus_ramp_exists(mus_any *gen);
+MUS_EXPORT bool mus_hop_exists(mus_any *gen);
+MUS_EXPORT bool mus_feedforward_exists(mus_any *gen);
+MUS_EXPORT bool mus_feedback_exists(mus_any *gen);
+
 
 /* -------- generators -------- */
 
@@ -591,6 +616,10 @@ MUS_EXPORT mus_any *mus_bank_generator(mus_any *g, int i);
 
 /* Change log.
  *
+ * 18-Jul:     mus_<method>_exists.
+ * 13-Jul:     mus_run1_function.
+ * 11-Jul-17:  removed *clm-default-frequency*.
+ * --------
  * 5-Aug:      removed some now-obsolete mus_locsig functions.
  * 5-Jul:      added stable arg to mus_make_oscil_bank.
  * 15-Feb:     removed mus_set_name, changed mus_free to void.
diff --git a/clm2xen.c b/clm2xen.c
index 63bbafc..fbf9c0b 100644
--- a/clm2xen.c
+++ b/clm2xen.c
@@ -81,7 +81,7 @@ struct mus_xen {
 };
 
 
-enum {MUS_DATA_WRAPPER, MUS_INPUT_FUNCTION, MUS_ANALYZE_FUNCTION, MUS_EDIT_FUNCTION, MUS_SYNTHESIZE_FUNCTION, MUS_SAVED_FUNCTION,
+enum {MUS_DATA_WRAPPER, MUS_INPUT_FUNCTION, MUS_ANALYZE_FUNCTION, MUS_EDIT_FUNCTION, MUS_SYNTHESIZE_FUNCTION,
       MUS_SELF_WRAPPER, MUS_INPUT_DATA, MUS_MAX_VCTS}; /* order matters, stuff before self_wrapper is GC marked */
 
 static mus_xen *mx_free_lists[9] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
@@ -167,13 +167,13 @@ static Xen clm_mus_error(int type, const char *msg, const char *caller)
 
 
 #if HAVE_SCHEME
-static s7_pointer mus_error_symbol, clm_error_info;
+static s7_pointer mus_error_symbol, clm_error_info, clm_err1, clm_err2, clm_err3;
 #define CLM_ERROR mus_error_symbol
 static void clm_error(const char *caller, const char *msg, Xen val)
 {
-  s7_list_set(s7, clm_error_info, 1, s7_make_string(s7, caller));
-  s7_list_set(s7, clm_error_info, 2, s7_make_string(s7, msg));
-  s7_list_set(s7, clm_error_info, 3, val);
+  s7_set_car(clm_err1, s7_make_string_wrapper(s7, caller));
+  s7_set_car(clm_err2, s7_make_string_wrapper(s7, msg));
+  s7_set_car(clm_err3, val);
   s7_error(s7, mus_error_symbol, clm_error_info);
 }
 #else
@@ -197,7 +197,7 @@ static void clm_error(const char *caller, const char *msg, Xen val)
   static s7_pointer extra_args_string;
 #endif
 
-int mus_optkey_unscramble(const char *caller, int nkeys, Xen *keys, Xen *args, int *orig)
+int mus_optkey_unscramble(const char *caller, int num_args, int nkeys, Xen *keys, Xen *args, int *orig)
 {
   /* implement the &optional-key notion in CLM */
   /* "keys" holds the keywords the calling function accepts, 
@@ -208,33 +208,31 @@ int mus_optkey_unscramble(const char *caller, int nkeys, Xen *keys, Xen *args, i
    * "orig" should be of size nkeys, and will contain upon return the 1-based location of the original keyword value argument
    *  (it is intended for error reports)
    */
-  int arg_ctr = 0, key_start = 0, rtn_ctr = 0, nargs, nargs_end;
+  int arg_ctr = 0, key_start = 0, rtn_ctr = 0, end;
   bool keying = false, key_found = false;
-  nargs = nkeys * 2;
-  nargs_end = nargs - 1;
+  end = num_args - 1;
 
-  while ((arg_ctr < nargs) && 
-	 (Xen_is_bound(args[arg_ctr])))
+  while (arg_ctr < num_args)
     {
       Xen key;
       key = args[arg_ctr];
       if (!(Xen_is_keyword(key)))
 	{
-	  if (keying) 
-	    clm_error(caller, "unmatched value within keyword section?", key);
-	  /* type checking on the actual values has to be the caller's problem */
-
 	  if (arg_ctr >= nkeys) /* we aren't handling a keyword arg, so the underlying args should only take nkeys args */
 #if HAVE_SCHEME
 	    {
-	      s7_list_set(s7, clm_error_info, 1, s7_make_string(s7, caller));
-	      s7_list_set(s7, clm_error_info, 2, extra_args_string);
-	      s7_list_set(s7, clm_error_info, 3, key);
+	      s7_set_car(clm_err1, s7_make_string_wrapper(s7, caller));
+	      s7_set_car(clm_err2, extra_args_string);
+	      s7_set_car(clm_err3, key);
 	      s7_error(s7, mus_error_symbol, clm_error_info);
 	    }
 #else
 	    clm_error(caller, "extra trailing args?", key);
 #endif
+	  if (keying) 
+	    clm_error(caller, "unmatched value within keyword section?", key);
+	  /* type checking on the actual values has to be the caller's problem */
+
 	  keys[arg_ctr] = key;
 	  orig[arg_ctr] = arg_ctr + 1;
 	  arg_ctr++;
@@ -245,11 +243,10 @@ int mus_optkey_unscramble(const char *caller, int nkeys, Xen *keys, Xen *args, i
 	{
 	  int i;
 	  Xen val;
-	  val = args[arg_ctr + 1];
-	  if ((arg_ctr == nargs_end) ||
-	      (!(Xen_is_bound(val))))
+	  if (arg_ctr >= end)
 	    clm_error(caller, "keyword without value?", key);
 
+	  val = args[arg_ctr + 1];
 	  if (Xen_is_keyword(val))
 	    clm_error(caller, "two keywords in a row?", key);
 
@@ -280,7 +277,7 @@ int mus_optkey_unscramble(const char *caller, int nkeys, Xen *keys, Xen *args, i
   return(rtn_ctr);
 }
 
-
+#if (!HAVE_SCHEME)
 static mus_float_t optkey_float_error(Xen key, int n, const char *caller)
 {
   Xen_check_type(false, key, n, caller, "a number");
@@ -289,6 +286,7 @@ static mus_float_t optkey_float_error(Xen key, int n, const char *caller)
 
 #define Xen_optkey_to_float(Original_key, Key, Caller, N, Def) \
   ((Xen_keyword_is_eq(Original_key, Key)) ? Def : ((Xen_is_number(Key)) ? Xen_real_to_C_double(Key) : optkey_float_error(Key, N, Caller)))
+#endif
 
 mus_float_t mus_optkey_to_float(Xen key, const char *caller, int n, mus_float_t def)
 {
@@ -299,7 +297,7 @@ mus_float_t mus_optkey_to_float(Xen key, const char *caller, int n, mus_float_t
   return(def);
 }
 
-
+#if (!HAVE_SCHEME)
 static int optkey_int_error(Xen key, int n, const char *caller)
 {
   Xen_check_type(false, key, n, caller, "an integer");
@@ -308,6 +306,7 @@ static int optkey_int_error(Xen key, int n, const char *caller)
 
 #define Xen_optkey_to_int(Original_key, Key, Caller, N, Def) \
   ((Xen_keyword_is_eq(Original_key, Key)) ? Def : ((Xen_is_integer(Key)) ? Xen_integer_to_C_int(Key) : optkey_int_error(Key, N, Caller)))
+#endif
 
 int mus_optkey_to_int(Xen key, const char *caller, int n, int def)
 {
@@ -328,12 +327,13 @@ bool mus_optkey_to_bool(Xen key, const char *caller, int n, bool def)
   return(def);
 }
 
-
+#if (!HAVE_SCHEME)
 static mus_long_t optkey_llong_error(Xen key, int n, const char *caller)
 {
   Xen_check_type(false, key, n, caller, "an integer");
   return(0);
 }
+#endif
 
 #define Xen_optkey_to_mus_long_t(Original_key, Key, Caller, N, Def) \
   ((Xen_keyword_is_eq(Original_key, Key)) ? Def : ((Xen_is_integer(Key)) ? Xen_llong_to_C_llong(Key) : optkey_llong_error(Key, N, Caller)))
@@ -357,7 +357,7 @@ const char *mus_optkey_to_string(Xen key, const char *caller, int n, char *def)
   return(def);
 }
 
-
+#if (!HAVE_SCHEME)
 static vct *mus_optkey_to_vct(Xen key, const char *caller, int n, vct *def)
 {
   if (mus_is_vct(key))
@@ -366,7 +366,7 @@ static vct *mus_optkey_to_vct(Xen key, const char *caller, int n, vct *def)
     Xen_check_type(false, key, n, caller, "a " S_vct);
   return(def);
 }
-
+#endif
 
 static bool local_arity_ok(Xen proc, int args) /* from snd-xen.c minus (inconvenient) gc protection */
 {
@@ -407,6 +407,14 @@ Xen mus_optkey_to_procedure(Xen key, const char *caller, int n, Xen def, int req
 
 
 /* ---------------- clm keywords ---------------- */
+#if HAVE_SCHEME
+static s7_pointer kw_frequency, kw_radius;
+static void init_keywords(void)
+{
+  kw_frequency = Xen_make_keyword("frequency");
+  kw_radius = Xen_make_keyword("radius");
+}
+#else
 
 static Xen kw_frequency, kw_initial_phase, kw_wave, kw_amplitude,
   kw_r, kw_ratio, kw_size, kw_a0, kw_a1, kw_a2, kw_b1, kw_b2, kw_max_size,
@@ -485,7 +493,7 @@ static void init_keywords(void)
   kw_coeffs =           Xen_make_keyword("coeffs");
   kw_kind =             Xen_make_keyword("kind");
 }
-
+#endif
 
 
 /* ---------------- *clm-table-size* ---------------- */
@@ -516,9 +524,10 @@ static Xen g_set_clm_table_size(Xen val)
 }
 
 
-/* ---------------- *clm-default-frequency* ---------------- */
+#if (!DISABLE_DEPRECATED)
+#define S_clm_default_frequency "clm-default-frequency"
 
-static mus_float_t clm_default_frequency = MUS_CLM_DEFAULT_FREQUENCY;
+static mus_float_t clm_default_frequency = 0.0;
 #if HAVE_SCHEME
   static s7_pointer clm_default_frequency_symbol;
 #endif
@@ -537,7 +546,7 @@ static Xen g_set_clm_default_frequency(Xen val)
 #endif
   return(val);
 }
-
+#endif
 
 
 /* ---------------- AM and simple stuff ---------------- */
@@ -1524,7 +1533,9 @@ static Xen mus_xen_apply(s7_scheme *sc, Xen gen, Xen args)
 
 static Xen s7_mus_length(s7_scheme *sc, Xen obj)
 {
-  return(g_mus_length(obj));
+  if (mus_length_exists(Xen_to_mus_any(obj)))
+    return(g_mus_length(obj));
+  return(s7_make_integer(sc, 1));
 }
 
 static Xen g_mus_copy(Xen gen);
@@ -1533,12 +1544,17 @@ static Xen s7_mus_copy(s7_scheme *sc, Xen args)
   return(g_mus_copy(s7_car(args)));
 }
 
+static s7_pointer g_clm_let;
 #endif
 
 
 Xen mus_xen_to_object(mus_xen *gn) /* global for user-defined gens */
 {
+#if HAVE_SCHEME
+  return(s7_make_object_with_let(s7, mus_xen_tag, gn, g_clm_let));
+#else
   return(Xen_make_object(mus_xen_tag, gn, mark_mus_xen, free_mus_xen));
+#endif
 }
 
 
@@ -1560,7 +1576,7 @@ mus_any *mus_optkey_to_mus_any(Xen key, const char *caller, int n, mus_any *def)
   return(def);
 }
 
-
+#if (!HAVE_SCHEME)
 static Xen mus_optkey_to_input_procedure(Xen key, const char *caller, int n, Xen def, int required_args, const char *err)
 {
   if (Xen_is_procedure(key))
@@ -1582,7 +1598,7 @@ static Xen mus_optkey_to_input_procedure(Xen key, const char *caller, int n, Xen
     Xen_check_type(false, key, n, caller, "a procedure or input generator");
   return(def);
 }
-
+#endif
 
 
 /* ---------------- wrappers ---------------- */
@@ -2440,16 +2456,34 @@ I_METHOD(hop)
 #endif
 
 
+#define Aok(a) Xen_is_bound(a) 
 
 /* ---------------- oscil ---------------- */
 
+#if HAVE_SCHEME
+static s7_pointer g_make_oscil(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_oscil "(" S_make_oscil " (frequency 0.0) (initial-phase 0.0)): return a new " S_oscil " (sinewave) generator"
+  mus_any *ge;
+  mus_float_t freq, phase;
+  
+  freq = s7_number_to_real(s7, s7_car(args));
+  if (freq > (0.5 * mus_srate()))
+    Xen_out_of_range_error(S_make_oscil, 1, s7_car(args), "freq > srate/2?");
+
+  phase = s7_number_to_real(s7, s7_cadr(args));
+
+  ge = mus_make_oscil(freq, phase);
+  if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+  return(Xen_false);
+}
+#else
 static Xen g_make_oscil(Xen arg1, Xen arg2, Xen arg3, Xen arg4)
 {
-  #define H_make_oscil "(" S_make_oscil " (frequency *clm-default-frequency*) (initial-phase 0.0)): return a new " S_oscil " (sinewave) generator"
+  #define H_make_oscil "(" S_make_oscil " (frequency 0.0) (initial-phase 0.0)): return a new " S_oscil " (sinewave) generator"
   mus_any *ge;
-  mus_float_t freq, phase = 0.0;
+  mus_float_t freq = 0.0, phase = 0.0;
 
-  freq = clm_default_frequency;
   if (Xen_is_bound(arg1))
     {
       if (!Xen_is_bound(arg2))
@@ -2461,15 +2495,15 @@ static Xen g_make_oscil(Xen arg1, Xen arg2, Xen arg3, Xen arg4)
 	}
       else
 	{
-	  int vals;
+	  int vals, pr = 0;
 	  Xen args[4]; 
 	  Xen keys[2];
 	  int orig_arg[2] = {0, 0};
 	  keys[0] = kw_frequency;
 	  keys[1] = kw_initial_phase;
 
-	  args[0] = arg1; args[1] = arg2; args[2] = arg3; args[3] = arg4; 
-	  vals = mus_optkey_unscramble(S_make_oscil, 2, keys, args, orig_arg);
+	  if (Aok(arg1)) {args[pr++] = arg1; if (Aok(arg2)) {args[pr++] = arg2; if (Aok(arg3)) {args[pr++] = arg3; if (Aok(arg4)) {args[pr++] = arg4;}}}}
+	  vals = mus_optkey_unscramble(S_make_oscil, pr, 2, keys, args, orig_arg);
 	  if (vals > 0)
 	    {
 	      freq = Xen_optkey_to_float(kw_frequency, keys[0], S_make_oscil, orig_arg[0], freq);
@@ -2484,7 +2518,7 @@ static Xen g_make_oscil(Xen arg1, Xen arg2, Xen arg3, Xen arg4)
   if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
   return(Xen_false);
 }
-
+#endif
 
 static Xen g_oscil(Xen osc, Xen fm, Xen pm)
 {
@@ -2564,7 +2598,369 @@ static Xen g_oscil_bank(Xen g)
 
 /* ---------------- delay ---------------- */
 
+#define H_make_delay "(" S_make_delay " size initial-contents initial-element max-size type): \
+return a new delay line of size elements. \
+If the delay length will be changing at run-time, max-size sets its maximum length, so\n\
+   (" S_make_delay " len :max-size (+ len 10))\n\
+provides 10 extra elements of delay for subsequent phasing or flanging. \
+initial-contents can be either a list or a " S_vct "."
+
+#define H_make_comb "(" S_make_comb " scaler size initial-contents initial-element max-size type): \
+return a new comb filter (a delay line with a scaler on the feedback) of size elements. \
+If the comb length will be changing at run-time, max-size sets its maximum length. \
+initial-contents can be either a list or a " S_vct "."
+
+#define H_make_filtered_comb "(" S_make_filtered_comb " scaler size initial-contents initial-element max-size type filter): \
+return a new filtered comb filter (a delay line with a scaler and a filter on the feedback) of size elements. \
+If the comb length will be changing at run-time, max-size sets its maximum length. \
+initial-contents can be either a list or a " S_vct "."
+
+#define H_make_notch "(" S_make_notch " scaler size initial-contents initial-element max-size type)): \
+return a new notch filter (a delay line with a scaler on the feedforward) of size elements. \
+If the notch length will be changing at run-time, max-size sets its maximum length. \
+initial-contents can be either a list or a " S_vct "."
+
+#define H_make_all_pass "(" S_make_all_pass " feedback feedforward size initial-contents initial-element max-size type): \
+return a new allpass filter (a delay line with a scalers on both the feedback and the feedforward). \
+If the " S_all_pass " length will be changing at run-time, max-size sets its maximum length. \
+initial-contents can be either a list or a " S_vct "."
+
+#define H_make_moving_average "(" S_make_moving_average " size initial-contents initial-element): \
+return a new moving_average generator. initial-contents can be either a list or a " S_vct "."
+
+#define H_make_moving_max "(" S_make_moving_max " size initial-contents initial-element): \
+return a new moving-max generator. initial-contents can be either a list or a " S_vct "."
+
+#define H_make_moving_norm "(" S_make_moving_norm " size (scaler 1.0)): return a new moving-norm generator."
+
+
+#if HAVE_SCHEME
+
+static mus_long_t d_size(s7_scheme *sc, s7_pointer size, int arg_n, const char *caller)
+{
+  mus_long_t x;
+  if (size == Xen_false)
+    return(-1);
+  if (!s7_is_integer(size))
+    s7_wrong_type_arg_error(sc, caller, arg_n, size, "an integer");    
+  x = s7_integer(size);
+  if (x < 0)
+    Xen_out_of_range_error(caller, arg_n, size, "size < 0?");
+  if (x > mus_max_table_size())
+    Xen_out_of_range_error(caller, arg_n, size, "size too large (see mus-max-table-size)");
+  return(x);
+}
+
+static mus_long_t d_max_size(s7_scheme *sc, s7_pointer msize, int arg_n, const char *caller)
+{
+  mus_long_t max_size;
+  if (msize == Xen_false)
+    return(-1);
+  if (!s7_is_integer(msize))
+    s7_wrong_type_arg_error(sc, caller, arg_n, msize, "an integer");    
+  max_size = s7_integer(msize);
+  if (max_size <= 0)
+    Xen_out_of_range_error(caller, arg_n, msize, "max-size <= 0?");
+  if (max_size > mus_max_table_size())
+    Xen_out_of_range_error(caller, arg_n, msize, "max-size too large (see mus-max-table-size)");
+  return(max_size);
+}
+
+static int d_interp(s7_scheme *sc, s7_pointer interp, bool maxed, int arg_n, const char *caller)
+{
+  if (s7_is_integer(interp))
+    {
+      int interp_type;
+      interp_type = s7_integer(interp);
+      if (!(mus_is_interp_type(interp_type)))
+	Xen_out_of_range_error(caller, arg_n, interp, "no such interp-type");
+      return(interp_type);
+    }
+  return((maxed) ? MUS_INTERP_LINEAR : MUS_INTERP_NONE);
+}
+
+static s7_pointer d_contents(s7_scheme *sc, s7_pointer contents, s7_pointer init, mus_long_t max_size, int arg_n, const char *caller)
+{
+  if (contents == Xen_false)
+    {
+      if (max_size == -1)
+	max_size = 1;
+      contents = s7_make_float_vector(sc, max_size, 1, NULL);
+      if (init != Xen_false)
+	{
+	  mus_float_t initial_element;
+	  initial_element = s7_number_to_real(sc, init);
+	  if (initial_element != 0.0)
+	    {
+	      mus_long_t i;
+	      s7_double *line;
+	      line = s7_float_vector_elements(contents);
+	      for (i = 0; i < max_size; i++) 
+		line[i] = initial_element;
+	    }
+	}
+      return(contents);
+    }
+
+  if (s7_is_number(init))
+    s7_wrong_type_arg_error(sc, caller, arg_n, contents, "initial-contents and initial-element in the same call?");
+
+  if (s7_is_float_vector(contents))
+    {
+      if (max_size > s7_vector_length(contents))
+	Xen_out_of_range_error(caller, arg_n, contents, "size > initial-contents length");
+      return(contents);
+    }
+
+  if (s7_is_pair(contents))
+    {
+      mus_long_t len;
+      len = s7_list_length(sc, contents);
+      if (len < 0)
+	s7_wrong_type_arg_error(sc, caller, arg_n, contents, "a proper list");
+      if (max_size > len)
+	Xen_out_of_range_error(caller, arg_n, contents, "size > initial-contents length");
+      return(xen_list_to_vct(contents));
+    }
+  return(s7_wrong_type_arg_error(sc, caller, arg_n, contents, "a float-vector or a proper list"));
+}
+  
+/* I don't think any of these mus_make* funcs call clm_error, so the local mus_error handlers are not needed */
+
+static s7_pointer g_make_delay(s7_scheme *sc, s7_pointer args)
+{
+  /* size initial-contents initial-element max-size interp-type */
+  mus_any *ge;
+  mus_long_t size, max_size;
+  int interp_type;
+  s7_pointer p;
+  s7_pointer initial_contents;
+  
+  p = s7_cdddr(args);
+  size = d_size(sc, s7_car(args), 1, S_make_delay);        /* -1 if no size key */
+  max_size = d_max_size(sc, s7_car(p), 4, S_make_delay);   /* -1 if no max-size key */
+  if (max_size < size) max_size = (size == 0) ? 1 : size;
+
+  initial_contents = d_contents(sc, s7_cadr(args), s7_caddr(args), max_size, 2, S_make_delay);
+  if (max_size == -1)
+    max_size = s7_vector_length(initial_contents);
+  if (size == -1)
+    size = max_size;
+
+  interp_type = d_interp(sc, s7_cadr(p), max_size != size, 5, S_make_delay);
+  ge = mus_make_delay(size, s7_float_vector_elements(initial_contents), max_size, (mus_interp_t)interp_type);
+  if (ge) 
+    return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, initial_contents)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_comb(s7_scheme *sc, s7_pointer args)
+{
+  /* scaler size initial-contents initial-element max-size interp-type */
+  mus_any *ge;
+  mus_long_t size, max_size;
+  int interp_type;
+  s7_pointer p;
+  s7_pointer initial_contents;
+  mus_float_t scl;
+  
+  size = d_size(sc, s7_cadr(args), 2, S_make_comb);        /* -1 if no size key */
+  p = s7_cdddr(args);
+  max_size = d_max_size(sc, s7_cadr(p), 5, S_make_comb);   /* -1 if no max-size key */
+  if (max_size < size) max_size = (size == 0) ? 1 : size;
+
+  initial_contents = d_contents(sc, s7_caddr(args), s7_car(p), max_size, 3, S_make_comb);
+  if (max_size == -1)
+    max_size = s7_vector_length(initial_contents);
+  if (size == -1)
+    size = max_size;
+
+  scl = s7_number_to_real(sc, s7_car(args));
+  interp_type = d_interp(sc, s7_caddr(p), max_size != size, 6, S_make_comb);
+  ge = mus_make_comb(scl, size, s7_float_vector_elements(initial_contents), max_size, (mus_interp_t)interp_type);
+  if (ge) 
+    return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, initial_contents)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_filtered_comb(s7_scheme *sc, s7_pointer args)
+{
+  /* scaler size initial-contents initial-element max-size interp-type filter */
+  mus_any *ge, *filt;
+  mus_long_t size, max_size;
+  int interp_type;
+  s7_pointer p, flt;
+  s7_pointer initial_contents;
+  mus_float_t scl;
+  
+  size = d_size(sc, s7_cadr(args), 2, S_make_filtered_comb);        /* -1 if no size key */
+  p = s7_cdddr(args);
+  max_size = d_max_size(sc, s7_cadr(p), 5, S_make_filtered_comb);   /* -1 if no max-size key */
+  if (max_size < size) max_size = (size == 0) ? 1 : size;
+
+  initial_contents = d_contents(sc, s7_caddr(args), s7_car(p), max_size, 3, S_make_filtered_comb);
+  if (max_size == -1)
+    max_size = s7_vector_length(initial_contents);
+  if (size == -1)
+    size = max_size;
+
+  scl = s7_number_to_real(sc, s7_car(args));
+  interp_type = d_interp(sc, s7_caddr(p), max_size != size, 6, S_make_filtered_comb);
+
+  flt = s7_cadddr(p);
+  if (flt == Xen_false)
+    filt = NULL;
+  else
+    {
+      if (!mus_is_xen(flt))
+	s7_wrong_type_arg_error(sc, S_make_filtered_comb, 7, flt, "a generator");
+      filt = Xen_to_mus_any(flt);
+    }
+
+  ge = mus_make_filtered_comb(scl, size, s7_float_vector_elements(initial_contents), max_size, (mus_interp_t)interp_type, filt);
+  if (ge) 
+    return(mus_xen_to_object(mus_any_to_mus_xen_with_two_vcts(ge, initial_contents, flt)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_notch(s7_scheme *sc, s7_pointer args)
+{
+  /* scaler size initial-contents initial-element max-size interp-type */
+  mus_any *ge;
+  mus_long_t size, max_size;
+  int interp_type;
+  s7_pointer p;
+  s7_pointer initial_contents;
+  mus_float_t scl;
+  
+  size = d_size(sc, s7_cadr(args), 2, S_make_notch);        /* -1 if no size key */
+  p = s7_cdddr(args);
+  max_size = d_max_size(sc, s7_cadr(p), 5, S_make_notch);   /* -1 if no max-size key */
+  if (max_size < size) max_size = (size == 0) ? 1 : size;
+
+  initial_contents = d_contents(sc, s7_caddr(args), s7_car(p), max_size, 3, S_make_notch);
+  if (max_size == -1)
+    max_size = s7_vector_length(initial_contents);
+  if (size == -1)
+    size = max_size;
+
+  scl = s7_number_to_real(sc, s7_car(args));
+  interp_type = d_interp(sc, s7_caddr(p), max_size != size, 6, S_make_notch);
+  ge = mus_make_notch(scl, size, s7_float_vector_elements(initial_contents), max_size, (mus_interp_t)interp_type);
+  if (ge) 
+    return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, initial_contents)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_all_pass(s7_scheme *sc, s7_pointer args)
+{
+  /* feedback feedforward size initial-contents initial-element max-size interp-type */
+  mus_any *ge;
+  mus_long_t size, max_size;
+  int interp_type;
+  s7_pointer p;
+  s7_pointer initial_contents;
+  mus_float_t feedback, feedforward;
+  
+  size = d_size(sc, s7_caddr(args), 3, S_make_all_pass);        /* -1 if no size key */
+  p = s7_cdddr(args);
+  max_size = d_max_size(sc, s7_caddr(p), 6, S_make_all_pass);   /* -1 if no max-size key */
+  if (max_size < size) max_size = (size == 0) ? 1 : size;
+
+  initial_contents = d_contents(sc, s7_car(p), s7_cadr(p), max_size, 4, S_make_all_pass);
+  if (max_size == -1)
+    max_size = s7_vector_length(initial_contents);
+  if (size == -1)
+    size = max_size;
+
+  feedback = s7_number_to_real(sc, s7_car(args));
+  feedforward = s7_number_to_real(sc, s7_cadr(args));
+  interp_type = d_interp(sc, s7_cadddr(p), max_size != size, 7, S_make_all_pass);
+  ge = mus_make_all_pass(feedback, feedforward, size, s7_float_vector_elements(initial_contents), max_size, (mus_interp_t)interp_type);
+  if (ge) 
+    return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, initial_contents)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_moving_average(s7_scheme *sc, s7_pointer args)
+{
+  /* size initial-contents initial-element */
+  mus_any *ge;
+  mus_long_t size;
+  s7_pointer initial_contents;
+  mus_float_t *line;
+  mus_float_t sum;
+  
+  size = d_size(sc, s7_car(args), 1, S_make_moving_average);        /* -1 if no size key */
+  initial_contents = d_contents(sc, s7_cadr(args), s7_caddr(args), size, 2, S_make_moving_average);
+  size = s7_vector_length(initial_contents);
+  if (size == 0)
+    Xen_out_of_range_error(S_make_moving_average, 1, s7_car(args), "size = 0?");
+
+  line = s7_float_vector_elements(initial_contents);
+  sum = line[0];
+  if (s7_cadr(args) == Xen_false)
+    {
+      if (s7_caddr(args) != Xen_false)
+	sum *= size;
+    }
+  else
+    {
+      mus_long_t i;
+      for (i = 1; i < size; i++)
+	sum += line[i];
+    }
+  ge = mus_make_moving_average_with_initial_sum(size, line, sum);
+  if (ge) 
+    return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, initial_contents)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_moving_max(s7_scheme *sc, s7_pointer args)
+{
+  /* size initial-contents initial-element */
+  mus_any *ge;
+  mus_long_t size;
+  s7_pointer initial_contents;
+  mus_float_t *line;
+  
+  size = d_size(sc, s7_car(args), 1, S_make_moving_max);        /* -1 if no size key */
+  initial_contents = d_contents(sc, s7_cadr(args), s7_caddr(args), size, 2, S_make_moving_max);
+  size = s7_vector_length(initial_contents);
+  if (size == 0)
+    Xen_out_of_range_error(S_make_moving_max, 1, s7_car(args), "size = 0?");
+
+  line = s7_float_vector_elements(initial_contents);
+  ge = mus_make_moving_max(size, line);
+  if (ge) 
+    return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, initial_contents)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_moving_norm(s7_scheme *sc, s7_pointer args)
+{
+  /* size scaler initial_contents initial-element */
+  mus_any *ge;
+  mus_float_t scl;
+  mus_long_t size;
+  mus_float_t *line;
+  s7_pointer initial_contents;
+
+  size = d_size(sc, s7_car(args), 1, S_make_moving_norm);        /* -1 if no size key */
+  initial_contents = d_contents(sc, s7_caddr(args), s7_cadddr(args), size, 3, S_make_moving_norm);
+  size = s7_vector_length(initial_contents);
+  if (size == 0)
+    Xen_out_of_range_error(S_make_moving_norm, 1, s7_car(args), "size = 0?");
+
+  scl = s7_number_to_real(sc, s7_cadr(args));
+  line = s7_float_vector_elements(initial_contents);
+  ge = mus_make_moving_norm(size, line, scl);
+  if (ge) 
+    return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, initial_contents)));
+  return(Xen_false);
+}
 
+#else
 typedef enum {G_DELAY, G_COMB, G_NOTCH, G_ALL_PASS, G_FCOMB} xclm_delay_t;
 
 static Xen g_make_delay_1(xclm_delay_t choice, Xen arglist)
@@ -2613,13 +3009,12 @@ static Xen g_make_delay_1(xclm_delay_t choice, Xen arglist)
     int a2, arglist_len;
     a2 = argn * 2;
     arglist_len = Xen_list_length(arglist);
-    if (arglist_len > a2) clm_error(caller, "too many arguments!", arglist);
+    if (arglist_len > a2) 
+      clm_error(caller, "too many arguments!", arglist);
     for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-    for (i = arglist_len; i < a2; i++) args[i] = Xen_undefined;
+    vals = mus_optkey_unscramble(caller, arglist_len, argn, keys, args, orig_arg);
   }
 
-  vals = mus_optkey_unscramble(caller, argn, keys, args, orig_arg);
-
   if (vals > 0)
     {
       bool size_set = false, max_size_set = false;
@@ -2757,7 +3152,7 @@ static Xen g_make_delay_1(xclm_delay_t choice, Xen arglist)
 	  for (i = 0; i < max_size; i++) 
 	    line[i] = initial_element;
 	}
-      else clear_floats(line, max_size);
+      else mus_clear_floats(line, max_size);
     }
   else
     {
@@ -2790,20 +3185,12 @@ static Xen g_make_delay_1(xclm_delay_t choice, Xen arglist)
 
 static Xen g_make_delay(Xen args) 
 {
-  #define H_make_delay "(" S_make_delay " (size) (initial-contents) (initial-element 0.0) (max-size) (type mus-interp-linear)): \
-return a new delay line of size elements. \
-If the delay length will be changing at run-time, max-size sets its maximum length, so\n\
-   (" S_make_delay " len :max-size (+ len 10))\n\
-provides 10 extra elements of delay for subsequent phasing or flanging. \
-initial-contents can be either a list or a " S_vct "."
-
   if ((Xen_is_pair(args)) && (!Xen_is_pair(Xen_cdr(args))))
     {
       Xen val, v;
       mus_any *ge;
       mus_long_t size, max_size;
       mus_float_t *line;
-      mus_error_handler_t *old_error_handler;
 
       val = Xen_car(args);
       Xen_check_type(Xen_is_integer(val), val, 1, S_make_delay, "an integer");
@@ -2817,59 +3204,19 @@ initial-contents can be either a list or a " S_vct "."
       line = (mus_float_t *)calloc(max_size, sizeof(mus_float_t));
       v = xen_make_vct(max_size, line); /* we need this for mus-data */
 
-      old_error_handler = mus_error_set_handler(local_mus_error);
       ge = mus_make_delay(size, line, max_size, MUS_INTERP_NONE);
-      mus_error_set_handler(old_error_handler);
       if (ge) return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, v)));
-      return(clm_mus_error(local_error_type, local_error_msg, S_make_delay));
+      return(Xen_false);
     }
 
   return(g_make_delay_1(G_DELAY, args));
 }
 
 
-static Xen g_make_comb(Xen args) 
-{
-  #define H_make_comb "(" S_make_comb " (scaler) (size) (initial-contents) (initial-element 0.0) (max-size) (type " S_mus_interp_linear ")): \
-return a new comb filter (a delay line with a scaler on the feedback) of size elements. \
-If the comb length will be changing at run-time, max-size sets its maximum length. \
-initial-contents can be either a list or a " S_vct "."
-
-  return(g_make_delay_1(G_COMB, args));
-}
-
-
-static Xen g_make_filtered_comb(Xen args) 
-{
-  #define H_make_filtered_comb "(" S_make_filtered_comb " (scaler) (size) (initial-contents) (initial-element 0.0) (max-size) (type " S_mus_interp_linear ") :filter): \
-return a new filtered comb filter (a delay line with a scaler and a filter on the feedback) of size elements. \
-If the comb length will be changing at run-time, max-size sets its maximum length. \
-initial-contents can be either a list or a " S_vct "."
-
-  return(g_make_delay_1(G_FCOMB, args));
-}
-
-
-static Xen g_make_notch(Xen args) 
-{
-  #define H_make_notch "(" S_make_notch " (scaler) (size) (initial-contents) (initial-element 0.0) (max-size) (type " S_mus_interp_linear ")): \
-return a new notch filter (a delay line with a scaler on the feedforward) of size elements. \
-If the notch length will be changing at run-time, max-size sets its maximum length. \
-initial-contents can be either a list or a " S_vct "."
-
-  return(g_make_delay_1(G_NOTCH, args));
-}
-
-
-static Xen g_make_all_pass(Xen args) 
-{
-  #define H_make_all_pass "(" S_make_all_pass " (feedback) (feedforward) (size) (initial-contents) (initial-element 0.0) (max-size) (type " S_mus_interp_linear ")): \
-return a new allpass filter (a delay line with a scalers on both the feedback and the feedforward). \
-If the " S_all_pass " length will be changing at run-time, max-size sets its maximum length. \
-initial-contents can be either a list or a " S_vct "."
-
-  return(g_make_delay_1(G_ALL_PASS, args));
-}
+static Xen g_make_comb(Xen args)          {return(g_make_delay_1(G_COMB, args));}
+static Xen g_make_filtered_comb(Xen args) {return(g_make_delay_1(G_FCOMB, args));}
+static Xen g_make_notch(Xen args)         {return(g_make_delay_1(G_NOTCH, args));}
+static Xen g_make_all_pass(Xen args)      {return(g_make_delay_1(G_ALL_PASS, args));}
 
 
 typedef enum {G_MOVING_AVERAGE, G_MOVING_MAX, G_MOVING_NORM} xclm_moving_t;
@@ -2903,10 +3250,10 @@ static Xen g_make_moving_any(xclm_moving_t choice, const char *caller, Xen argli
   keys[argn++] = kw_initial_element;
 
   arglist_len = Xen_list_length(arglist);
-  if (arglist_len > 8) clm_error(caller, "too many arguments!", arglist);
+  if (arglist_len > 8) 
+    clm_error(caller, "too many arguments!", arglist);
   for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-  for (i = arglist_len; i < argn * 2; i++) args[i] = Xen_undefined;
-  vals = mus_optkey_unscramble(caller, argn, keys, args, orig_arg);
+  vals = mus_optkey_unscramble(caller, arglist_len, argn, keys, args, orig_arg);
 
   if (vals > 0)
     {
@@ -2985,7 +3332,7 @@ static Xen g_make_moving_any(xclm_moving_t choice, const char *caller, Xen argli
 	    line[i] = initial_element;
 	  sum = initial_element * size;
 	}
-      else clear_floats(line, size);
+      else mus_clear_floats(line, size);
     }
   else
     {
@@ -3012,31 +3359,10 @@ static Xen g_make_moving_any(xclm_moving_t choice, const char *caller, Xen argli
   return(clm_mus_error(local_error_type, local_error_msg, caller));
 }
 
-
-static Xen g_make_moving_average(Xen args) 
-{
-  #define H_make_moving_average "(" S_make_moving_average " (size) (initial-contents) (initial-element 0.0)): \
-return a new moving_average generator. initial-contents can be either a list or a " S_vct "."
-
-  return(g_make_moving_any(G_MOVING_AVERAGE, S_make_moving_average, args));
-}
-
-
-static Xen g_make_moving_max(Xen args) 
-{
-  #define H_make_moving_max "(" S_make_moving_max " (size) (initial-contents) (initial-element 0.0)): \
-return a new moving-max generator. initial-contents can be either a list or a " S_vct "."
-
-  return(g_make_moving_any(G_MOVING_MAX, S_make_moving_max, args));
-}
-
-
-static Xen g_make_moving_norm(Xen args) 
-{
-  #define H_make_moving_norm "(" S_make_moving_norm " (size (scaler 1.0))): return a new moving-norm generator."
-
-  return(g_make_moving_any(G_MOVING_NORM, S_make_moving_norm, args));
-}
+static Xen g_make_moving_average(Xen args) {return(g_make_moving_any(G_MOVING_AVERAGE, S_make_moving_average, args));}
+static Xen g_make_moving_max(Xen args)     {return(g_make_moving_any(G_MOVING_MAX, S_make_moving_max, args));}
+static Xen g_make_moving_norm(Xen args)    {return(g_make_moving_any(G_MOVING_NORM, S_make_moving_norm, args));}
+#endif
 
 
 static Xen g_delay(Xen obj, Xen input, Xen pm)
@@ -3437,25 +3763,47 @@ static Xen g_is_ncos(Xen obj)
 			  (mus_is_ncos(Xen_to_mus_any(obj)))));
 }
 
+#if HAVE_SCHEME
+static s7_pointer g_make_ncos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_ncos "(" S_make_ncos " (frequency 0.0) (n 1)): return a new " S_ncos " generator, producing a sum of 'n' equal amplitude cosines."
+  mus_any *ge;
+  mus_float_t freq;
+  int n;
+  s7_pointer un;
+
+  freq = s7_number_to_real(s7, s7_car(args));
+  if (freq > (0.5 * mus_srate()))
+    Xen_out_of_range_error(S_make_ncos, 1, s7_car(args), "freq > srate/2?");
+
+  un = s7_cadr(args);
+  if (!s7_is_integer(un))
+    return(s7_wrong_type_arg_error(s7, S_make_ncos, 2, un, "an integer"));
+  n = s7_integer(un);
+  if (n <= 0)
+    Xen_out_of_range_error(S_make_ncos, 2, un, "n <= 0?");
+
+  ge = mus_make_ncos(freq, n);
+  if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+  return(Xen_false);
+}
+#else
 static Xen g_make_ncos(Xen arg1, Xen arg2, Xen arg3, Xen arg4)
 {
-  #define H_make_ncos "(" S_make_ncos " (frequency *clm-default-frequency*) (n 1)): \
-return a new " S_ncos " generator, producing a sum of 'n' equal amplitude cosines."
+  #define H_make_ncos "(" S_make_ncos " (frequency 0.0) (n 1)): return a new " S_ncos " generator, producing a sum of 'n' equal amplitude cosines."
 
   mus_any *ge;
   Xen args[4]; 
   Xen keys[2];
   int orig_arg[2] = {0, 0};
-  int vals, n = 1;
-  mus_float_t freq;
-
-  freq = clm_default_frequency;
+  int vals, n = 1, pr = 0;
+  mus_float_t freq = 0.0;
 
   keys[0] = kw_frequency;
   keys[1] = kw_n;
-  args[0] = arg1; args[1] = arg2; args[2] = arg3; args[3] = arg4;
 
-  vals = mus_optkey_unscramble(S_make_ncos, 2, keys, args, orig_arg);
+  if (Aok(arg1)) {args[pr++] = arg1; if (Aok(arg2)) {args[pr++] = arg2; if (Aok(arg3)) {args[pr++] = arg3; if (Aok(arg4)) {args[pr++] = arg4;}}}}
+  vals = mus_optkey_unscramble(S_make_ncos, pr, 2, keys, args, orig_arg);
   if (vals > 0)
     {
       freq = Xen_optkey_to_float(kw_frequency, keys[0], S_make_ncos, orig_arg[0], freq);
@@ -3471,6 +3819,7 @@ return a new " S_ncos " generator, producing a sum of 'n' equal amplitude cosine
   if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
   return(Xen_false);
 }
+#endif
 
 static Xen g_ncos(Xen obj, Xen fm)
 {
@@ -3497,26 +3846,47 @@ static Xen g_is_nsin(Xen obj)
 			  (mus_is_nsin(Xen_to_mus_any(obj)))));
 }
 
+#if HAVE_SCHEME
+static s7_pointer g_make_nsin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_nsin "(" S_make_nsin " (frequency 0.0) (n 1)): return a new " S_nsin " generator, producing a sum of 'n' equal amplitude sines"
+  mus_any *ge;
+  mus_float_t freq;
+  int n;
+  s7_pointer un;
+
+  freq = s7_number_to_real(s7, s7_car(args));
+  if (freq > (0.5 * mus_srate()))
+    Xen_out_of_range_error(S_make_nsin, 1, s7_car(args), "freq > srate/2?");
+
+  un = s7_cadr(args);
+  if (!s7_is_integer(un))
+    return(s7_wrong_type_arg_error(s7, S_make_nsin, 2, un, "an integer"));
+  n = s7_integer(un);
+  if (n <= 0)
+    Xen_out_of_range_error(S_make_nsin, 2, un, "n <= 0?");
 
+  ge = mus_make_nsin(freq, n);
+  if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+  return(Xen_false);
+}
+#else
 static Xen g_make_nsin(Xen arg1, Xen arg2, Xen arg3, Xen arg4)
 {
-  #define H_make_nsin "(" S_make_nsin " (frequency *clm-default-frequency*) (n 1)): \
-return a new " S_nsin " generator, producing a sum of 'n' equal amplitude sines"
+  #define H_make_nsin "(" S_make_nsin " (frequency 0.0) (n 1)): return a new " S_nsin " generator, producing a sum of 'n' equal amplitude sines"
 
   mus_any *ge;
   Xen args[4]; 
   Xen keys[2];
   int orig_arg[2] = {0, 0};
-  int vals, n = 1;
-  mus_float_t freq;
-
-  freq = clm_default_frequency;
+  int vals, n = 1, pr = 0;
+  mus_float_t freq = 0.0;
 
   keys[0] = kw_frequency;
   keys[1] = kw_n;
-  args[0] = arg1; args[1] = arg2; args[2] = arg3; args[3] = arg4;
 
-  vals = mus_optkey_unscramble(S_make_nsin, 2, keys, args, orig_arg);
+  if (Aok(arg1)) {args[pr++] = arg1; if (Aok(arg2)) {args[pr++] = arg2; if (Aok(arg3)) {args[pr++] = arg3; if (Aok(arg4)) {args[pr++] = arg4;}}}}
+  vals = mus_optkey_unscramble(S_make_nsin, pr, 2, keys, args, orig_arg);
   if (vals > 0)
     {
       freq = Xen_optkey_to_float(kw_frequency, keys[0], S_make_nsin, orig_arg[0], freq);
@@ -3532,7 +3902,7 @@ return a new " S_nsin " generator, producing a sum of 'n' equal amplitude sines"
   if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
   return(Xen_false);
 }
-
+#endif
 
 static Xen g_nsin(Xen obj, Xen fm)
 {
@@ -3632,6 +4002,91 @@ static mus_float_t *inverse_integrate(Xen dist, int data_size)
 }
 
 
+#define H_make_rand_interp "(" S_make_rand_interp " (frequency 0.0) (amplitude 1.0) envelope distribution size): \
+return a new " S_rand_interp " generator, producing linearly interpolated random numbers. \
+frequency is the rate at which new end-points are chosen."
+
+#define H_make_rand "(" S_make_rand " (frequency 0.0) (amplitude 1.0) envelope distribution size): \
+return a new " S_rand " generator, producing a sequence of random numbers (a step  function). \
+frequency is the rate at which new numbers are chosen."
+
+#if HAVE_SCHEME
+static s7_pointer g_make_noi(s7_scheme *sc, s7_pointer args, bool rand_case, const char *caller)
+{
+  mus_any *ge;
+  mus_float_t freq, base;
+  mus_float_t *distribution = NULL;
+  s7_pointer v = NULL, p, fp;
+  int distribution_size = RANDOM_DISTRIBUTION_TABLE_SIZE;
+  
+  freq = s7_number_to_real(sc, s7_car(args));
+  if (freq > mus_srate())
+    Xen_out_of_range_error(caller, 1, s7_car(args), "freq > srate?");
+  
+  p = s7_cddr(args);
+  fp = s7_caddr(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, caller, 5, fp, "an integer"));
+      distribution_size = s7_integer(fp);
+      if (distribution_size <= 0)
+	Xen_out_of_range_error(caller, 5, fp, "distribution size <= 0?");
+      if (distribution_size > mus_max_table_size())
+	Xen_out_of_range_error(caller, 5, fp, "distribution size too large (see mus-max-table-size)");
+    }
+
+  fp = s7_car(p);
+  if (fp != Xen_false)
+    {
+      int len;
+      len = s7_list_length(sc, fp);
+      if ((len < 4) || (len & 1))
+	return(s7_wrong_type_arg_error(sc, caller, 3, fp, "a distribution envelope"));
+      if (s7_cadr(p) != Xen_false)
+	clm_error(caller, ":envelope and :distribution in same call?", args);
+      distribution = inverse_integrate(fp, distribution_size);
+      v = xen_make_vct(distribution_size, distribution);
+    }
+  else
+    {
+      fp = s7_cadr(p);
+      if (fp != Xen_false)
+	{
+	  if (!s7_is_float_vector(fp))
+	    return(s7_wrong_type_arg_error(sc, caller, 4, fp, "a float-vector"));
+	  v = fp;
+	  distribution_size = s7_vector_length(v);
+	  distribution = s7_float_vector_elements(v);
+	}
+    }
+
+  base = s7_number_to_real(sc, s7_cadr(args));
+
+  if (!distribution)
+    {
+      if (rand_case)
+	ge = mus_make_rand(freq, base);
+      else ge = mus_make_rand_interp(freq, base);
+    }
+  else
+    {
+      if (rand_case)
+	ge = mus_make_rand_with_distribution(freq, base, distribution, distribution_size);
+      else ge = mus_make_rand_interp_with_distribution(freq, base, distribution, distribution_size);
+    }
+  if (ge)
+    {
+      if (v)
+	return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, v)));
+      return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+    }
+  return(Xen_false);
+}
+
+static s7_pointer g_make_rand_interp(s7_scheme *sc, s7_pointer args) {return(g_make_noi(sc, args, false, S_make_rand_interp));}
+static s7_pointer g_make_rand(s7_scheme *sc, s7_pointer args)        {return(g_make_noi(sc, args, true, S_make_rand));}
+#else
 static Xen g_make_noi(bool rand_case, const char *caller, Xen arglist)
 {
   mus_any *ge = NULL;
@@ -3639,13 +4094,11 @@ static Xen g_make_noi(bool rand_case, const char *caller, Xen arglist)
   Xen keys[5];
   int orig_arg[5] = {0, 0, 0, 0, 0};
   int vals;
-  mus_float_t freq, base = 1.0;
+  mus_float_t freq = 0.0, base = 1.0;
   mus_float_t *distribution = NULL;
   Xen orig_v = Xen_false;
   int distribution_size = RANDOM_DISTRIBUTION_TABLE_SIZE;
 
-  freq = clm_default_frequency;
-
   keys[0] = kw_frequency;
   keys[1] = kw_amplitude;
   keys[2] = kw_envelope;
@@ -3658,15 +4111,14 @@ static Xen g_make_noi(bool rand_case, const char *caller, Xen arglist)
     arglist_len = Xen_list_length(arglist);
     if (arglist_len > 10) clm_error(caller, "too many arguments!", arglist);
     for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-    for (i = arglist_len; i < 10; i++) args[i] = Xen_undefined;
+    vals = mus_optkey_unscramble(caller, arglist_len, 5, keys, args, orig_arg);
   }
 
-  vals = mus_optkey_unscramble(caller, 5, keys, args, orig_arg);
   if (vals > 0)
     {
       freq = Xen_optkey_to_float(kw_frequency, keys[0], caller, orig_arg[0], freq);
       if (freq > mus_srate())
-	Xen_out_of_range_error(caller, orig_arg[0], keys[0], "freq > srate/2?");
+	Xen_out_of_range_error(caller, orig_arg[0], keys[0], "freq > srate?");
 
       base = Xen_optkey_to_float(kw_amplitude, keys[1], caller, orig_arg[1], base);
 
@@ -3726,26 +4178,9 @@ static Xen g_make_noi(bool rand_case, const char *caller, Xen arglist)
   return(Xen_false);
 }
 
-
-static Xen g_make_rand_interp(Xen arglist)
-{
-  #define H_make_rand_interp "(" S_make_rand_interp " (frequency *clm-default-frequency*) (amplitude 1.0) (envelope) (distribution) (size)): \
-return a new " S_rand_interp " generator, producing linearly interpolated random numbers. \
-frequency is the rate at which new end-points are chosen."
-
-  return(g_make_noi(false, S_make_rand_interp, arglist));
-}
-
-
-static Xen g_make_rand(Xen arglist)
-{
-  #define H_make_rand "(" S_make_rand " (frequency *clm-default-frequency*) (amplitude 1.0) (envelope) (distribution) (size)): \
-return a new " S_rand " generator, producing a sequence of random numbers (a step  function). \
-frequency is the rate at which new numbers are chosen."
-
-  return(g_make_noi(true, S_make_rand, arglist));
-}
-
+static Xen g_make_rand_interp(Xen arglist) {return(g_make_noi(false, S_make_rand_interp, arglist));}
+static Xen g_make_rand(Xen arglist)        {return(g_make_noi(true, S_make_rand, arglist));}
+#endif
 
 static Xen g_rand(Xen obj, Xen fm)
 {
@@ -4011,28 +4446,86 @@ a new one is created.  If normalize is " PROC_TRUE ", the resulting waveform goe
   return(table);
 }
 
-
-static Xen g_make_table_lookup(Xen arglist)
-{
-  #define H_make_table_lookup "(" S_make_table_lookup " (frequency *clm-default-frequency*) (initial-phase 0.0) (wave) (size clm-table-size) (type)): \
+#define H_make_table_lookup "(" S_make_table_lookup " (frequency 0.0) (initial-phase 0.0) wave size type): \
 return a new " S_table_lookup " generator.  \
 The default table size is 512; use :size to set some other size, or pass your own " S_vct " as the 'wave'.\n\
    (set! gen (" S_make_table_lookup " 440.0 :wave (" S_partials_to_wave " '(1 1.0))))\n\
 is the same in effect as " S_make_oscil ".  'type' sets the interpolation choice which defaults to " S_mus_interp_linear "."
 
+#if HAVE_SCHEME
+static s7_pointer g_make_table_lookup(s7_scheme *sc, s7_pointer args)
+{
+  mus_any *ge;
+  mus_long_t table_size = clm_table_size;
+  mus_float_t freq, phase;
+  mus_float_t *table = NULL;
+  s7_pointer v, p, fp;
+  int interp_type = (int)MUS_INTERP_LINEAR;
+
+  freq = s7_number_to_real(sc, s7_car(args));
+  if (freq > (0.5 * mus_srate()))
+    Xen_out_of_range_error(S_make_table_lookup, 1, s7_car(args), "freq > srate/2?");
+  
+  phase = s7_number_to_real(sc, s7_cadr(args));
+  if (phase < 0.0)
+    Xen_out_of_range_error(S_make_table_lookup, 2, s7_cadr(args), "initial phase <= 0.0?"); /* is this actually an error? */
+
+  p = s7_cddr(args);
+  v = s7_car(p);
+  if (v != Xen_false)
+    {
+      if (!s7_is_float_vector(v))
+	return(s7_wrong_type_arg_error(s7, S_make_table_lookup, 3, v, "a float-vector"));
+      table = s7_float_vector_elements(v);
+      table_size = s7_vector_length(v);
+    }
+  
+  fp = s7_cadr(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(s7, S_make_table_lookup, 4, fp, "an integer"));
+      table_size = s7_integer(fp);
+      if (table_size <= 0)
+	Xen_out_of_range_error(S_make_table_lookup, 4, fp, "size <= 0?");
+      if (table_size > mus_max_table_size())
+	Xen_out_of_range_error(S_make_table_lookup, 4, fp, "size too large (see mus-max-table-size)");
+      if ((table) && (table_size > mus_vct_length(v)))
+	Xen_out_of_range_error(S_make_table_lookup, 4, fp, "table size > wave size");
+    }
+  
+  fp = s7_caddr(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(s7, S_make_table_lookup, 5, fp, "an integer"));
+      interp_type = s7_integer(fp);
+      if (!(mus_is_interp_type(interp_type)))
+	Xen_out_of_range_error(S_make_table_lookup, 5, fp, "no such interp-type");
+    }
+
+  if (!table)
+    {
+      v = s7_make_float_vector(sc, table_size, 1, NULL);
+      table = s7_float_vector_elements(v);
+    }
+  ge = mus_make_table_lookup(freq, phase, table, table_size, (mus_interp_t)interp_type);
+  return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, v)));
+}
+#else
+static Xen g_make_table_lookup(Xen arglist)
+{
   mus_any *ge;
   int vals;
   mus_long_t table_size = clm_table_size;
   Xen args[10];
   Xen keys[5];
   int orig_arg[5] = {0, 0, 0, 0, MUS_INTERP_LINEAR};
-  mus_float_t freq, phase = 0.0;
+  mus_float_t freq = 0.0, phase = 0.0;
   mus_float_t *table = NULL;
   Xen orig_v = Xen_false;
   int interp_type = (int)MUS_INTERP_LINEAR;
 
-  freq = clm_default_frequency;
-
   keys[0] = kw_frequency;
   keys[1] = kw_initial_phase;
   keys[2] = kw_wave;
@@ -4045,10 +4538,8 @@ is the same in effect as " S_make_oscil ".  'type' sets the interpolation choice
     arglist_len = Xen_list_length(arglist);
     if (arglist_len > 10) clm_error(S_make_table_lookup, "too many arguments!", arglist);
     for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-    for (i = arglist_len; i < 10; i++) args[i] = Xen_undefined;
+    vals = mus_optkey_unscramble(S_make_table_lookup, arglist_len, 5, keys, args, orig_arg);
   }
-
-  vals = mus_optkey_unscramble(S_make_table_lookup, 5, keys, args, orig_arg);
   if (vals > 0)
     {
       vct *v = NULL;
@@ -4091,7 +4582,7 @@ is the same in effect as " S_make_oscil ".  'type' sets the interpolation choice
   ge = mus_make_table_lookup(freq, phase, table, table_size, (mus_interp_t)interp_type);
   return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, orig_v)));
 }
-
+#endif
 
 static Xen g_table_lookup(Xen obj, Xen fm) 
 {
@@ -4112,6 +4603,84 @@ with 'wrap-around' when gen's phase marches off either end of its table."
 
 /* ---------------- sawtooth et al ---------------- */
 
+#if HAVE_SCHEME
+static s7_pointer g_make_sawtooth_wave(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_sawtooth_wave "(" S_make_sawtooth_wave " (frequency 0.0) (amplitude 1.0) (initial-phase pi)): \
+return a new " S_sawtooth_wave " generator."
+
+  mus_any *ge;
+  mus_float_t freq, base, phase;
+
+  freq = s7_number_to_real(sc, s7_car(args));
+  if (freq > mus_srate())
+    Xen_out_of_range_error(S_make_sawtooth_wave, 1, s7_car(args), "freq > srate/2?");
+  base = s7_number_to_real(sc, s7_cadr(args));
+  phase = s7_number_to_real(sc, s7_caddr(args));
+
+  ge = mus_make_sawtooth_wave(freq, base, phase);
+  if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_square_wave(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_square_wave "(" S_make_square_wave " (frequency 0.0) (amplitude 1.0) (initial-phase 0.0)): \
+return a new " S_square_wave " generator."
+
+  mus_any *ge;
+  mus_float_t freq, base, phase;
+
+  freq = s7_number_to_real(sc, s7_car(args));
+  if (freq > mus_srate())
+    Xen_out_of_range_error(S_make_square_wave, 1, s7_car(args), "freq > srate/2?");
+  base = s7_number_to_real(sc, s7_cadr(args));
+  phase = s7_number_to_real(sc, s7_caddr(args));
+
+  ge = mus_make_square_wave(freq, base, phase);
+  if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_triangle_wave(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_triangle_wave "(" S_make_triangle_wave " (frequency 0.0) (amplitude 1.0) (initial-phase 0.0)): \
+return a new " S_triangle_wave " generator."
+
+  mus_any *ge;
+  mus_float_t freq, base, phase;
+
+  freq = s7_number_to_real(sc, s7_car(args));
+  if (freq > mus_srate())
+    Xen_out_of_range_error(S_make_triangle_wave, 1, s7_car(args), "freq > srate/2?");
+  base = s7_number_to_real(sc, s7_cadr(args));
+  phase = s7_number_to_real(sc, s7_caddr(args));
+
+  ge = mus_make_triangle_wave(freq, base, phase);
+  if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_pulse_train(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_pulse_train "(" S_make_pulse_train " (frequency 0.0) (amplitude 1.0) (initial-phase 0.0)): \
+return a new " S_pulse_train " generator.  This produces a sequence of impulses."
+
+  mus_any *ge;
+  mus_float_t freq, base, phase;
+
+  freq = s7_number_to_real(sc, s7_car(args));
+  if (freq > mus_srate())
+    Xen_out_of_range_error(S_make_pulse_train, 1, s7_car(args), "freq > srate/2?");
+  base = s7_number_to_real(sc, s7_cadr(args));
+  phase = s7_number_to_real(sc, s7_caddr(args));
+
+  ge = mus_make_pulse_train(freq, base, phase);
+  if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+  return(Xen_false);
+}
+
+#else
 typedef enum {G_SAWTOOTH_WAVE, G_SQUARE_WAVE, G_TRIANGLE_WAVE, G_PULSE_TRAIN} xclm_wave_t;
 
 static Xen g_make_sw(xclm_wave_t type, mus_float_t def_phase, Xen arg1, Xen arg2, Xen arg3, Xen arg4, Xen arg5, Xen arg6)
@@ -4121,10 +4690,9 @@ static Xen g_make_sw(xclm_wave_t type, mus_float_t def_phase, Xen arg1, Xen arg2
   Xen args[6]; 
   Xen keys[3];
   int orig_arg[3] = {0, 0, 0};
-  int vals;
-  mus_float_t freq, base = 1.0, phase;
+  int vals, pr = 0;
+  mus_float_t freq = 0.0, base = 1.0, phase;
 
-  freq = clm_default_frequency;
   phase = def_phase;
 
   switch (type)
@@ -4138,9 +4706,10 @@ static Xen g_make_sw(xclm_wave_t type, mus_float_t def_phase, Xen arg1, Xen arg2
   keys[0] = kw_frequency;
   keys[1] = kw_amplitude;
   keys[2] = kw_initial_phase;
-  args[0] = arg1; args[1] = arg2; args[2] = arg3; args[3] = arg4; args[4] = arg5; args[5] = arg6; 
 
-  vals = mus_optkey_unscramble(caller, 3, keys, args, orig_arg);
+  if (Aok(arg1)) {args[pr++] = arg1; if (Aok(arg2)) {args[pr++] = arg2; if (Aok(arg3)) {args[pr++] = arg3; 
+	if (Aok(arg4)) {args[pr++] = arg4; if (Aok(arg5)) {args[pr++] = arg5; if (Aok(arg6)) {args[pr++] = arg6; }}}}}}
+  vals = mus_optkey_unscramble(caller, pr, 3, keys, args, orig_arg);
   if (vals > 0)
     {
       freq = Xen_optkey_to_float(kw_frequency, keys[0], caller, orig_arg[0], freq);
@@ -4165,7 +4734,7 @@ static Xen g_make_sw(xclm_wave_t type, mus_float_t def_phase, Xen arg1, Xen arg2
 
 static Xen g_make_sawtooth_wave(Xen arg1, Xen arg2, Xen arg3, Xen arg4, Xen arg5, Xen arg6) 
 {
-  #define H_make_sawtooth_wave "(" S_make_sawtooth_wave " (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase 0.0)): \
+  #define H_make_sawtooth_wave "(" S_make_sawtooth_wave " (frequency 0.0) (amplitude 1.0) (initial-phase pi)): \
 return a new " S_sawtooth_wave " generator."
 
   return(g_make_sw(G_SAWTOOTH_WAVE, M_PI, arg1, arg2, arg3, arg4, arg5, arg6));
@@ -4174,7 +4743,7 @@ return a new " S_sawtooth_wave " generator."
 
 static Xen g_make_square_wave(Xen arg1, Xen arg2, Xen arg3, Xen arg4, Xen arg5, Xen arg6) 
 {
-  #define H_make_square_wave "(" S_make_square_wave " (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase 0.0)): \
+  #define H_make_square_wave "(" S_make_square_wave " (frequency 0.0) (amplitude 1.0) (initial-phase 0.0)): \
 return a new " S_square_wave " generator."
 
   return(g_make_sw(G_SQUARE_WAVE, 0.0, arg1, arg2, arg3, arg4, arg5, arg6));
@@ -4183,7 +4752,7 @@ return a new " S_square_wave " generator."
 
 static Xen g_make_triangle_wave(Xen arg1, Xen arg2, Xen arg3, Xen arg4, Xen arg5, Xen arg6) 
 {
-  #define H_make_triangle_wave "(" S_make_triangle_wave " (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase 0.0)): \
+  #define H_make_triangle_wave "(" S_make_triangle_wave " (frequency 0.0) (amplitude 1.0) (initial-phase 0.0)): \
 return a new " S_triangle_wave " generator."
 
   return(g_make_sw(G_TRIANGLE_WAVE, 0.0, arg1, arg2, arg3, arg4, arg5, arg6));
@@ -4192,12 +4761,12 @@ return a new " S_triangle_wave " generator."
 
 static Xen g_make_pulse_train(Xen arg1, Xen arg2, Xen arg3, Xen arg4, Xen arg5, Xen arg6) 
 {
-  #define H_make_pulse_train "(" S_make_pulse_train " (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase 0.0)): \
+  #define H_make_pulse_train "(" S_make_pulse_train " (frequency 0.0) (amplitude 1.0) (initial-phase 0.0)): \
 return a new " S_pulse_train " generator.  This produces a sequence of impulses."
 
   return(g_make_sw(G_PULSE_TRAIN, TWO_PI, arg1, arg2, arg3, arg4, arg5, arg6));
 }
-
+#endif
 
 static Xen g_sawtooth_wave(Xen obj, Xen fm) 
 {
@@ -4286,27 +4855,56 @@ static Xen g_is_pulse_train(Xen obj)
 
 /* ---------------- asymmetric-fm ---------------- */
 
+#if HAVE_SCHEME
+static s7_pointer g_make_asymmetric_fm(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_asymmetric_fm "(" S_make_asymmetric_fm " (frequency 0.0) (initial-phase 0.0) (r 1.0) (ratio 1.0)): \
+return a new " S_asymmetric_fm " generator."
+  mus_any *ge;
+  mus_float_t freq, phase, r, ratio;
+  s7_pointer x;
+
+  x = s7_car(args);
+  freq = s7_number_to_real(s7, x);
+  if (freq > (0.5 * mus_srate()))
+    Xen_out_of_range_error(S_make_asymmetric_fm, 1, x, "freq > srate/2?");
+
+  args = s7_cdr(args);
+  x = s7_car(args);
+  phase = s7_number_to_real(s7, x);
+
+  args = s7_cdr(args);
+  x = s7_car(args);
+  r = s7_number_to_real(s7, x);
+  x = s7_cadr(args);
+  ratio = s7_number_to_real(s7, x);
+  
+  ge = mus_make_asymmetric_fm(freq, phase, r, ratio);
+  if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+  return(Xen_false);
+}
+#else
 static Xen g_make_asymmetric_fm(Xen arg1, Xen arg2, Xen arg3, Xen arg4, Xen arg5, Xen arg6, Xen arg7, Xen arg8)
 {
-  #define H_make_asymmetric_fm "(" S_make_asymmetric_fm " (frequency *clm-default-frequency*) (initial-phase 0.0) (r 1.0) (ratio 1.0)): \
+  #define H_make_asymmetric_fm "(" S_make_asymmetric_fm " (frequency 0.0) (initial-phase 0.0) (r 1.0) (ratio 1.0)): \
 return a new " S_asymmetric_fm " generator."
 
   mus_any *ge;
   Xen args[8]; 
   Xen keys[4];
   int orig_arg[4] = {0, 0, 0, 0};
-  int vals;
-  mus_float_t freq, phase = 0.0, r = 1.0, ratio = 1.0;
-
-  freq = clm_default_frequency;
+  int vals, pr = 0;
+  mus_float_t freq = 0.0, phase = 0.0, r = 1.0, ratio = 1.0;
 
   keys[0] = kw_frequency;
   keys[1] = kw_initial_phase;
   keys[2] = kw_r;
   keys[3] = kw_ratio;
-  args[0] = arg1; args[1] = arg2; args[2] = arg3; args[3] = arg4; args[4] = arg5; args[5] = arg6; args[6] = arg7; args[7] = arg8; 
 
-  vals = mus_optkey_unscramble(S_make_asymmetric_fm, 4, keys, args, orig_arg);
+  if (Aok(arg1)) {args[pr++] = arg1; if (Aok(arg2)) {args[pr++] = arg2; if (Aok(arg3)) {args[pr++] = arg3; 
+	if (Aok(arg4)) {args[pr++] = arg4; if (Aok(arg5)) {args[pr++] = arg5; if (Aok(arg6)) {args[pr++] = arg6;
+	      if (Aok(arg7)) {args[pr++] = arg7; if (Aok(arg8)) {args[pr++] = arg8;}}}}}}}}
+  vals = mus_optkey_unscramble(S_make_asymmetric_fm, pr, 4, keys, args, orig_arg);
   if (vals > 0)
     {
       freq = Xen_optkey_to_float(kw_frequency, keys[0], S_make_asymmetric_fm, orig_arg[0], freq);
@@ -4324,7 +4922,7 @@ return a new " S_asymmetric_fm " generator."
   if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
   return(Xen_false);
 }
-
+#endif
 
 
 static Xen g_asymmetric_fm(Xen obj, Xen index, Xen fm)
@@ -4352,6 +4950,146 @@ static Xen g_is_asymmetric_fm(Xen obj)
 
 /* ---------------- simple filters ---------------- */
 
+#if HAVE_SCHEME
+static s7_pointer g_make_one_zero(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_one_zero "(" S_make_one_zero " a0 a1): return a new " S_one_zero " filter;  a0*x(n) + a1*x(n-1)"
+  mus_any *gen;
+  mus_float_t a0, a1;
+  
+  a0 = s7_number_to_real(sc, s7_car(args));
+  a1 = s7_number_to_real(sc, s7_cadr(args));
+  gen = mus_make_one_zero(a0, a1);
+
+  if (gen) return(mus_xen_to_object(mus_any_to_mus_xen(gen)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_one_pole(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_one_pole "(" S_make_one_pole " a0 b1): return a new " S_one_pole " filter; a0*x(n) - b1*y(n-1)"
+  mus_any *gen;
+  mus_float_t a0, b1;
+
+  a0 = s7_number_to_real(sc, s7_car(args));
+  b1 = s7_number_to_real(sc, s7_cadr(args));
+  gen = mus_make_one_pole(a0, b1);
+
+  if (gen) return(mus_xen_to_object(mus_any_to_mus_xen(gen)));
+  return(Xen_false);
+}
+
+/* make-two-zero and make-two-pole are harder because they can accept two different sets of keyword arguments */
+static s7_pointer g_make_two_zero_a(s7_scheme *sc, s7_pointer args)
+{
+  mus_any *gen;
+  mus_float_t a0, a1, a2;
+
+  a0 = s7_number_to_real(sc, s7_car(args));
+  args = s7_cdr(args);
+  a1 = s7_number_to_real(sc, s7_car(args));
+  if (a0 < 20.0)
+    {
+      a2 = s7_number_to_real(sc, s7_cadr(args));
+      gen = mus_make_two_zero(a0, a1, a2);
+    }
+  else gen = mus_make_two_zero_from_frequency_and_radius(a0, a1);
+
+  if (gen) return(mus_xen_to_object(mus_any_to_mus_xen(gen)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_two_zero_f(s7_scheme *sc, s7_pointer args)
+{
+  mus_any *gen;
+  mus_float_t freq, radius;
+
+  freq = s7_number_to_real(sc, s7_car(args));
+  radius = s7_number_to_real(sc, s7_cadr(args));
+  gen = mus_make_two_zero_from_frequency_and_radius(freq, radius);
+
+  if (gen) return(mus_xen_to_object(mus_any_to_mus_xen(gen)));
+  return(Xen_false);
+}
+
+static s7_pointer make_two_zero_a, make_two_zero_f;
+static s7_pointer g_make_two_zero(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_two_zero "(" S_make_two_zero " a0 a1 a2) or (" S_make_two_zero " frequency radius): return a new " S_two_zero " filter; a0*x(n) + a1*x(n-1) + a2*x(n-2)"
+  int n;
+  s7_pointer p;
+  for (n = 0, p = args; s7_is_pair(p); n++, p = s7_cdr(p))
+    {
+      s7_pointer arg;
+      if (n > 2)
+	s7_wrong_number_of_args_error(sc, S_make_two_zero, args);
+      arg = s7_car(p);
+      if (s7_is_keyword(arg))
+	{
+	  if ((arg == kw_frequency) || (arg == kw_radius))
+	    return(s7_apply_function_star(sc, make_two_zero_f, args));
+	  return(s7_apply_function_star(sc, make_two_zero_a, args));
+	}
+    }
+  return(s7_apply_function_star(sc, make_two_zero_a, args));
+}
+
+
+static s7_pointer g_make_two_pole_f(s7_scheme *sc, s7_pointer args)
+{
+  mus_any *gen;
+  mus_float_t freq, radius;
+
+  freq = s7_number_to_real(sc, s7_car(args));
+  radius = s7_number_to_real(sc, s7_cadr(args));
+  gen = mus_make_two_pole_from_frequency_and_radius(freq, radius);
+
+  if (gen) return(mus_xen_to_object(mus_any_to_mus_xen(gen)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_two_pole_a(s7_scheme *sc, s7_pointer args)
+{
+  mus_any *gen;
+  mus_float_t a0, b1, b2;
+
+  a0 = s7_number_to_real(sc, s7_car(args));
+  args = s7_cdr(args);
+  b1 = s7_number_to_real(sc, s7_car(args));
+  if (a0 < 2.0)
+    {
+      b2 = s7_number_to_real(sc, s7_cadr(args));
+      gen = mus_make_two_pole(a0, b1, b2);
+    }
+  else gen = mus_make_two_pole_from_frequency_and_radius(a0, b1);
+
+  if (gen) return(mus_xen_to_object(mus_any_to_mus_xen(gen)));
+  return(Xen_false);
+}
+
+static s7_pointer make_two_pole_a, make_two_pole_f;
+static s7_pointer g_make_two_pole(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_two_pole "(" S_make_two_pole " a0 b1 b2) or (" S_make_two_pole " frequency radius): return a new " S_two_pole " filter; a0*x(n) - b1*y(n-1) - b2*y(n-2)"
+  int n;
+  s7_pointer p;
+  for (n = 0, p = args; s7_is_pair(p); n++, p = s7_cdr(p))
+    {
+      s7_pointer arg;
+      if (n > 2)
+	s7_wrong_number_of_args_error(sc, S_make_two_pole, args);
+      arg = s7_car(p);
+      if (s7_is_keyword(arg))
+	{
+	  if ((arg == kw_frequency) || (arg == kw_radius))
+	    return(s7_apply_function_star(sc, make_two_pole_f, args));
+	  return(s7_apply_function_star(sc, make_two_pole_a, args));
+	}
+    }
+  return(s7_apply_function_star(sc, make_two_pole_a, args));
+}
+#else
+
 typedef enum {G_ONE_POLE, G_ONE_ZERO, G_TWO_POLE, G_TWO_ZERO} xclm_filter_t;
 
 static const char *smpflts[6] = {S_make_one_pole, S_make_one_zero, S_make_two_pole, S_make_two_zero};
@@ -4363,7 +5101,7 @@ static Xen g_make_smpflt_1(xclm_filter_t choice, Xen arg1, Xen arg2, Xen arg3, X
   Xen args[4]; 
   Xen keys[2];
   int orig_arg[2] = {0, 0};
-  int vals;
+  int vals, pr = 0;
   mus_float_t a0 = 0.0;
   mus_float_t a1 = 0.0;
 
@@ -4374,8 +5112,8 @@ static Xen g_make_smpflt_1(xclm_filter_t choice, Xen arg1, Xen arg2, Xen arg3, X
     default:         keys[0] = kw_frequency; keys[1] = kw_radius; break;
     }
 
-  args[0] = arg1; args[1] = arg2; args[2] = arg3; args[3] = arg4;
-  vals = mus_optkey_unscramble(smpflts[choice], 2, keys, args, orig_arg);
+  if (Aok(arg1)) {args[pr++] = arg1; if (Aok(arg2)) {args[pr++] = arg2; if (Aok(arg3)) {args[pr++] = arg3; if (Aok(arg4)) {args[pr++] = arg4;}}}}
+  vals = mus_optkey_unscramble(smpflts[choice], pr, 2, keys, args, orig_arg);
   if (vals > 0)
     {
       a0 = mus_optkey_to_float(keys[0], smpflts[choice], orig_arg[0], a0);
@@ -4394,7 +5132,6 @@ static Xen g_make_smpflt_1(xclm_filter_t choice, Xen arg1, Xen arg2, Xen arg3, X
   return(Xen_false);
 }
 
-
 static Xen g_make_one_zero(Xen arg1, Xen arg2, Xen arg3, Xen arg4)
 {
   #define H_make_one_zero "(" S_make_one_zero " a0 a1): return a new " S_one_zero " filter;  a0*x(n) + a1*x(n-1)"
@@ -4415,7 +5152,7 @@ static Xen g_make_smpflt_2(xclm_filter_t choice, Xen arg1, Xen arg2, Xen arg3, X
   Xen args[6]; 
   Xen keys[3];
   int orig_arg[3] = {0, 0, 0};
-  int vals;
+  int vals, pr = 0;
   mus_float_t a0 = 0.0;
   mus_float_t a1 = 0.0;
   mus_float_t a2 = 0.0;
@@ -4431,8 +5168,10 @@ static Xen g_make_smpflt_2(xclm_filter_t choice, Xen arg1, Xen arg2, Xen arg3, X
       keys[1] = kw_b1;
       keys[2] = kw_b2;
     }
-  args[0] = arg1; args[1] = arg2; args[2] = arg3; args[3] = arg4; args[4] = arg5; args[5] = arg6;
-  vals = mus_optkey_unscramble(smpflts[choice], 3, keys, args, orig_arg);
+
+  if (Aok(arg1)) {args[pr++] = arg1; if (Aok(arg2)) {args[pr++] = arg2; if (Aok(arg3)) {args[pr++] = arg3; 
+	if (Aok(arg4)) {args[pr++] = arg4; if (Aok(arg5)) {args[pr++] = arg5; if (Aok(arg6)) {args[pr++] = arg6; }}}}}}
+  vals = mus_optkey_unscramble(smpflts[choice], pr, 3, keys, args, orig_arg);
   if (vals > 0)
     {
       a0 = Xen_optkey_to_float(kw_a0, keys[0], smpflts[choice], orig_arg[0], a0);
@@ -4446,7 +5185,6 @@ static Xen g_make_smpflt_2(xclm_filter_t choice, Xen arg1, Xen arg2, Xen arg3, X
   return(Xen_false);
 }
 
-
 static bool found_polar_key(Xen arg)
 {
   return((Xen_is_keyword(arg)) && 
@@ -4462,7 +5200,6 @@ static bool found_coeff_key(Xen arg)
 	 (!(Xen_keyword_is_eq(arg, kw_frequency))));
 }
 
-
 static Xen g_make_two_zero(Xen arg1, Xen arg2, Xen arg3, Xen arg4, Xen arg5, Xen arg6) 
 {
   #define H_make_two_zero "(" S_make_two_zero " a0 a1 a2) or (" S_make_two_zero " frequency radius): return a new " S_two_zero " filter; \
@@ -4501,6 +5238,7 @@ a0*x(n) - b1*y(n-1) - b2*y(n-2)"
 
   return(g_make_smpflt_2(G_TWO_POLE, arg1, arg2, arg3, arg4, arg5, arg6));
 }
+#endif
 
 
 static Xen g_one_zero(Xen obj, Xen fm)
@@ -4591,10 +5329,53 @@ static Xen g_is_two_pole(Xen obj)
 
 /* ---------------- formant ---------------- */
 
-static Xen g_make_frm(bool formant_case, const char *caller, Xen arg1, Xen arg2, Xen arg3, Xen arg4)
+#if HAVE_SCHEME
+static s7_pointer g_make_formant(s7_scheme *sc, s7_pointer args)
 {
+  #define H_make_formant "(" S_make_formant " frequency radius): \
+return a new formant generator (a resonator).  radius sets the pole radius (in terms of the 'unit circle'). \
+frequency sets the resonance center frequency (Hz)."
+
   mus_any *ge;
-  int vals;
+  mus_float_t freq, radius;
+  
+  freq = s7_number_to_real(sc, s7_car(args));
+  if (freq > (0.5 * mus_srate()))
+    Xen_out_of_range_error(S_make_formant, 1, s7_car(args), "freq > srate/2?");
+
+  radius = s7_number_to_real(sc, s7_cadr(args));
+
+  ge = mus_make_formant(freq, radius);
+  if (ge)
+    return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_firmant(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_firmant "(" S_make_firmant " frequency radius): \
+return a new firmant generator (a resonator).  radius sets the pole radius (in terms of the 'unit circle'). \
+frequency sets the resonance center frequency (Hz)."
+
+  mus_any *ge;
+  mus_float_t freq, radius;
+  
+  freq = s7_number_to_real(sc, s7_car(args));
+  if (freq > (0.5 * mus_srate()))
+    Xen_out_of_range_error(S_make_firmant, 1, s7_car(args), "freq > srate/2?");
+
+  radius = s7_number_to_real(sc, s7_cadr(args));
+
+  ge = mus_make_firmant(freq, radius);
+  if (ge) 
+    return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+  return(Xen_false);
+}
+#else
+static Xen g_make_frm(bool formant_case, const char *caller, Xen arg1, Xen arg2, Xen arg3, Xen arg4)
+{
+  mus_any *ge;
+  int vals, pr = 0;
   Xen args[4]; 
   Xen keys[2];
   int orig_arg[2] = {0, 0};
@@ -4602,9 +5383,9 @@ static Xen g_make_frm(bool formant_case, const char *caller, Xen arg1, Xen arg2,
 
   keys[0] = kw_frequency;
   keys[1] = kw_radius;
-  args[0] = arg1; args[1] = arg2; args[2] = arg3; args[3] = arg4;
 
-  vals = mus_optkey_unscramble(caller, 2, keys, args, orig_arg);
+  if (Aok(arg1)) {args[pr++] = arg1; if (Aok(arg2)) {args[pr++] = arg2; if (Aok(arg3)) {args[pr++] = arg3; if (Aok(arg4)) {args[pr++] = arg4;}}}}
+  vals = mus_optkey_unscramble(caller, pr, 2, keys, args, orig_arg);
   if (vals > 0)
     {
       freq = Xen_optkey_to_float(kw_frequency, keys[0], caller, orig_arg[0], freq);
@@ -4632,7 +5413,7 @@ static Xen g_make_frm(bool formant_case, const char *caller, Xen arg1, Xen arg2,
     }
   return(Xen_false);
 }
-
+#endif
 
 static Xen g_formant(Xen gen, Xen input, Xen freq)
 {
@@ -4650,7 +5431,7 @@ static Xen g_formant(Xen gen, Xen input, Xen freq)
   return(C_double_to_Xen_real(mus_formant(g, in1)));
 }
 
-
+#if (!HAVE_SCHEME)
 static Xen g_make_formant(Xen arg1, Xen arg2, Xen arg3, Xen arg4)
 {
   #define H_make_formant "(" S_make_formant " frequency radius): \
@@ -4659,7 +5440,7 @@ frequency sets the resonance center frequency (Hz)."
 
   return(g_make_frm(true, S_make_formant, arg1, arg2, arg3, arg4));
 }
-
+#endif
 
 static Xen g_is_formant(Xen os) 
 {
@@ -4831,6 +5612,7 @@ static Xen g_one_pole_all_pass(Xen gen, Xen fm)
 
 /* ---------------- firmant ---------------- */
 
+#if (!HAVE_SCHEME)
 static Xen g_make_firmant(Xen arg1, Xen arg2, Xen arg3, Xen arg4)
 {
   #define H_make_firmant "(" S_make_firmant " frequency radius): \
@@ -4839,7 +5621,7 @@ frequency sets the resonance center frequency (Hz)."
 
   return(g_make_frm(false, S_make_firmant, arg1, arg2, arg3, arg4));
 }
-
+#endif
 
 static Xen g_is_firmant(Xen os) 
 {
@@ -5006,12 +5788,76 @@ static Xen g_singer_nose_filter(Xen end, Xen tmp, Xen dline1, Xen dline2, Xen co
 
 /* ---------------- wave-train ---------------- */
 
-static Xen g_make_wave_train(Xen arglist)
-{
-  #define H_make_wave_train "(" S_make_wave_train " (frequency *clm-default-frequency*) (initial-phase 0.0) (wave) (size clm-table-size) (type)): \
+#define H_make_wave_train "(" S_make_wave_train " (frequency 0.0) (initial-phase 0.0) wave size type): \
 return a new wave-train generator (an extension of pulse-train).   Frequency is \
 the repetition rate of the wave found in wave. Successive waves can overlap."
 
+#if HAVE_SCHEME
+static s7_pointer g_make_wave_train(s7_scheme *sc, s7_pointer args)
+{
+  /* almost the same as make-table-lookup */
+  mus_any *ge;
+  mus_long_t table_size = clm_table_size;
+  mus_float_t freq, phase;
+  mus_float_t *table = NULL;
+  s7_pointer v, p, fp;
+  int interp_type = (int)MUS_INTERP_LINEAR;
+
+  freq = s7_number_to_real(sc, s7_car(args));
+  if (freq > (0.5 * mus_srate()))
+    Xen_out_of_range_error(S_make_wave_train, 1, s7_car(args), "freq > srate/2?");
+  if (freq < 0.0)
+    Xen_out_of_range_error(S_make_wave_train, 1, s7_car(args), "freq < 0.0?");
+  
+  phase = s7_number_to_real(sc, s7_cadr(args));
+  if (phase < 0.0)
+    Xen_out_of_range_error(S_make_wave_train, 2, s7_cadr(args), "initial phase <= 0.0?");
+
+  p = s7_cddr(args);
+  v = s7_car(p);
+  if (v != Xen_false)
+    {
+      if (!s7_is_float_vector(v))
+	return(s7_wrong_type_arg_error(s7, S_make_wave_train, 3, v, "a float-vector"));
+      table = s7_float_vector_elements(v);
+      table_size = s7_vector_length(v);
+    }
+  
+  fp = s7_cadr(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(s7, S_make_wave_train, 4, fp, "an integer"));
+      table_size = s7_integer(fp);
+      if (table_size <= 0)
+	Xen_out_of_range_error(S_make_wave_train, 4, fp, "size <= 0?");
+      if (table_size > mus_max_table_size())
+	Xen_out_of_range_error(S_make_wave_train, 4, fp, "size too large (see mus-max-table-size)");
+      if ((table) && (table_size > mus_vct_length(v)))
+	Xen_out_of_range_error(S_make_wave_train, 4, fp, "table size > wave size");
+    }
+  
+  fp = s7_caddr(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(s7, S_make_wave_train, 5, fp, "an integer"));
+      interp_type = s7_integer(fp);
+      if (!(mus_is_interp_type(interp_type)))
+	Xen_out_of_range_error(S_make_wave_train, 5, fp, "no such interp-type");
+    }
+
+  if (!table)
+    {
+      v = s7_make_float_vector(sc, table_size, 1, NULL);
+      table = s7_float_vector_elements(v);
+    }
+  ge = mus_make_wave_train(freq, phase, table, table_size, (mus_interp_t)interp_type);
+  return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, v)));
+}
+#else
+static Xen g_make_wave_train(Xen arglist)
+{
   mus_any *ge;
   Xen args[10];
   Xen keys[5];
@@ -5019,12 +5865,10 @@ the repetition rate of the wave found in wave. Successive waves can overlap."
   int vals;
   mus_long_t wsize = clm_table_size;
   Xen orig_v = Xen_false;
-  mus_float_t freq, phase = 0.0;
+  mus_float_t freq = 0.0, phase = 0.0;
   mus_float_t *wave = NULL;
   int interp_type = (int)MUS_INTERP_LINEAR;
 
-  freq = clm_default_frequency;
-
   keys[0] = kw_frequency;
   keys[1] = kw_initial_phase;
   keys[2] = kw_wave;
@@ -5037,10 +5881,8 @@ the repetition rate of the wave found in wave. Successive waves can overlap."
     arglist_len = Xen_list_length(arglist);
     if (arglist_len > 10) clm_error(S_make_wave_train, "too many arguments!", arglist);
     for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-    for (i = arglist_len; i < 10; i++) args[i] = Xen_undefined;
+    vals = mus_optkey_unscramble(S_make_wave_train, arglist_len, 5, keys, args, orig_arg);
   }
-
-  vals = mus_optkey_unscramble(S_make_wave_train, 5, keys, args, orig_arg);
   if (vals > 0)
     {
       vct *v = NULL;
@@ -5085,7 +5927,7 @@ the repetition rate of the wave found in wave. Successive waves can overlap."
   ge = mus_make_wave_train(freq, phase, wave, wsize, (mus_interp_t)interp_type);
   return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, orig_v)));
 }
-
+#endif
 
 static Xen g_wave_train(Xen obj, Xen fm)
 {
@@ -5533,21 +6375,96 @@ static Xen g_is_polyshape(Xen obj)
   return(C_bool_to_Xen_boolean((mus_is_xen(obj)) && (mus_is_polyshape(Xen_to_mus_any(obj)))));
 }
 
-
-static Xen g_make_polyshape(Xen arglist)
-{
-  #define H_make_polyshape "(" S_make_polyshape " (frequency *clm-default-frequency*) (initial-phase 0.0) (coeffs) (partials '(1 1)) (kind " S_mus_chebyshev_first_kind ")): \
+#define H_make_polyshape "(" S_make_polyshape " (frequency 0.0) (initial-phase 0.0) coeffs partials kind): \
 return a new polynomial-based waveshaping generator:\n\
    (" S_make_polyshape " :coeffs (" S_partials_to_polynomial " '(1 1.0)))\n\
 is the same in effect as " S_make_oscil
 
+
+#if HAVE_SCHEME
+static s7_pointer g_make_polyshape(s7_scheme *sc, s7_pointer args)
+{
+  mus_any *ge;
+  int csize, npartials;
+  s7_pointer v, p, fp;
+  mus_float_t freq, phase;
+  mus_float_t *coeffs = NULL;
+  mus_polynomial_t kind = MUS_CHEBYSHEV_FIRST_KIND;
+
+  freq = s7_number_to_real(sc, s7_car(args));
+  if (freq > (0.5 * mus_srate()))
+    Xen_out_of_range_error(S_make_polyshape, 1, s7_car(args), "freq > srate/2?");
+
+  p = s7_cddr(args);
+  fp = s7_caddr(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(s7, S_make_polyshape, 5, fp, "an integer"));
+      kind = (mus_polynomial_t)s7_integer(fp);
+      if ((kind < MUS_CHEBYSHEV_EITHER_KIND) || (kind > MUS_CHEBYSHEV_SECOND_KIND))
+	Xen_out_of_range_error(S_make_polyshape, 5, fp, "unknown Chebyshev polynomial kind");
+    }
+
+  v = s7_car(p);
+  if (v != Xen_false)
+    {
+      if (!s7_is_float_vector(v))
+	return(s7_wrong_type_arg_error(s7, S_make_polyshape, 3, fp, "a float-vector"));
+      coeffs = s7_float_vector_elements(v);
+      csize = s7_vector_length(v);
+    }
+  else
+    {
+      int error = NO_PROBLEM_IN_LIST;
+      fp = s7_cadr(p);
+      if (fp != Xen_false)
+	{
+	  if (s7_is_float_vector(fp))
+	    coeffs = mus_vct_to_partials(Xen_to_vct(fp), &npartials, &error);
+	  else
+	    {
+	      if (s7_is_pair(fp))
+		coeffs = list_to_partials(fp, &npartials, &error);
+	      else return(s7_wrong_type_arg_error(s7, S_make_polyshape, 4, fp, "a float-vector or a pair"));
+	    }
+	  if (!coeffs)
+	    Xen_error(NO_DATA, 
+		      Xen_list_3(C_string_to_Xen_string(list_to_partials_error_to_string(error)), 
+				 C_string_to_Xen_string(S_make_polyshape), fp));
+	  coeffs = mus_partials_to_polynomial(npartials, coeffs, kind);
+	  csize = npartials;
+	  /* coeffs = partials here, so don't delete */ 
+	}
+    }
+
+  if (!coeffs)
+    {
+      /* clm.html says '(1 1) is the default */
+      v = s7_make_float_vector(sc, 2, 1, NULL);
+      coeffs = s7_float_vector_elements(v);
+      coeffs[0] = 0.0;
+      coeffs[1] = 1.0;
+      csize = 2;
+    }
+  if (!s7_is_float_vector(v)) v = xen_make_vct(csize, coeffs);
+  phase = s7_number_to_real(sc, s7_cadr(args));
+
+  ge = mus_make_polyshape(freq, phase, coeffs, csize, kind);
+  if (ge) 
+    return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, v)));
+  return(Xen_false);
+}
+#else
+static Xen g_make_polyshape(Xen arglist)
+{
   mus_any *ge;
   Xen args[10];
   Xen keys[5];
   int orig_arg[5] = {0, 0, 0, 0, 0};
   int vals, csize = 0, npartials = 0;
   Xen orig_v = Xen_false;
-  mus_float_t freq, phase = 0.0; 
+  mus_float_t freq = 0.0, phase = 0.0; 
   /* 
    * if we followed the definition directly, the initial phase default would be M_PI_2 (pi/2) so that
    *   we drive the Tn's with a cosine.  But I've always used sine instead, so I think I'll leave
@@ -5557,9 +6474,7 @@ is the same in effect as " S_make_oscil
    *   where we started.  This also does not affect "signification".
    */
   mus_float_t *coeffs = NULL;
-
   mus_polynomial_t kind = MUS_CHEBYSHEV_FIRST_KIND;
-  freq = clm_default_frequency;
 
   keys[0] = kw_frequency;
   keys[1] = kw_initial_phase;
@@ -5573,10 +6488,8 @@ is the same in effect as " S_make_oscil
     arglist_len = Xen_list_length(arglist);
     if (arglist_len > 10) clm_error(S_make_polyshape, "too many arguments!", arglist);
     for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-    for (i = arglist_len; i < 10; i++) args[i] = Xen_undefined;
+    vals = mus_optkey_unscramble(S_make_polyshape, arglist_len, 5, keys, args, orig_arg);
   }
-
-  vals = mus_optkey_unscramble(S_make_polyshape, 5, keys, args, orig_arg);
   if (vals > 0)
     {
       vct *v = NULL;
@@ -5644,7 +6557,7 @@ is the same in effect as " S_make_oscil
     return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, orig_v)));
   return(Xen_false);
 }
-
+#endif
 
 
 /* ---------------- polywave ---------------- */
@@ -5669,25 +6582,122 @@ static Xen g_is_polywave(Xen obj)
   return(C_bool_to_Xen_boolean((mus_is_xen(obj)) && (mus_is_polywave(Xen_to_mus_any(obj)))));
 }
 
+#define H_make_polywave "(" S_make_polywave " (frequency 0.0) (partials '(1 1)) (type " S_mus_chebyshev_first_kind ") xcoeffs ycoeffs): \
+return a new polynomial-based waveshaping generator.  (" S_make_polywave " :partials (float-vector 1 1.0)) is the same in effect as " S_make_oscil "."
 
-static Xen g_make_polywave(Xen arglist)
+#if HAVE_SCHEME
+static s7_pointer g_make_polywave(s7_scheme *sc, s7_pointer args)
 {
-  #define H_make_polywave "(" S_make_polywave " (frequency *clm-default-frequency*) (partials '(1 1)) (type " S_mus_chebyshev_first_kind ") xcoeffs ycoeffs): \
-return a new polynomial-based waveshaping generator.  (" S_make_polywave " :partials (float-vector 1 1.0)) is the same in effect as " S_make_oscil "."
+  mus_any *ge;
+  int i, n = 0;
+  mus_float_t freq;
+  mus_float_t *xcoeffs = NULL, *ycoeffs = NULL;
+  mus_polynomial_t kind = MUS_CHEBYSHEV_FIRST_KIND; /* 1 clm.h */
+  s7_pointer vx = NULL, vy = NULL, p, px, py, pr, pf, pt;
+  int error = NO_PROBLEM_IN_LIST;
+
+  pr = s7_cadr(args);
+  if (pr != Xen_false)
+    {
+      if (s7_is_float_vector(pr))
+	xcoeffs = mus_vct_to_partials(pr, &n, &error);
+      else
+	{
+	  if (s7_is_pair(pr))
+	    xcoeffs = list_to_partials(pr, &n, &error);
+	  else
+	    {
+	      if (s7_is_int_vector(pr))
+		return(s7_wrong_type_arg_error(sc, S_make_polywave, 2, pr, "a float-vector or a list"));
+	      else
+		{
+		  if (s7_is_vector(pr))
+		    xcoeffs = mus_vector_to_partials(pr, &n, &error);
+		  else return(s7_wrong_type_arg_error(sc, S_make_polywave, 2, pr, "a float-vector or a list"));
+		}
+	    }
+	}
+      if (!xcoeffs)
+	Xen_error(NO_DATA, Xen_list_3(C_string_to_Xen_string(list_to_partials_error_to_string(error)), C_string_to_Xen_string(S_make_polywave), pr));
+      vx = xen_make_vct(n, xcoeffs);
+    }
+  else n = 0;
+
+  p = s7_cdddr(args);
+  px = s7_car(p);
+  if (px != Xen_false)
+    {
+      if (!s7_is_float_vector(px))
+	return(s7_wrong_type_arg_error(sc, S_make_polywave, 4, px, "a float-vector"));
+      vx = px;
+      xcoeffs = s7_float_vector_elements(px);
+      n = s7_vector_length(px);
+    }
+
+  py = s7_cadr(p);
+  if (py != Xen_false)
+    {
+      if (!s7_is_float_vector(py))
+	return(s7_wrong_type_arg_error(sc, S_make_polywave, 5, py, "a float-vector"));
+      vy = py;
+      ycoeffs = s7_float_vector_elements(py);
+      i = s7_vector_length(py);
+      if ((n == 0) || (i < n))
+	n = i;
+    }
+
+  pf = s7_car(args);
+  freq = s7_number_to_real(sc, pf);
+  if (freq > (0.5 * mus_srate()))
+    Xen_out_of_range_error(S_make_polywave, 1, pf, "freq > srate/2?");
+
+  pt = s7_caddr(args);
+  if (pt != Xen_false)
+    {
+      s7_int type;
+      if (!s7_is_integer(pt))
+	return(s7_wrong_type_arg_error(sc, S_make_polywave, 3, pt, "an integer"));
+      type = s7_integer(pt);
+      if ((type >= MUS_CHEBYSHEV_EITHER_KIND) && 
+	  (type <= MUS_CHEBYSHEV_BOTH_KINDS))
+	kind = (mus_polynomial_t)type;
+      else Xen_out_of_range_error(S_make_polywave, 3, pt, "unknown Chebyshev polynomial kind");
+    }
+
+  if (!xcoeffs)
+    {
+      /* clm.html says '(1 1) is the default but table-lookup is 0? */
+      vx = s7_make_float_vector(sc, 2, 1, NULL);
+      xcoeffs = s7_float_vector_elements(vx);
+      xcoeffs[0] = 0.0;
+      xcoeffs[1] = 1.0;
+      n = 2; 
+    }
 
+  if (ycoeffs)
+    {
+      ge = mus_make_polywave_tu(freq, xcoeffs, ycoeffs, n);
+      if (ge) return(mus_xen_to_object(mus_any_to_mus_xen_with_two_vcts(ge, vx, vy)));
+      return(Xen_false);
+    }
+  ge = mus_make_polywave(freq, xcoeffs, n, kind);
+  if (ge) return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, vx)));
+  return(Xen_false);
+}
+#else
+static Xen g_make_polywave(Xen arglist)
+{
   mus_any *ge;
   Xen args[10];
   Xen keys[5];
   int orig_arg[5] = {0, 0, 0, 0, 0};
   int vals, n = 0, npartials = 0;
   Xen orig_x = Xen_false, orig_y = Xen_false;
-  mus_float_t freq; 
+  mus_float_t freq = 0.0; 
   mus_float_t *xcoeffs = NULL, *ycoeffs = NULL, *partials = NULL;
   mus_polynomial_t kind = MUS_CHEBYSHEV_FIRST_KIND;
   int error = NO_PROBLEM_IN_LIST;
 
-  freq = clm_default_frequency;
-
   keys[0] = kw_frequency;
   keys[1] = kw_partials;
   keys[2] = kw_type;
@@ -5700,10 +6710,8 @@ return a new polynomial-based waveshaping generator.  (" S_make_polywave " :part
     arglist_len = Xen_list_length(arglist);
     if (arglist_len > 10) clm_error(S_make_polywave, "too many arguments!", arglist);
     for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-    for (i = arglist_len; i < 10; i++) args[i] = Xen_undefined;
+    vals = mus_optkey_unscramble(S_make_polywave, arglist_len, 5, keys, args, orig_arg);
   }
-
-  vals = mus_optkey_unscramble(S_make_polywave, 5, keys, args, orig_arg);
   if (vals > 0)
     {
       vct *v;
@@ -5788,6 +6796,7 @@ return a new polynomial-based waveshaping generator.  (" S_make_polywave " :part
   if (ge) return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, orig_x)));
   return(Xen_false);
 }
+#endif
 
 
 /* ---------------- nrxysin and nrxycos ---------------- */
@@ -5834,7 +6843,53 @@ static Xen g_nrxycos(Xen obj, Xen fm)
   return(C_double_to_Xen_real(mus_nrxycos(g, fm1)));
 }
 
+#if HAVE_SCHEME
+static s7_pointer g_make_nrxy(s7_scheme *sc, s7_pointer args, bool sin_case, const char *caller)
+{
+  mus_any *ge;
+  mus_float_t freq, r, ratio;
+  int n;
+  s7_pointer un;
+
+  freq = s7_number_to_real(sc, s7_car(args));
+  if (freq > (0.5 * mus_srate()))
+    Xen_out_of_range_error(caller, 1, s7_car(args), "freq > srate/2?");
+
+  args = s7_cdr(args);
+  ratio = s7_number_to_real(sc, s7_car(args));
+
+  args = s7_cdr(args);
+  un = s7_car(args);
+  if (!s7_is_integer(un))
+    return(s7_wrong_type_arg_error(s7, caller, 3, un, "an integer"));
+  n = s7_integer(un);
+  if (n < 0)
+    Xen_out_of_range_error(caller, 3, un, "n (sidebands) < 0?");
+
+  r = s7_number_to_real(sc, s7_cadr(args));
+  if ((r >= 1.0) ||
+    (r <= -1.0))
+    Xen_out_of_range_error(caller, 4, s7_cadr(args), "r (sideband amp ratio) not within -1.0 to 1.0?");
+
+  if (sin_case)
+    ge = mus_make_nrxysin(freq, ratio, n, r);
+  else ge = mus_make_nrxycos(freq, ratio, n, r);
+  if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_nrxysin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_nrxysin "(" S_make_nrxysin " (frequency 0.0) (ratio 1.0) (n 1) (r 0.5)): return a new nrxysin generator."
+  return(g_make_nrxy(sc, args, true, S_make_nrxysin));
+}
 
+static s7_pointer g_make_nrxycos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_nrxycos "(" S_make_nrxycos " (frequency 0.0) (ratio 1.0) (n 1) (r 0.5)): return a new nrxycos generator."
+  return(g_make_nrxy(sc, args, false, S_make_nrxycos));
+}
+#else
 static Xen g_make_nrxy(bool sin_case, const char *caller, Xen arglist)
 {
   mus_any *ge;
@@ -5842,11 +6897,9 @@ static Xen g_make_nrxy(bool sin_case, const char *caller, Xen arglist)
   Xen keys[4];
   int orig_arg[4] = {0, 0, 0, 0};
   int vals;
-  mus_float_t freq, r = 0.5, ratio = 1.0;
+  mus_float_t freq = 0.0, r = 0.5, ratio = 1.0;
   int n = 1;
 
-  freq = clm_default_frequency;
-
   keys[0] = kw_frequency;
   keys[1] = kw_ratio;
   keys[2] = kw_n;
@@ -5858,10 +6911,8 @@ static Xen g_make_nrxy(bool sin_case, const char *caller, Xen arglist)
     arglist_len = Xen_list_length(arglist);
     if (arglist_len > 8) clm_error(caller, "too many arguments!", arglist);
     for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-    for (i = arglist_len; i < 8; i++) args[i] = Xen_undefined;
+    vals = mus_optkey_unscramble(caller, arglist_len, 4, keys, args, orig_arg);
   }
-
-  vals = mus_optkey_unscramble(caller, 4, keys, args, orig_arg);
   if (vals > 0)
     {
       freq = Xen_optkey_to_float(kw_frequency, keys[0], caller, orig_arg[0], freq);
@@ -5890,20 +6941,18 @@ static Xen g_make_nrxy(bool sin_case, const char *caller, Xen arglist)
 
 static Xen g_make_nrxysin(Xen arglist)
 {
-  #define H_make_nrxysin "(" S_make_nrxysin " (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (r 0.5)): \
-return a new nrxysin generator."
+  #define H_make_nrxysin "(" S_make_nrxysin " (frequency 0.0) (ratio 1.0) (n 1) (r 0.5)): return a new nrxysin generator."
 
   return(g_make_nrxy(true, S_make_nrxysin, arglist));
 }
 
 static Xen g_make_nrxycos(Xen arglist)
 {
-  #define H_make_nrxycos "(" S_make_nrxycos " (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (r 0.5)): \
-return a new nrxycos generator."
+  #define H_make_nrxycos "(" S_make_nrxycos " (frequency 0.0) (ratio 1.0) (n 1) (r 0.5)): return a new nrxycos generator."
 
   return(g_make_nrxy(false, S_make_nrxycos, arglist));
 }
-
+#endif
 
 
 /* ---------------- rxyksin and rxykcos ---------------- */
@@ -5950,7 +6999,40 @@ static Xen g_rxykcos(Xen obj, Xen fm)
   return(C_double_to_Xen_real(mus_rxykcos(g, fm1)));
 }
 
+#if HAVE_SCHEME
+static s7_pointer g_make_rxyk(s7_scheme *sc, s7_pointer args, bool sin_case, const char *caller)
+{
+  mus_any *ge;
+  mus_float_t freq, r, ratio;
+  
+  freq = s7_number_to_real(sc, s7_car(args));
+  if (freq > (0.5 * mus_srate()))
+    Xen_out_of_range_error(caller, 1, s7_car(args), "freq > srate/2?");
+  
+  ratio = s7_number_to_real(sc, s7_cadr(args));
+  r = s7_number_to_real(sc, s7_caddr(args));
+
+  if (sin_case)
+    ge = mus_make_rxyksin(freq, 0.0, r, ratio);
+  else ge = mus_make_rxykcos(freq, 0.0, r, ratio);
+  if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+  return(Xen_false);
+}
+
+static s7_pointer g_make_rxyksin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_rxyksin "(" S_make_rxyksin " (frequency 0.0) (ratio 1.0) (r 0.5)): return a new rxyksin generator."
+
+  return(g_make_rxyk(sc, args, true, S_make_rxyksin));
+}
+
+static s7_pointer g_make_rxykcos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_rxykcos "(" S_make_rxykcos " (frequency 0.0) (ratio 1.0) (r 0.5)): return a new rxykcos generator."
 
+  return(g_make_rxyk(sc, args, false, S_make_rxykcos));
+}
+#else
 static Xen g_make_rxyk(bool sin_case, const char *caller, Xen arglist)
 {
   mus_any *ge;
@@ -5958,9 +7040,7 @@ static Xen g_make_rxyk(bool sin_case, const char *caller, Xen arglist)
   Xen keys[3];
   int orig_arg[3] = {0, 0, 0};
   int vals;
-  mus_float_t freq, r = 0.5, ratio = 1.0; /* original in generators.scm assumes initial-phase = 0.0 */
-
-  freq = clm_default_frequency;
+  mus_float_t freq = 0.0, r = 0.5, ratio = 1.0; /* original in generators.scm assumes initial-phase = 0.0 */
 
   keys[0] = kw_frequency;
   keys[1] = kw_ratio;
@@ -5972,10 +7052,8 @@ static Xen g_make_rxyk(bool sin_case, const char *caller, Xen arglist)
     arglist_len = Xen_list_length(arglist);
     if (arglist_len > 6) clm_error(caller, "too many arguments!", arglist);
     for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-    for (i = arglist_len; i < 6; i++) args[i] = Xen_undefined;
+    vals = mus_optkey_unscramble(caller, arglist_len, 3, keys, args, orig_arg);
   }
-
-  vals = mus_optkey_unscramble(caller, 3, keys, args, orig_arg);
   if (vals > 0)
     {
       freq = Xen_optkey_to_float(kw_frequency, keys[0], caller, orig_arg[0], freq);
@@ -5995,7 +7073,7 @@ static Xen g_make_rxyk(bool sin_case, const char *caller, Xen arglist)
 
 static Xen g_make_rxyksin(Xen arglist)
 {
-  #define H_make_rxyksin "(" S_make_rxyksin " (frequency *clm-default-frequency*) (ratio 1.0) (r 0.5)): \
+  #define H_make_rxyksin "(" S_make_rxyksin " (frequency 0.0) (ratio 1.0) (r 0.5)): \
 return a new rxyksin generator."
 
   return(g_make_rxyk(true, S_make_rxyksin, arglist));
@@ -6003,12 +7081,12 @@ return a new rxyksin generator."
 
 static Xen g_make_rxykcos(Xen arglist)
 {
-  #define H_make_rxykcos "(" S_make_rxykcos " (frequency *clm-default-frequency*) (ratio 1.0) (r 0.5)): \
+  #define H_make_rxykcos "(" S_make_rxykcos " (frequency 0.0) (ratio 1.0) (r 0.5)): \
 return a new rxykcos generator."
 
   return(g_make_rxyk(false, S_make_rxykcos, arglist));
 }
-
+#endif
 
 
 /* ----------------  filter ---------------- */
@@ -6101,7 +7179,95 @@ static Xen g_iir_filter(Xen obj, Xen input)
   return(C_double_to_Xen_real(mus_iir_filter(g, x)));
 }
 
+#define H_make_filter "(" S_make_filter " order xcoeffs ycoeffs): return a new direct form FIR/IIR filter, coeff args are " S_vct "s"
+#define H_make_fir_filter "(" S_make_fir_filter " order xcoeffs): return a new FIR filter, xcoeffs a " S_vct
+#define H_make_iir_filter "(" S_make_iir_filter " order ycoeffs): return a new IIR filter, ycoeffs a " S_vct
+
+#if HAVE_SCHEME
+static s7_pointer g_make_filter_1(s7_scheme *sc, s7_pointer args, xclm_fir_t choice, const char *caller)
+{
+  s7_pointer x = NULL, y = NULL, fp;
+  mus_any *fgen = NULL;
+  int order = 0;
+  
+  fp = s7_car(args);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, caller, 1, fp, "an integer"));
+      order = s7_integer(fp);
+      if (order <= 0)
+	Xen_out_of_range_error(caller, 1, fp, "order <= 0?");
+    }
+  
+  fp = s7_cadr(args);
+  if (fp != Xen_false)
+    {
+      int len;
+      if (!s7_is_float_vector(fp))
+	return(s7_wrong_type_arg_error(sc, caller, 2, fp, "a float-vector"));
+      if (choice == G_IIR_FILTER)
+	y = fp;
+      else x = fp;
+      len = s7_vector_length(fp);
+      if ((order != 0) && (len != order))
+	Xen_error(CLM_ERROR, Xen_list_4(C_string_to_Xen_string("~A: coeffs, ~A, must match order, ~A"),
+					C_string_to_Xen_string(caller), fp, s7_car(args)));
+      order = len;
+    }
+  
+  if (choice == G_FILTER)
+    {
+      fp = s7_caddr(args);
+      if (fp != Xen_false)
+	{
+	  int len;
+	  y = fp;
+	  if (!s7_is_float_vector(y))
+	    return(s7_wrong_type_arg_error(sc, caller, 3, y, "a float-vector"));
+	  len = s7_vector_length(y);
+	  if ((order != 0) && (len != order))
+	    {
+	      if (x)
+		Xen_error(CLM_ERROR,
+			  Xen_list_4(C_string_to_Xen_string("~A: coeffs must be same length.  x len: ~A, y len: ~A"),
+				     C_string_to_Xen_string(caller),
+				     C_int_to_Xen_integer(mus_vct_length(x)),
+				     C_int_to_Xen_integer(len)));
+	      else 
+		Xen_error(CLM_ERROR, Xen_list_4(C_string_to_Xen_string("~A: coeffs, ~A, must match order, ~A"),
+						C_string_to_Xen_string(caller), y, s7_car(args)));
+	    }
+	  order = len;
+	}
+      if (!y) choice = G_FIR_FILTER; else {if (!x) choice = G_IIR_FILTER;}
+    }
+  if ((order == 0) || ((!x) && (!y)))
+    Xen_error(NO_DATA, Xen_list_2(C_string_to_Xen_string("~A: no coeffs?"), C_string_to_Xen_string(caller)));
+
+  switch (choice)
+    {
+    case G_FILTER: fgen = mus_make_filter(order, s7_float_vector_elements(x), s7_float_vector_elements(y), NULL); break;
+    case G_FIR_FILTER: fgen = mus_make_fir_filter(order, s7_float_vector_elements(x), NULL); break;
+    case G_IIR_FILTER: fgen = mus_make_iir_filter(order, s7_float_vector_elements(y), NULL); break;
+    }
+  if (fgen)
+    {
+      mus_xen *gn = NULL;
+      gn = mx_alloc(3);
+      gn->gen = fgen; 
+      gn->vcts[G_FILTER_STATE] = xen_make_vct_wrapper(order, mus_data(fgen));
+      gn->vcts[G_FILTER_XCOEFFS] = (x) ? x : Xen_undefined;
+      gn->vcts[G_FILTER_YCOEFFS] = (y) ? y : Xen_undefined;
+      return(mus_xen_to_object(gn));
+    }
+  return(Xen_false);
+}
 
+static s7_pointer g_make_filter(s7_scheme *sc, s7_pointer args)     {return(g_make_filter_1(sc, args, G_FILTER,     S_make_filter));}
+static s7_pointer g_make_fir_filter(s7_scheme *sc, s7_pointer args) {return(g_make_filter_1(sc, args, G_FIR_FILTER, S_make_fir_filter));}
+static s7_pointer g_make_iir_filter(s7_scheme *sc, s7_pointer args) {return(g_make_filter_1(sc, args, G_IIR_FILTER, S_make_iir_filter));}
+#else
 static Xen g_make_filter_1(xclm_fir_t choice, Xen arg1, Xen arg2, Xen arg3, Xen arg4, Xen arg5, Xen arg6)
 {
   Xen xwave = Xen_undefined, ywave = Xen_undefined;
@@ -6110,7 +7276,7 @@ static Xen g_make_filter_1(xclm_fir_t choice, Xen arg1, Xen arg2, Xen arg3, Xen
   Xen keys[4];
   int orig_arg[4] = {0, 0, 0, 0};
   vct *x = NULL, *y = NULL;
-  int vals, order = 0;
+  int vals, order = 0, pr = 0;
   const char *caller;
   if (choice == G_FILTER) caller = S_make_filter; else if (choice == G_FIR_FILTER) caller = S_make_fir_filter; else caller = S_make_iir_filter;
 
@@ -6118,9 +7284,10 @@ static Xen g_make_filter_1(xclm_fir_t choice, Xen arg1, Xen arg2, Xen arg3, Xen
   keys[1] = kw_x_coeffs;
   keys[2] = kw_y_coeffs;
   keys[3] = kw_coeffs;
-  args[0] = arg1; args[1] = arg2; args[2] = arg3; args[3] = arg4; args[4] = arg5; args[5] = arg6; args[6] = Xen_undefined; args[7] = Xen_undefined;
 
-  vals = mus_optkey_unscramble(caller, 4, keys, args, orig_arg);
+  if (Aok(arg1)) {args[pr++] = arg1; if (Aok(arg2)) {args[pr++] = arg2; if (Aok(arg3)) {args[pr++] = arg3; 
+	if (Aok(arg4)) {args[pr++] = arg4; if (Aok(arg5)) {args[pr++] = arg5; if (Aok(arg6)) {args[pr++] = arg6;}}}}}}
+  vals = mus_optkey_unscramble(caller, pr, 4, keys, args, orig_arg);
   if (vals > 0)
     {
       if (!(Xen_is_keyword(keys[0])))
@@ -6229,36 +7396,18 @@ static Xen g_make_filter_1(xclm_fir_t choice, Xen arg1, Xen arg2, Xen arg3, Xen
   return(Xen_false);
 }
 
+static Xen g_make_filter(Xen arg1, Xen arg2, Xen arg3, Xen arg4, Xen arg5, Xen arg6) {return(g_make_filter_1(G_FILTER, arg1, arg2, arg3, arg4, arg5, arg6));}
+static Xen g_make_fir_filter(Xen arg1, Xen arg2, Xen arg3, Xen arg4) {return(g_make_filter_1(G_FIR_FILTER, arg1, arg2, arg3, arg4, Xen_undefined, Xen_undefined));}
+static Xen g_make_iir_filter(Xen arg1, Xen arg2, Xen arg3, Xen arg4) {return(g_make_filter_1(G_IIR_FILTER, arg1, arg2, arg3, arg4, Xen_undefined, Xen_undefined));}
+#endif
 
-static Xen g_make_filter(Xen arg1, Xen arg2, Xen arg3, Xen arg4, Xen arg5, Xen arg6)
-{
-  #define H_make_filter "(" S_make_filter " order xcoeffs ycoeffs): return a new direct form FIR/IIR filter, coeff args are " S_vct "s"
-  return(g_make_filter_1(G_FILTER, arg1, arg2, arg3, arg4, arg5, arg6));
-}
 
+/* ---------------- env ---------------- */
 
-static Xen g_make_fir_filter(Xen arg1, Xen arg2, Xen arg3, Xen arg4)
+static Xen g_is_env(Xen obj) 
 {
-  #define H_make_fir_filter "(" S_make_fir_filter " order xcoeffs): return a new FIR filter, xcoeffs a " S_vct
-  return(g_make_filter_1(G_FIR_FILTER, arg1, arg2, arg3, arg4, Xen_undefined, Xen_undefined));
-}
-
-
-static Xen g_make_iir_filter(Xen arg1, Xen arg2, Xen arg3, Xen arg4)
-{
-  #define H_make_iir_filter "(" S_make_iir_filter " order ycoeffs): return a new IIR filter, ycoeffs a " S_vct
-  return(g_make_filter_1(G_IIR_FILTER, arg1, arg2, arg3, arg4, Xen_undefined, Xen_undefined));
-}
-
-
-
-
-/* ---------------- env ---------------- */
-
-static Xen g_is_env(Xen obj) 
-{
-  #define H_is_env "(" S_is_env " gen): " PROC_TRUE " if gen is a " S_env
-  return(C_bool_to_Xen_boolean((mus_is_xen(obj)) && (mus_is_env(Xen_to_mus_any(obj)))));
+  #define H_is_env "(" S_is_env " gen): " PROC_TRUE " if gen is a " S_env
+  return(C_bool_to_Xen_boolean((mus_is_xen(obj)) && (mus_is_env(Xen_to_mus_any(obj)))));
 }
 
 
@@ -6273,15 +7422,151 @@ static Xen g_env(Xen obj)
   return(C_double_to_Xen_real(mus_env(g)));
 }
 
-
-static Xen g_make_env(Xen arglist)
-{
-  #define H_make_env "(" S_make_env " envelope (scaler 1.0) (duration) (offset 0.0) (base 1.0) (end) (length)): \
+#define H_make_env "(" S_make_env " envelope (scaler 1.0) duration (offset 0.0) (base 1.0) end length): \
 return a new envelope generator.  'envelope' is a list, vector, or " S_vct " of break-point pairs. To create the envelope, \
 these points are offset by 'offset', scaled by 'scaler', and mapped over the time interval defined by \
 either 'duration' (seconds) or 'length' (samples).  If 'base' is 1.0, the connecting segments \
 are linear, if 0.0 you get a step function, and anything else produces an exponential connecting segment."
 
+
+#if HAVE_SCHEME
+static s7_pointer make_env;
+static s7_pointer g_make_env(s7_scheme *sc, s7_pointer args)
+{
+  mus_any *ge;
+  mus_float_t base, scaler, offset, duration;
+  mus_long_t end, dur;
+  int i, len = 0;
+  mus_float_t *brkpts;
+  s7_pointer v, p, durp, envp, ep, endp, durationp;
+
+  durationp = s7_caddr(args);
+  if (durationp != Xen_false)
+    {
+      duration = s7_number_to_real(sc, durationp);
+      if (duration <= 0.0)
+	Xen_out_of_range_error(S_make_env, 3, durationp, "duration <= 0.0?");	
+    }
+  else duration = 0.0;
+  
+  envp = s7_car(args);
+  if (s7_is_pair(envp))
+    {
+      bool internal_lists = false;
+      len = s7_list_length(sc, envp);
+      if (s7_is_pair(s7_car(envp)))
+	{
+	  len *= 2;
+	  internal_lists = true;
+	}
+      else
+	{
+	  if ((len < 2) || (len & 1))
+	    return(s7_wrong_type_arg_error(sc, S_make_env, 1, envp, "a list with an even number of entries"));
+	}
+      v = s7_make_float_vector(sc, len, 1, NULL);
+      brkpts = s7_float_vector_elements(v);
+      if (internal_lists)
+	{
+	  for (i = 0, ep = envp; i < len; i += 2, ep = s7_cdr(ep))
+	    {
+	      brkpts[i] = s7_number_to_real(sc, s7_caar(ep));
+	      brkpts[i + 1] = s7_number_to_real(sc, s7_cadar(ep));
+	    }
+	}
+      else
+	{
+	  for (i = 0, ep = envp; i < len; i++, ep = s7_cdr(ep))
+	    brkpts[i] = s7_number_to_real(sc, s7_car(ep));
+	}
+    }
+  else
+    {
+      if (s7_is_float_vector(envp))
+	{
+	  v = envp;
+	  len = s7_vector_length(envp);
+	  if ((len < 2) || (len & 1))
+	    return(s7_wrong_type_arg_error(sc, S_make_env, 1, envp, "a float-vector with an even number of entries"));
+	  brkpts = s7_float_vector_elements(envp);
+	}
+      else
+	{
+	  if (s7_is_int_vector(envp))
+	    return(s7_wrong_type_arg_error(sc, S_make_env, 1, envp, "a list, float-vector, or a normal vector"));
+	  else
+	    {
+	      if (s7_is_vector(envp))
+		{
+		  s7_pointer *els;
+		  len = s7_vector_length(envp);
+		  if ((len < 2) || (len & 1))
+		    return(s7_wrong_type_arg_error(sc, S_make_env, 1, envp, "a vector with an even number of entries"));
+		  v = s7_make_float_vector(sc, len, 1, NULL);
+		  brkpts = s7_float_vector_elements(v);	
+		  els = s7_vector_elements(envp);
+		  for (i = 0; i < len; i++)
+		    brkpts[i] = s7_number_to_real(sc, els[i]);
+		}
+	      else return(s7_wrong_type_arg_error(sc, S_make_env, 1, envp, "a list, float-vector, or vector"));
+	    }
+	}
+    }
+
+  p = s7_cdddr(args);
+  endp = s7_caddr(p);
+  if (endp != Xen_false)
+    {
+      if (!s7_is_integer(endp))
+	return(s7_wrong_type_arg_error(sc, S_make_env, 6, endp, "an integer"));
+      end = s7_integer(endp);
+      if (end <= 0)
+	Xen_out_of_range_error(S_make_env, 5, endp, "end <= 0?");	
+    }
+  else end = 0;
+
+  durp = s7_cadddr(p);
+  if (durp != Xen_false)
+    {
+      if (!s7_is_integer(durp))
+	return(s7_wrong_type_arg_error(sc, S_make_env, 7, durp, "an integer"));
+      dur = s7_integer(durp);
+      if (dur <= 0)
+	Xen_out_of_range_error(S_make_env, 6, durp, "dur <= 0?");
+      if ((end > 0) && (end != dur - 1))
+	Xen_error(CLM_ERROR,
+		  Xen_list_3(C_string_to_Xen_string(S_make_env ": end, ~A, and dur, ~A, specified, but dur != end+1"), endp, durp));
+      end = dur - 1;
+    }
+
+  if ((end == 0) && (duration == 0.0))
+    Xen_out_of_range_error(S_make_env, 0, durationp, "duration <= 0.0?");
+
+  base = s7_number_to_real(sc, s7_cadr(p));
+  if (base < 0.0) 
+    Xen_out_of_range_error(S_make_env, 5, s7_cadr(p), "base < 0.0?");
+
+  scaler = s7_number_to_real(sc, s7_cadr(args));
+  offset = s7_number_to_real(sc, s7_car(p));
+
+  if (duration > (24 * 3600 * 365))
+    Xen_out_of_range_error(S_make_env, 0, durationp, "duration > year?");
+
+  /* mus_make_env can raise an error, so we need local redirects here */
+  {
+    mus_error_handler_t *old_error_handler;
+    old_error_handler = mus_error_set_handler(local_mus_error);
+    ge = mus_make_env(brkpts, len / 2, scaler, offset, base, duration, end, NULL);
+    mus_error_set_handler(old_error_handler);
+  }
+
+  if (ge) 
+    return(mus_xen_to_object(mus_any_to_mus_xen_with_vct(ge, v)));
+  return(clm_mus_error(local_error_type, local_error_msg, S_make_env));
+}
+#else
+static Xen g_make_env(Xen arglist)
+{
   mus_any *ge;
   Xen args[14];
   Xen keys[7];
@@ -6307,10 +7592,8 @@ are linear, if 0.0 you get a step function, and anything else produces an expone
     arglist_len = Xen_list_length(arglist);
     if (arglist_len > 14) clm_error(S_make_env, "too many arguments!", arglist);
     for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-    for (i = arglist_len; i < 14; i++) args[i] = Xen_undefined;
+    vals = mus_optkey_unscramble(S_make_env, arglist_len, 7, keys, args, orig_arg);
   }
-
-  vals = mus_optkey_unscramble(S_make_env, 7, keys, args, orig_arg);
   if (vals > 0)
     {
       scaler = Xen_optkey_to_float(kw_scaler, keys[1], S_make_env, orig_arg[1], 1.0);
@@ -6473,7 +7756,7 @@ are linear, if 0.0 you get a step function, and anything else produces an expone
     }
   return(clm_mus_error(local_error_type, local_error_msg, S_make_env));
 }
-
+#endif
 
 static Xen g_env_interp(Xen x, Xen env1) /* "env" causes trouble in Objective-C!! */
 {
@@ -6572,8 +7855,14 @@ static Xen g_make_pulsed_env(Xen e, Xen dur, Xen frq)
   Xen gp, ge;
   mus_any *pl;
 
-  gp = g_make_pulse_train(frq, Xen_undefined, Xen_undefined, Xen_undefined, Xen_undefined, Xen_undefined);
+  pl = mus_make_pulse_train(Xen_real_to_C_double(frq), 1.0, 0.0);
+  gp = mus_xen_to_object(mus_any_to_mus_xen(pl));
+
+#if HAVE_SCHEME
+  ge = s7_apply_function_star(s7, make_env, s7_list(s7, 3, e, s7_make_real(s7, 1.0), dur));
+#else
   ge = g_make_env(Xen_list_3(e, C_double_to_Xen_real(1.0), dur));
+#endif
 
   pl = mus_make_pulsed_env(Xen_to_mus_any(ge), Xen_to_mus_any(gp));
   return(mus_xen_to_object(mus_any_to_mus_xen_with_two_vcts(pl, ge, gp)));
@@ -7394,15 +8683,75 @@ static Xen g_readin(Xen obj)
   return(C_double_to_Xen_real(mus_readin(g)));
 }
 
-
-static Xen g_make_readin(Xen arglist)
-{
-  #define H_make_readin "(" S_make_readin " file (channel 0) (start 0) (direction 1) size): \
+#define H_make_readin "(" S_make_readin " file (channel 0) (start 0) (direction 1) size): \
 return a new readin (file input) generator reading the sound file 'file' starting at frample \
 'start' in channel 'channel' and reading forward if 'direction' is not -1"
 
-  /* optkey file channel start direction size */
+#if HAVE_SCHEME
+static s7_pointer g_make_readin(s7_scheme *sc, s7_pointer args)
+{
+  mus_any *ge;
+  const char *file = NULL;
+  int chans, channel, direction;
+  mus_long_t start, buffer_size;
+  s7_pointer fp;
+  
+  fp = s7_car(args);
+  if (!s7_is_string(fp))
+    Xen_out_of_range_error(S_make_readin, 1, fp, "no file name given");
+  file = s7_string(fp);
+  if (!(mus_file_probe(file)))
+    Xen_error(NO_SUCH_FILE,
+	      Xen_list_3(C_string_to_Xen_string(S_make_readin ": ~S, ~A"),
+			 C_string_to_Xen_string(file),
+			 C_string_to_Xen_string(STRERROR(errno))));
+  chans = mus_sound_chans(file);
+  if (chans <= 0)
+    Xen_error(BAD_HEADER,
+	      Xen_list_2(C_string_to_Xen_string(S_make_readin ": ~S chans <= 0?"),
+			 C_string_to_Xen_string(file)));
+
+  fp = s7_cadr(args);
+  if (!s7_is_integer(fp))
+    return(s7_wrong_type_arg_error(sc, S_make_readin, 2, fp, "an integer"));
+  channel = s7_integer(fp);
+  if (channel < 0)
+    Xen_out_of_range_error(S_make_readin, 2, fp, "channel < 0?");
+  if (channel >= chans)
+    Xen_out_of_range_error(S_make_readin, 2, fp, "channel > available chans?");
+
+  fp = s7_caddr(args);
+  if (!s7_is_integer(fp))
+    return(s7_wrong_type_arg_error(sc, S_make_readin, 3, fp, "an integer"));
+  start = s7_integer(fp);
+  if (start < 0)
+    Xen_out_of_range_error(S_make_readin, 3, fp, "start < 0?");
+
+  args = s7_cdddr(args);
+  fp = s7_car(args);
+  if (!s7_is_integer(fp))
+    return(s7_wrong_type_arg_error(sc, S_make_readin, 4, fp, "an integer"));
+  direction = s7_integer(fp);
+
+  fp = s7_cadr(args);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_make_readin, 5, fp, "an integer"));
+      buffer_size = s7_integer(fp);
+      if (buffer_size <= 0)
+	Xen_out_of_range_error(S_make_readin, 5, fp, "must be > 0");
+    }
+  else buffer_size = mus_file_buffer_size();
 
+  ge = mus_make_readin_with_buffer_size(file, channel, start, direction, buffer_size);
+  if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+  return(Xen_false);
+}
+#else
+static Xen g_make_readin(Xen arglist)
+{
+  /* optkey file channel start direction size */
   mus_any *ge;
   const char *file = NULL;
   Xen args[10];
@@ -7428,10 +8777,8 @@ return a new readin (file input) generator reading the sound file 'file' startin
     arglist_len = Xen_list_length(arglist);
     if (arglist_len > 10) clm_error(S_make_readin, "too many arguments!", arglist);
     for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-    for (i = arglist_len; i < 10; i++) args[i] = Xen_undefined;
+    vals = mus_optkey_unscramble(S_make_readin, arglist_len, 5, keys, args, orig_arg);
   }
-
-  vals = mus_optkey_unscramble(S_make_readin, 5, keys, args, orig_arg);
   if (vals > 0)
     {
       file = mus_optkey_to_string(keys[0], S_make_readin, orig_arg[0], NULL); /* not copied */
@@ -7470,6 +8817,7 @@ return a new readin (file input) generator reading the sound file 'file' startin
   if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
   return(Xen_false);
 }
+#endif
 
 
 /* ---------------- locsig ---------------- */
@@ -7692,11 +9040,130 @@ static void clm_locsig_detour(mus_any *ptr, mus_long_t pos)
     mus_locsig_or_move_sound_to_vct_or_sound_data(ms, ms->gen, pos, true);
 }
 
-static Xen g_make_locsig(Xen arglist)
+#define H_make_locsig "(" S_make_locsig " (degree 0.0) (distance 1.0) (reverb 0.0) output revout channels type): \
+ return a new generator for signal placement in n channels.  Channel 0 corresponds to 0 degrees."
+
+#if HAVE_SCHEME
+static s7_pointer g_make_locsig(s7_scheme *sc, s7_pointer args)
 {
-  #define H_make_locsig "(" S_make_locsig " (degree 0.0) (distance 1.0) (reverb 0.0) (output *output*) (revout *reverb*) (channels (mus-channels *output*)) (type " S_mus_interp_linear ")): \
-return a new generator for signal placement in n channels.  Channel 0 corresponds to 0 degrees."
+  mus_any *ge, *outp = NULL, *revp = NULL;
+  s7_pointer ov, rv, p, fp;
+  int out_chans, rev_chans;
+  mus_interp_t type;
+  mus_float_t degree = 0.0, distance = 1.0, reverb = 0.0;
+  type = clm_locsig_type;
+  
+  fp = s7_car(args);
+  if (fp != Xen_false) degree = s7_number_to_real(sc, fp);
+  fp = s7_cadr(args);
+  if (fp != Xen_false) distance = s7_number_to_real(sc, fp);
+  fp = s7_caddr(args);
+  if (fp != Xen_false) reverb = s7_number_to_real(sc, fp);
+
+  p = s7_cdddr(args);
+  fp = s7_car(p);
+  ov = (fp == Xen_false) ? CLM_OUTPUT : fp;
+  if ((mus_is_xen(ov)) && 
+      (mus_is_output(Xen_to_mus_any(ov))))
+    {
+      outp = (mus_any *)Xen_to_mus_any(ov);
+      out_chans = mus_channels((mus_any *)outp);
+    }
+  else
+    {
+      if (s7_is_float_vector(ov))
+	{
+	  if (s7_vector_rank(ov) > 1)
+	    out_chans = s7_vector_dimensions(ov)[0];
+	  else out_chans = 1;
+	}
+      else 
+	{
+	  if (ov != Xen_false)
+	    return(s7_wrong_type_arg_error(sc, S_make_locsig, 4, ov, "an output generator or a float-vector"));
+	  else ov = s7_undefined(sc);
+	  out_chans = 1;
+	}
+    }
 
+  fp = s7_cadr(p);
+  rv = (fp == Xen_false) ? CLM_REVERB : fp;
+  if ((mus_is_xen(rv)) && 
+      (mus_is_output(Xen_to_mus_any(rv))))
+    {
+      revp = (mus_any *)Xen_to_mus_any(rv);
+      rev_chans = mus_channels((mus_any *)revp);
+    }
+  else
+    {
+      if (s7_is_float_vector(rv))
+	{
+	  if (s7_vector_rank(rv) > 1)
+	    rev_chans = s7_vector_dimensions(rv)[0];
+	  else rev_chans = 1;
+	}
+      else 
+	{
+	  if (rv != Xen_false)
+	    return(s7_wrong_type_arg_error(sc, S_make_locsig, 5, rv, "an output generator or a float-vector"));
+	  else rv = s7_undefined(sc);
+	  rev_chans = 0;
+	}
+    }
+
+  fp = s7_caddr(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_make_locsig, 6, fp, "an integer"));
+      out_chans = s7_integer(fp);
+      if (out_chans <= 0) 
+	Xen_out_of_range_error(S_make_locsig, 6, fp, "chans <= 0?");
+      if (out_chans > mus_max_table_size()) 
+	Xen_out_of_range_error(S_make_locsig, 6, fp, "too many chans");
+    }
+
+  fp = s7_cadddr(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_make_locsig, 7, fp, "an integer"));
+      type = (mus_interp_t)s7_integer(fp);
+      if ((type != MUS_INTERP_LINEAR) && (type != MUS_INTERP_SINUSOIDAL))
+	Xen_out_of_range_error(S_make_locsig, 7, fp, "type must be " S_mus_interp_linear " or " S_mus_interp_sinusoidal ".");
+    }
+
+  ge = mus_make_locsig(degree, distance, reverb, out_chans, outp, rev_chans, revp, type);
+  if (ge)
+    {
+      mus_xen *gn;
+      if ((ov != Xen_false) && (rv != Xen_false))
+	gn = mx_alloc(4);
+      else gn = mx_alloc(2);
+
+      /* these two are for the mus-data and mus-xcoeffs methods = MUS_DATA_WRAPPER and G_FILTER_XCOEFFS */
+      if (out_chans > 0)
+	gn->vcts[G_LOCSIG_DATA] = xen_make_vct_wrapper(out_chans, mus_data(ge));
+      else gn->vcts[G_LOCSIG_DATA] = Xen_undefined;
+      if (rev_chans > 0)
+	gn->vcts[G_LOCSIG_REVDATA] = xen_make_vct_wrapper(rev_chans, mus_xcoeffs(ge));
+      else gn->vcts[G_LOCSIG_REVDATA] = Xen_undefined;
+
+      if (gn->nvcts == 4)
+	{
+	  mus_locsig_set_detour(ge, clm_locsig_detour);
+	  gn->vcts[G_LOCSIG_OUT] = ov;
+	  gn->vcts[G_LOCSIG_REVOUT] = rv;
+	  mus_set_environ(ge, (void *)gn);
+	}
+      gn->gen = ge;
+      return(mus_xen_to_object(gn));
+    }
+  return(Xen_false);
+}
+#else
+static Xen g_make_locsig(Xen arglist)
+{
   mus_any *ge;
   mus_any *outp = NULL, *revp = NULL;
   Xen args[14];
@@ -7724,10 +9191,8 @@ return a new generator for signal placement in n channels.  Channel 0 correspond
     arglist_len = Xen_list_length(arglist);
     if (arglist_len > 14) clm_error(S_make_locsig, "too many arguments!", arglist);
     for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-    for (i = arglist_len; i < 14; i++) args[i] = Xen_undefined;
+    vals = mus_optkey_unscramble(S_make_locsig, arglist_len, 7, keys, args, orig_arg);
   }
-
-  vals = mus_optkey_unscramble(S_make_locsig, 7, keys, args, orig_arg);
   if (vals > 0)
     {
       degree = Xen_optkey_to_float(kw_degree, keys[0], S_make_locsig, orig_arg[0], degree);
@@ -7839,6 +9304,7 @@ return a new generator for signal placement in n channels.  Channel 0 correspond
     }
   return(Xen_false);
 }
+#endif
 
 
 static Xen g_move_locsig(Xen obj, Xen degree, Xen distance)
@@ -8079,11 +9545,7 @@ static Xen g_make_move_sound(Xen dloc_list, Xen outp, Xen revp)
 static Xen xen_one, xen_minus_one;
 
 #if HAVE_SCHEME
-static Xen as_needed_arglist;
-
-static s7_pointer env_symbol, polywave_symbol, triangle_wave_symbol, rand_interp_symbol, oscil_symbol;
-static s7_pointer multiply_symbol, add_symbol, vector_ref_symbol, quote_symbol, cos_symbol, comb_bank_symbol;
-
+static Xen as_needed_arglist_one, as_needed_arglist_minus_one;
 
 static mus_float_t as_needed_input_float(void *ptr, int direction)
 {
@@ -8116,8 +9578,7 @@ static mus_float_t as_needed_block_input_float(void *ptr, int direction, mus_flo
 static mus_float_t as_needed_input_any(void *ptr, int direction)
 {
   mus_xen *gn = (mus_xen *)ptr;
-  s7_set_car(as_needed_arglist, (direction == 1) ? xen_one : xen_minus_one);
-  return(s7_number_to_real(s7, s7_apply_function(s7, gn->vcts[MUS_INPUT_FUNCTION], as_needed_arglist)));
+  return(s7_number_to_real(s7, s7_apply_function(s7, gn->vcts[MUS_INPUT_FUNCTION], (direction == 1) ? as_needed_arglist_one : as_needed_arglist_minus_one)));
 }
 #endif
 
@@ -8339,18 +9800,99 @@ static void set_gn_gen(void *p, mus_any *g)
   gn->gen = g;
 }
 
-static Xen g_make_src(Xen arg1, Xen arg2, Xen arg3, Xen arg4, Xen arg5, Xen arg6)
-{
-  #define H_make_src "(" S_make_src " input (srate 1.0) (width 10)): \
+#define H_make_src "(" S_make_src " input (srate 1.0) (width 10)): \
 return a new sampling-rate conversion generator (using 'warped sinc interpolation'). \
 'srate' is the ratio between the new rate and the old. 'width' is the sine \
 width (effectively the steepness of the low-pass filter), normally between 10 and 100. \
 'input' if given is an open file stream."
 
+#if HAVE_SCHEME
+static s7_pointer g_make_src(s7_scheme *sc, s7_pointer args)
+{
+  s7_pointer in_obj, p;
+  mus_xen *gn;
+  mus_any *ge;
+  mus_float_t srate;
+  int wid = 10;
+  
+  in_obj = s7_car(args); /* input proc 1 arg */
+  if (s7_is_procedure(in_obj))
+    {
+      if (!s7_is_aritable(sc, in_obj, 1))
+	return(s7_wrong_type_arg_error(sc, S_make_src, 1, in_obj, "a function of one argument"));
+    }
+  else
+    {
+      if (mus_is_xen(in_obj))
+	{
+	  if (!mus_is_input(Xen_to_mus_any(in_obj)))
+	    return(s7_wrong_type_arg_error(sc, S_make_src, 1, in_obj, "an input generator"));
+	}
+      else 
+	{
+	  if (in_obj == Xen_false)
+	    in_obj = s7_undefined(sc);
+	  else return(s7_wrong_type_arg_error(sc, S_make_src, 1, in_obj, "a procedure or an input generator"));
+	}
+    }
+
+  p = s7_caddr(args);
+  if (p != Xen_false)
+    {
+      if (!s7_is_integer(p))
+	return(s7_wrong_type_arg_error(sc, S_make_src, 3, p, "an integer"));
+      wid = s7_integer(p);
+      if (wid < 0) 
+	Xen_out_of_range_error(S_make_src, 3, p, "width < 0?");
+      if (wid > 2000) 
+	Xen_out_of_range_error(S_make_src, 3, p, "width > 2000?");
+    }
+  srate = s7_number_to_real(sc, s7_cadr(args));
+  
+  gn = mx_alloc(MUS_MAX_VCTS);
+  {int i; for (i = 0; i < MUS_MAX_VCTS; i++) gn->vcts[i] = Xen_undefined;}
+  /* mus_make_src assumes it can invoke the input function! */
+  gn->vcts[MUS_INPUT_FUNCTION] = in_obj;
+
+  {
+    mus_error_handler_t *old_error_handler;
+    old_error_handler = mus_error_set_handler(local_mus_error);
+    ge = mus_make_src_with_init(NULL, srate, wid, gn, set_gn_gen);
+    mus_error_set_handler(old_error_handler);
+  }
+
+  if (ge)
+    {
+      Xen src_obj;
+#if HAVE_SCHEME
+      unsigned int loc;
+#endif
+      gn->gen = ge;
+      src_obj = mus_xen_to_object(gn);
+#if HAVE_SCHEME
+      loc = s7_gc_protect(s7, src_obj);
+#endif
+      /* src_init can call an input function which can trigger the GC, so we need to GC-protect the new object */
+      gn->vcts[MUS_SELF_WRAPPER] = src_obj;
+      set_as_needed_input_choices(ge, in_obj, gn);
+      mus_src_init(ge);
+#if HAVE_SCHEME
+      s7_gc_unprotect_at(s7, loc);
+#endif
+      return(src_obj);
+    }
+
+  free(gn->vcts);
+  free(gn);
+  return(clm_mus_error(local_error_type, local_error_msg, S_make_src));
+}
+#else
+static Xen g_make_src(Xen arg1, Xen arg2, Xen arg3, Xen arg4, Xen arg5, Xen arg6)
+{
   Xen in_obj = Xen_undefined;
   mus_xen *gn;
   mus_any *ge = NULL;
-  int vals, wid = 0; /* 0 here picks up the current default width in clm.c */
+  int vals, pr = 0, wid = 0; /* 0 here picks up the current default width in clm.c */
   Xen args[6]; 
   Xen keys[3];
   int orig_arg[3] = {0, 0, 0};
@@ -8359,9 +9901,10 @@ width (effectively the steepness of the low-pass filter), normally between 10 an
   keys[0] = kw_input;
   keys[1] = kw_srate;
   keys[2] = kw_width;
-  args[0] = arg1; args[1] = arg2; args[2] = arg3; args[3] = arg4; args[4] = arg5; args[5] = arg6;
 
-  vals = mus_optkey_unscramble(S_make_src, 3, keys, args, orig_arg);
+  if (Aok(arg1)) {args[pr++] = arg1; if (Aok(arg2)) {args[pr++] = arg2; if (Aok(arg3)) {args[pr++] = arg3; 
+	if (Aok(arg4)) {args[pr++] = arg4; if (Aok(arg5)) {args[pr++] = arg5; if (Aok(arg6)) {args[pr++] = arg6; }}}}}}
+  vals = mus_optkey_unscramble(S_make_src, pr, 3, keys, args, orig_arg);
   if (vals > 0)
     {
       in_obj = mus_optkey_to_input_procedure(keys[0], S_make_src, orig_arg[0], Xen_undefined, 1, "src input procedure takes 1 arg");
@@ -8415,7 +9958,7 @@ width (effectively the steepness of the low-pass filter), normally between 10 an
   free(gn);
   return(clm_mus_error(local_error_type, local_error_msg, S_make_src));
 }
-
+#endif
 
 
 
@@ -8469,17 +10012,153 @@ static Xen g_granulate(Xen obj, Xen func, Xen edit_func)
 }
 
 
-static Xen g_make_granulate(Xen arglist)
+#define H_make_granulate "(" S_make_granulate " input (expansion 1.0) (length .15) (scaler .6) (hop .05) (ramp .4) (jitter 1.0) max-size edit): \
+ return a new granular synthesis generator.  'length' is the grain length (seconds), 'expansion' is the ratio in timing \
+ between the new and old (expansion > 1.0 slows things down), 'scaler' scales the grains \
+ to avoid overflows, 'hop' is the spacing (seconds) between successive grains upon output. \
+ 'jitter' controls the randomness in that spacing, 'input' can be a file pointer. 'edit' can \
+ be a function of one arg, the current granulate generator.  It is called just before \
+ a grain is added into the output buffer. The current grain is accessible via " S_mus_data ". \
+ The edit function, if any, should return the length in samples of the grain, or 0."
+
+#if HAVE_SCHEME
+static s7_pointer g_make_granulate(s7_scheme *sc, s7_pointer args)
 {
-  #define H_make_granulate "(" S_make_granulate " input (expansion 1.0) (length .15) (scaler .6) (hop .05) (ramp .4) (jitter 1.0) max-size edit): \
-return a new granular synthesis generator.  'length' is the grain length (seconds), 'expansion' is the ratio in timing \
-between the new and old (expansion > 1.0 slows things down), 'scaler' scales the grains \
-to avoid overflows, 'hop' is the spacing (seconds) between successive grains upon output. \
-'jitter' controls the randomness in that spacing, 'input' can be a file pointer. 'edit' can \
-be a function of one arg, the current granulate generator.  It is called just before \
-a grain is added into the output buffer. The current grain is accessible via " S_mus_data ". \
-The edit function, if any, should return the length in samples of the grain, or 0."
+  s7_pointer in_obj, edit_obj, grn_obj, p, fp;
+  mus_xen *gn;
+  mus_any *ge;
+
+  mus_float_t expansion = 1.0, segment_length = .15, segment_scaler = .6, ramp_time = .4, output_hop = .05, jitter = 1.0;
+  int maxsize = 0;
 
+  in_obj = s7_car(args); /* input proc 1 arg */
+  if (s7_is_procedure(in_obj))
+    {
+      if (!s7_is_aritable(sc, in_obj, 1))
+	return(s7_wrong_type_arg_error(sc, S_make_granulate, 1, in_obj, "a function of one argument"));
+    }
+  else
+    {
+      if (mus_is_xen(in_obj))
+	{
+	  if (!mus_is_input(Xen_to_mus_any(in_obj)))
+	    return(s7_wrong_type_arg_error(sc, S_make_granulate, 1, in_obj, "an input generator"));
+	}
+      else 
+	{
+	  if (in_obj == Xen_false)
+	    in_obj = s7_undefined(sc);
+	  else return(s7_wrong_type_arg_error(sc, S_make_granulate, 1, in_obj, "a procedure or an input generator"));
+	}
+    }
+
+  fp = s7_cadr(args);
+  if (fp != Xen_false)
+    {
+      expansion = s7_number_to_real(sc, fp);
+      if (expansion <= 0.0) 
+	Xen_out_of_range_error(S_make_granulate, 2, fp, "expansion <= 0.0?");
+    }
+  p = s7_cddr(args);
+  fp = s7_car(p);
+  if (fp != Xen_false)
+    {
+      segment_length = s7_number_to_real(sc, fp);
+      if (segment_length <= 0.0) 
+	Xen_out_of_range_error(S_make_granulate, 3, fp, "segment-length <= 0.0?");
+    }
+
+  fp = s7_cadr(p);
+  if (fp != Xen_false)
+    {
+      segment_scaler = s7_number_to_real(sc, fp);
+      if (segment_scaler == 0.0) 
+	Xen_out_of_range_error(S_make_granulate, 4, fp, "segment-scaler should be greater than 0.0?");
+    }
+
+  p = s7_cddr(p);
+  fp = s7_car(p);
+  if (fp != Xen_false)
+    {
+      output_hop = s7_number_to_real(sc, fp);
+      if (output_hop <= 0.0) 
+	Xen_out_of_range_error(S_make_granulate, 5, fp, "hop <= 0?");
+      if (output_hop > 3600.0) 
+	Xen_out_of_range_error(S_make_granulate, 5, fp, "hop > 3600?");
+      if ((segment_length + output_hop) > 60.0) /* multiplied by srate in mus_make_granulate in array allocation */
+	Xen_out_of_range_error(S_make_granulate, 5, fp, "segment_length + output_hop too large!");
+    }
+
+  fp = s7_cadr(p);
+  if (fp != Xen_false)
+    {
+      ramp_time = s7_number_to_real(sc, fp);
+      if ((ramp_time < 0.0) || (ramp_time > 0.5))
+	Xen_out_of_range_error(S_make_granulate, 6, fp, "ramp must be between 0.0 and 0.5");
+    }
+
+  p = s7_cddr(p);
+  fp = s7_car(p);
+  if (fp != Xen_false)
+    {
+      jitter = s7_number_to_real(sc, fp);
+      if ((jitter < 0.0) || (jitter > 100.0))
+	Xen_out_of_range_error(S_make_granulate, 7, fp, "jitter must be between 0.0 and 100.0");
+    }
+
+  fp = s7_cadr(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_make_granulate, 8, fp, "an integer"));
+      maxsize = s7_integer(fp);
+      if ((maxsize > mus_max_malloc()) || (maxsize <= 0))
+	Xen_out_of_range_error(S_make_granulate, 8, fp, "max-size invalid");
+    }
+
+  edit_obj = s7_caddr(p);
+  if (edit_obj != Xen_false)
+    {
+      if (s7_is_procedure(edit_obj))
+	{
+	  if (!s7_is_aritable(sc, edit_obj, 1))
+	    return(s7_wrong_type_arg_error(sc, S_make_granulate, 9, edit_obj, "a function of one argument"));
+	}
+      else return(s7_wrong_type_arg_error(sc, S_make_granulate, 9, edit_obj, "a procedure"));
+    }
+  else edit_obj = s7_undefined(sc);
+
+  gn = mx_alloc(MUS_MAX_VCTS);
+  {int i; for (i = 0; i < MUS_MAX_VCTS; i++) gn->vcts[i] = Xen_undefined;}
+  {
+    mus_error_handler_t *old_error_handler;
+    old_error_handler = mus_error_set_handler(local_mus_error);
+    ge = mus_make_granulate(NULL, 
+			    expansion, segment_length, segment_scaler, output_hop, ramp_time, jitter, maxsize, 
+			    (!Xen_is_bound(edit_obj) ? NULL : grnedit),
+			    (void *)gn);
+    mus_error_set_handler(old_error_handler);
+  }
+
+  if (ge)
+    {
+      gn->vcts[MUS_DATA_WRAPPER] = xen_make_vct_wrapper(mus_granulate_grain_max_length(ge), mus_data(ge));
+      gn->vcts[MUS_INPUT_FUNCTION] = in_obj;
+      gn->vcts[MUS_EDIT_FUNCTION] = edit_obj;
+      gn->gen = ge;
+      grn_obj = mus_xen_to_object(gn);
+      gn->vcts[MUS_SELF_WRAPPER] = grn_obj;
+      set_as_needed_input_choices(ge, in_obj, gn);
+      return(grn_obj);
+    }
+
+  free(gn->vcts);
+  free(gn);
+  return(clm_mus_error(local_error_type, local_error_msg, S_make_granulate));
+}
+#else
+static Xen g_make_granulate(Xen arglist)
+{
   Xen in_obj = Xen_undefined;
   mus_xen *gn;
   mus_any *ge;
@@ -8507,10 +10186,8 @@ The edit function, if any, should return the length in samples of the grain, or
     arglist_len = Xen_list_length(arglist);
     if (arglist_len > 18) clm_error(S_make_granulate, "too many arguments!", arglist);
     for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-    for (i = arglist_len; i < 18; i++) args[i] = Xen_undefined;
+    vals = mus_optkey_unscramble(S_make_granulate, arglist_len, 9, keys, args, orig_arg);
   }
-
-  vals = mus_optkey_unscramble(S_make_granulate, 9, keys, args, orig_arg);
   if (vals > 0)
     {
       in_obj = mus_optkey_to_input_procedure(keys[0], S_make_granulate, orig_arg[0], Xen_undefined, 1, "granulate input procedure takes 1 arg");
@@ -8579,8 +10256,7 @@ The edit function, if any, should return the length in samples of the grain, or
   free(gn);
   return(clm_mus_error(local_error_type, local_error_msg, S_make_granulate));
 }
-
-
+#endif
 
 
 /* ---------------- convolve ---------------- */
@@ -8615,11 +10291,82 @@ static Xen g_convolve(Xen obj, Xen func)
 
 /* filter-size? */
 
-static Xen g_make_convolve(Xen arglist)
-{
-  #define H_make_convolve "(" S_make_convolve " input filter fft-size): \
+#define H_make_convolve "(" S_make_convolve " input filter fft-size): \
 return a new convolution generator which convolves its input with the impulse response 'filter'."
 
+#if HAVE_SCHEME
+static s7_pointer g_make_convolve(s7_scheme *sc, s7_pointer args)
+{
+  mus_xen *gn;
+  mus_any *ge;
+  s7_pointer filter, in_obj, fs;
+  mus_long_t fft_size;
+  
+  filter = s7_cadr(args);
+  if (!s7_is_float_vector(filter))
+    return(s7_wrong_type_arg_error(sc, S_make_convolve, 2, filter, "a float-vector"));
+  
+  in_obj = s7_car(args); /* input proc 1 arg */
+  if (s7_is_procedure(in_obj))
+    {
+      if (!s7_is_aritable(sc, in_obj, 1))
+	return(s7_wrong_type_arg_error(sc, S_make_convolve, 1, in_obj, "a function of one argument"));
+    }
+  else
+    {
+      if (mus_is_xen(in_obj))
+	{
+	  if (!mus_is_input(Xen_to_mus_any(in_obj)))
+	    return(s7_wrong_type_arg_error(sc, S_make_convolve, 1, in_obj, "an input generator"));
+	}
+      else 
+	{
+	  if (in_obj == Xen_false)
+	    in_obj = s7_undefined(sc);
+	  else return(s7_wrong_type_arg_error(sc, S_make_convolve, 1, in_obj, "a procedure or an input generator"));
+	}
+    }
+
+  fs = s7_caddr(args);
+  if (fs != Xen_false)
+    {
+      if (!s7_is_integer(fs))
+	return(s7_wrong_type_arg_error(sc, S_make_convolve, 3, fs, "an integer"));
+      fft_size = s7_integer(fs);
+      if ((fft_size  <= 0) || 
+	  (fft_size > mus_max_malloc()))
+	Xen_out_of_range_error(S_make_convolve, 3, fs, "fft-size invalid (see mus-max-malloc))");
+    }
+  else 
+    {
+      fft_size = s7_vector_length(filter);
+      if (is_power_of_2(fft_size))
+	fft_size *= 2;
+      else fft_size = (mus_long_t)pow(2.0, 1 + (int)(log((mus_float_t)(fft_size + 1)) / log(2.0)));
+    }
+
+  gn = mx_alloc(MUS_MAX_VCTS);
+  {int i; for (i = 0; i < MUS_MAX_VCTS; i++) gn->vcts[i] = Xen_undefined;}
+  ge = mus_make_convolve(NULL, s7_float_vector_elements(filter), fft_size, s7_vector_length(filter), gn);
+  if (ge)
+    {
+      Xen c_obj;
+      gn->vcts[MUS_INPUT_FUNCTION] = in_obj;
+      gn->vcts[MUS_ANALYZE_FUNCTION] = filter; /* why is this here? GC protection? (might be a locally-allocated vct as from file->vct) */
+      gn->gen = ge;
+      c_obj = mus_xen_to_object(gn);
+      gn->vcts[MUS_SELF_WRAPPER] = c_obj;
+      set_as_needed_input_choices(ge, in_obj, gn);
+      return(c_obj);
+    }
+
+  free(gn->vcts);
+  free(gn);
+  return(Xen_false);
+}
+#else
+static Xen g_make_convolve(Xen arglist)
+{
   mus_xen *gn;
   mus_any *ge;
   Xen args[6];
@@ -8640,10 +10387,8 @@ return a new convolution generator which convolves its input with the impulse re
     arglist_len = Xen_list_length(arglist);
     if (arglist_len > 6) clm_error(S_make_convolve, "too many arguments!", arglist);
     for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-    for (i = arglist_len; i < 6; i++) args[i] = Xen_undefined;
+    vals = mus_optkey_unscramble(S_make_convolve, arglist_len, 3, keys, args, orig_arg);
   }
-
-  vals = mus_optkey_unscramble(S_make_convolve, 3, keys, args, orig_arg);
   if (vals > 0)
     {
       in_obj = mus_optkey_to_input_procedure(keys[0], S_make_convolve, orig_arg[0], Xen_undefined, 1, "convolve input procedure takes 1 arg");
@@ -8692,6 +10437,7 @@ return a new convolution generator which convolves its input with the impulse re
   free(gn);
   return(clm_mus_error(local_error_type, local_error_msg, S_make_convolve));
 }
+#endif
 
 
 static Xen g_convolve_files(Xen file1, Xen file2, Xen maxamp, Xen outfile)
@@ -8831,40 +10577,183 @@ static Xen g_phase_vocoder(Xen obj, Xen func, Xen analyze_func, Xen edit_func, X
   return(C_double_to_Xen_real(mus_phase_vocoder(g, NULL)));
 }
 
-
-static Xen g_make_phase_vocoder(Xen arglist)
-{
-  #if HAVE_SCHEME
+#if HAVE_SCHEME
     #define pv_example "(" S_make_phase_vocoder " #f 512 4 256 1.0 #f #f #f)"
     #define pv_edit_example "(" S_make_phase_vocoder " #f 512 4 256 1.0\n\
     (lambda (v infunc) (snd-print \"analyzing\") #t)\n\
     (lambda (v) (snd-print \"editing\") #t)\n\
     (lambda (v) (snd-print \"resynthesizing\") 0.0))"
-  #endif
-  #if HAVE_RUBY
+#endif
+#if HAVE_RUBY
     #define pv_example "make_phase_vocoder(false, 512, 4, 256, 1.0, false, false, false)"
     #define pv_edit_example "make_phase_vocoder(false, 512, 4, 256, 1.0,\n\
         lambda do | v, infunc | snd_print(\"analyzing\"); true end,\n\
         lambda do | v | snd_print(\"editing\"); true end,\n\
         lambda do | v | snd_print(\"resynthesizing\"); 0.0 end)"
-  #endif
-  #if HAVE_FORTH
+#endif
+#if HAVE_FORTH
     #define pv_example "#f 512 4 256 1.0 #f #f #f " S_make_phase_vocoder
     #define pv_edit_example "#f 512 4 256 1.0\n\
     lambda: <{ v infunc -- f }> \"analyzing\" snd-print drop #t ;\n\
     lambda: <{ v -- n }> \"editing\" snd-print drop #t ;\n\
     lambda: <{ v -- r }> \"resynthesizing\" snd-print drop 0.0 ; " S_make_phase_vocoder
-  #endif
+#endif
 
-  #define H_make_phase_vocoder "(" S_make_phase_vocoder " input fft-size overlap interp pitch analyze edit synthesize): \
+#define H_make_phase_vocoder "(" S_make_phase_vocoder " input fft-size overlap interp pitch analyze edit synthesize): \
 return a new phase-vocoder generator; input is the input function (it can be set at run-time), analyze, edit, \
 and synthesize are either " PROC_FALSE " or functions that replace the default innards of the generator, fft-size, overlap \
 and interp set the fftsize, the amount of overlap between ffts, and the time between new analysis calls. \
 'analyze', if given, takes 2 args, the generator and the input function; if it returns " PROC_TRUE ", the default analysis \
 code is also called.  'edit', if given, takes 1 arg, the generator; if it returns " PROC_TRUE ", the default edit code \
 is run.  'synthesize' is a function of 1 arg, the generator; it is called to get the current vocoder \
-output. \n\n  " pv_example "\n\n  " pv_edit_example
+output. \n\n  " pv_example "\n\n  " pv_edit_example "."
+
+#if HAVE_SCHEME
+static s7_pointer g_make_phase_vocoder(s7_scheme *sc, s7_pointer args)
+{
+  mus_xen *gn;
+  mus_any *ge;
+  s7_pointer in_obj, edit_obj, synth_obj, analyze_obj, p, pv_obj, fp;
+  mus_float_t pitch;
+  int fft_size, overlap, interp;
+
+  in_obj = s7_car(args); /* input proc 1 arg */
+  if (s7_is_procedure(in_obj))
+    {
+      if (!s7_is_aritable(sc, in_obj, 1))
+	return(s7_wrong_type_arg_error(sc, S_make_phase_vocoder, 1, in_obj, "a function of one argument"));
+    }
+  else
+    {
+      if (mus_is_xen(in_obj))
+	{
+	  if (!mus_is_input(Xen_to_mus_any(in_obj)))
+	    return(s7_wrong_type_arg_error(sc, S_make_phase_vocoder, 1, in_obj, "an input generator"));
+	}
+      else 
+	{
+	  if (in_obj == Xen_false)
+	    in_obj = s7_undefined(sc);
+	  else return(s7_wrong_type_arg_error(sc, S_make_phase_vocoder, 1, in_obj, "a procedure or an input generator"));
+	}
+    }
 
+  fp = s7_cadr(args);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_make_phase_vocoder, 2, fp, "an integer"));
+      fft_size = s7_integer(fp);
+      if (fft_size <= 1) 
+	Xen_out_of_range_error(S_make_phase_vocoder, 2, fp, "fft size <= 1?");
+      if (fft_size > mus_max_malloc())
+	Xen_out_of_range_error(S_make_phase_vocoder, 2, fp, "fft size too large (see mus-max-malloc)");
+      if (!is_power_of_2(fft_size))
+	Xen_out_of_range_error(S_make_phase_vocoder, 2, fp, "fft size must be power of 2");
+    }
+  else fft_size = 512;
+  
+  p = s7_cddr(args);
+  fp = s7_car(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_make_phase_vocoder, 3, fp, "an integer"));
+      overlap = s7_integer(fp);
+      if (overlap <= 0)
+	Xen_out_of_range_error(S_make_phase_vocoder, 3, fp, "overlap <= 0?");
+    }
+  else overlap = 4;
+
+  fp = s7_cadr(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_make_phase_vocoder, 4, fp, "an integer"));
+      interp = s7_integer(fp);
+      if (interp <= 0)
+	Xen_out_of_range_error(S_make_phase_vocoder, 4, fp, "interp <= 0?");
+    }
+  else interp = 128;
+
+  p = s7_cddr(p);
+  fp = s7_car(p);
+  if (fp != Xen_false)
+    pitch = s7_number_to_real(sc, fp);
+  else pitch = 1.0;
+
+  analyze_obj = s7_cadr(p);
+  if (analyze_obj != Xen_false)
+    {
+      if (s7_is_procedure(analyze_obj))
+	{
+	  if (!s7_is_aritable(sc, analyze_obj, 2))
+	    return(s7_wrong_type_arg_error(sc, S_make_phase_vocoder, 6, analyze_obj, "a function of two arguments"));
+	}
+      else return(s7_wrong_type_arg_error(sc, S_make_phase_vocoder, 6, analyze_obj, "a procedure"));
+    }
+  else analyze_obj = s7_undefined(sc);
+
+  p = s7_cddr(p);
+  edit_obj = s7_car(p);
+  if (edit_obj != Xen_false)
+    {
+      if (s7_is_procedure(edit_obj))
+	{
+	  if (!s7_is_aritable(sc, edit_obj, 1))
+	    return(s7_wrong_type_arg_error(sc, S_make_phase_vocoder, 7, edit_obj, "a function of one argument"));
+	}
+      else return(s7_wrong_type_arg_error(sc, S_make_phase_vocoder, 7, edit_obj, "a procedure"));
+    }
+  else edit_obj = s7_undefined(sc);
+  
+  synth_obj = s7_cadr(p);
+  if (synth_obj != Xen_false)
+    {
+      if (s7_is_procedure(synth_obj))
+	{
+	  if (!s7_is_aritable(sc, synth_obj, 1))
+	    return(s7_wrong_type_arg_error(sc, S_make_phase_vocoder, 8, synth_obj, "a function of one argument"));
+	}
+      else return(s7_wrong_type_arg_error(sc, S_make_phase_vocoder, 8, synth_obj, "a procedure"));
+    }
+  else synth_obj = s7_undefined(sc);
+  
+  gn = mx_alloc(MUS_MAX_VCTS);
+  {int i; for (i = 0; i < MUS_MAX_VCTS; i++) gn->vcts[i] = Xen_undefined;}
+  {
+    mus_error_handler_t *old_error_handler;
+    old_error_handler = mus_error_set_handler(local_mus_error);
+    ge = mus_make_phase_vocoder(NULL,
+				fft_size, overlap, interp, pitch,
+				(!Xen_is_bound(analyze_obj) ? NULL : pvanalyze),
+				(!Xen_is_bound(edit_obj) ? NULL : pvedit),
+				(!Xen_is_bound(synth_obj) ? NULL : pvsynthesize),
+				(void *)gn);
+    mus_error_set_handler(old_error_handler);
+  }
+
+  if (ge)
+    {
+      gn->vcts[MUS_INPUT_FUNCTION] = in_obj;
+      gn->vcts[MUS_EDIT_FUNCTION] = edit_obj;
+      gn->vcts[MUS_ANALYZE_FUNCTION] = analyze_obj;
+      gn->vcts[MUS_SYNTHESIZE_FUNCTION] = synth_obj;
+      gn->gen = ge;
+      pv_obj = mus_xen_to_object(gn);
+      /* need scheme-relative backpointer for possible function calls */
+      gn->vcts[MUS_SELF_WRAPPER] = pv_obj;
+      set_as_needed_input_choices(ge, in_obj, gn);
+      return(pv_obj);
+    }
+
+  free(gn->vcts);
+  free(gn);
+  return(clm_mus_error(local_error_type, local_error_msg, S_make_phase_vocoder));
+}
+#else
+static Xen g_make_phase_vocoder(Xen arglist)
+{
   Xen in_obj = Xen_undefined, edit_obj = Xen_undefined, synthesize_obj = Xen_undefined, analyze_obj = Xen_undefined;
   mus_xen *gn;
   mus_any *ge;
@@ -8891,10 +10780,8 @@ output. \n\n  " pv_example "\n\n  " pv_edit_example
     arglist_len = Xen_list_length(arglist);
     if (arglist_len > 16) clm_error(S_make_phase_vocoder, "too many arguments!", arglist);
     for (i = 0, p = arglist; i < arglist_len; i++, p = Xen_cdr(p)) args[i] = Xen_car(p);
-    for (i = arglist_len; i < 16; i++) args[i] = Xen_undefined;
+    vals = mus_optkey_unscramble(S_make_phase_vocoder, arglist_len, 8, keys, args, orig_arg);
   }
-
-  vals = mus_optkey_unscramble(S_make_phase_vocoder, 8, keys, args, orig_arg);
   if (vals > 0)
     {
       in_obj = mus_optkey_to_input_procedure(keys[0], S_make_phase_vocoder, orig_arg[0], Xen_undefined, 1, S_phase_vocoder " input procedure takes 1 arg");
@@ -8954,6 +10841,7 @@ output. \n\n  " pv_example "\n\n  " pv_edit_example
   free(gn);
   return(clm_mus_error(local_error_type, local_error_msg, S_make_phase_vocoder));
 }
+#endif
 
 
 static Xen g_phase_vocoder_amps(Xen pv) 
@@ -9047,27 +10935,52 @@ static Xen g_is_ssb_am(Xen obj)
 }
 
 
+#if HAVE_SCHEME
+static s7_pointer g_make_ssb_am(s7_scheme *sc, s7_pointer args)
+{
+  #define H_make_ssb_am "(" S_make_ssb_am " (frequency 0.0) (order 40)): return a new " S_ssb_am " generator."
+  #define MUS_MAX_SSB_ORDER 65536
+  mus_any *ge;
+  int order;
+  mus_float_t freq;
+  s7_pointer un;
+
+  freq = s7_number_to_real(s7, s7_car(args));
+  if (freq > (0.5 * mus_srate()))
+    Xen_out_of_range_error(S_make_ssb_am, 1, s7_car(args), "freq > srate/2?");
+  
+  un = s7_cadr(args);
+  if (!s7_is_integer(un))
+    return(s7_wrong_type_arg_error(s7, S_make_ssb_am, 2, un, "an integer"));
+  order = s7_integer(un);
+  if (order <= 0)
+    Xen_out_of_range_error(S_make_ssb_am, 2, un, "order <= 0?");
+  if (order > MUS_MAX_SSB_ORDER)
+    Xen_out_of_range_error(S_make_ssb_am, 2, un, "order too large?");
+
+  ge = mus_make_ssb_am(freq, order);
+  if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
+  return(Xen_false);
+}
+#else
 static Xen g_make_ssb_am(Xen arg1, Xen arg2, Xen arg3, Xen arg4)
 {
-  #define H_make_ssb_am "(" S_make_ssb_am " (frequency *clm-default-frequency*) (order 40)): \
-return a new " S_ssb_am " generator."
+  #define H_make_ssb_am "(" S_make_ssb_am " (frequency 0.0) (order 40)): return a new " S_ssb_am " generator."
   #define MUS_MAX_SSB_ORDER 65536
 
   mus_any *ge;
   Xen args[4]; 
   Xen keys[2];
   int orig_arg[2] = {0, 0};
-  int vals;
+  int vals, pr = 0;
   int order = 40;
-  mus_float_t freq;
-
-  freq = clm_default_frequency;
+  mus_float_t freq = 0.0;
 
   keys[0] = kw_frequency;
   keys[1] = kw_order;
-  args[0] = arg1; args[1] = arg2; args[2] = arg3; args[3] = arg4;
 
-  vals = mus_optkey_unscramble(S_make_ssb_am, 2, keys, args, orig_arg);
+  if (Aok(arg1)) {args[pr++] = arg1; if (Aok(arg2)) {args[pr++] = arg2; if (Aok(arg3)) {args[pr++] = arg3; if (Aok(arg4)) {args[pr++] = arg4;}}}}
+  vals = mus_optkey_unscramble(S_make_ssb_am, pr, 2, keys, args, orig_arg);
   if (vals > 0)
     {
       freq = Xen_optkey_to_float(kw_frequency, keys[0], S_make_ssb_am, orig_arg[0], freq);
@@ -9085,7 +10998,7 @@ return a new " S_ssb_am " generator."
   if (ge) return(mus_xen_to_object(mus_any_to_mus_xen(ge)));
   return(Xen_false);
 }
-
+#endif
 
 static Xen g_ssb_am(Xen obj, Xen insig, Xen fm)
 {
@@ -9754,7 +11667,7 @@ GEN_2(wave_train, mus_wave_train_unmodulated, mus_wave_train)
 GEN_3(ssb_am, mus_ssb_am_0, mus_ssb_am_unmodulated, mus_ssb_am)
 GEN_2(tap, mus_tap_unmodulated, mus_tap)
 
-/* convolve and phase-vocoder are omitted because their editing functions can
+/* granulate and phase-vocoder are omitted because their editing functions can
  *   involve loops, causing the optimizer to step on itself.  Ideally, and
  *   maybe eventually, the optimized program would be sequestered, but for
  *   now these two generators will run slower.  One quick fix would be to 
@@ -9891,6 +11804,11 @@ static s7_double polynomial_d_pd(s7_pointer v, s7_double x)
   return(mus_polynomial(s7_float_vector_elements(v), x, s7_vector_length(v)));
 }
 
+static s7_double array_interp_d_pd(s7_pointer v, s7_double x)
+{
+  return(mus_array_interp(s7_float_vector_elements(v), x, s7_vector_length(v)));
+}
+
 
 #define DF_1(Call) static s7_double mus_ ## Call ## _d(s7_double x) {return((s7_double)mus_ ## Call((mus_float_t)x));}
 #define DF_2(Call) static s7_double mus_ ## Call ## _d(s7_double x1, s7_double x2) {return((s7_double)mus_ ## Call((mus_float_t)x1, (mus_float_t)x2));}
@@ -9905,6 +11823,8 @@ DF_1(radians_to_degrees)
 DF_1(degrees_to_radians)
 DF_1(random)
 
+static s7_double mus_hz_to_radians_d_p(s7_pointer x) {return((s7_double)mus_hz_to_radians(s7_number_to_real(s7, x)));}
+
 DF_2(contrast_enhancement)
 DF_2(odd_multiple)
 DF_2(even_multiple)
@@ -9914,20 +11834,6 @@ DF_2(ring_modulate)
 
 static void init_choosers(s7_scheme *sc)
 {
-  env_symbol = s7_make_symbol(sc, S_env);
-  comb_bank_symbol = s7_make_symbol(sc, S_comb_bank);
-  vector_ref_symbol = s7_make_symbol(sc, "vector-ref");
-  polywave_symbol = s7_make_symbol(sc, S_polywave);
-  triangle_wave_symbol = s7_make_symbol(sc, S_triangle_wave);
-  rand_interp_symbol = s7_make_symbol(sc, S_rand_interp);
-  oscil_symbol = s7_make_symbol(sc, S_oscil);
-  multiply_symbol = s7_make_symbol(sc, "*");
-  add_symbol = s7_make_symbol(sc, "+");
-  quote_symbol = s7_make_symbol(sc, "quote");
-  cos_symbol = s7_make_symbol(sc, "cos");
-  mus_copy_symbol = s7_make_symbol(sc, "mus-copy");
-  copy_function = s7_name_to_value(sc, "copy");
-
   sym_frequency = s7_make_symbol(sc, S_mus_frequency);
   sym_phase = s7_make_symbol(sc, S_mus_phase);
   sym_scaler = s7_make_symbol(sc, S_mus_scaler);
@@ -9937,6 +11843,9 @@ static void init_choosers(s7_scheme *sc)
   sym_feedforward = s7_make_symbol(sc, S_mus_feedforward);
   sym_feedback = s7_make_symbol(sc, S_mus_feedback);
 
+  mus_copy_symbol = s7_make_symbol(sc, "mus-copy");
+  copy_function = s7_name_to_value(sc, "copy");
+
 #if (!WITH_GMP)
   s7_set_d_function(s7_name_to_value(sc, S_mus_srate), mus_srate);
   s7_set_d_function(s7_name_to_value(sc, S_mus_float_equal_fudge_factor), mus_float_equal_fudge_factor);
@@ -10149,6 +12058,7 @@ static void init_choosers(s7_scheme *sc)
   s7_set_d_d_function(s7_name_to_value(sc, S_odd_weight), mus_odd_weight_d);
   s7_set_d_d_function(s7_name_to_value(sc, S_even_weight), mus_even_weight_d);
   s7_set_d_d_function(s7_name_to_value(sc, S_hz_to_radians), mus_hz_to_radians_d);
+  s7_set_d_p_function(s7_name_to_value(sc, S_hz_to_radians), mus_hz_to_radians_d_p);
   s7_set_d_d_function(s7_name_to_value(sc, S_radians_to_hz), mus_radians_to_hz_d);
   s7_set_d_d_function(s7_name_to_value(sc, S_db_to_linear), mus_db_to_linear_d);
   s7_set_d_d_function(s7_name_to_value(sc, S_linear_to_db), mus_linear_to_db_d);
@@ -10174,6 +12084,7 @@ static void init_choosers(s7_scheme *sc)
   s7_set_d_p_function(s7_name_to_value(sc, S_pink_noise), mus_pink_noise);
   s7_set_d_pd_function(s7_name_to_value(sc, S_piano_noise), piano_noise_d_pd);
   s7_set_d_pd_function(s7_name_to_value(sc, S_polynomial), polynomial_d_pd);
+  s7_set_d_pd_function(s7_name_to_value(sc, S_array_interp), array_interp_d_pd);
 
   s7_set_d_vid_function(s7_name_to_value(sc, S_locsig), locsig_d_vid);
   s7_set_d_vid_function(s7_name_to_value(sc, S_locsig_set), locsig_set_d_vid);
@@ -10318,14 +12229,6 @@ Xen_wrap_3_optional_args(g_oscil_w, g_oscil)
 Xen_wrap_1_arg(g_is_oscil_bank_w, g_is_oscil_bank)
 Xen_wrap_1_arg(g_oscil_bank_w, g_oscil_bank)
 Xen_wrap_any_args(g_mus_apply_w, g_mus_apply)
-Xen_wrap_any_args(g_make_delay_w, g_make_delay)
-Xen_wrap_any_args(g_make_comb_w, g_make_comb)
-Xen_wrap_any_args(g_make_filtered_comb_w, g_make_filtered_comb)
-Xen_wrap_any_args(g_make_notch_w, g_make_notch)
-Xen_wrap_any_args(g_make_all_pass_w, g_make_all_pass)
-Xen_wrap_any_args(g_make_moving_average_w, g_make_moving_average)
-Xen_wrap_any_args(g_make_moving_max_w, g_make_moving_max)
-Xen_wrap_any_args(g_make_moving_norm_w, g_make_moving_norm)
 Xen_wrap_3_optional_args(g_delay_w, g_delay)
 Xen_wrap_2_optional_args(g_delay_tick_w, g_delay_tick)
 Xen_wrap_2_optional_args(g_tap_w, g_tap)
@@ -10351,8 +12254,6 @@ Xen_wrap_1_arg(g_is_ncos_w, g_is_ncos)
 Xen_wrap_2_optional_args(g_nsin_w, g_nsin)
 Xen_wrap_1_arg(g_is_nsin_w, g_is_nsin)
 
-Xen_wrap_any_args(g_make_rand_w, g_make_rand)
-Xen_wrap_any_args(g_make_rand_interp_w, g_make_rand_interp)
 Xen_wrap_2_optional_args(g_rand_w, g_rand)
 Xen_wrap_2_optional_args(g_rand_interp_w, g_rand_interp)
 Xen_wrap_1_arg(g_is_rand_w, g_is_rand)
@@ -10361,20 +12262,15 @@ Xen_wrap_1_arg(g_mus_random_w, g_mus_random)
 Xen_wrap_no_args(g_mus_rand_seed_w, g_mus_rand_seed)
 Xen_wrap_1_arg(g_mus_set_rand_seed_w, g_mus_set_rand_seed)
 Xen_wrap_1_arg(g_is_table_lookup_w, g_is_table_lookup)
-Xen_wrap_any_args(g_make_table_lookup_w, g_make_table_lookup)
 Xen_wrap_2_optional_args(g_table_lookup_w, g_table_lookup)
 Xen_wrap_3_optional_args(g_partials_to_wave_w, g_partials_to_wave)
 Xen_wrap_3_optional_args(g_phase_partials_to_wave_w, g_phase_partials_to_wave)
-Xen_wrap_6_optional_args(g_make_sawtooth_wave_w, g_make_sawtooth_wave)
 Xen_wrap_2_optional_args(g_sawtooth_wave_w, g_sawtooth_wave)
 Xen_wrap_1_arg(g_is_sawtooth_wave_w, g_is_sawtooth_wave)
-Xen_wrap_6_optional_args(g_make_triangle_wave_w, g_make_triangle_wave)
 Xen_wrap_2_optional_args(g_triangle_wave_w, g_triangle_wave)
 Xen_wrap_1_arg(g_is_triangle_wave_w, g_is_triangle_wave)
-Xen_wrap_6_optional_args(g_make_square_wave_w, g_make_square_wave)
 Xen_wrap_2_optional_args(g_square_wave_w, g_square_wave)
 Xen_wrap_1_arg(g_is_square_wave_w, g_is_square_wave)
-Xen_wrap_6_optional_args(g_make_pulse_train_w, g_make_pulse_train)
 Xen_wrap_2_optional_args(g_pulse_train_w, g_pulse_train)
 Xen_wrap_1_arg(g_is_pulse_train_w, g_is_pulse_train)
 
@@ -10384,21 +12280,16 @@ Xen_wrap_1_arg(g_is_pulsed_env_w, g_is_pulsed_env)
 
 Xen_wrap_3_optional_args(g_asymmetric_fm_w, g_asymmetric_fm)
 Xen_wrap_1_arg(g_is_asymmetric_fm_w, g_is_asymmetric_fm)
-Xen_wrap_4_optional_args(g_make_one_zero_w, g_make_one_zero)
 Xen_wrap_2_optional_args(g_one_zero_w, g_one_zero)
 Xen_wrap_1_arg(g_is_one_zero_w, g_is_one_zero)
-Xen_wrap_4_optional_args(g_make_one_pole_w, g_make_one_pole)
 Xen_wrap_2_optional_args(g_one_pole_w, g_one_pole)
 Xen_wrap_1_arg(g_is_one_pole_w, g_is_one_pole)
-Xen_wrap_6_optional_args(g_make_two_zero_w, g_make_two_zero)
 Xen_wrap_2_optional_args(g_two_zero_w, g_two_zero)
 Xen_wrap_1_arg(g_is_two_zero_w, g_is_two_zero)
-Xen_wrap_6_optional_args(g_make_two_pole_w, g_make_two_pole)
 Xen_wrap_2_optional_args(g_two_pole_w, g_two_pole)
 Xen_wrap_1_arg(g_is_two_pole_w, g_is_two_pole)
 
 Xen_wrap_1_arg(g_is_formant_w, g_is_formant)
-Xen_wrap_4_optional_args(g_make_formant_w, g_make_formant)
 Xen_wrap_3_optional_args(g_formant_w, g_formant)
 
 Xen_wrap_2_optional_args(g_formant_bank_w, g_formant_bank)
@@ -10406,7 +12297,6 @@ Xen_wrap_1_arg(g_is_formant_bank_w, g_is_formant_bank)
 Xen_wrap_2_optional_args(g_make_formant_bank_w, g_make_formant_bank)
 
 Xen_wrap_1_arg(g_is_firmant_w, g_is_firmant)
-Xen_wrap_4_optional_args(g_make_firmant_w, g_make_firmant)
 Xen_wrap_3_optional_args(g_firmant_w, g_firmant)
 
 Xen_wrap_1_arg(g_is_one_pole_all_pass_w, g_is_one_pole_all_pass)
@@ -10418,10 +12308,8 @@ Xen_wrap_3_args(g_set_formant_radius_and_frequency_w, g_set_formant_radius_and_f
 
 Xen_wrap_5_args(g_frample_to_frample_w, g_frample_to_frample)
 
-Xen_wrap_any_args(g_make_wave_train_w, g_make_wave_train)
 Xen_wrap_2_optional_args(g_wave_train_w, g_wave_train)
 Xen_wrap_1_arg(g_is_wave_train_w, g_is_wave_train)
-Xen_wrap_any_args(g_make_polyshape_w, g_make_polyshape)
 Xen_wrap_3_optional_args(g_polyshape_w, g_polyshape)
 Xen_wrap_1_arg(g_is_polyshape_w, g_is_polyshape)
 Xen_wrap_2_optional_args(g_partials_to_polynomial_w, g_partials_to_polynomial)
@@ -10429,32 +12317,24 @@ Xen_wrap_1_arg(g_normalize_partials_w, g_normalize_partials)
 Xen_wrap_2_args(g_chebyshev_t_sum_w, g_chebyshev_t_sum)
 Xen_wrap_2_args(g_chebyshev_u_sum_w, g_chebyshev_u_sum)
 Xen_wrap_3_args(g_chebyshev_tu_sum_w, g_chebyshev_tu_sum)
-Xen_wrap_any_args(g_make_polywave_w, g_make_polywave)
 Xen_wrap_2_optional_args(g_polywave_w, g_polywave)
 Xen_wrap_1_arg(g_is_polywave_w, g_is_polywave)
 
-Xen_wrap_any_args(g_make_nrxysin_w, g_make_nrxysin)
 Xen_wrap_2_optional_args(g_nrxysin_w, g_nrxysin)
 Xen_wrap_1_arg(g_is_nrxysin_w, g_is_nrxysin)
-Xen_wrap_any_args(g_make_nrxycos_w, g_make_nrxycos)
 Xen_wrap_2_optional_args(g_nrxycos_w, g_nrxycos)
 Xen_wrap_1_arg(g_is_nrxycos_w, g_is_nrxycos)
 
-Xen_wrap_any_args(g_make_rxyksin_w, g_make_rxyksin)
 Xen_wrap_2_optional_args(g_rxyksin_w, g_rxyksin)
 Xen_wrap_1_arg(g_is_rxyksin_w, g_is_rxyksin)
-Xen_wrap_any_args(g_make_rxykcos_w, g_make_rxykcos)
 Xen_wrap_2_optional_args(g_rxykcos_w, g_rxykcos)
 Xen_wrap_1_arg(g_is_rxykcos_w, g_is_rxykcos)
 
-Xen_wrap_6_optional_args(g_make_filter_w, g_make_filter)
 Xen_wrap_2_optional_args(g_filter_w, g_filter)
 Xen_wrap_1_arg(g_is_filter_w, g_is_filter)
-Xen_wrap_4_optional_args(g_make_fir_filter_w, g_make_fir_filter)
 Xen_wrap_2_args(g_make_fir_coeffs_w, g_make_fir_coeffs)
 Xen_wrap_2_optional_args(g_fir_filter_w, g_fir_filter)
 Xen_wrap_1_arg(g_is_fir_filter_w, g_is_fir_filter)
-Xen_wrap_4_optional_args(g_make_iir_filter_w, g_make_iir_filter)
 Xen_wrap_2_optional_args(g_iir_filter_w, g_iir_filter)
 Xen_wrap_1_arg(g_is_iir_filter_w, g_is_iir_filter)
 Xen_wrap_1_arg(g_mus_xcoeffs_w, g_mus_xcoeffs)
@@ -10465,7 +12345,6 @@ Xen_wrap_2_args(g_mus_ycoeff_w, g_mus_ycoeff)
 Xen_wrap_3_args(g_mus_set_ycoeff_w, g_mus_set_ycoeff)
 Xen_wrap_1_arg(g_is_env_w, g_is_env)
 Xen_wrap_1_arg(g_env_w, g_env)
-Xen_wrap_any_args(g_make_env_w, g_make_env)
 Xen_wrap_2_args(g_env_interp_w, g_env_interp)
 Xen_wrap_3_optional_args(g_envelope_interp_w, g_envelope_interp)
 Xen_wrap_2_args(g_env_any_w, g_env_any)
@@ -10502,7 +12381,6 @@ Xen_wrap_no_args(g_mus_file_buffer_size_w, g_mus_file_buffer_size)
 Xen_wrap_1_arg(g_mus_set_file_buffer_size_w, g_mus_set_file_buffer_size)
 Xen_wrap_1_arg(g_is_readin_w, g_is_readin)
 Xen_wrap_1_arg(g_readin_w, g_readin)
-Xen_wrap_any_args(g_make_readin_w, g_make_readin)
 Xen_wrap_1_arg(g_mus_channel_w, g_mus_channel)
 Xen_wrap_1_arg(g_mus_interp_type_w, g_mus_interp_type)
 Xen_wrap_1_arg(g_mus_location_w, g_mus_location)
@@ -10513,7 +12391,6 @@ Xen_wrap_1_arg(g_mus_feedback_w, g_mus_feedback)
 Xen_wrap_2_args(g_mus_set_feedback_w, g_mus_set_feedback)
 Xen_wrap_1_arg(g_is_locsig_w, g_is_locsig)
 Xen_wrap_3_args(g_locsig_w, g_locsig)
-Xen_wrap_any_args(g_make_locsig_w, g_make_locsig)
 Xen_wrap_3_args(g_move_locsig_w, g_move_locsig)
 Xen_wrap_no_args(g_locsig_type_w, g_locsig_type)
 Xen_wrap_1_arg(g_set_locsig_type_w, g_set_locsig_type)
@@ -10528,19 +12405,15 @@ Xen_wrap_3_optional_args(g_make_move_sound_w, g_make_move_sound)
 Xen_wrap_no_args(g_mus_clear_sincs_w, g_mus_clear_sincs)
 Xen_wrap_1_arg(g_is_src_w, g_is_src)
 Xen_wrap_3_optional_args(g_src_w, g_src)
-Xen_wrap_6_optional_args(g_make_src_w, g_make_src)
 Xen_wrap_1_arg(g_is_granulate_w, g_is_granulate)
 Xen_wrap_3_optional_args(g_granulate_w, g_granulate)
-Xen_wrap_any_args(g_make_granulate_w, g_make_granulate)
 Xen_wrap_1_arg(g_mus_ramp_w, g_mus_ramp)
 Xen_wrap_2_args(g_mus_set_ramp_w, g_mus_set_ramp)
 Xen_wrap_1_arg(g_is_convolve_w, g_is_convolve)
 Xen_wrap_2_optional_args(g_convolve_w, g_convolve)
-Xen_wrap_any_args(g_make_convolve_w, g_make_convolve)
 Xen_wrap_4_optional_args(g_convolve_files_w, g_convolve_files)
 Xen_wrap_1_arg(g_is_phase_vocoder_w, g_is_phase_vocoder)
 Xen_wrap_5_optional_args(g_phase_vocoder_w, g_phase_vocoder)
-Xen_wrap_any_args(g_make_phase_vocoder_w, g_make_phase_vocoder)
 Xen_wrap_1_arg(g_phase_vocoder_amp_increments_w, g_phase_vocoder_amp_increments)
 Xen_wrap_1_arg(g_phase_vocoder_amps_w, g_phase_vocoder_amps)
 Xen_wrap_1_arg(g_phase_vocoder_freqs_w, g_phase_vocoder_freqs)
@@ -10548,21 +12421,60 @@ Xen_wrap_1_arg(g_phase_vocoder_phases_w, g_phase_vocoder_phases)
 Xen_wrap_1_arg(g_phase_vocoder_phase_increments_w, g_phase_vocoder_phase_increments)
 Xen_wrap_1_arg(g_mus_hop_w, g_mus_hop)
 Xen_wrap_2_args(g_mus_set_hop_w, g_mus_set_hop)
-Xen_wrap_4_optional_args(g_make_ssb_am_w, g_make_ssb_am)
 Xen_wrap_3_optional_args(g_ssb_am_w, g_ssb_am)
 Xen_wrap_1_arg(g_is_ssb_am_w, g_is_ssb_am)
 Xen_wrap_no_args(g_clm_table_size_w, g_clm_table_size)
 Xen_wrap_1_arg(g_set_clm_table_size_w, g_set_clm_table_size)
-Xen_wrap_no_args(g_clm_default_frequency_w, g_clm_default_frequency)
-Xen_wrap_1_arg(g_set_clm_default_frequency_w, g_set_clm_default_frequency)
 Xen_wrap_1_arg(g_is_mus_generator_w, g_is_mus_generator)
 Xen_wrap_1_arg(g_mus_frandom_w, g_mus_frandom)
 Xen_wrap_1_arg(g_mus_irandom_w, g_mus_irandom)
+#if (!HAVE_SCHEME)
 Xen_wrap_4_optional_args(g_make_oscil_w, g_make_oscil)
+Xen_wrap_4_optional_args(g_make_ssb_am_w, g_make_ssb_am)
 Xen_wrap_4_optional_args(g_make_ncos_w, g_make_ncos)
-Xen_wrap_4_optional_args(g_make_oscil_bank_w, g_make_oscil_bank)
 Xen_wrap_4_optional_args(g_make_nsin_w, g_make_nsin)
 Xen_wrap_8_optional_args(g_make_asymmetric_fm_w, g_make_asymmetric_fm)
+Xen_wrap_any_args(g_make_nrxysin_w, g_make_nrxysin)
+Xen_wrap_any_args(g_make_nrxycos_w, g_make_nrxycos)
+Xen_wrap_any_args(g_make_rxykcos_w, g_make_rxykcos)
+Xen_wrap_any_args(g_make_rxyksin_w, g_make_rxyksin)
+Xen_wrap_4_optional_args(g_make_one_pole_w, g_make_one_pole)
+Xen_wrap_4_optional_args(g_make_one_zero_w, g_make_one_zero)
+Xen_wrap_6_optional_args(g_make_two_zero_w, g_make_two_zero)
+Xen_wrap_6_optional_args(g_make_two_pole_w, g_make_two_pole)
+Xen_wrap_6_optional_args(g_make_filter_w, g_make_filter)
+Xen_wrap_4_optional_args(g_make_fir_filter_w, g_make_fir_filter)
+Xen_wrap_4_optional_args(g_make_iir_filter_w, g_make_iir_filter)
+Xen_wrap_4_optional_args(g_make_formant_w, g_make_formant)
+Xen_wrap_4_optional_args(g_make_firmant_w, g_make_firmant)
+Xen_wrap_6_optional_args(g_make_sawtooth_wave_w, g_make_sawtooth_wave)
+Xen_wrap_6_optional_args(g_make_triangle_wave_w, g_make_triangle_wave)
+Xen_wrap_6_optional_args(g_make_square_wave_w, g_make_square_wave)
+Xen_wrap_6_optional_args(g_make_pulse_train_w, g_make_pulse_train)
+Xen_wrap_any_args(g_make_delay_w, g_make_delay)
+Xen_wrap_any_args(g_make_comb_w, g_make_comb)
+Xen_wrap_any_args(g_make_filtered_comb_w, g_make_filtered_comb)
+Xen_wrap_any_args(g_make_notch_w, g_make_notch)
+Xen_wrap_any_args(g_make_all_pass_w, g_make_all_pass)
+Xen_wrap_any_args(g_make_moving_average_w, g_make_moving_average)
+Xen_wrap_any_args(g_make_moving_max_w, g_make_moving_max)
+Xen_wrap_any_args(g_make_moving_norm_w, g_make_moving_norm)
+Xen_wrap_any_args(g_make_env_w, g_make_env)
+Xen_wrap_any_args(g_make_polywave_w, g_make_polywave)
+Xen_wrap_any_args(g_make_polyshape_w, g_make_polyshape)
+Xen_wrap_any_args(g_make_readin_w, g_make_readin)
+Xen_wrap_any_args(g_make_convolve_w, g_make_convolve)
+Xen_wrap_any_args(g_make_rand_w, g_make_rand)
+Xen_wrap_any_args(g_make_rand_interp_w, g_make_rand_interp)
+Xen_wrap_6_optional_args(g_make_src_w, g_make_src)
+Xen_wrap_any_args(g_make_table_lookup_w, g_make_table_lookup)
+Xen_wrap_any_args(g_make_wave_train_w, g_make_wave_train)
+Xen_wrap_any_args(g_make_phase_vocoder_w, g_make_phase_vocoder)
+Xen_wrap_any_args(g_make_granulate_w, g_make_granulate)
+Xen_wrap_any_args(g_make_locsig_w, g_make_locsig)
+#endif
+
+Xen_wrap_4_optional_args(g_make_oscil_bank_w, g_make_oscil_bank)
 Xen_wrap_any_args(g_mus_file_mix_w, g_mus_file_mix)
 Xen_wrap_any_args(g_mus_file_mix_with_envs_w, g_mus_file_mix_with_envs)
 Xen_wrap_2_optional_args(g_comb_bank_w, g_comb_bank)
@@ -10577,22 +12489,22 @@ Xen_wrap_1_arg(g_make_all_pass_bank_w, g_make_all_pass_bank)
 Xen_wrap_1_arg(g_pink_noise_w, g_pink_noise)
 Xen_wrap_3_args(g_out_bank_w, g_out_bank)
 
+#if (!DISABLE_DEPRECATED)
+Xen_wrap_no_args(g_clm_default_frequency_w, g_clm_default_frequency)
+Xen_wrap_1_arg(g_set_clm_default_frequency_w, g_set_clm_default_frequency)
+#endif
+
 #if HAVE_SCHEME
 Xen_wrap_2_args(g_piano_noise_w, g_piano_noise)
 Xen_wrap_6_args(g_singer_filter_w, g_singer_filter)
 Xen_wrap_5_args(g_singer_nose_filter_w, g_singer_nose_filter)
-#endif
 
-#if HAVE_SCHEME
-  static s7_pointer acc_clm_srate(s7_scheme *sc, s7_pointer args) {return(g_mus_set_srate(s7_cadr(args)));}  
-  static s7_pointer acc_clm_default_frequency(s7_scheme *sc, s7_pointer args) {return(g_set_clm_default_frequency(s7_cadr(args)));}  
-  static s7_pointer acc_clm_table_size(s7_scheme *sc, s7_pointer args) {return(g_set_clm_table_size(s7_cadr(args)));}  
-  static s7_pointer acc_mus_file_buffer_size(s7_scheme *sc, s7_pointer args) {return(g_mus_set_file_buffer_size(s7_cadr(args)));}  
-  static s7_pointer acc_mus_float_equal_fudge_factor(s7_scheme *sc, s7_pointer args) {return(g_mus_set_float_equal_fudge_factor(s7_cadr(args)));}  
-  static s7_pointer acc_mus_array_print_length(s7_scheme *sc, s7_pointer args) {return(g_mus_set_array_print_length(s7_cadr(args)));}  
-#endif
+static s7_pointer acc_clm_srate(s7_scheme *sc, s7_pointer args) {return(g_mus_set_srate(s7_cadr(args)));}  
+static s7_pointer acc_clm_table_size(s7_scheme *sc, s7_pointer args) {return(g_set_clm_table_size(s7_cadr(args)));}  
+static s7_pointer acc_mus_file_buffer_size(s7_scheme *sc, s7_pointer args) {return(g_mus_set_file_buffer_size(s7_cadr(args)));}  
+static s7_pointer acc_mus_float_equal_fudge_factor(s7_scheme *sc, s7_pointer args) {return(g_mus_set_float_equal_fudge_factor(s7_cadr(args)));}  
+static s7_pointer acc_mus_array_print_length(s7_scheme *sc, s7_pointer args) {return(g_mus_set_array_print_length(s7_cadr(args)));}  
 
-#if HAVE_SCHEME
 static char *mus_generator_to_readable_string(s7_scheme *sc, void *obj)
 {
   char *str;
@@ -10603,6 +12515,337 @@ static char *mus_generator_to_readable_string(s7_scheme *sc, void *obj)
   /* s7_error(sc, s7_make_symbol(sc, "io-error"), s7_list(sc, 1, s7_make_string(sc, "can't write a clm generator readably"))); */
   /* return(NULL); */
 }
+
+static s7_pointer generator_to_let(s7_scheme *sc, s7_pointer args)
+{
+  /* this is called upon (object->let <gen>)
+   *   ideally it would be in clm.c, local to each generator like other methods, but we depend on the mus_xen vcts
+   */
+  s7_pointer gen, let;
+  mus_any *g;
+  mus_xen *gn;
+
+  gen = s7_car(args);
+  let = s7_cadr(args);
+  gn = (mus_xen *)s7_object_value(gen);
+  g = gn->gen;  /* gn->nvcts and gn->vcts hold the arrays and functions */
+
+  if (mus_name_exists(g)) 
+    s7_varlet(sc, let, s7_make_symbol(sc, "name"), s7_make_string(sc, mus_name(g)));
+  if (mus_file_name_exists(g)) 
+    s7_varlet(sc, let, s7_make_symbol(sc, "file-name"), s7_make_string(sc, mus_file_name(g)));
+  if ((!mus_is_granulate(g)) && (mus_frequency_exists(g)))
+    s7_varlet(sc, let, s7_make_symbol(sc, "frequency"), s7_make_real(sc, mus_frequency(g)));
+  if ((!mus_is_env(g)) && (mus_phase_exists(g))) 
+    s7_varlet(sc, let, s7_make_symbol(sc, "phase"), s7_make_real(sc, mus_phase(g)));
+
+  if (mus_is_oscil_bank(g))
+    {
+      if (mus_length_exists(g)) 
+	s7_varlet(sc, let, s7_make_symbol(sc, "size"), s7_make_integer(sc, mus_length(g)));
+      if (gn->nvcts == 3)  /* let includes gen (the s7 c_object) which includes gn (the clm2xen mus_xen object), so vcts should be safe (GC protected) */
+	{
+	  s7_varlet(sc, let, s7_make_symbol(sc, "freqs"), gn->vcts[0]);
+	  s7_varlet(sc, let, s7_make_symbol(sc, "phases"), gn->vcts[1]);
+	  s7_varlet(sc, let, s7_make_symbol(sc, "amps"), gn->vcts[2]);
+	}
+    }
+
+  if ((mus_is_nsin(g)) || (mus_is_ncos(g)))
+    {
+      if (mus_length_exists(g)) 
+	s7_varlet(sc, let, s7_make_symbol(sc, "n"), s7_make_integer(sc, mus_length(g)));
+    }
+
+  if ((mus_is_nrxysin(g)) || (mus_is_nrxycos(g)) || (mus_is_asymmetric_fm(g)))
+    {
+      if (mus_length_exists(g)) 
+	s7_varlet(sc, let, s7_make_symbol(sc, "n"), s7_make_integer(sc, mus_length(g)));
+      if (mus_scaler_exists(g)) 
+	s7_varlet(sc, let, s7_make_symbol(sc, "r"), s7_make_real(sc, mus_scaler(g)));
+      if (mus_offset_exists(g)) 
+	s7_varlet(sc, let, s7_make_symbol(sc, "ratio"), s7_make_real(sc, mus_offset(g)));
+    }
+  
+  if ((mus_is_rxyksin(g)) || (mus_is_rxykcos(g)))
+    {
+      if (mus_scaler_exists(g)) 
+	s7_varlet(sc, let, s7_make_symbol(sc, "r"), s7_make_real(sc, mus_scaler(g)));
+      if (mus_offset_exists(g)) 
+	s7_varlet(sc, let, s7_make_symbol(sc, "ratio"), s7_make_real(sc, mus_offset(g)));
+    }
+
+  if ((mus_is_square_wave(g)) || (mus_is_sawtooth_wave(g)) || 
+      (mus_is_pulse_train(g)) || (mus_is_triangle_wave(g)))
+    {
+      if (mus_scaler_exists(g)) 
+	s7_varlet(sc, let, s7_make_symbol(sc, "amplitude"), s7_make_real(sc, mus_scaler(g)));
+    }
+  
+  if (mus_is_fir_filter(g))
+    {
+      if (mus_length_exists(g)) 
+	s7_varlet(sc, let, s7_make_symbol(sc, "order"), s7_make_integer(sc, mus_length(g)));
+      if (gn->nvcts == 3)
+	s7_varlet(sc, let, s7_make_symbol(sc, "xcoeffs"), gn->vcts[G_FILTER_XCOEFFS]);
+    }
+  else
+    {
+      if (mus_is_iir_filter(g))
+	{
+	  if (mus_length_exists(g)) 
+	    s7_varlet(sc, let, s7_make_symbol(sc, "order"), s7_make_integer(sc, mus_length(g)));
+	  if (gn->nvcts == 3)
+	    s7_varlet(sc, let, s7_make_symbol(sc, "ycoeffs"), gn->vcts[G_FILTER_YCOEFFS]);
+	}
+      else
+	{
+	  if (mus_is_filter(g))
+	    {
+	      if (mus_length_exists(g)) 
+		s7_varlet(sc, let, s7_make_symbol(sc, "order"), s7_make_integer(sc, mus_length(g)));
+	      if (gn->nvcts == 3)
+		{
+		  s7_varlet(sc, let, s7_make_symbol(sc, "xcoeffs"), gn->vcts[G_FILTER_XCOEFFS]);
+		  s7_varlet(sc, let, s7_make_symbol(sc, "ycoeffs"), gn->vcts[G_FILTER_YCOEFFS]);
+		}
+	    }
+	}
+    }
+
+  if ((mus_is_one_zero(g)) && (mus_xcoeffs_exists(g)))
+    {
+      mus_float_t *xs;
+      xs = mus_xcoeffs(g);
+      s7_varlet(sc, let, s7_make_symbol(sc, "a0"), s7_make_real(sc, xs[0]));
+      s7_varlet(sc, let, s7_make_symbol(sc, "a1"), s7_make_real(sc, xs[1]));
+    }
+  if (mus_is_two_zero(g))
+    {
+      if (mus_scaler_exists(g))
+	s7_varlet(sc, let, s7_make_symbol(sc, "radius"), s7_make_real(sc, mus_scaler(g)));
+      if (mus_xcoeffs_exists(g))
+	{
+	  mus_float_t *xs;
+	  xs = mus_xcoeffs(g);
+	  s7_varlet(sc, let, s7_make_symbol(sc, "a0"), s7_make_real(sc, xs[0]));
+	  s7_varlet(sc, let, s7_make_symbol(sc, "a1"), s7_make_real(sc, xs[1]));
+	  s7_varlet(sc, let, s7_make_symbol(sc, "a2"), s7_make_real(sc, xs[2]));
+	}
+    }
+  if ((mus_is_one_pole(g)) && (mus_xcoeffs_exists(g)) && (mus_ycoeffs_exists(g)))
+    {
+      mus_float_t *xs, *ys;
+      xs = mus_xcoeffs(g);
+      ys = mus_ycoeffs(g);
+      s7_varlet(sc, let, s7_make_symbol(sc, "a0"), s7_make_real(sc, xs[0]));
+      s7_varlet(sc, let, s7_make_symbol(sc, "b1"), s7_make_real(sc, ys[1]));
+    }
+  if (mus_is_two_pole(g))
+    {
+      if (mus_scaler_exists(g))
+	s7_varlet(sc, let, s7_make_symbol(sc, "radius"), s7_make_real(sc, mus_scaler(g)));
+      if ((mus_xcoeffs_exists(g)) && (mus_ycoeffs_exists(g)))
+	{
+	  mus_float_t *xs, *ys;
+	  xs = mus_xcoeffs(g);
+	  ys = mus_ycoeffs(g);
+	  s7_varlet(sc, let, s7_make_symbol(sc, "a0"), s7_make_real(sc, xs[0]));
+	  s7_varlet(sc, let, s7_make_symbol(sc, "b1"), s7_make_real(sc, ys[1]));
+	  s7_varlet(sc, let, s7_make_symbol(sc, "b2"), s7_make_real(sc, ys[2]));
+	}
+    }
+
+  if ((mus_is_formant(g)) || (mus_is_firmant(g)))
+    {
+      if (mus_scaler_exists(g))
+	s7_varlet(sc, let, s7_make_symbol(sc, "radius"), s7_make_real(sc, mus_scaler(g)));
+    }
+  if (mus_is_formant_bank(g))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "gens"), gn->vcts[0]);
+      if (gn->nvcts == 2)
+	s7_varlet(sc, let, s7_make_symbol(sc, "amps"), gn->vcts[1]);
+    }
+
+  if ((mus_is_comb(g)) || (mus_is_notch(g)) || (mus_is_filtered_comb(g)))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "scaler"), s7_make_real(sc, (mus_is_notch(g)) ? mus_scaler(g) : mus_increment(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "length"), s7_make_integer(sc, mus_length(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "interp"), s7_make_symbol(sc, mus_interp_type_to_string(mus_channels(g))));
+      s7_varlet(sc, let, s7_make_symbol(sc, "line"), gn->vcts[0]);
+      if ((mus_is_filtered_comb(g)) &&
+	  (gn->vcts[1]))
+	s7_varlet(sc, let, s7_make_symbol(sc, "filter"), gn->vcts[1]);
+    }
+  if (mus_is_all_pass(g))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "feedforward"), s7_make_real(sc, mus_scaler(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "feedback"), s7_make_real(sc, mus_increment(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "length"), s7_make_integer(sc, mus_length(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "interp"), s7_make_symbol(sc, mus_interp_type_to_string(mus_channels(g))));
+      s7_varlet(sc, let, s7_make_symbol(sc, "line"), gn->vcts[0]);
+    }
+  if (mus_is_one_pole_all_pass(g))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "size"), s7_make_integer(sc, mus_length(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "coeff"), s7_make_real(sc, mus_scaler(g)));
+    }
+  if ((mus_is_delay(g)) || (mus_is_moving_max(g)) ||
+      (mus_is_moving_average(g)) || (mus_is_moving_norm(g)))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "length"), s7_make_integer(sc, mus_length(g)));
+      if (mus_is_delay(g))
+	s7_varlet(sc, let, s7_make_symbol(sc, "interp"), s7_make_symbol(sc, mus_interp_type_to_string(mus_channels(g))));
+      s7_varlet(sc, let, s7_make_symbol(sc, "line"), gn->vcts[0]);
+      if ((mus_is_moving_norm(g)) || (mus_is_moving_max(g)))
+	{
+	  if ((mus_is_moving_norm(g)) && (mus_increment_exists(g)))
+	    s7_varlet(sc, let, s7_make_symbol(sc, "norm"), s7_make_real(sc, mus_offset(g)));
+	  if (mus_scaler_exists(g))
+	    s7_varlet(sc, let, s7_make_symbol(sc, "max"), s7_make_real(sc, mus_scaler(g)));
+	}
+    }
+  
+  if ((mus_is_table_lookup(g)) || (mus_is_wave_train(g)))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "size"), s7_make_integer(sc, mus_length(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "wave"), gn->vcts[0]);
+      s7_varlet(sc, let, s7_make_symbol(sc, "interp"), s7_make_symbol(sc, mus_interp_type_to_string(mus_channels(g))));
+    }
+  if ((mus_is_comb_bank(g)) || (mus_is_all_pass_bank(g)) || (mus_is_filtered_comb_bank(g)))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "size"), s7_make_integer(sc, mus_length(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "gens"), gn->vcts[0]);
+    }
+
+  if (mus_is_readin(g))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "channel"), s7_make_integer(sc, mus_channel(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "location"), s7_make_integer(sc, mus_location(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "direction"), s7_make_integer(sc, (s7_int)mus_increment(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "file-size"), s7_make_integer(sc, mus_length(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "file-channels"), s7_make_integer(sc, mus_channels(g)));
+    }
+  if ((mus_is_file_to_sample(g)) || (mus_is_file_to_frample(g)))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "file-size"), s7_make_integer(sc, mus_length(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "file-channels"), s7_make_integer(sc, mus_channels(g)));
+    }
+
+  if (mus_is_src(g))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "input"), gn->vcts[MUS_INPUT_FUNCTION]);
+      s7_varlet(sc, let, s7_make_symbol(sc, "srate"), s7_make_real(sc, mus_increment(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "width"), s7_make_integer(sc, mus_length(g)));
+    }
+
+  if (mus_is_env(g))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "envelope"), gn->vcts[0]);
+      s7_varlet(sc, let, s7_make_symbol(sc, "scaler"), s7_make_real(sc, mus_scaler(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "offset"), s7_make_real(sc, mus_offset(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "base"), s7_make_real(sc, mus_increment(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "length"), s7_make_integer(sc, mus_length(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "current-value"), s7_make_real(sc, mus_phase(g)));
+    }
+  if (mus_is_pulsed_env(g))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "env"), gn->vcts[0]);
+      s7_varlet(sc, let, s7_make_symbol(sc, "pulse-train"), gn->vcts[1]);
+    }
+
+  if (mus_is_convolve(g))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "input"), gn->vcts[MUS_INPUT_FUNCTION]);
+      s7_varlet(sc, let, s7_make_symbol(sc, "filter"), gn->vcts[MUS_ANALYZE_FUNCTION]);
+      s7_varlet(sc, let, s7_make_symbol(sc, "fft-size"), s7_make_integer(sc, mus_length(g)));
+    }
+
+  if ((mus_is_rand(g)) || (mus_is_rand_interp(g)))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "amplitude"), s7_make_real(sc, mus_scaler(g)));
+      if (gn->nvcts > 0) s7_varlet(sc, let, s7_make_symbol(sc, "distribution"), gn->vcts[0]);
+    }
+
+  if (mus_is_granulate(g))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "input"), gn->vcts[MUS_INPUT_FUNCTION]);
+      s7_varlet(sc, let, s7_make_symbol(sc, "expansion"), s7_make_real(sc, mus_increment(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "scaler"), s7_make_real(sc, mus_scaler(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "hop"), s7_make_real(sc, mus_frequency(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "ramp"), s7_make_real(sc, mus_ramp(g) / (mus_float_t)mus_length(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "jitter"), s7_make_real(sc, mus_offset(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "length"), s7_make_real(sc, mus_length(g) / mus_srate()));
+      s7_varlet(sc, let, s7_make_symbol(sc, "edit"), gn->vcts[MUS_EDIT_FUNCTION]);
+      s7_varlet(sc, let, s7_make_symbol(sc, "grain"), gn->vcts[MUS_DATA_WRAPPER]);
+    } 
+
+  if (mus_is_locsig(g))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "degree"), s7_make_real(sc, mus_scaler(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "distance"), s7_make_real(sc, mus_increment(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "reverb"), s7_make_real(sc, mus_offset(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "channels"), s7_make_integer(sc, mus_channels(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "type"), s7_make_symbol(sc, mus_interp_type_to_string(mus_hop(g))));
+      s7_varlet(sc, let, s7_make_symbol(sc, "out-coeffs"), gn->vcts[G_LOCSIG_DATA]);
+      s7_varlet(sc, let, s7_make_symbol(sc, "rev-coeffs"), gn->vcts[G_LOCSIG_REVDATA]);
+      if (gn->nvcts == 4)
+	{
+	  s7_varlet(sc, let, s7_make_symbol(sc, "output"), gn->vcts[G_LOCSIG_OUT]);
+	  s7_varlet(sc, let, s7_make_symbol(sc, "revout"), gn->vcts[G_LOCSIG_REVOUT]);
+	}
+    }
+  
+  if ((mus_is_sample_to_file(g)) || (mus_is_frample_to_file(g)))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "channels"), s7_make_integer(sc, mus_channels(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "sample-type"), s7_make_symbol(sc, mus_sample_type_to_string((mus_sample_t)mus_location(g))));
+      s7_varlet(sc, let, s7_make_symbol(sc, "header-type"), s7_make_symbol(sc, mus_header_type_to_string((mus_header_t)mus_channel(g))));
+      s7_varlet(sc, let, s7_make_symbol(sc, "buffer-length"), s7_make_integer(sc, mus_length(g)));
+    }
+
+  if (mus_is_ssb_am(g))
+    s7_varlet(sc, let, s7_make_symbol(sc, "order"), s7_make_integer(sc, mus_length(g)));
+
+  if (mus_is_phase_vocoder(g))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "input"), gn->vcts[MUS_INPUT_FUNCTION]);
+      s7_varlet(sc, let, s7_make_symbol(sc, "fft-size"), s7_make_integer(sc, mus_length(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "overlap"), s7_make_integer(sc, mus_length(g) / mus_hop(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "interp"), s7_make_integer(sc, (s7_int)mus_increment(g)));
+      s7_varlet(sc, let, s7_make_symbol(sc, "analyze"), gn->vcts[MUS_ANALYZE_FUNCTION]);
+      s7_varlet(sc, let, s7_make_symbol(sc, "edit"), gn->vcts[MUS_EDIT_FUNCTION]);
+      s7_varlet(sc, let, s7_make_symbol(sc, "synthesize"), gn->vcts[MUS_SYNTHESIZE_FUNCTION]);
+    }
+
+  if (mus_is_move_sound(g))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "pars"), gn->vcts[G_LOCSIG_DATA]);
+      if (gn->nvcts == 4)
+	{
+	  s7_varlet(sc, let, s7_make_symbol(sc, "output"), gn->vcts[G_LOCSIG_OUT]);
+	  s7_varlet(sc, let, s7_make_symbol(sc, "revout"), gn->vcts[G_LOCSIG_REVOUT]);
+	  s7_varlet(sc, let, s7_make_symbol(sc, "rev-coeffs"), gn->vcts[G_LOCSIG_REVDATA]);
+	}
+    }
+
+  if (mus_is_polyshape(g))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "coeffs"), gn->vcts[0]);
+      s7_varlet(sc, let, s7_make_symbol(sc, "choice"), s7_make_integer(sc, mus_channel(g)));
+    }
+
+  if (mus_is_polywave(g))
+    {
+      s7_varlet(sc, let, s7_make_symbol(sc, "xcoeffs"), gn->vcts[0]);
+      if (gn->nvcts > 1)
+	s7_varlet(sc, let, s7_make_symbol(sc, "ycoeffs"), gn->vcts[1]);
+      s7_varlet(sc, let, s7_make_symbol(sc, "choice"), s7_make_integer(sc, mus_channel(g)));
+    }
+  return(let);
+}
+
 #endif
 
 static void mus_xen_init(void)
@@ -10622,13 +12865,14 @@ static void mus_xen_init(void)
 #if HAVE_SCHEME
   mus_xen_tag = s7_new_type_x(s7, "<generator>", print_mus_xen, free_mus_xen, s7_equalp_mus_xen, mark_mus_xen, 
 			      mus_xen_apply, NULL, s7_mus_length, s7_mus_copy, NULL, NULL);
-  as_needed_arglist = Xen_list_1(Xen_integer_zero);
-  Xen_GC_protect(as_needed_arglist);
   s7_set_object_print_readably(mus_xen_tag, mus_generator_to_readable_string);
 
   mus_error_symbol = s7_make_symbol(s7, "mus-error");
   clm_error_info = s7_list(s7, 4, s7_make_string(s7, "~A: ~A ~A"), s7_nil(s7), s7_nil(s7), s7_nil(s7));
   s7_gc_protect(s7, clm_error_info);
+  clm_err1 = s7_cdr(clm_error_info);
+  clm_err2 = s7_cddr(clm_error_info);
+  clm_err3 = s7_cdddr(clm_error_info);
 
   extra_args_string = s7_make_string(s7, "extra trailing args?");
   s7_gc_protect(s7, extra_args_string);
@@ -10708,6 +12952,13 @@ static void mus_xen_init(void)
   xen_float_zero = C_double_to_Xen_real(0.0);
   Xen_GC_protect(xen_float_zero);
 
+#if HAVE_SCHEME
+  as_needed_arglist_one = Xen_list_1(xen_one);
+  as_needed_arglist_minus_one = Xen_list_1(xen_minus_one);
+  Xen_GC_protect(as_needed_arglist_one);
+  Xen_GC_protect(as_needed_arglist_minus_one);
+#endif
+
 #if HAVE_FORTH
   fth_set_object_inspect(mus_xen_tag, print_mus_xen);
   fth_set_object_equal(mus_xen_tag, equalp_mus_xen);
@@ -10776,17 +13027,11 @@ static void mus_xen_init(void)
 			    S_set S_mus_array_print_length, g_mus_set_array_print_length_w, 0, 0, 1, 0, pl_i, pl_i);
   Xen_define_typed_dilambda(S_clm_table_size, g_clm_table_size_w, H_clm_table_size, 
 			    S_set S_clm_table_size, g_set_clm_table_size_w, 0, 0, 1, 0, pl_i, pl_i);
-  Xen_define_typed_dilambda(S_clm_default_frequency, g_clm_default_frequency_w, H_clm_default_frequency,
-			    S_set S_clm_default_frequency, g_set_clm_default_frequency_w, 0, 0, 1, 0, pl_d, pl_dr);
 
 #if HAVE_SCHEME
   clm_srate_symbol = s7_define_variable(s7, "*clm-srate*", s7_make_real(s7, MUS_DEFAULT_SAMPLING_RATE));
   s7_symbol_set_access(s7, clm_srate_symbol, s7_make_function(s7, "[acc-clm-srate]", acc_clm_srate, 2, 0, false, "accessor"));
 
-  clm_default_frequency_symbol = s7_define_variable(s7, "*" S_clm_default_frequency "*", s7_make_real(s7, MUS_CLM_DEFAULT_FREQUENCY));
-  s7_symbol_set_documentation(s7, clm_default_frequency_symbol, "*clm-default-frequency*: the default frequency for most generators (0.0)");
-  s7_symbol_set_access(s7, clm_default_frequency_symbol, s7_make_function(s7, "[acc-clm-default-frequency]", acc_clm_default_frequency, 2, 0, false, "accessor"));
-
   clm_table_size_symbol = s7_define_variable(s7, "*" S_clm_table_size "*", s7_make_integer(s7, MUS_CLM_DEFAULT_TABLE_SIZE));
   s7_symbol_set_documentation(s7, clm_table_size_symbol, "*clm-table-size*: the default table size for most generators (512)");
   s7_symbol_set_access(s7, clm_table_size_symbol, s7_make_function(s7, "[acc-clm-table-size]", acc_clm_table_size, 2, 0, false, "accessor"));
@@ -10801,6 +13046,11 @@ static void mus_xen_init(void)
   mus_array_print_length_symbol = s7_define_variable(s7, "*" S_mus_array_print_length "*", s7_make_integer(s7, MUS_DEFAULT_ARRAY_PRINT_LENGTH));
   s7_symbol_set_documentation(s7, mus_array_print_length_symbol, "*mus-array-print-length*: current clm array print length (default is 8).");
   s7_symbol_set_access(s7, mus_array_print_length_symbol, s7_make_function(s7, "[acc-mus-array-print-length]", acc_mus_array_print_length, 2, 0, false, "accessor"));
+
+  g_clm_let = s7_openlet(s7, s7_inlet(s7, s7_list(s7, 2, s7_make_symbol(s7, "object->let"), 
+						  s7_make_function(s7, "generator->let", generator_to_let, 2, 0, false, "clm generator object->let method"))));
+  s7_gc_protect(s7, g_clm_let);
+
 #endif
 
   Xen_define_typed_procedure(S_radians_to_hz,		g_radians_to_hz_w,		1, 0, 0, H_radians_to_hz,	pl_dr);
@@ -10917,22 +13167,6 @@ static void mus_xen_init(void)
 
   Xen_define_typed_procedure(S_mus_apply,		g_mus_apply_w,			0, 0, 1, H_mus_apply,           pl_dcr);
 
-  Xen_define_typed_procedure(S_make_delay,		g_make_delay_w,			0, 0, 1, H_make_delay,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_delay), t));
-  Xen_define_typed_procedure(S_make_comb,		g_make_comb_w,			0, 0, 1, H_make_comb,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_comb), t));
-  Xen_define_typed_procedure(S_make_filtered_comb,	g_make_filtered_comb_w,		0, 0, 1, H_make_filtered_comb,	
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_filtered_comb), t));
-  Xen_define_typed_procedure(S_make_notch,		g_make_notch_w,			0, 0, 1, H_make_notch,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_notch), t)); 
-  Xen_define_typed_procedure(S_make_all_pass,		g_make_all_pass_w,		0, 0, 1, H_make_all_pass,	
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_all_pass), t));
-  Xen_define_typed_procedure(S_make_moving_average,	g_make_moving_average_w,	0, 0, 1, H_make_moving_average, 
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_moving_average), t));
-  Xen_define_typed_procedure(S_make_moving_max,		g_make_moving_max_w,       0, 0, 1, H_make_moving_max,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_moving_max), t));
-  Xen_define_typed_procedure(S_make_moving_norm,	g_make_moving_norm_w,      0, 0, 1, H_make_moving_norm,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_moving_norm), t));
   Xen_define_typed_procedure(S_delay,			g_delay_w,                 1, 2, 0, H_delay,			
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_delay), r));
   Xen_define_typed_procedure(S_delay_tick,		g_delay_tick_w,            1, 1, 0, H_delay_tick,		
@@ -10990,10 +13224,6 @@ static void mus_xen_init(void)
   Xen_define_typed_dilambda(S_mus_feedforward, g_mus_feedforward_w, H_mus_feedforward, 
 			    S_set S_mus_feedforward, g_mus_set_feedforward_w,  1, 0, 2, 0, pl_dc, pl_dcr);
 
-  Xen_define_typed_procedure(S_make_rand,		g_make_rand_w,             0, 0, 1, H_make_rand,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_rand), t));
-  Xen_define_typed_procedure(S_make_rand_interp,	g_make_rand_interp_w,      0, 0, 1, H_make_rand_interp,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_rand_interp), t));
 #if HAVE_RUBY
   rb_define_alias(rb_mKernel, "kernel_rand", "rand");
 #endif
@@ -11016,31 +13246,20 @@ static void mus_xen_init(void)
   Xen_define_typed_procedure(S_is_nsin,			g_is_nsin_w,               1, 0, 0, H_is_nsin,			pl_bt);
 
   Xen_define_typed_procedure(S_is_table_lookup,		g_is_table_lookup_w,       1, 0, 0, H_is_table_lookup,		pl_bt);
-  Xen_define_typed_procedure(S_make_table_lookup,	g_make_table_lookup_w,     0, 0, 1, H_make_table_lookup,	
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_table_lookup), t));
   Xen_define_typed_procedure(S_table_lookup,		g_table_lookup_w,          1, 1, 0, H_table_lookup,		
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_table_lookup), r));
   Xen_define_typed_procedure(S_partials_to_wave,	g_partials_to_wave_w,      1, 2, 0, H_partials_to_wave,		pl_fttb);
   Xen_define_typed_procedure(S_phase_partials_to_wave,	g_phase_partials_to_wave_w, 1, 2, 0, H_phase_partials_to_wave,	pl_fttb);
 
-
-  Xen_define_typed_procedure(S_make_sawtooth_wave,	g_make_sawtooth_wave_w,    0, 6, 0, H_make_sawtooth_wave,	
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_sawtooth_wave), t));
   Xen_define_typed_procedure(S_sawtooth_wave,		g_sawtooth_wave_w,         1, 1, 0, H_sawtooth_wave,		
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_sawtooth_wave), r));
   Xen_define_typed_procedure(S_is_sawtooth_wave,	g_is_sawtooth_wave_w,      1, 0, 0, H_is_sawtooth_wave,		pl_bt);
-  Xen_define_typed_procedure(S_make_triangle_wave,	g_make_triangle_wave_w,    0, 6, 0, H_make_triangle_wave,	
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_triangle_wave), t));
   Xen_define_typed_procedure(S_triangle_wave,		g_triangle_wave_w,         1, 1, 0, H_triangle_wave,		
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_triangle_wave), r));
   Xen_define_typed_procedure(S_is_triangle_wave,	g_is_triangle_wave_w,      1, 0, 0, H_is_triangle_wave,		pl_bt);
-  Xen_define_typed_procedure(S_make_square_wave,	g_make_square_wave_w,      0, 6, 0, H_make_square_wave,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_square_wave), t));
   Xen_define_typed_procedure(S_square_wave,		g_square_wave_w,           1, 1, 0, H_square_wave,		
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_square_wave), r));
   Xen_define_typed_procedure(S_is_square_wave,		g_is_square_wave_w,        1, 0, 0, H_is_square_wave,		pl_bt);
-  Xen_define_typed_procedure(S_make_pulse_train,	g_make_pulse_train_w,      0, 6, 0, H_make_pulse_train,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_pulse_train), t));
   Xen_define_typed_procedure(S_pulse_train,		g_pulse_train_w,           1, 1, 0, H_pulse_train,		
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_pulse_train), r));
   Xen_define_typed_procedure(S_is_pulse_train,		g_is_pulse_train_w,        1, 0, 0, H_is_pulse_train,		pl_bt);
@@ -11057,37 +13276,24 @@ static void mus_xen_init(void)
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_asymmetric_fm), r));
   Xen_define_typed_procedure(S_is_asymmetric_fm,	g_is_asymmetric_fm_w,      1, 0, 0, H_is_asymmetric_fm,		pl_bt);
 
-
-  Xen_define_typed_procedure(S_make_one_zero,		g_make_one_zero_w,         0, 4, 0, H_make_one_zero,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_one_zero), t));
   Xen_define_typed_procedure(S_one_zero,		g_one_zero_w,              1, 1, 0, H_one_zero,			
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_one_zero), r));
   Xen_define_typed_procedure(S_is_one_zero,		g_is_one_zero_w,           1, 0, 0, H_is_one_zero,		pl_bt);
-  Xen_define_typed_procedure(S_make_one_pole,		g_make_one_pole_w,         0, 4, 0, H_make_one_pole,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_one_pole), t));
   Xen_define_typed_procedure(S_one_pole,		g_one_pole_w,              1, 1, 0, H_one_pole,			
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_one_pole), r));
   Xen_define_typed_procedure(S_is_one_pole,		g_is_one_pole_w,           1, 0, 0, H_is_one_pole,		pl_bt);
-  Xen_define_typed_procedure(S_make_two_zero,		g_make_two_zero_w,         0, 6, 0, H_make_two_zero,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_two_zero), t));
   Xen_define_typed_procedure(S_two_zero,		g_two_zero_w,              1, 1, 0, H_two_zero,			
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_two_zero), r));
   Xen_define_typed_procedure(S_is_two_zero,		g_is_two_zero_w,           1, 0, 0, H_is_two_zero,		pl_bt);
-  Xen_define_typed_procedure(S_make_two_pole,		g_make_two_pole_w,         0, 6, 0, H_make_two_pole,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_two_pole), t));
   Xen_define_typed_procedure(S_two_pole,		g_two_pole_w,              1, 1, 0, H_two_pole,			
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_two_pole), r));
   Xen_define_typed_procedure(S_is_two_pole,		g_is_two_pole_w,           1, 0, 0, H_is_two_pole,		pl_bt);
 
-  Xen_define_typed_procedure(S_make_wave_train,		g_make_wave_train_w,       0, 0, 1, H_make_wave_train,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_wave_train), t));
   Xen_define_typed_procedure(S_wave_train,		g_wave_train_w,            1, 1, 0, H_wave_train,		
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_wave_train), r));
   Xen_define_typed_procedure(S_is_wave_train,		g_is_wave_train_w,         1, 0, 0, H_is_wave_train,		pl_bt);
 
   Xen_define_typed_procedure(S_is_formant,		g_is_formant_w,            1, 0, 0, H_is_formant,		pl_bt);
-  Xen_define_typed_procedure(S_make_formant,		g_make_formant_w,          0, 4, 0, H_make_formant,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_formant), t));
   Xen_define_typed_procedure(S_formant,			g_formant_w,               1, 2, 0, H_formant,			
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_formant), r));
 
@@ -11098,8 +13304,6 @@ static void mus_xen_init(void)
 			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_formant_bank), t));
 
   Xen_define_typed_procedure(S_is_firmant,		g_is_firmant_w,            1, 0, 0, H_is_firmant,		pl_bt);
-  Xen_define_typed_procedure(S_make_firmant,		g_make_firmant_w,          0, 4, 0, H_make_firmant,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_firmant), t));
   Xen_define_typed_procedure(S_firmant,			g_firmant_w,               1, 2, 0, H_firmant,			
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_firmant), r));
 
@@ -11114,8 +13318,6 @@ static void mus_xen_init(void)
   Xen_define_typed_procedure(S_mus_set_formant_radius_and_frequency, g_set_formant_radius_and_frequency_w, 3, 0, 0, H_mus_set_formant_radius_and_frequency, 
 			     s7_make_signature(s7, 4, d, s7_make_symbol(s7, S_is_formant), r, r));
 
-  Xen_define_typed_procedure(S_make_polyshape,		g_make_polyshape_w,        0, 0, 1, H_make_polyshape,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_polyshape), t));
   Xen_define_typed_procedure(S_polyshape,		g_polyshape_w,             1, 2, 0, H_polyshape,		
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_polyshape), r));
   Xen_define_typed_procedure(S_is_polyshape,		g_is_polyshape_w,          1, 0, 0, H_is_polyshape,		pl_bt);
@@ -11124,48 +13326,32 @@ static void mus_xen_init(void)
   Xen_define_typed_procedure(S_mus_chebyshev_t_sum,	g_chebyshev_t_sum_w,       2, 0, 0, H_chebyshev_t_sum,		pl_drf);
   Xen_define_typed_procedure(S_mus_chebyshev_u_sum,	g_chebyshev_u_sum_w,       2, 0, 0, H_chebyshev_u_sum,		pl_drf);
   Xen_define_typed_procedure(S_mus_chebyshev_tu_sum,	g_chebyshev_tu_sum_w,      3, 0, 0, H_chebyshev_tu_sum,		pl_drf);
-  Xen_define_typed_procedure(S_make_polywave,		g_make_polywave_w,         0, 0, 1, H_make_polywave,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_polywave), t));
   Xen_define_typed_procedure(S_polywave,		g_polywave_w,              1, 1, 0, H_polywave,			
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_polywave), r));
   Xen_define_typed_procedure(S_is_polywave,		g_is_polywave_w,           1, 0, 0, H_is_polywave,		pl_bt);
 
-  Xen_define_typed_procedure(S_make_nrxysin,		g_make_nrxysin_w,          0, 0, 1, H_make_nrxysin,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_nrxysin), t));
   Xen_define_typed_procedure(S_nrxysin,			g_nrxysin_w,               1, 1, 0, H_nrxysin,			
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_nrxysin), r));
   Xen_define_typed_procedure(S_is_nrxysin,		g_is_nrxysin_w,            1, 0, 0, H_is_nrxysin,		pl_bt);
-  Xen_define_typed_procedure(S_make_nrxycos,		g_make_nrxycos_w,          0, 0, 1, H_make_nrxycos,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_nrxycos), t));
   Xen_define_typed_procedure(S_nrxycos,			g_nrxycos_w,               1, 1, 0, H_nrxycos,			
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_nrxycos), r));
   Xen_define_typed_procedure(S_is_nrxycos,		g_is_nrxycos_w,            1, 0, 0, H_is_nrxycos,		pl_bt);
 
-  Xen_define_typed_procedure(S_make_rxyksin,		g_make_rxyksin_w,          0, 0, 1, H_make_rxyksin,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_rxyksin), t));
   Xen_define_typed_procedure(S_rxyksin,			g_rxyksin_w,               1, 1, 0, H_rxyksin,			
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_rxyksin), r));
   Xen_define_typed_procedure(S_is_rxyksin,		g_is_rxyksin_w,            1, 0, 0, H_is_rxyksin,		pl_bt);
-  Xen_define_typed_procedure(S_make_rxykcos,		g_make_rxykcos_w,          0, 0, 1, H_make_rxykcos,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_rxykcos), t));
   Xen_define_typed_procedure(S_rxykcos,			g_rxykcos_w,               1, 1, 0, H_rxykcos,			
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_rxykcos), r));
   Xen_define_typed_procedure(S_is_rxykcos,		g_is_rxykcos_w,            1, 0, 0, H_is_rxykcos,		pl_bt);
 
 
-  Xen_define_typed_procedure(S_make_filter,		g_make_filter_w,           0, 6, 0, H_make_filter,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_filter), t));
   Xen_define_typed_procedure(S_filter,			g_filter_w,                1, 1, 0, H_filter,			
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_filter), r));
   Xen_define_typed_procedure(S_is_filter,		g_is_filter_w,             1, 0, 0, H_is_filter,		pl_bt);
   Xen_define_typed_procedure(S_make_fir_coeffs,		g_make_fir_coeffs_w,       2, 0, 0, H_make_fir_coeffs,		pl_fif);
-  Xen_define_typed_procedure(S_make_fir_filter,		g_make_fir_filter_w,       0, 4, 0, H_make_fir_filter,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_fir_filter), t));
   Xen_define_typed_procedure(S_fir_filter,		g_fir_filter_w,            1, 1, 0, H_fir_filter,		
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_fir_filter), r));
   Xen_define_typed_procedure(S_is_fir_filter,		g_is_fir_filter_w,         1, 0, 0, H_is_fir_filter,		pl_bt);
-  Xen_define_typed_procedure(S_make_iir_filter,		g_make_iir_filter_w,       0, 4, 0, H_make_iir_filter,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_iir_filter), t));
   Xen_define_typed_procedure(S_iir_filter,		g_iir_filter_w,            1, 1, 0, H_iir_filter,		
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_iir_filter), r));
   Xen_define_typed_procedure(S_is_iir_filter,		g_is_iir_filter_w,         1, 0, 0, H_is_iir_filter,		pl_bt);
@@ -11176,8 +13362,6 @@ static void mus_xen_init(void)
   Xen_define_typed_procedure(S_is_env,			g_is_env_w,                1, 0, 0, H_is_env,			pl_bt);
   Xen_define_typed_procedure(S_env,			g_env_w,                   1, 0, 0, H_env,			
 			     s7_make_signature(s7, 2, d, s7_make_symbol(s7, S_is_env)));
-  Xen_define_typed_procedure(S_make_env,		g_make_env_w,              0, 0, 1, H_make_env,			
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_env), t));
   Xen_define_typed_procedure(S_env_interp,		g_env_interp_w,            2, 0, 0, H_env_interp,		pl_drc);
   Xen_define_typed_procedure(S_envelope_interp,		g_envelope_interp_w,       2, 1, 0, H_envelope_interp,		pl_rrpr);
   Xen_define_unsafe_typed_procedure(S_env_any,		g_env_any_w,               2, 0, 0, H_env_any,                  pl_dct);
@@ -11185,8 +13369,6 @@ static void mus_xen_init(void)
   Xen_define_typed_procedure(S_is_locsig,		g_is_locsig_w,             1, 0, 0, H_is_locsig,		pl_bt);
   Xen_define_typed_procedure(S_locsig,			g_locsig_w,                3, 0, 0, H_locsig,			
 			     s7_make_signature(s7, 4, r, s7_make_symbol(s7, S_is_locsig), i, r));
-  Xen_define_typed_procedure(S_make_locsig,		g_make_locsig_w,           0, 0, 1, H_make_locsig,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_locsig), t));
   Xen_define_typed_procedure(S_move_locsig,		g_move_locsig_w,           3, 0, 0, H_move_locsig,		pl_ccrr);
   Xen_define_typed_procedure(S_mus_channels,		g_mus_channels_w,          1, 0, 0, H_mus_channels,		pl_it);
 
@@ -11252,12 +13434,9 @@ static void mus_xen_init(void)
   Xen_define_typed_dilambda(S_mus_file_buffer_size, g_mus_file_buffer_size_w, H_mus_file_buffer_size,
 			    S_set S_mus_file_buffer_size, g_mus_set_file_buffer_size_w,  0, 0, 1, 0, pl_i, pl_i);
 
-
   Xen_define_typed_procedure(S_is_readin,		g_is_readin_w,             1, 0, 0, H_is_readin,		pl_bt);
   Xen_define_typed_procedure(S_readin,			g_readin_w,                1, 0, 0, H_readin,			
 			     s7_make_signature(s7, 2, d, s7_make_symbol(s7, S_is_readin)));
-  Xen_define_typed_procedure(S_make_readin,		g_make_readin_w,           0, 0, 1, H_make_readin,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_readin), t));
   Xen_define_typed_procedure(S_mus_channel,		g_mus_channel_w,           1, 0, 0, H_mus_channel,		pl_ic);
   Xen_define_typed_procedure(S_mus_interp_type,		g_mus_interp_type_w,       1, 0, 0, H_mus_interp_type,		pl_ic);
 
@@ -11269,33 +13448,23 @@ static void mus_xen_init(void)
   Xen_define_typed_procedure(S_is_granulate,		g_is_granulate_w,          1, 0, 0, H_is_granulate,		pl_bt);
   Xen_define_unsafe_typed_procedure(S_granulate,	g_granulate_w,             1, 2, 0, H_granulate,		
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_granulate), t));
-  Xen_define_typed_procedure(S_make_granulate,		g_make_granulate_w,        0, 0, 1, H_make_granulate,           
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_granulate), t));
 
   Xen_define_typed_dilambda(S_mus_ramp, g_mus_ramp_w, H_mus_ramp, 
 			    S_set S_mus_ramp, g_mus_set_ramp_w,  1, 0, 2, 0, pl_dc, pl_dcr);
 
-
   Xen_define_typed_procedure(S_clear_sincs,		g_mus_clear_sincs_w,       0, 0, 0, "clears out any sinc tables", NULL);
   Xen_define_typed_procedure(S_is_src,			g_is_src_w,                1, 0, 0, H_is_src,			pl_bt);
   Xen_define_unsafe_typed_procedure(S_src,		g_src_w,                   1, 2, 0, H_src,			
-			     s7_make_signature(s7, 4, d, s7_make_symbol(s7, S_is_src), r, t));
-  Xen_define_typed_procedure(S_make_src,		g_make_src_w,              0, 6, 0, H_make_src,                 
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_src), t));
-
+				    s7_make_signature(s7, 4, d, s7_make_symbol(s7, S_is_src), r, t));
 
   Xen_define_typed_procedure(S_is_convolve,		g_is_convolve_w,           1, 0, 0, H_is_convolve,		pl_bt);
   Xen_define_unsafe_typed_procedure(S_convolve,		g_convolve_w,              1, 1, 0, H_convolve_gen,		
-			     s7_make_signature(s7, 3, d, s7_make_symbol(s7, S_is_convolve), t));
-  Xen_define_typed_procedure(S_make_convolve,		g_make_convolve_w,         0, 0, 1, H_make_convolve,            
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_convolve), t));
+				    s7_make_signature(s7, 3, d, s7_make_symbol(s7, S_is_convolve), t));
   Xen_define_typed_procedure(S_convolve_files,		g_convolve_files_w,        2, 2, 0, H_convolve_files,		pl_sssrs);
 
   Xen_define_typed_procedure(S_is_phase_vocoder,	g_is_phase_vocoder_w,      1, 0, 0, H_is_phase_vocoder,		pl_bt);
   Xen_define_unsafe_typed_procedure(S_phase_vocoder,    g_phase_vocoder_w,         1, 4, 0, H_phase_vocoder,		
 				    s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_phase_vocoder), t));
-  Xen_define_typed_procedure(S_make_phase_vocoder,	g_make_phase_vocoder_w,    0, 0, 1, H_make_phase_vocoder,       
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_phase_vocoder), t));
   Xen_define_typed_procedure(S_phase_vocoder_amp_increments, g_phase_vocoder_amp_increments_w, 1, 0, 0, H_phase_vocoder_amp_increments, pl_fc);
   Xen_define_typed_procedure(S_phase_vocoder_amps,	g_phase_vocoder_amps_w,    1, 0, 0, H_phase_vocoder_amps,	pl_fc);
   Xen_define_typed_procedure(S_phase_vocoder_freqs,	g_phase_vocoder_freqs_w,   1, 0, 0, H_phase_vocoder_freqs,	pl_fc);
@@ -11305,8 +13474,6 @@ static void mus_xen_init(void)
   Xen_define_typed_dilambda(S_mus_hop, g_mus_hop_w, H_mus_hop, 
 			    S_set S_mus_hop, g_mus_set_hop_w,  1, 0, 2, 0, pl_dc, pl_dcr);
 
-  Xen_define_typed_procedure(S_make_ssb_am,		g_make_ssb_am_w,           0, 4, 0, H_make_ssb_am,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_ssb_am), t)); 
   Xen_define_typed_procedure(S_ssb_am,			g_ssb_am_w,                1, 2, 0, H_ssb_am,			
 			     s7_make_circular_signature(s7, 2, 3, d, s7_make_symbol(s7, S_is_ssb_am), r));
   Xen_define_typed_procedure(S_is_ssb_am,		g_is_ssb_am_w,             1, 0, 0, H_is_ssb_am,		pl_bt);
@@ -11337,24 +13504,242 @@ static void mus_xen_init(void)
   Xen_define_constant(S_internal_time_units_per_second, 1, "units used by " S_get_internal_real_time);
 #endif
 
+  #define star_sig(Checker) s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, Checker), t)
+
 #if HAVE_SCHEME
   Xen_define_typed_procedure(S_piano_noise,		g_piano_noise_w,            2, 0, 0, H_piano_noise,		pl_djr);
   Xen_define_typed_procedure(S_singer_filter,		g_singer_filter_w,          6, 0, 0, H_singer_filter,		pl_riirfff);
   Xen_define_typed_procedure(S_singer_nose_filter,	g_singer_nose_filter_w,     5, 0, 0, H_singer_nose_filter,	pl_rirfff);
-#endif
 
-  Xen_define_typed_procedure(S_make_oscil,		g_make_oscil_w,             0, 4, 0, H_make_oscil,              
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_oscil), t));
-  Xen_define_typed_procedure(S_make_ncos,		g_make_ncos_w,              0, 4, 0, H_make_ncos,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_ncos), t)); 
-  Xen_define_typed_procedure(S_make_oscil_bank,		g_make_oscil_bank_w,        2, 2, 0, H_make_oscil_bank,		
+  s7_define_typed_function_star(s7, S_make_env, g_make_env, 
+				"envelope (scaler 1.0) duration (offset 0.0) (base 1.0) end length",
+				H_make_env, 
+				star_sig(S_is_env));
+  make_env = s7_name_to_value(s7, S_make_env);
+
+  s7_define_typed_function_star(s7, S_make_polywave, g_make_polywave, 
+				"(frequency 0.0) (partials '(1 1)) (type 1) xcoeffs ycoeffs)",
+				H_make_polywave, 
+				star_sig(S_is_polywave));
+  s7_define_typed_function_star(s7, S_make_polyshape, g_make_polyshape, 
+				"(frequency 0.0) (initial-phase 0.0) coeffs partials kind",
+				H_make_polyshape, 
+				star_sig(S_is_polyshape));
+  s7_define_typed_function_star(s7, S_make_oscil, g_make_oscil, 
+				"(frequency 0.0) (initial-phase 0.0)", 
+				H_make_oscil, 
+				star_sig(S_is_oscil));
+  s7_define_typed_function_star(s7, S_make_ssb_am, g_make_ssb_am, 
+				"(frequency 0.0) (order 40)", 
+				H_make_ssb_am,
+				star_sig(S_is_ssb_am)); 
+  s7_define_typed_function_star(s7, S_make_ncos, g_make_ncos, 
+				"(frequency 0.0) (n 1)", 
+				H_make_ncos,
+				star_sig(S_is_ncos));
+  s7_define_typed_function_star(s7, S_make_nsin, g_make_nsin, 
+				"(frequency 0.0) (n 1)", 
+				H_make_nsin,
+				star_sig(S_is_nsin));
+  s7_define_typed_function_star(s7, S_make_asymmetric_fm, g_make_asymmetric_fm, 
+				"(frequency 0.0) (initial-phase 0.0) (r 1.0) (ratio 1.0)",
+				H_make_asymmetric_fm, 
+				star_sig(S_is_asymmetric_fm));
+  s7_define_typed_function_star(s7, S_make_nrxysin, g_make_nrxysin, 
+				"(frequency 0.0) (ratio 1.0) (n 1) (r 0.5))", 
+				H_make_nrxysin,
+				star_sig(S_is_nrxysin));
+  s7_define_typed_function_star(s7, S_make_nrxycos, g_make_nrxycos, 
+				"(frequency 0.0) (ratio 1.0) (n 1) (r 0.5))", 
+				H_make_nrxycos,
+				star_sig(S_is_nrxycos));
+  s7_define_typed_function_star(s7, S_make_rxyksin, g_make_rxyksin, 
+				"(frequency 0.0) (ratio 1.0) (r 0.5))", 
+				H_make_rxyksin,
+				star_sig(S_is_rxyksin));
+  s7_define_typed_function_star(s7, S_make_rxykcos, g_make_rxykcos, 
+				"(frequency 0.0) (ratio 1.0) (r 0.5))", 
+				H_make_rxykcos,
+				star_sig(S_is_rxykcos));
+
+  s7_define_typed_function_star(s7, S_make_sawtooth_wave, g_make_sawtooth_wave, 
+				"(frequency 0.0) (amplitude 1.0) (initial-phase 3.141592653589793)", 
+				H_make_sawtooth_wave, 
+				star_sig(S_is_sawtooth_wave));
+  s7_define_typed_function_star(s7, S_make_square_wave, g_make_square_wave, 
+				"(frequency 0.0) (amplitude 1.0) (initial-phase 0.0)", 
+				H_make_square_wave,
+				star_sig(S_is_square_wave));
+  s7_define_typed_function_star(s7, S_make_triangle_wave, g_make_triangle_wave, 
+				"(frequency 0.0) (amplitude 1.0) (initial-phase 0.0)", 
+				H_make_triangle_wave, 
+				star_sig(S_is_triangle_wave));
+  s7_define_typed_function_star(s7, S_make_pulse_train, g_make_pulse_train, 
+				"(frequency 0.0) (amplitude 1.0) (initial-phase 6.283185307179586)", 
+				H_make_pulse_train, 
+				star_sig(S_is_pulse_train));
+
+  s7_define_typed_function_star(s7, S_make_one_zero, g_make_one_zero, 
+				"(a0 0.0) (a1 0.0)", 
+				H_make_one_zero,
+                                star_sig(S_is_one_zero));
+  s7_define_typed_function_star(s7, S_make_one_pole, g_make_one_pole, 
+				"(a0 0.0) (b1 0.0)", 
+				H_make_one_pole,
+                                star_sig(S_is_one_pole));
+
+  s7_define_typed_function(s7, S_make_two_zero, g_make_two_zero, 0, 6, 0, H_make_two_zero, star_sig(S_is_two_zero));
+  make_two_zero_a = s7_make_safe_function_star(s7, S_make_two_zero, g_make_two_zero_a, "(a0 0.0) (a1 0.0) (a2 0.0)", H_make_two_zero);
+  make_two_zero_f = s7_make_safe_function_star(s7, S_make_two_zero, g_make_two_zero_f, "(frequency 0.0) (radius 0.0)", H_make_two_zero);
+
+  s7_define_typed_function(s7, S_make_two_pole, g_make_two_pole, 0, 6, 0, H_make_two_pole, star_sig(S_is_two_pole));
+  make_two_pole_a = s7_make_safe_function_star(s7, S_make_two_pole, g_make_two_pole_a, "(a0 0.0) (b1 0.0) (b2 0.0)", H_make_two_pole);
+  make_two_pole_f = s7_make_safe_function_star(s7, S_make_two_pole, g_make_two_pole_f, "(frequency 0.0) (radius 0.0)", H_make_two_pole);
+
+  s7_define_typed_function_star(s7, S_make_filter, g_make_filter, 
+				"order xcoeffs ycoeffs",
+				H_make_filter,
+                                star_sig(S_is_filter));
+  s7_define_typed_function_star(s7, S_make_fir_filter, g_make_fir_filter, 
+				"order xcoeffs",
+				H_make_fir_filter,
+                                star_sig(S_is_fir_filter));
+  s7_define_typed_function_star(s7, S_make_iir_filter, g_make_iir_filter, 
+				"order ycoeffs",
+				H_make_iir_filter,
+                                star_sig(S_is_iir_filter));
+
+  s7_define_typed_function_star(s7, S_make_formant, g_make_formant, 
+				"(frequency 0.0) (radius 0.0)", 
+				H_make_formant,
+				star_sig(S_is_formant));
+  s7_define_typed_function_star(s7, S_make_firmant, g_make_firmant, 
+				"(frequency 0.0) (radius 0.0)", 
+				H_make_firmant,
+				star_sig(S_is_firmant));
+
+  s7_define_typed_function_star(s7, S_make_delay, g_make_delay, 
+				"size initial-contents initial-element max-size type",
+				H_make_delay,
+				star_sig(S_is_delay));
+  s7_define_typed_function_star(s7, S_make_comb, g_make_comb, 
+				"(scaler 1.0) size initial-contents initial-element max-size type", 
+				H_make_comb,
+				star_sig(S_is_comb));
+  s7_define_typed_function_star(s7, S_make_filtered_comb, g_make_filtered_comb, 
+				"(scaler 1.0) size initial-contents initial-element max-size type filter", 
+				H_make_filtered_comb,
+				star_sig(S_is_filtered_comb));
+  s7_define_typed_function_star(s7, S_make_notch, g_make_notch, 
+				"(scaler 1.0) size initial-contents initial-element max-size type", 
+				H_make_notch,
+				star_sig(S_is_notch));
+  s7_define_typed_function_star(s7, S_make_all_pass, g_make_all_pass, 
+				"(feedback 0.0) (feedforward 0.0) size initial-contents initial-element max-size type", 
+				H_make_all_pass,
+				star_sig(S_is_all_pass));
+  s7_define_typed_function_star(s7, S_make_moving_average, g_make_moving_average, 
+				"size initial-contents initial-element", 
+				H_make_moving_average,
+				star_sig(S_is_moving_average));
+  s7_define_typed_function_star(s7, S_make_moving_max, g_make_moving_max, 
+				"size initial-contents initial-element", 
+				H_make_moving_max,
+				star_sig(S_is_moving_max));
+  s7_define_typed_function_star(s7, S_make_moving_norm, g_make_moving_norm, 
+				"size (scaler 1.0) initial-contents initial-element", 
+				H_make_moving_norm,
+				star_sig(S_is_moving_norm));
+  s7_define_typed_function_star(s7, S_make_readin, g_make_readin, 
+				"file (channel 0) (start 0) (direction 1) size",
+				H_make_readin,
+				star_sig(S_is_readin));
+  s7_define_typed_function_star(s7, S_make_convolve, g_make_convolve, 
+				"input filter fft-size",
+				H_make_convolve,
+				star_sig(S_is_convolve));
+  s7_define_typed_function_star(s7, S_make_rand, g_make_rand, 
+				"(frequency 0.0) (amplitude 1.0) envelope distribution size",
+				H_make_rand,
+				star_sig(S_is_rand));
+  s7_define_typed_function_star(s7, S_make_rand_interp, g_make_rand_interp, 
+				"(frequency 0.0) (amplitude 1.0) envelope distribution size",
+				H_make_rand_interp,
+				star_sig(S_is_rand_interp));
+  s7_define_typed_function_star(s7, S_make_src, g_make_src, 
+				"input (srate 1.0) (width 10)",
+				H_make_src,
+				star_sig(S_is_src));
+  s7_define_typed_function_star(s7, S_make_table_lookup, g_make_table_lookup, 
+				"(frequency 0.0) (initial-phase 0.0) wave size type)",
+				H_make_table_lookup,
+				star_sig(S_is_table_lookup));
+  s7_define_typed_function_star(s7, S_make_wave_train, g_make_wave_train, 
+				"(frequency 0.0) (initial-phase 0.0) wave size type",
+				H_make_wave_train,
+				star_sig(S_is_wave_train));
+  s7_define_typed_function_star(s7, S_make_phase_vocoder, g_make_phase_vocoder, 
+				"input fft-size overlap interp pitch analyze edit synthesize",
+				H_make_phase_vocoder,
+				star_sig(S_is_phase_vocoder));
+  s7_define_typed_function_star(s7, S_make_granulate, g_make_granulate, 
+				"input (expansion 1.0) (length .15) (scaler .6) (hop .05) (ramp .4) (jitter 1.0) max-size edit)",
+				H_make_granulate,
+				star_sig(S_is_granulate));
+  s7_define_typed_function_star(s7, S_make_locsig, g_make_locsig, 
+				"(degree 0.0) (distance 1.0) (reverb 0.0) output revout channels type",
+				H_make_locsig,
+				star_sig(S_is_locsig));
+#else
+  Xen_define_typed_procedure(S_make_env,          g_make_env_w,           0, 0, 1, H_make_env,         star_sig(S_is_env));
+  Xen_define_typed_procedure(S_make_polywave,     g_make_polywave_w,      0, 0, 1, H_make_polywave,    star_sig(S_is_polywave));
+  Xen_define_typed_procedure(S_make_polyshape,    g_make_polyshape_w,     0, 0, 1, H_make_polyshape,   star_sig(S_is_polyshape));
+  Xen_define_typed_procedure(S_make_oscil,        g_make_oscil_w,         0, 4, 0, H_make_oscil,       star_sig(S_is_oscil));
+  Xen_define_typed_procedure(S_make_ssb_am,       g_make_ssb_am_w,        0, 4, 0, H_make_ssb_am,      star_sig(S_is_ssb_am)); 
+  Xen_define_typed_procedure(S_make_ncos,         g_make_ncos_w,          0, 4, 0, H_make_ncos,        star_sig(S_is_ncos)); 
+  Xen_define_typed_procedure(S_make_nsin,         g_make_nsin_w,          0, 4, 0, H_make_nsin,        star_sig(S_is_nsin)); 
+  Xen_define_typed_procedure(S_make_asymmetric_fm,g_make_asymmetric_fm_w, 0, 8, 0, H_make_asymmetric_fm, star_sig(S_is_asymmetric_fm));
+  Xen_define_typed_procedure(S_make_nrxysin,      g_make_nrxysin_w,       0, 0, 1, H_make_nrxysin,     star_sig(S_is_nrxysin));
+  Xen_define_typed_procedure(S_make_nrxycos,      g_make_nrxycos_w,       0, 0, 1, H_make_nrxycos,     star_sig(S_is_nrxycos));
+  Xen_define_typed_procedure(S_make_rxyksin,      g_make_rxyksin_w,       0, 0, 1, H_make_rxyksin,     star_sig(S_is_rxyksin));
+  Xen_define_typed_procedure(S_make_rxykcos,      g_make_rxykcos_w,       0, 0, 1, H_make_rxykcos,     star_sig(S_is_rxykcos));
+  Xen_define_typed_procedure(S_make_one_zero,     g_make_one_zero_w,      0, 4, 0, H_make_one_zero,    star_sig(S_is_one_zero));
+  Xen_define_typed_procedure(S_make_one_pole,     g_make_one_pole_w,      0, 4, 0, H_make_one_pole,    star_sig(S_is_one_pole));
+  Xen_define_typed_procedure(S_make_two_zero,     g_make_two_zero_w,      0, 6, 0, H_make_two_zero,    star_sig(S_is_two_zero));
+  Xen_define_typed_procedure(S_make_two_pole,     g_make_two_pole_w,      0, 6, 0, H_make_two_pole,    star_sig(S_is_two_pole));
+  Xen_define_typed_procedure(S_make_formant,      g_make_formant_w,       0, 4, 0, H_make_formant,     star_sig(S_is_formant));
+  Xen_define_typed_procedure(S_make_firmant,      g_make_firmant_w,       0, 4, 0, H_make_firmant,     star_sig(S_is_firmant));
+  Xen_define_typed_procedure(S_make_pulse_train,  g_make_pulse_train_w,   0, 6, 0, H_make_pulse_train, star_sig(S_is_pulse_train));
+  Xen_define_typed_procedure(S_make_sawtooth_wave,g_make_sawtooth_wave_w, 0, 6, 0, H_make_sawtooth_wave, star_sig(S_is_sawtooth_wave));
+  Xen_define_typed_procedure(S_make_triangle_wave,g_make_triangle_wave_w, 0, 6, 0, H_make_triangle_wave, star_sig(S_is_triangle_wave));
+  Xen_define_typed_procedure(S_make_square_wave,  g_make_square_wave_w,   0, 6, 0, H_make_square_wave,   star_sig(S_is_square_wave));
+  Xen_define_typed_procedure(S_make_delay,        g_make_delay_w,         0, 0, 1, H_make_delay,       star_sig(S_is_delay));
+  Xen_define_typed_procedure(S_make_comb,         g_make_comb_w,          0, 0, 1, H_make_comb,        star_sig(S_is_comb));
+  Xen_define_typed_procedure(S_make_filtered_comb,g_make_filtered_comb_w, 0, 0, 1, H_make_filtered_comb, star_sig(S_is_filtered_comb));
+  Xen_define_typed_procedure(S_make_notch,        g_make_notch_w,         0, 0, 1, H_make_notch,       star_sig(S_is_notch)); 
+  Xen_define_typed_procedure(S_make_all_pass,     g_make_all_pass_w,      0, 0, 1, H_make_all_pass,    star_sig(S_is_all_pass));
+  Xen_define_typed_procedure(S_make_moving_average,g_make_moving_average_w,0, 0, 1, H_make_moving_average, star_sig(S_is_moving_average));
+  Xen_define_typed_procedure(S_make_moving_max,   g_make_moving_max_w,    0, 0, 1, H_make_moving_max,  star_sig(S_is_moving_max));
+  Xen_define_typed_procedure(S_make_moving_norm,  g_make_moving_norm_w,   0, 0, 1, H_make_moving_norm, star_sig(S_is_moving_norm));
+  Xen_define_typed_procedure(S_make_readin,       g_make_readin_w,        0, 0, 1, H_make_readin,      star_sig(S_is_readin));
+  Xen_define_typed_procedure(S_make_convolve,     g_make_convolve_w,      0, 0, 1, H_make_convolve,    star_sig(S_is_convolve));
+  Xen_define_typed_procedure(S_make_rand,         g_make_rand_w,          0, 0, 1, H_make_rand,	       star_sig(S_is_rand));
+  Xen_define_typed_procedure(S_make_rand_interp,  g_make_rand_interp_w,   0, 0, 1, H_make_rand_interp, star_sig(S_is_rand_interp));
+  Xen_define_typed_procedure(S_make_src,          g_make_src_w,           0, 6, 0, H_make_src,         star_sig(S_is_src));
+  Xen_define_typed_procedure(S_make_table_lookup, g_make_table_lookup_w,  0, 0, 1, H_make_table_lookup,star_sig(S_is_table_lookup));
+  Xen_define_typed_procedure(S_make_filter,       g_make_filter_w,        0, 6, 0, H_make_filter,      star_sig(S_is_filter));
+  Xen_define_typed_procedure(S_make_fir_filter,   g_make_fir_filter_w,    0, 4, 0, H_make_fir_filter,  star_sig(S_is_fir_filter));
+  Xen_define_typed_procedure(S_make_iir_filter,   g_make_iir_filter_w,    0, 4, 0, H_make_iir_filter,  star_sig(S_is_iir_filter));
+  Xen_define_typed_procedure(S_make_wave_train,   g_make_wave_train_w,    0, 0, 1, H_make_wave_train,  star_sig(S_is_wave_train));
+  Xen_define_typed_procedure(S_make_phase_vocoder,g_make_phase_vocoder_w, 0, 0, 1, H_make_phase_vocoder, star_sig(S_is_phase_vocoder));
+  Xen_define_typed_procedure(S_make_granulate,    g_make_granulate_w,     0, 0, 1, H_make_granulate,   star_sig(S_is_granulate));
+  Xen_define_typed_procedure(S_make_locsig,       g_make_locsig_w,        0, 0, 1, H_make_locsig,      star_sig(S_is_locsig));
+#endif
+
+  Xen_define_typed_procedure(S_make_oscil_bank,         g_make_oscil_bank_w,        2, 2, 0, H_make_oscil_bank,	
 			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_oscil_bank), t));
-  Xen_define_typed_procedure(S_make_nsin,		g_make_nsin_w,              0, 4, 0, H_make_nsin,		
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_nsin), t)); 
-  Xen_define_typed_procedure(S_make_asymmetric_fm,	g_make_asymmetric_fm_w,     0, 8, 0, H_make_asymmetric_fm,	
-			     s7_make_circular_signature(s7, 1, 2, s7_make_symbol(s7, S_is_asymmetric_fm), t));
 
-  Xen_define_typed_procedure(S_mus_file_mix,		g_mus_file_mix_w,           0, 0, 1, H_mus_file_mix,		NULL);
+  Xen_define_typed_procedure(S_mus_file_mix, 	        g_mus_file_mix_w,           0, 0, 1, H_mus_file_mix,		NULL);
   Xen_define_typed_procedure(S_mus_file_mix_with_envs,	g_mus_file_mix_with_envs_w, 0, 0, 1, H_mus_file_mix_with_envs,	NULL); /* actually 8 2 0 I think */
   Xen_define_typed_procedure(S_frample_to_frample,	g_frample_to_frample_w,     5, 0, 0, H_frample_to_frample,	pl_fffifi);
 
@@ -11362,6 +13747,11 @@ static void mus_xen_init(void)
   init_choosers(s7);
 #endif
 
+#if (!DISABLE_DEPRECATED)
+  Xen_define_typed_dilambda(S_clm_default_frequency, g_clm_default_frequency_w, H_clm_default_frequency,
+			    S_set S_clm_default_frequency, g_set_clm_default_frequency_w, 0, 0, 1, 0, pl_d, pl_dr);
+#endif
+
 
   /* -------- clm-print (see also snd-xen.c) -------- */
 #if (!USE_SND)
diff --git a/clm2xen.h b/clm2xen.h
index 7e4c906..89901a8 100644
--- a/clm2xen.h
+++ b/clm2xen.h
@@ -8,7 +8,6 @@ typedef struct mus_xen mus_xen;
 #define Xen_to_mus_xen(arg) ((mus_xen *)Xen_object_ref(arg))
 #define Xen_to_mus_any(obj) mus_xen_gen(Xen_to_mus_xen(obj))
 #define MUS_CLM_DEFAULT_TABLE_SIZE 512
-#define MUS_CLM_DEFAULT_FREQUENCY 0.0
 
 #ifdef __cplusplus
 extern "C" {
@@ -24,7 +23,7 @@ MUS_EXPORT const char *mus_fft_window_xen_name(mus_fft_window_t i);
 MUS_EXPORT Xen mus_xen_to_object(mus_xen *gn);
 MUS_EXPORT Xen mus_xen_to_object_with_vct(mus_xen *gn, Xen v);
 MUS_EXPORT mus_any *mus_optkey_to_mus_any(Xen key, const char *caller, int n, mus_any *def);
-MUS_EXPORT int mus_optkey_unscramble(const char *caller, int nkeys, Xen *keys, Xen *args, int *orig);
+MUS_EXPORT int mus_optkey_unscramble(const char *caller, int num_args, int nkeys, Xen *keys, Xen *args, int *orig);
 MUS_EXPORT mus_float_t mus_optkey_to_float(Xen key, const char *caller, int n, mus_float_t def);
 MUS_EXPORT int mus_optkey_to_int(Xen key, const char *caller, int n, int def);
 MUS_EXPORT bool mus_optkey_to_bool(Xen key, const char *caller, int n, bool def);
diff --git a/cload.scm b/cload.scm
index aa47bc1..780f361 100644
--- a/cload.scm
+++ b/cload.scm
@@ -136,7 +136,7 @@
 
 			 '(string s7_is_string s7_string s7_make_string char*)
 			 (list 'character 's7_is_character 's7_character 's7_make_character (symbol "unsigned char"))
-			 '(c_pointer s7_is_c_pointer s7_c_pointer s7_make_c_pointer void*)
+			 '(c_pointer s7_is_c_pointer s7_c_pointer s7_make_c_pointer_with_type void*)
 			 '(s7_pointer #f #f #f s7_pointer)
 			 ))
 
@@ -302,17 +302,17 @@
 		     (eq? (car arg-types) 'void))
 		(set! num-args 0))
 	    (format p "~%/* -------- ~A -------- */~%" func-name)
-	    (format p "static s7_pointer ~A(s7_scheme *sc, s7_pointer args)~%" base-name)
+	    (format p "static s7_pointer ~A(s7_scheme *sc, s7_pointer ~A)~%" base-name (if (= num-args 1) 'arg 'args))
 	    (format p "{~%")
 	    
 	    ;; get the Scheme args, check their types, assign to local C variables
 	    (when (positive? num-args)
-	      (format p "  s7_pointer arg;~%")
+	      (if (not (= num-args 1)) (format p "  s7_pointer arg;~%"))
 	      (do ((i 0 (+ i 1))
 		   (type arg-types (cdr type)))
 		  ((= i num-args))
 		(format p "  ~A ~A_~D;~%" ((if (pair? (car type)) caar car) type) base-name i))
-	      (format p "  arg = args;~%")
+	      (if (not (= num-args 1)) (format p "  arg = args;~%"))
 	      (do ((i 0 (+ i 1))
 		   (type arg-types (cdr type)))
 		  ((= i num-args))
@@ -320,22 +320,29 @@
 		(let* ((nominal-type ((if (pair? (car type)) caar car) type))  ; double in the example
 		       (true-type    ((if (pair? (car type)) cadar car) type))
 		       (s7-type      (C-type->s7-type true-type)))                    ; real
+		  ;(format *stderr* "~A(~D): ~A ~A ~A~%" func-name i nominal-type true-type s7-type)
 		  (if (eq? true-type 's7_pointer)
 		      (format p "    ~A_~D = s7_car(arg);~%" base-name i)
-		      (begin
-			(format p "  if (~A(s7_car(arg)))~%" (checker true-type))
-			(format p "    ~A_~D = (~A)~A(~As7_car(arg));~%"
-				base-name i
-				nominal-type
-				(s7->C true-type)                               ; s7_number_to_real which requires 
-				(if (memq s7-type '(boolean real))              ;   the extra sc arg
-				    "sc, " ""))
-			(format p "  else return(s7_wrong_type_arg_error(sc, ~S, ~D, s7_car(arg), ~S));~%"
-				func-name 
-				(if (= num-args 1) 0 (+ i 1))
-				(if (symbol? s7-type) 
-				    (symbol->string s7-type) 
-				    (error 'bad-arg (format #f "in ~S, ~S is not a symbol~%" name s7-type))))))
+		      (if (eq? s7-type 'c_pointer)
+			  (begin
+			    (format p "  if (s7_is_c_pointer_of_type(s7_car(arg), s7_make_symbol(sc, ~S)))~%" (symbol->string nominal-type))
+			    (format p "    ~A_~D = (~A)s7_c_pointer(s7_car(arg));~%" base-name i nominal-type)
+			    (format p "  else return(s7_wrong_type_arg_error(sc, ~S, ~D, s7_car(arg), ~S));~%"
+				func-name (if (= num-args 1) 0 (+ i 1)) (symbol->string nominal-type)))
+			  (begin
+			    (format p "  if (~A(s7_car(arg)))~%" (checker true-type))
+			    (format p "    ~A_~D = (~A)~A(~As7_car(arg));~%"
+				    base-name i
+				    nominal-type
+				    (s7->C true-type)                               ; s7_number_to_real which requires 
+				    (if (memq s7-type '(boolean real))              ;   the extra sc arg
+					"sc, " ""))
+			    (format p "  else return(s7_wrong_type_arg_error(sc, ~S, ~D, s7_car(arg), ~S));~%"
+				    func-name 
+				    (if (= num-args 1) 0 (+ i 1))
+				    (if (symbol? s7-type) 
+					(symbol->string s7-type) 
+					(error 'bad-arg (format #f "in ~S, ~S is not a symbol~%" name s7-type)))))))
 		  (if (< i (- num-args 1))
 		      (format p "  arg = s7_cdr(arg);~%")))))
 	    
@@ -343,6 +350,7 @@
 	    (if (pair? return-type) 
 		(set! return-type (cadr return-type)))
 	    (let ((return-translator (C->s7 return-type)))
+	      ;(format *stderr* "return ~A ~A~%" return-type return-translator)
 	      (format p "  ")
 	      (if (not (eq? return-translator #t))
 		  (format p "return("))
@@ -355,8 +363,11 @@
 	      (if (positive? num-args)
 		  (format p "~A_~D" base-name (- num-args 1)))
 	      (format p ")")
-	      (if (symbol? return-translator)
-		  (format p ")"))
+
+	      (if (eq? return-translator 's7_make_c_pointer_with_type)
+		  (format p ", s7_make_symbol(sc, ~S), s7_f(sc))" (symbol->string return-type))
+		  (if (symbol? return-translator)
+		      (format p ")")))
 	      (format p (if (not (eq? return-translator #t))
 			    ");~%"
 			    ";~%  return(s7_unspecified(sc));~%"))
@@ -486,12 +497,20 @@
 	       (lambda (c)
 		 (let* ((type (c 0))
 			(c-name (c 1))
-			(scheme-name (string-append prefix (if (> (length prefix) 0) ":" "") c-name)))
-		   (format p "  s7_define(sc, cur_env, s7_make_symbol(sc, ~S), ~A(sc, (~A)~A));~%" 
-			   scheme-name
-			   (C->s7 type)
-			   (C->s7-cast type)
-			   c-name)))
+			(scheme-name (string-append prefix (if (> (length prefix) 0) ":" "") c-name))
+			(trans (C->s7 type)))
+		   (if (eq? trans 's7_make_c_pointer_with_type)
+		       (format p "  s7_define(sc, cur_env, s7_make_symbol(sc, ~S), ~A(sc, (~A)~A, s7_make_symbol(sc, ~S), s7_f(sc)));~%" 
+			       scheme-name
+			       trans
+			       (C->s7-cast type)
+			       c-name
+			       (if (eq? type 'c-pointer) "void*" (symbol->string type)))
+		       (format p "  s7_define(sc, cur_env, s7_make_symbol(sc, ~S), ~A(sc, (~A)~A));~%" 
+			       scheme-name
+			       trans
+			       (C->s7-cast type)
+			       c-name))))
 	       constants)))
 	
 	;; C macros -- need #ifdef name #endif wrapper
@@ -502,13 +521,19 @@
 	       (lambda (c)
 		 (let* ((type (c 0))
 			(c-name (c 1))
-			(scheme-name (string-append prefix (if (> (length prefix) 0) ":" "") c-name)))
+			(scheme-name (string-append prefix (if (> (length prefix) 0) ":" "") c-name))
+			(trans (C->s7 type)))
 		   (format p "#ifdef ~A~%" c-name)
-		   (format p "  s7_define(sc, cur_env, s7_make_symbol(sc, ~S), ~A(sc, (~A)~A));~%" 
-			   scheme-name
-			   (C->s7 type)
-			   (C->s7-cast type)
-			   c-name)
+		   (if (eq? trans 's7_make_c_pointer_with_type)
+		       (format p "  s7_define(sc, cur_env, s7_make_symbol(sc, ~S), s7_make_c_pointer(sc, (~A)~A));~%" 
+			       scheme-name
+			       (C->s7-cast type)
+			       c-name)
+		       (format p "  s7_define(sc, cur_env, s7_make_symbol(sc, ~S), ~A(sc, (~A)~A));~%" 
+			       scheme-name
+			       trans
+			       (C->s7-cast type)
+			       c-name))
 		   (format p "#endif~%")))
 	       macros)))
 	
diff --git a/configure b/configure
index 168c60f..e3d6a22 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for snd 17.5.
+# Generated by GNU Autoconf 2.69 for snd 17.6.
 #
 # Report bugs to <bil at ccrma.stanford.edu>.
 #
@@ -580,8 +580,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='snd'
 PACKAGE_TARNAME='ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-17.tar.gz'
-PACKAGE_VERSION='17.5'
-PACKAGE_STRING='snd 17.5'
+PACKAGE_VERSION='17.6'
+PACKAGE_STRING='snd 17.6'
 PACKAGE_BUGREPORT='bil at ccrma.stanford.edu'
 PACKAGE_URL=''
 
@@ -1321,7 +1321,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures snd 17.5 to adapt to many kinds of systems.
+\`configure' configures snd 17.6 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1392,7 +1392,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of snd 17.5:";;
+     short | recursive ) echo "Configuration of snd 17.6:";;
    esac
   cat <<\_ACEOF
 
@@ -1508,7 +1508,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-snd configure 17.5
+snd configure 17.6
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1969,7 +1969,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by snd $as_me 17.5, which was
+It was created by snd $as_me 17.6, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3316,7 +3316,7 @@ LOCAL_LANGUAGE="None"
 GRAPHICS_TOOLKIT="None"
 
 PACKAGE=Snd
-VERSION=17.5
+VERSION=17.6
 
 #--------------------------------------------------------------------------------
 # configuration options
@@ -6703,7 +6703,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by snd $as_me 17.5, which was
+This file was extended by snd $as_me 17.6, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -6765,7 +6765,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-snd config.status 17.5
+snd config.status 17.6
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 41b512a..3f54d9c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@
 #   gmp, mpfr, and mpc deliberately have none!
 
 
-AC_INIT(snd, 17.5, bil at ccrma.stanford.edu, ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-17.tar.gz)
+AC_INIT(snd, 17.6, bil at ccrma.stanford.edu, ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-17.tar.gz)
 
 AC_CONFIG_SRCDIR(snd.c)
 AC_CANONICAL_HOST # needed by case $host below
@@ -24,7 +24,7 @@ LOCAL_LANGUAGE="None"
 GRAPHICS_TOOLKIT="None"
 
 PACKAGE=Snd
-VERSION=17.5
+VERSION=17.6
 
 #--------------------------------------------------------------------------------
 # configuration options
diff --git a/dsp.scm b/dsp.scm
index 80a9dc2..94d0385 100644
--- a/dsp.scm
+++ b/dsp.scm
@@ -2491,7 +2491,13 @@ is assumed to be outside -1.0 to 1.0."))
 
 
 ;;; -------- parallel FM spectrum calculator
-
+;;;
+;;; outside Snd, jn can be accessed via:
+;;;   (require libgsl.scm)
+;;;   (define jn (*libgsl* 'gsl_sf_bessel_Jn))
+;;; or:
+;;;   (require libm.scm)
+;;;   (define jn (*libm* 'jn))
 					;(fm-parallel-component 200 2000.0 (list 2000.0 200.0) (list 0.5 1.0) () () #t)
 
 (define fm-parallel-component 
diff --git a/examp.scm b/examp.scm
index f2a8045..07e025d 100644
--- a/examp.scm
+++ b/examp.scm
@@ -1559,7 +1559,8 @@ as env moves to 0.0, low-pass gets more intense; amplitude and low-pass amount m
 	    (samp0 0.0)
 	    (samp1 0.0)
 	    (samp2 0.0)
-	    (len (framples)))
+	    (len (framples))
+	    (local-max 0.0))
 	(call-with-exit
 	 (lambda (return)
 	   (do ((ctr loc (+ ctr 1)))
@@ -1567,11 +1568,11 @@ as env moves to 0.0, low-pass gets more intense; amplitude and low-pass amount m
 	     (set! samp0 samp1)
 	     (set! samp1 samp2)
 	     (set! samp2 (next-sample reader))
-	     (let ((local-max (max .1 (moving-max mmax samp0))))
-	       (if (and (> (abs (- samp0 samp1)) local-max)
-			(> (abs (- samp1 samp2)) local-max)
-			(< (abs (- samp0 samp2)) (/ local-max 2)))
-		   (return (- ctr 1)))))))))))
+	     (set! local-max (max .1 (moving-max mmax samp0)))
+	     (if (and (> (abs (- samp0 samp1)) local-max)
+		      (> (abs (- samp1 samp2)) local-max)
+		      (< (abs (- samp0 samp2)) (/ local-max 2)))
+		 (return (- ctr 1))))))))))
 
 (define remove-clicks
   (let ((documentation "(remove-clicks) tries to find and smooth-over clicks"))
@@ -1593,15 +1594,16 @@ as env moves to 0.0, low-pass gets more intense; amplitude and low-pass amount m
       (let ((samp0 0.0)
 	    (samp1 0.0)
 	    (samp2 0.0)
-	    (mmax (make-moving-max 10)))
+	    (mmax (make-moving-max 10))
+	    (local-max 0.0))
 	(lambda (val)
 	  (set! samp0 samp1)
 	  (set! samp1 samp2)
 	  (set! samp2 val)
-	  (let ((local-max (max .1 (moving-max mmax samp0))))
-	    (and (>= (abs (- samp0 samp1)) local-max)
-		 (>= (abs (- samp1 samp2)) local-max)
-		 (<= (abs (- samp0 samp2)) (/ local-max 2)))))))))
+	  (set! local-max (max .1 (moving-max mmax samp0)))
+	  (and (>= (abs (- samp0 samp1)) local-max)
+	       (>= (abs (- samp1 samp2)) local-max)
+	       (<= (abs (- samp0 samp2)) (/ local-max 2))))))))
 
 
 (define zero+
diff --git a/extsnd.html b/extsnd.html
index 8a6bbe3..fceb41b 100644
--- a/extsnd.html
+++ b/extsnd.html
@@ -4153,8 +4153,6 @@ on a good day.
 <p>mus-clipping is the default low-level clipping choice while accessing sound data.
 Its default is #f which makes clipping very obvious (it will cause wrap-around).
 If you're using the standard Snd file accessors, you probably want to use <a href="#clipping">clipping</a>, not this function.
-This function refers to <a href="#mussoundopenoutput">mus-sound-open-output</a> and friends; the file-local version
-is <a href="#musfileclipping">mus-file-clipping</a> — surely we could make this more confusing!
 See also <a href="#cliphook">clip-hook</a>.
 </p>
 <div class="spacer"></div>
@@ -4193,8 +4191,7 @@ and whatever else seems appropriate.
 <em class=def id="musfileclipping">mus-file-clipping</em> fd
 </pre>
 
-<p>This is the clipping choice for the file referred to by 'fd' 
-(a file identifier as returned by <a href="#mussoundopeninput">mus-sound-open-input</a>).
+<p>This is the clipping choice for the file referred to by 'fd.
 The default is #f which makes clipping very obvious (it will cause wrap-around).
 See also <a href="#cliphook">clip-hook</a>.
 </p>
@@ -4324,34 +4321,6 @@ whose header claims it has 43 channels, but we know it only has 2:
 <div class="spacer"></div>
 
 
-<!-- mus-sound-close-input -->
-<pre class="indented">
-<em class=def id="mussoundcloseinput">mus-sound-close-input</em> fd
-</pre>
-
-<p>This closes the sound file referred to by 'fd'; 'fd' is an integer returned by <a href="#mussoundopeninput">mus-sound-open-input</a>.
-These mus-sound-* file functions refer to a direct path to read and write sound files.  Any such operation is beneath the
-notice, so to speak, of Snd.  
-</p>
-<div class="spacer"></div>
-
-
-<!-- mus-sound-close-output -->
-<pre class="indented">
-<em class=def id="mussoundcloseoutput">mus-sound-close-output</em> fd bytes
-</pre>
-
-<p>This function closes the sound file 'fd', and updates its length indication, if any to be 'bytes' bytes.
-If you didn't specify a sample-type to <a href="#mussoundopenoutput">mus-sound-open-output</a>,
-it defaulted to mus-out-format.
-mus-out-format can
-currently be either ints, floats, or doubles, depending on how you've configured Snd, so it's safest
-to use (<a href="#musbytespersample">mus-bytes-per-sample</a> mus-out-format) 
-for the number of bytes per sample.
-</p>
-<div class="spacer"></div>
-
-
 <!-- mus-sound-comment -->
 <pre class="indented">
 <em class=def id="mussoundcomment">mus-sound-comment</em> filename
@@ -4537,28 +4506,6 @@ in the sound cache; if it isn't, a call on mus-sound-maxamp has to open and read
 <div class="spacer"></div>
 
 
-<!-- mus-sound-open-input -->
-<pre class="indented">
-<em class=def id="mussoundopeninput">mus-sound-open-input</em> filename
-</pre>
-
-<p>mus-sound-open-input opens the sound file 'filename' and returns an integer for use with 
-<a href="#mussoundread">mus-sound-read</a> and <a href="#mussoundcloseinput">mus-sound-close-input</a>.
-</p>
-<div class="spacer"></div>
-
-
-<!-- mus-sound-open-output -->
-<pre class="indented">
-<em class=def id="mussoundopenoutput">mus-sound-open-output</em> filename (srate 44100) (chans 1) sample-type header-type comment
-</pre>
-
-<p>mus-sound-open-output creates a new sound file with the indicated attributes, and returns an integer 
-for use with <a href="#mussoundwrite">mus-sound-write</a> and <a href="#mussoundcloseoutput">mus-sound-close-output</a>.
-</p>
-<div class="spacer"></div>
-
-
 <!-- mus-sound-preload -->
 <pre class="indented">
 <em class=def id="mussoundpreload">mus-sound-preload</em> filename
@@ -4580,27 +4527,6 @@ stored in some odd format, and you use that file a lot, this can save some time.
 <div class="spacer"></div>
 
 
-<!-- mus-sound-read -->
-<pre class="indented">
-<em class=def id="mussoundread">mus-sound-read</em> fd beg-in-file num-to-read chans sd
-</pre>
-
-<p>mus-sound-read reads data from the sound file 'fd', starting at frample 'beg-in-file' (frample 0 is the first),
-loading num-to-read samples into the float-vector 'sd' starting from 0 in that vector.
-</p>
-<div class="spacer"></div>
-
-
-<!-- mus-sound-reopen-output -->
-<pre class="indented">
-<em class=def id="mussoundreopenoutput">mus-sound-reopen-output</em> filename (chans 1) sample-type header-type data-location
-</pre>
-
-<p>mus-sound-reopen-output reopens the sound file 'filename', ready to continue writing output.
-</p>
-<div class="spacer"></div>
-
-
 <!-- mus-sound-report-cache -->
 <pre class="indented">
 <em class=def id="mussoundreportcache">mus-sound-report-cache</em> file
@@ -4641,16 +4567,6 @@ loading num-to-read samples into the float-vector 'sd' starting from 0 in that v
 <div class="spacer"></div>
 
 
-<!-- mus-sound-seek-frample -->
-<pre class="indented">
-<em class=def id="mussoundseekframple">mus-sound-seek-frample</em> fd frample
-</pre>
-
-<p>mus-sound-seek-frample moves the input or output reading point to 'frample' in the sound file 'fd'.
-</p>
-<div class="spacer"></div>
-
-
 <!-- mus-sound-srate -->
 <pre class="indented">
 <em class=def id="mussoundsrate">mus-sound-srate</em> filename
@@ -4671,16 +4587,6 @@ loading num-to-read samples into the float-vector 'sd' starting from 0 in that v
 <div class="spacer"></div>
 
 
-<!-- mus-sound-write -->
-<pre class="indented">
-<em class=def id="mussoundwrite">mus-sound-write</em> fd beg end chans sd
-</pre>
-
-<p>mus-sound-write writes data from the float-vector 'sd' to the sound file 'fd'.
-</p>
-<div class="spacer"></div>
-
-
 <!-- mus-sound-write-date -->
 <pre class="indented">
 <em class=def id="mussoundwritedate">mus-sound-write-date</em> filename
@@ -8185,8 +8091,7 @@ file ok:
 <p>There are
 other ways to get at sound file data: <a class=quiet href="#makesampler">make-sampler</a> can be given a filename,
 rather than a sound; file->float-vector in examp.scm; 
-<a class=quiet href="#mussoundopeninput">mus-sound-open-input</a> and
-there are a variety of CLM-based functions such as
+and a variety of CLM-based functions such as
 <a class=quiet href="sndclm.html#filetosample">file->sample</a> and
 <a class=quiet href="sndclm.html#filetoarray">file->array</a>.
 </p>
diff --git a/generators.scm b/generators.scm
index d735867..2717c5e 100644
--- a/generators.scm
+++ b/generators.scm
@@ -27,7 +27,7 @@
 ;;; nssb (see nxycos) -- wouldn't a more consistent name be nxycos? but it already exists -- perhaps delete nssb?
 
 (defgenerator (nssb :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (angle 0.0) fm)
+  (frequency 0.0) (ratio 1.0) (n 1) (angle 0.0) fm)
 
 
 (define nssb 
@@ -121,7 +121,7 @@ similar to nxysin. (nssb gen (fm 0.0)) returns n sinusoids from frequency spaced
 			       (convert-frequency g)
 			       (set! (g 'norm) (/ 1.0 (find-nxysin-max (g 'n) (g 'ratio))))
 			       g))
-  (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (angle 0.0) fm
+  (frequency 0.0) (ratio 1.0) (n 1) (angle 0.0) fm
   (norm 1.0))
 
 
@@ -197,7 +197,7 @@ generator. (nxysin gen (fm 0.0)) returns n sines from frequency spaced by freque
 
 
 (defgenerator (nxycos :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (angle 0.0) fm)
+  (frequency 0.0) (ratio 1.0) (n 1) (angle 0.0) fm)
 
 
 (define nxycos 
@@ -233,7 +233,7 @@ returns n cosines from frequency spaced by frequency * ratio."))
 ;;; G&R first col rows 3 4
 
 (defgenerator (nxy1cos :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (angle 0.0) fm)
+  (frequency 0.0) (ratio 1.0) (n 1) (angle 0.0) fm)
 
 
 (define nxy1cos 
@@ -279,7 +279,7 @@ generator. (nxy1cos gen (fm 0.0)) returns 2n cosines from frequency spaced by fr
 
 
 (defgenerator (nxy1sin :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (angle 0.0) fm)
+  (frequency 0.0) (ratio 1.0) (n 1) (angle 0.0) fm)
 
 
 (define nxy1sin 
@@ -342,7 +342,7 @@ returns n sines from frequency spaced by frequency * ratio with every other sine
 				   (set! (noddsin-maxes (g 'n)) (find-noddsin-max (g 'n))))
 			       (set! (g 'norm) (/ 1.0 (noddsin-maxes (g 'n))))
 			       g))
-  (frequency *clm-default-frequency*) (n 1) (angle 0.0) (norm 1.0) fm)
+  (frequency 0.0) (n 1) (angle 0.0) (norm 1.0) fm)
 
 
 (define noddsin 
@@ -379,7 +379,7 @@ returns n odd-numbered sines spaced by frequency."))
 
 
 (defgenerator (noddcos :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (n 1) (angle 0.0) fm)
+  (frequency 0.0) (n 1) (angle 0.0) fm)
 
 
 (define noddcos 
@@ -415,7 +415,7 @@ returns n odd-numbered cosines spaced by frequency."))
 
 
 (defgenerator (noddssb :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (angle 0.0) fm)
+  (frequency 0.0) (ratio 1.0) (n 1) (angle 0.0) fm)
 
 
 (define noddssb 
@@ -465,7 +465,7 @@ returns n sinusoids from frequency spaced by 2 * ratio * frequency."))
 ;;; various kernels: ncos2 = ncos squared (Fejer), ncos4 = ncos2 squared (Jackson), npcos = Poussin kernel
 
 (defgenerator (ncos2 :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (n 1) (angle 0.0) fm)
+  (frequency 0.0) (n 1) (angle 0.0) fm)
 
 
 (define ncos2 
@@ -525,7 +525,7 @@ returns n sinusoids spaced by frequency scaled by ((n-k)/(n+1))^2"))
 
 
 (defgenerator (npcos :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (n 1) (angle 0.0) fm)
+  (frequency 0.0) (n 1) (angle 0.0) fm)
 
 
 (define npcos 
@@ -565,7 +565,7 @@ returns n*2+1 sinusoids spaced by frequency with amplitudes in a sort of tent sh
 ;;; ncos5 and nsin5 are minor variants of nsin and ncos -- the last component is at half amplitude
 
 (defgenerator (ncos5 :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (n 1) (angle 0.0) fm)
+  (frequency 0.0) (n 1) (angle 0.0) fm)
 
 
 (define ncos5 
@@ -623,7 +623,7 @@ returns n cosines spaced by frequency. All are equal amplitude except the first
 			       (set! (g 'n) (max 2 (g 'n)))
 			       (set! (g 'norm) (find-nsin5-max (g 'n)))
 			       g))
-  (frequency *clm-default-frequency*) (n 2) (angle 0.0) (norm 1.0) fm)
+  (frequency 0.0) (n 2) (angle 0.0) (norm 1.0) fm)
 
 
 (define nsin5 
@@ -739,7 +739,7 @@ returns n sines spaced by frequency. All are equal amplitude except last at half
 			       (set! (g 'gen) (make-nrxysin (g 'frequency) 1.0 (g 'n) (g 'r)))
 			       g)
 	       :methods nrsin-methods)
-  (frequency *clm-default-frequency*) (n 1) (r 0.5) 
+  (frequency 0.0) (n 1) (r 0.5) 
   (gen #f))
 |#
 
@@ -796,7 +796,7 @@ returns n sines spaced by frequency. All are equal amplitude except last at half
 			       (set! (g 'trouble) (or (= (g 'n) 1) (< (abs (g 'r)) nearly-zero)))
 			       g)
 	       :methods nrcos-methods)
-  (frequency *clm-default-frequency*) (n 1) (r 0.5) (angle 0.0) fm rr r1 e1 e2 norm trouble)
+  (frequency 0.0) (n 1) (r 0.5) (angle 0.0) fm rr r1 e1 e2 norm trouble)
 
 
 (define nrcos 
@@ -905,7 +905,7 @@ returns n cosines spaced by frequency with amplitudes scaled by r^k."))
 			       (set! (g 'rn1) (expt (g 'r) (+ (g 'n) 1)))
 			       (set! (g 'norm) (/ (- (g 'rn) 1) (- (g 'r) 1)))
 			       g))
-  (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (r 0.5) (angle 0.0) fm interp rn rn1 norm)
+  (frequency 0.0) (ratio 1.0) (n 1) (r 0.5) (angle 0.0) fm interp rn rn1 norm)
 
 
 (define nrssb 
@@ -1063,7 +1063,7 @@ scaled by r^k. The 'interp' argument determines whether the sidebands are above
 			       (set! (g 'norm) (/ (* 0.5 (g 'n) (- (g 'n) 1))))
 			       g)
 	       :methods nkssb-methods)
-  (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (angle 0.0) fm interp norm)
+  (frequency 0.0) (ratio 1.0) (n 1) (angle 0.0) fm interp norm)
 
 
 (define nkssb 
@@ -1249,7 +1249,7 @@ with amplitude k. The 'interp' argument determines whether the sidebands are abo
 						      (/ (sin (/ (* k pi) (+ n 1))) 
 							 (sin (/ pi (+ n 1)))))))
 				 g)))
-  (frequency *clm-default-frequency*) (n 1) 
+  (frequency 0.0) (n 1) 
   (angle 0.0) (n2 1.0) (cosn 1.0) (norm 0.0) fm)
 
 
@@ -1283,7 +1283,7 @@ returns n cosines spaced by frequency with amplitude sin(k*pi/(n+1))/sin(pi/(n+1
 ;;; Ramanujan, "On certain Arithmetical Functions"
 
 (defgenerator (n1cos :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (n 1) (angle 0.0) fm)
+  (frequency 0.0) (n 1) (angle 0.0) fm)
 
 (define* (n1cos gen (fm 0.0))
   (let-set! gen 'fm fm)
@@ -1315,7 +1315,7 @@ returns n cosines spaced by frequency with amplitude sin(k*pi/(n+1))/sin(pi/(n+1
 ;;; Dimitrov and Merlo
 
 (defgenerator (npos1cos :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (n 1) (angle 0.0) fm)
+  (frequency 0.0) (n 1) (angle 0.0) fm)
 
 
 (define npos1cos 
@@ -1348,7 +1348,7 @@ returns n cosines spaced by frequency."))
 
 
 (defgenerator (npos3cos :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (n 1) (angle 0.0) fm)
+  (frequency 0.0) (n 1) (angle 0.0) fm)
 
 
 (define npos3cos 
@@ -1421,7 +1421,7 @@ returns n cosines spaced by frequency."))
 				 (set! (g 'norm) (if (< absr nearly-zero) 0.0 (/ (- 1.0 absr) (* 2.0 absr)))))
 			       g)
 	       :methods rcos-methods)
-  (frequency *clm-default-frequency*) (r 0.5) fm
+  (frequency 0.0) (r 0.5) fm
   (osc #f) rr norm rr+1 rr-1 r2)
 
 (define rcos 
@@ -1529,7 +1529,7 @@ returns many cosines spaced by frequency with amplitude r^k."))
 			       g)
 	       
 	       :methods rssb-methods)
-  (frequency *clm-default-frequency*) (ratio 1.0) (r 0.5) (angle 0.0) fm interp)
+  (frequency 0.0) (ratio 1.0) (r 0.5) (angle 0.0) fm interp)
 
 
 (define rssb 
@@ -1724,7 +1724,7 @@ with amplitude r^k. The 'interp' argument determines whether the sidebands are a
 			       (set! (g 'rr) (+ 1.0 (* (g 'r) (g 'r))))
 			       g)
 	       :methods rxysin-methods)
-  (frequency *clm-default-frequency*) (ratio 1.0) (r 0.5) (angle 0.0) fm rr r2)
+  (frequency 0.0) (ratio 1.0) (r 0.5) (angle 0.0) fm rr r2)
 
 
 (define rxysin 
@@ -1771,7 +1771,7 @@ returns many sines from frequency spaced by frequency * ratio with amplitude r^k
 			       (set! (g 'norm) (- 1.0 (abs (g 'r)))) ; abs for negative r
 			       g)
 	       :methods rxycos-methods)
-  (frequency *clm-default-frequency*) (ratio 1.0) (r 0.5) (angle 0.0) fm norm rr r2)
+  (frequency 0.0) (ratio 1.0) (r 0.5) (angle 0.0) fm norm rr r2)
 
 
 (define rxycos 
@@ -1839,7 +1839,7 @@ returns many cosines from frequency spaced by frequency * ratio with amplitude r
 			       (set! (g 'r) (clamp-rxycos-r g 0.0))
 			       g)
 	       :methods safe-rxycos-methods)
-  (frequency *clm-default-frequency*) (ratio 1.0) (r 0.5) (angle 0.0) (cutoff 0.001) fm)
+  (frequency 0.0) (ratio 1.0) (r 0.5) (angle 0.0) (cutoff 0.001) fm)
 
 
 (define safe-rxycos 
@@ -1903,7 +1903,7 @@ returns many cosines from frequency spaced by frequency * ratio with amplitude r
 				 (set! (g 'scaler) (* (sinh (g 'r)) (g 'offset))))
 			       g)
 	       :methods ercos-methods)
-  (frequency *clm-default-frequency*) (r 1.0) fm
+  (frequency 0.0) (r 1.0) fm
   (osc #f) scaler offset cosh-t)
 
 
@@ -1975,7 +1975,7 @@ returns many cosines from frequency with amplitude e^(-kr)."))
 
 
 (defgenerator (erssb :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (ratio 1.0) (r 0.5) (angle 0.0) fm)
+  (frequency 0.0) (ratio 1.0) (r 0.5) (angle 0.0) fm)
 
 
 (define erssb 
@@ -2025,7 +2025,7 @@ returns many sinusoids from frequency spaced by frequency * ratio with amplitude
 			       (if (>= (* (g 'r) (g 'r)) 1.0)
 				   (set! (g 'r) 0.9999999))
 			       g))
-  (frequency *clm-default-frequency*) (r 0.5) (angle 0.0) fm)
+  (frequency 0.0) (r 0.5) (angle 0.0) fm)
 
 
 (define r2sin 
@@ -2058,7 +2058,7 @@ returns many even-numbered sines from frequency with amplitude r^(2k)/(2k)!."))
 			       (if (>= (* (g 'r) (g 'r)) 1.0)
 				   (set! (g 'r) 0.9999999))
 			       g))
-  (frequency *clm-default-frequency*) (r 0.5) (angle 0.0) fm)
+  (frequency 0.0) (r 0.5) (angle 0.0) fm)
 
 
 (define r2cos 
@@ -2087,7 +2087,7 @@ returns many even-numbered cosines from frequency with amplitude r^(2k)/(2k)!.")
 
 
 (defgenerator (r2ssb :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (ratio 1.0) (r 0.5) (angle 0.0) fm)
+  (frequency 0.0) (ratio 1.0) (r 0.5) (angle 0.0) fm)
 
 
 (define r2ssb 
@@ -2155,7 +2155,7 @@ returns many even-numbered sinusoids from frequency spaced by frequency * ratio,
 			       (set! (g 'osc) (make-oscil (g 'frequency) (* 0.5 pi)))
 			       g)
 	       :methods eoddcos-methods)
-  (frequency *clm-default-frequency*) (r 1.0) fm
+  (frequency 0.0) (r 1.0) fm
   (osc #f))
 
 
@@ -2261,7 +2261,7 @@ returns many cosines from spaced by frequency with amplitude too messy to write
 			       (set! (g 'norm) (log (- 1.0 (abs (g 'r)))))
 			       g)
 	       :methods rkcos-methods)
-  (frequency *clm-default-frequency*) (r 0.5) norm fm
+  (frequency 0.0) (r 0.5) norm fm
   (osc #f))
 
 ;;; not very flexible, and very similar to others in the r^k mold
@@ -2297,7 +2297,7 @@ returns many cosines from spaced by frequency with amplitude (r^k)/k."))
 
 (defgenerator (rksin :make-wrapper convert-frequency
 		     :methods rksin-methods)
-  (frequency *clm-default-frequency*) (r 0.5) (angle 0.0) fm)
+  (frequency 0.0) (r 0.5) (angle 0.0) fm)
 
 ;;; normalization based on 0 of derivative of atan arg (for max) at cos x = r,
 ;;;   so we get a maxamp here of (atan (/ (* r (sin (acos r))) (- 1.0 (* r r))))
@@ -2337,7 +2337,7 @@ returns many sines from spaced by frequency with amplitude (r^k)/k."))
 (defgenerator (rkssb
 	       :make-wrapper convert-frequency
 	       :methods rkssb-methods)
-  (frequency *clm-default-frequency*) (ratio 1.0) (r 0.5) (angle 0.0) fm)
+  (frequency 0.0) (ratio 1.0) (r 0.5) (angle 0.0) fm)
 
 
 (define rkssb 
@@ -2391,7 +2391,7 @@ returns many sinusoids from frequency from spaced by frequency * ratio with ampl
 			       (set! (g 'norm) (/ 1.0 (- (exp (abs r)) 1.0)))
 			       g)
 	       :methods rk!cos-methods)
-  (frequency *clm-default-frequency*) (r 0.5) (angle 0.0) fm norm)
+  (frequency 0.0) (r 0.5) (angle 0.0) fm norm)
 
 
 (define rk!cos 
@@ -2488,7 +2488,7 @@ returns many cosines spaced by frequency with amplitude (r^k)/k!."))
 
 
 (defgenerator (rk!ssb :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (ratio 1.0) (r 1.0) (angle 0.0) fm)
+  (frequency 0.0) (ratio 1.0) (r 1.0) (angle 0.0) fm)
 
 
 (define rk!ssb 
@@ -2558,7 +2558,7 @@ returns many sinusoids from frequency spaced by frequency * ratio with amplitude
 ;;; moved to clm.c 18-Apr-13)
 
 (defgenerator (rxyk!sin :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (ratio 1.0) (r 0.5) (angle 0.0) fm)
+  (frequency 0.0) (ratio 1.0) (r 0.5) (angle 0.0) fm)
 
 
 (define rxyk!sin 
@@ -2590,7 +2590,7 @@ returns many sines from frequency spaced by frequency * ratio with amplitude r^k
 			       (convert-frequency g)
 			       (set! (g 'ar) (/ 1.0 (exp (abs (g 'r)))))
 			       g))
-  (frequency *clm-default-frequency*) (ratio 1.0) (r 0.5) (angle 0.0) fm ar)
+  (frequency 0.0) (ratio 1.0) (r 0.5) (angle 0.0) fm ar)
 
 
 (define rxyk!cos 
@@ -2676,7 +2676,7 @@ returns many cosines from frequency spaced by frequency * ratio with amplitude r
 			       (set! (g 'k) (- (g 'k)))
 			       g)
 	       :methods r2k!cos-methods)
-  (frequency *clm-default-frequency*) (r 0.5) (k 0.0) rr1 r2 norm fm
+  (frequency 0.0) (r 0.5) (k 0.0) rr1 r2 norm fm
   (osc #f))
 
 
@@ -2789,7 +2789,7 @@ returns many cosines spaced by frequency with amplitude too messy to write down.
 ;;; not flexible -- very similar to several others
 
 (defgenerator (k2sin :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (angle 0.0) fm)
+  (frequency 0.0) (angle 0.0) fm)
 
 
 (define k2sin 
@@ -2818,7 +2818,7 @@ returns many sines spaced by frequency with amplitude 1/(2^k)."))
 ;;; using the second Sansone formula, we get the sum of cos case by using a=-5b/4 or 3/(4cosx-5)
 
 (defgenerator (k2cos :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (angle 0.0) fm)
+  (frequency 0.0) (angle 0.0) fm)
 
 
 (define k2cos 
@@ -2846,7 +2846,7 @@ returns many cosines spaced by frequency with amplitude 1/(2^k)."))
 
 
 (defgenerator (k2ssb :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (ratio 1.0) (angle 0.0) fm)
+  (frequency 0.0) (ratio 1.0) (angle 0.0) fm)
 
 
 (define k2ssb 
@@ -2890,7 +2890,7 @@ returns many sinusoids from frequency spaced by frequency * ratio with amplitude
 
 (defgenerator (dblsum :make-wrapper convert-frequency
 		      :methods dblsum-methods)
-  (frequency *clm-default-frequency*) (r 0.5) (angle 0.0) fm)
+  (frequency 0.0) (r 0.5) (angle 0.0) fm)
 
 
 (define dblsum 
@@ -2941,7 +2941,7 @@ returns many sines from frequency spaced by frequency * (2k -1) with amplitude r
 			       (set! (g 'norm) (/ 1.0 (- (log (+ 1.0 (g 'r))) (log (- 1.0 (g 'r))))))
 			       g)
 	       :methods rkoddssb-methods)
-  (frequency *clm-default-frequency*) (ratio 1.0) (r 0.5) (angle 0.0) fm rr1 norm)
+  (frequency 0.0) (ratio 1.0) (r 0.5) (angle 0.0) fm rr1 norm)
 
 
 (define rkoddssb 
@@ -3015,7 +3015,7 @@ returns many sinusoids from frequency spaced by frequency * 2 * ratio with ampli
 ;;;   the formula must be assuming r<1.0 -- if greater than 1 it's acting like r2k! above
 
 (defgenerator (krksin :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (r 0.5) (angle 0.0) fm)
+  (frequency 0.0) (r 0.5) (angle 0.0) fm)
 
 
 (define krksin 
@@ -3101,7 +3101,7 @@ returns many sines spaced by frequency with amplitude kr^k."))
 			       (set! (g 'osc) (make-oscil (g 'frequency)))
 			       g)	       
 	       :methods abssin-methods)
-  (frequency *clm-default-frequency*) fm
+  (frequency 0.0) fm
   (osc #f))
 
 
@@ -3155,7 +3155,7 @@ returns many sines spaced by frequency with amplitude kr^k."))
 			       (set! (g 'norm) (/ 0.5 (- (/ 1.0 (- 1.0 (/ (abs (- (g 'ab) (g 'a))) (g 'b)))) 1.0)))
 			       ;; i.e. 1/(1-r) -1 because we start at k=1, r=the complicated a/b business
 			       g))
-  (frequency *clm-default-frequency*) (a 0.5) (b 0.25) (angle 0.0) ab norm fm)
+  (frequency 0.0) (a 0.5) (b 0.25) (angle 0.0) ab norm fm)
 
 
 (define abcos 
@@ -3185,7 +3185,7 @@ returns many cosines spaced by frequency with amplitude (-a+sqrt(a^2-b^2))^k/b^k
 			       (convert-frequency g)
 			       (set! (g 'ab) (sqrt (- (* (g 'a) (g 'a)) (* (g 'b) (g 'b)))))
 			       g))
-  (frequency *clm-default-frequency*) (a 0.5) (b 0.25) (angle 0.0) ab fm)
+  (frequency 0.0) (a 0.5) (b 0.25) (angle 0.0) ab fm)
 
 
 (define absin 
@@ -3219,7 +3219,7 @@ returns many sines spaced by frequency with amplitude (-a+sqrt(a^2-b^2))^k/b^k."
 ;;; J second col third row
 
 (defgenerator (r2k2cos :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (r 1.0) (angle 0.0) fm)
+  (frequency 0.0) (r 1.0) (angle 0.0) fm)
 
 
 (define (r2k2cos-norm a)
@@ -3271,7 +3271,7 @@ returns many cosines spaced by frequency with amplitude 1/(r^2+k^2)."))
 ;;;    Alexander Kritov suggests time-varying "a" is good (this is a translation of his code)
 
 (defgenerator (blsaw :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (n 1) (r 0.5) (angle 0.0) fm)
+  (frequency 0.0) (n 1) (r 0.5) (angle 0.0) fm)
 
 
 (define blsaw 
@@ -3311,7 +3311,7 @@ returns many cosines spaced by frequency with amplitude 1/(r^2+k^2)."))
 ;;; asymmetric fm gens
 
 (defgenerator (asyfm :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (ratio 1.0) (r 1.0) (index 1.0) (phase 0.0) fm)
+  (frequency 0.0) (ratio 1.0) (r 1.0) (index 1.0) (phase 0.0) fm)
 
 
 (define asyfm-J 
@@ -3405,7 +3405,7 @@ returns many cosines spaced by frequency with amplitude 1/(r^2+k^2)."))
 						   ;; this formula comes from V P Krainov, "Selected Mathetical Methods in Theoretical Physics"
 						   (bessel-peaks (g 'n))))
 			       g))
-  (frequency *clm-default-frequency*) (n 0) (angle 0.0) (norm 1.0) fm)
+  (frequency 0.0) (n 0) (angle 0.0) (norm 1.0) fm)
 
 
 (define bess 
@@ -3464,7 +3464,7 @@ returns many cosines spaced by frequency with amplitude 1/(r^2+k^2)."))
 ;;;   em here is "Neumann's factor" (p22) = 1 if m=0, 2 otherwise
 
 (defgenerator (jjcos :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (r 0.5) (a 1.0) (k 1.0) (angle 0.0) fm)
+  (frequency 0.0) (r 0.5) (a 1.0) (k 1.0) (angle 0.0) fm)
 
 
 (define jjcos 
@@ -3590,7 +3590,7 @@ which again matches
 ;;; main difference from FM: index is divided by 2, J value is squared, else just like cos(sin)
 
 (defgenerator (j0evencos :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (index 1.0) (angle 0.0) fm)
+  (frequency 0.0) (index 1.0) (angle 0.0) fm)
 
 
 (define j0evencos 
@@ -3716,7 +3716,7 @@ index 10 (so 10/2 is the bes-jn arg):
 			       (convert-frequency g)
 			       (set! (g 'n) (max (g 'n) 1))
 			       g))
-  (frequency *clm-default-frequency*) (r 0.5) (n 1) (angle 0.0) fm)
+  (frequency 0.0) (r 0.5) (n 1) (angle 0.0) fm)
 
 
 (define j2cos 
@@ -3759,7 +3759,7 @@ returns a sum of cosines scaled in a very complicated way."))
 				     (snd-warning (format #f ";jpcos r and a can't be equal (~A)" (g 'r)))
 				     (set! (g 'r) (+ (g 'a) .01))))
 			       g))
-  (frequency *clm-default-frequency*) (r 0.5) (a 0.0) (k 1.0) (angle 0.0) fm)
+  (frequency 0.0) (r 0.5) (a 0.0) (k 1.0) (angle 0.0) fm)
 
 
 (define jpcos 
@@ -3837,7 +3837,7 @@ returns a sum of cosines scaled in a very complicated way."))
 				     (convert-frequency g)
 				     (set! (g 'ra) (+ (* (g 'a) (g 'a)) (* (g 'r) (g 'r))))
 				     g))
-  (frequency *clm-default-frequency*) (r 0.5) (a 1.0) (n 0) (angle 0.0) ra fm)
+  (frequency 0.0) (r 0.5) (a 1.0) (n 0) (angle 0.0) ra fm)
 
 
 (define jncos 
@@ -3870,7 +3870,7 @@ returns a sum of cosines scaled in a very complicated way."))
 ;;; use J0(cos)+J1(cos) to get full spectrum
 
 (defgenerator (j0j1cos :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (index 1.0) (angle 0.0) fm)
+  (frequency 0.0) (index 1.0) (angle 0.0) fm)
 
 
 (define j0j1cos 
@@ -3963,7 +3963,7 @@ returns a sum of cosines scaled in a very complicated way."))
 				 (if (<= (+ (* a a) (* r r)) (* 2 a r))
 				     (format () ";jycos a: ~A, r: ~A will cause bes-y0 to return -inf!" a r)))
 			       g))
-  (frequency *clm-default-frequency*) (r 1.0) (a 0.5) ; "b" and "c" in the docs
+  (frequency 0.0) (r 1.0) (a 0.5) ; "b" and "c" in the docs
   (angle 0.0) fm)
 
 
@@ -4017,7 +4017,7 @@ returns a sum of cosines scaled by Yn(r)*Jn(r)."))
 
 #|
 (defgenerator (jcos :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (n 0) (r 1.0) (a 0.5) ; "b" and "c" in the docs
+  (frequency 0.0) (n 0) (r 1.0) (a 0.5) ; "b" and "c" in the docs
   (angle 0.0) fm)
 
 
@@ -4050,7 +4050,7 @@ returns a sum of cosines scaled in some complex manner."))
 
 #|
 (defgenerator (sin2n :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (n 1) (r 1.0) (angle 0.0) fm)
+  (frequency 0.0) (n 1) (r 1.0) (angle 0.0) fm)
 
 
 (define sin2n 
@@ -4129,7 +4129,7 @@ returns a sum of cosines scaled in some complex manner."))
 			 (cons 'mus-reset
 			       (lambda (g)
 				 (set! (g 'angle) 0.0)))))
-  (frequency *clm-default-frequency*) (n 4) (coeffs #f) (angle 0.0) fm)
+  (frequency 0.0) (n 4) (coeffs #f) (angle 0.0) fm)
 
 
 (define blackman 
@@ -4188,7 +4188,7 @@ returns the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10
 ;;; the same trick would work in the other two cases -- gapped spectra
 
 (defgenerator (fmssb :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (ratio 1.0) (index 1.0) (angle 0.0) fm)
+  (frequency 0.0) (ratio 1.0) (index 1.0) (angle 0.0) fm)
 
 
 (define fmssb 
@@ -4410,7 +4410,7 @@ returns the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10
 						      0.08333)) ; (/ 12.0)
 			       g)
 	       :methods k3sin-methods)
-  (frequency *clm-default-frequency*) (angle 0.0) (coeffs #f) fm)
+  (frequency 0.0) (angle 0.0) (coeffs #f) fm)
 
 
 (define k3sin 
@@ -4458,7 +4458,7 @@ returns the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10
 			       (set! (g 'inorm) (/ (g 'norm)))
 			       g)
 	       :methods izcos-methods)
-  (frequency *clm-default-frequency*) (r 1.0) (angle 0.0)
+  (frequency 0.0) (r 1.0) (angle 0.0)
   (dc 0.0) (norm 1.0) inorm fm)
 
 
@@ -4585,7 +4585,7 @@ returns the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10
 				(* two-pi (- 1.0 (g 'duty-factor)))))
 		 g)
 	       :methods adjustable-square-wave-methods)
-  (frequency *clm-default-frequency*) (duty-factor 0.5) (amplitude 1.0)
+  (frequency 0.0) (duty-factor 0.5) (amplitude 1.0)
   (sum 0.0) (p1 #f) (p2 #f) fm)
 
 
@@ -4642,7 +4642,7 @@ where the duty-factor sets the ratio of pulse duration to pulse period."))
 		       (set! (g 'scl) (/ (g 'amplitude) df)))
 		   g))
 	       :methods adjustable-triangle-wave-methods)
-  (frequency *clm-default-frequency*) (duty-factor 0.5) (amplitude 1.0) 
+  (frequency 0.0) (duty-factor 0.5) (amplitude 1.0) 
   (gen #f) (top 0.0) (mtop 0.0) (scl 0.0) val fm)
 
 
@@ -4699,7 +4699,7 @@ duty-factor sets the ratio of pulse duration to pulse period."))
 		       (set! (g 'scl) (/ (g 'amplitude) df)))
 		   g))
 	       :methods adjustable-sawtooth-wave-methods)
-  (frequency *clm-default-frequency*) (duty-factor 0.5) (amplitude 1.0) 
+  (frequency 0.0) (duty-factor 0.5) (amplitude 1.0) 
   (gen #f) (top 0.0) (mtop 0.0) (scl 0.0) val fm)
 
 
@@ -4763,7 +4763,7 @@ the duty-factor sets the ratio of pulse duration to pulse period."))
 				     (set! (g 'scl) (/ df)))
 				 g))
 	       :methods adjustable-oscil-methods)
-  (frequency *clm-default-frequency*) (duty-factor 0.5)
+  (frequency 0.0) (duty-factor 0.5)
   (gen #f) (top 0.0) (mtop 0.0) (scl 0.0) val fm)
 
 
@@ -4830,7 +4830,7 @@ generator. (adjustable-oscil gen (fm 0.0)) returns a sinusoid where the duty-fac
 			       (set! (g 'flt) (make-moving-average (g 'n)))
 			       g)
 	       :methods round-interp-methods)
-  (frequency *clm-default-frequency*) (n 1) (amplitude 1.0)
+  (frequency 0.0) (n 1) (amplitude 1.0)
   (rnd #f) (flt #f) fm)
 
 
@@ -4915,7 +4915,7 @@ generator. (round-interp gen (fm 0.0)) returns a rand-interp sequence low-pass f
 ;;; cos^n J 121
 
 (defgenerator (nchoosekcos :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (angle 0.0) fm)
+  (frequency 0.0) (ratio 1.0) (n 1) (angle 0.0) fm)
 
 
 (define nchoosekcos 
@@ -4982,7 +4982,7 @@ returns a sum of cosines scaled by the binomial coeffcients."))
 			       (set! (g 'frequency) (* 0.5 (g 'n) (hz->radians (g 'frequency))))
 			       g)	       
 	       :methods sinc-train-methods)  
-  (frequency *clm-default-frequency*) (n 1) (angle 0.0)
+  (frequency 0.0) (n 1) (angle 0.0)
   (original-n 1) (original-frequency 0.0) fm)
 
 
@@ -5096,7 +5096,7 @@ returns the next random value in the 1/f stream produced by gen."))
 	       :make-wrapper (lambda (g)
 			       (set! (g 'gr) (make-rand (g 'frequency) (g 'amplitude)))
 			       g))
-  (frequency *clm-default-frequency*) (amplitude 1.0) fm gr (sum 0.0) (prev 0.0))
+  (frequency 0.0) (amplitude 1.0) fm gr (sum 0.0) (prev 0.0))
 
 
 (define brown-noise 
@@ -5151,7 +5151,7 @@ brownian noise. (brown-noise gen (fm 0.0)) returns the next brownian noise sampl
 			       (set! (g 'gr) (make-rand (g 'frequency) (g 'amplitude)))
 			       (set! (g 'sum) (* 0.5 (+ (g 'low) (g 'high))))
 			       g))
-  (frequency *clm-default-frequency*) (amplitude 1.0) (low -1.0) (high 1.0)
+  (frequency 0.0) (amplitude 1.0) (low -1.0) (high 1.0)
   fm gr (sum 0.0) (prev 0.0))
 
 
@@ -5214,7 +5214,7 @@ sequence of bounded brownian noise samples."))
 			       (convert-frequency g)
 			       (set! (g 'incr) (* (mus-random (g 'amplitude)) dv))
 			       g))
-  (frequency *clm-default-frequency*) (amplitude 1.0) (low -1.0) (high 1.0)
+  (frequency 0.0) (amplitude 1.0) (low -1.0) (high 1.0)
   (angle 0.0) (sum 0.0) (incr 0.0) fm dv)
 
 
@@ -5558,7 +5558,7 @@ returns the sum of the last n inputs weighted by (-n/(n+1))^k"))
 				(lambda (g ind) ((g 'un) ind))
 				(lambda (g ind val) (float-vector-set! (g 'un) ind val))))))
   
-  (frequency *clm-default-frequency*) (partial-amps-and-phases #f) (angle 0.0)
+  (frequency 0.0) (partial-amps-and-phases #f) (angle 0.0)
   (tn #f) (un #f) fm)
 
 
@@ -5575,7 +5575,7 @@ returns the sum of the last n inputs weighted by (-n/(n+1))^k"))
 (define polyoid-tn mus-xcoeffs)
 (define polyoid-un mus-ycoeffs)
 
-(define* (make-polyoid (frequency *clm-default-frequency*) partial-amps-and-phases)
+(define* (make-polyoid (frequency 0.0) partial-amps-and-phases)
   (let* ((len (length partial-amps-and-phases))
 	 (topk (do ((n 0)
 		    (i 0 (+ i 3)))
@@ -6014,7 +6014,7 @@ returns the sum of the last n inputs weighted by (-n/(n+1))^k"))
 (define waveshape? polyshape?)
 (define waveshape polyshape)
 
-(define* (make-waveshape (frequency *clm-default-frequency*) 
+(define* (make-waveshape (frequency 0.0) 
 			 (partials '(1 1)) 
 			 wave 
 			 (size *clm-table-size*)) ; size arg is for backwards compatibility
@@ -6035,7 +6035,7 @@ returns the sum of the last n inputs weighted by (-n/(n+1))^k"))
 			       (set! (g 'osc) (make-oscil (g 'frequency) (g 'initial-phase)))
 			       (set! (g 'frequency) (hz->radians (g 'frequency))) ; so that mus-frequency works at least read side
 			       g))
-  (frequency *clm-default-frequency*) (r 1.0) (initial-phase 0.0)
+  (frequency 0.0) (r 1.0) (initial-phase 0.0)
   (osc #f) fm)
 
 
@@ -6506,7 +6506,7 @@ input from the readin generator 'reader'.  The output data is available via mus-
 
 #|
 (defgenerator (circler :make-wrapper convert-frequency)
-  (frequency *clm-default-frequency*) (angle 0.0) fm)
+  (frequency 0.0) (angle 0.0) fm)
 
 (define circler 
   (let ((documentation "(make-circler (frequency 0.0) returns a circler generator. (circler gen (fm 0.0)) produces a waveform made up of half circles"))
diff --git a/gl.c b/gl.c
index 853c34d..4a60400 100644
--- a/gl.c
+++ b/gl.c
@@ -5723,15 +5723,20 @@ static void define_integers(void)
 
 static bool gl_already_inited = false;
 
+#if HAVE_SCHEME
+void Init_libgl(s7_scheme *sc);
+void Init_libgl(s7_scheme *sc)
+#else
 void Init_libgl(void);
 void Init_libgl(void)
+#endif
 {
   if (!gl_already_inited)
     {
       define_integers();
       define_functions();
       Xen_provide_feature("gl");
-      Xen_define("gl-version", C_string_to_Xen_string("25-Jun-17"));
+      Xen_define("gl-version", C_string_to_Xen_string("27-Jul-17"));
       gl_already_inited = true;
     }
 }
diff --git a/glistener.c b/glistener.c
index c4e1f0f..5baad55 100644
--- a/glistener.c
+++ b/glistener.c
@@ -577,6 +577,10 @@ static bool is_prompt_end(glistener *g, int end_pos)
 
 /* ---------------- listener text ---------------- */
 
+GtkWidget *glistener_text_widget(glistener *g) {return(g->text);}
+GtkTextBuffer *glistener_text_buffer(glistener *g) {return(g->buffer);}
+
+
 static void remember_listener_string(glistener *g, const char *str)
 {
   int i, top, len;
@@ -2875,6 +2879,8 @@ glistener *glistener_new(GtkWidget *parent, void (*initializations)(glistener *g
 }
 
 /* changes:
+ * 31-Jul-17: added access to text and buffer.
+ * --------
  * 19-Mar-15: changed strcopy macro.
  * 7-June:    added keyer function.
  * 4-June:    added colorizer function.
diff --git a/glistener.h b/glistener.h
index ac26333..0b29b89 100644
--- a/glistener.h
+++ b/glistener.h
@@ -82,6 +82,10 @@ char *glistener_evaluate           (glistener *g);
 char *glistener_complete           (glistener *g);
 
 
+GtkWidget *glistener_text_widget(glistener *g);
+GtkTextBuffer *glistener_text_buffer(glistener *g);
+
+
 /* -------------------------------------------------------------------------------- */
 /* an annotated version of the same info:
  *
diff --git a/gtk-effects.scm b/gtk-effects.scm
index 952cc5c..5ba0397 100644
--- a/gtk-effects.scm
+++ b/gtk-effects.scm
@@ -2468,7 +2468,8 @@ the synthesis amplitude, the FFT size, and the radius value."))
 			   (samp0 0.0000)
 			   (samp1 0.0000)
 			   (samp2 0.0000)
-			   (len (framples)))
+			   (len (framples))
+			   (local-max 0.0))
 		       (call-with-exit
 			(lambda (return)
 			  (do ((ctr loc (+ ctr 1)))
@@ -2476,11 +2477,11 @@ the synthesis amplitude, the FFT size, and the radius value."))
 			    (set! samp0 samp1)
 			    (set! samp1 samp2)
 			    (set! samp2 (next-sample reader))
-			    (let ((local-max (max 0.1 (moving-max mmax samp0))))
-			      (if (and (> (abs (- samp0 samp1)) local-max)
-				       (> (abs (- samp1 samp2)) local-max)
-				       (< (abs (- samp0 samp2)) (/ local-max 2)))
-				  (return (- ctr 1)))))))))
+			    (set! local-max (max 0.1 (moving-max mmax samp0)))
+			    (if (and (> (abs (- samp0 samp1)) local-max)
+				     (> (abs (- samp1 samp2)) local-max)
+				     (< (abs (- samp0 samp2)) (/ local-max 2)))
+				(return (- ctr 1))))))))
 		   (let ((click (find-click loc)))
 		     (if click
 			 (begin
diff --git a/headers.c b/headers.c
index 5503455..b8345ab 100644
--- a/headers.c
+++ b/headers.c
@@ -51,6 +51,8 @@
   #include <io.h>
   #pragma warning(disable: 4244)
 #endif
+#include <stdint.h>
+#include <inttypes.h>
 
 #include "_sndlib.h"
 #include "sndlib-strings.h"
@@ -685,13 +687,13 @@ static int header_write(int fd, unsigned char *buf, int chars)
 {
   if (chars > 0)
     {
-      long long int bytes;
-      bytes = (long long int)write(fd, buf, chars);
+      int64_t bytes;
+      bytes = (int64_t)write(fd, buf, chars);
       if (bytes != chars)
 	{
 	  char *errstr = NULL;
 	  errstr = STRERROR(errno);
-	  return(mus_error(MUS_WRITE_ERROR, "header_write: wrote %lld of %d bytes, %s", 
+	  return(mus_error(MUS_WRITE_ERROR, "header_write: wrote %" PRId64 " of %d bytes, %s", 
 			   bytes, chars, (errstr) ? errstr : "unknown error?"));
 	}
     }
@@ -703,13 +705,13 @@ static int header_read(int fd, unsigned char *buf, int chars)
 {
   if (chars > 0)
     {
-      long long int bytes;
-      bytes = (long long int)read(fd, buf, chars);
+      int64_t bytes;
+      bytes = (int64_t)read(fd, buf, chars);
       if (bytes != chars) 
 	{
 	  char *errstr = NULL;
 	  errstr = STRERROR(errno);
-	  return(mus_error(MUS_READ_ERROR, "header_read: read %lld of %d bytes, %s", 
+	  return(mus_error(MUS_READ_ERROR, "header_read: read %" PRId64 " of %d bytes, %s", 
 			   bytes, chars, (errstr) ? errstr : "unknown error?"));
 	}
     }
@@ -878,7 +880,7 @@ static void double_to_ieee_80(double val, unsigned char *p)
 
 static mus_long_t update_form_size, update_framples_location, update_ssnd_location, update_rf64_location;
 
-static long long int seek_and_read(int fd, unsigned char *buf, mus_long_t offset, int nbytes)
+static int64_t seek_and_read(int fd, unsigned char *buf, mus_long_t offset, int nbytes)
 {
   if (offset < 0) return(-1);
   lseek(fd, offset, SEEK_SET);
@@ -2702,8 +2704,8 @@ static int read_soundfont_header(const char *filename, int fd)
 	      lseek(fd, ckoff, SEEK_SET);
 	      while (srate == 0)
 		{
-		  long long int bytes;
-		  bytes = (long long int)read(fd, hdrbuf, 8);
+		  int64_t bytes;
+		  bytes = (int64_t)read(fd, hdrbuf, 8);
 		  if (bytes == 0)
 		    {
 		      happy = false;
@@ -2915,10 +2917,10 @@ static int read_nist_header(const char *filename, int fd)
       n++;
       if (n >= hend)
 	{
-	  long long int read_bytes;
+	  int64_t read_bytes;
 	  curbase += hend;
 	  n = 0;
-	  read_bytes = (long long int)read(fd, hdrbuf, HDRBUFSIZ);
+	  read_bytes = (int64_t)read(fd, hdrbuf, HDRBUFSIZ);
 	  if (read_bytes < HDRBUFSIZ)
 	    return(mus_error(MUS_HEADER_READ_FAILED, "%s NIST header truncated?", filename));
 	  hend = HDRBUFSIZ;
@@ -3889,7 +3891,7 @@ static int read_esps_header(const char *filename, int fd)
   bool happy = true;
   mus_long_t curbase, hend;
   int k, j, n, chars, floats, shorts, doubles;
-  long long int bytes;
+  int64_t bytes;
   bool little;
   little = (hdrbuf[18] == 0);
   if (little)
@@ -5384,7 +5386,7 @@ static int read_asf_header(const char *filename, int fd)
  *  sox now has its own format (intended as an intermediate file)
  *    0: .SoX or .XoS
  *    4: header_bytes (int)
- *    8: num_samples (long long int)
+ *    8: num_samples (int64_t)
  *    16: srate (double)
  *    24: chans (int)
  *    28: comment bytes (int)
@@ -5577,7 +5579,7 @@ static int mus_header_read_1(const char *filename, int fd)
 
   /* returns 0 on success (at least to the extent that we can report the header type), -1 for error */
   int i, loc = 0;
-  long long int bytes;
+  int64_t bytes;
 
   header_type = MUS_UNKNOWN_HEADER;
   sample_type = MUS_UNKNOWN_SAMPLE;
@@ -5592,7 +5594,7 @@ static int mus_header_read_1(const char *filename, int fd)
       loop_modes[1] = 0;
     }
 
-  bytes = (long long int)read(fd, hdrbuf, INITIAL_READ_SIZE);
+  bytes = (int64_t)read(fd, hdrbuf, INITIAL_READ_SIZE);
   /* if it's a 0 length file we need to get out */
   if (bytes < 0) 
     return(mus_error(MUS_HEADER_READ_FAILED, "%s: %s", filename, (errno) ? STRERROR(errno) : "bytes read < 0?"));
@@ -5618,7 +5620,7 @@ static int mus_header_read_1(const char *filename, int fd)
       (match_four_chars((unsigned char *)hdrbuf, I_DECN)))
     {
       if (bytes < 24) 
-	return(mus_error(MUS_HEADER_READ_FAILED, "%s NeXT header truncated? found only %lld bytes", filename, bytes));
+	return(mus_error(MUS_HEADER_READ_FAILED, "%s NeXT header truncated? found only %" PRId64 " bytes", filename, bytes));
       header_type = MUS_NEXT;
       return(read_next_header(filename, fd));
     }
@@ -5627,7 +5629,7 @@ static int mus_header_read_1(const char *filename, int fd)
     {
       /* next 4 bytes are apparently the file size or something equally useless */
       if (bytes < 12) 
-	return(mus_error(MUS_HEADER_READ_FAILED, "%s AIFF header truncated? found only %lld bytes", filename, bytes));
+	return(mus_error(MUS_HEADER_READ_FAILED, "%s AIFF header truncated? found only %" PRId64 " bytes", filename, bytes));
 
       if (match_four_chars((unsigned char *)(hdrbuf + 8), I_AIFF))
 	{ 
@@ -5673,7 +5675,7 @@ static int mus_header_read_1(const char *filename, int fd)
       (match_four_chars((unsigned char *)hdrbuf, I_RIFX)))
     {
       if (bytes < 12) 
-	return(mus_error(MUS_HEADER_READ_FAILED, "%s RIFF header truncated? found only %lld bytes", filename, bytes));
+	return(mus_error(MUS_HEADER_READ_FAILED, "%s RIFF header truncated? found only %" PRId64 " bytes", filename, bytes));
 
       if (match_four_chars((unsigned char *)(hdrbuf + 8), I_WAVE))
 	{
@@ -5700,7 +5702,7 @@ static int mus_header_read_1(const char *filename, int fd)
     { 
       header_type = MUS_RF64;
       if (bytes < 28) 
-	return(mus_error(MUS_HEADER_READ_FAILED, "%s RF64 header truncated? found only %lld bytes", filename, bytes));
+	return(mus_error(MUS_HEADER_READ_FAILED, "%s RF64 header truncated? found only %" PRId64 " bytes", filename, bytes));
       if ((mus_char_to_lint((unsigned char *)(hdrbuf + 4)) != -1) ||
 	  (!(match_four_chars((unsigned char *)(hdrbuf + 8), I_WAVE))))
 	return(mus_error(MUS_HEADER_READ_FAILED, "%s: messed up RF64 header", filename));
@@ -5713,7 +5715,7 @@ static int mus_header_read_1(const char *filename, int fd)
       (equal_big_or_little_endian((unsigned char *)hdrbuf, I_IRCAM_NEXT)))
     {
       if (bytes < 24) 
-	return(mus_error(MUS_HEADER_READ_FAILED, "%s IRCAM header truncated? found only %lld bytes", filename, bytes));
+	return(mus_error(MUS_HEADER_READ_FAILED, "%s IRCAM header truncated? found only %" PRId64 " bytes", filename, bytes));
       header_type = MUS_IRCAM;
       return(read_ircam_header(filename, fd));
     }
@@ -5727,7 +5729,7 @@ static int mus_header_read_1(const char *filename, int fd)
   if (match_four_chars((unsigned char *)hdrbuf, I_caff))
     {
       if (bytes < 32) /* INITIAL_READ_SIZE */
-	return(mus_error(MUS_HEADER_READ_FAILED, "%s CAFF header truncated? found only %lld bytes", filename, bytes));
+	return(mus_error(MUS_HEADER_READ_FAILED, "%s CAFF header truncated? found only %" PRId64 " bytes", filename, bytes));
       header_type = MUS_CAFF;
       return(read_caff_header(fd));
     }
@@ -5736,7 +5738,7 @@ static int mus_header_read_1(const char *filename, int fd)
       (match_four_chars((unsigned char *)(hdrbuf + 4), I_AB_5)))
     {
       if (bytes < 128) /* INITIAL_READ_SIZE=256 */
-	return(mus_error(MUS_HEADER_READ_FAILED, "%s Matlab header truncated? found only %lld bytes", filename, bytes));
+	return(mus_error(MUS_HEADER_READ_FAILED, "%s Matlab header truncated? found only %" PRId64 " bytes", filename, bytes));
       header_type = MUS_MATLAB;
       return(read_matlab_5_header(filename, fd));
     }
@@ -5769,7 +5771,7 @@ static int mus_header_read_1(const char *filename, int fd)
       (match_four_chars((unsigned char *)(hdrbuf + 4), I_VOC1)))
     {
       if (bytes < 24) 
-	return(mus_error(MUS_HEADER_READ_FAILED, "%s VOC header truncated? found only %lld bytes", filename, bytes));
+	return(mus_error(MUS_HEADER_READ_FAILED, "%s VOC header truncated? found only %" PRId64 " bytes", filename, bytes));
       header_type = MUS_VOC;
       return(read_voc_header(filename, fd));
     }
@@ -6539,7 +6541,7 @@ int mus_header_change_type(const char *filename, mus_header_t new_type, mus_samp
       if (header_type != new_type)
 	{
 	  int ofd, ifd, len;
-	  long long int nbytes;
+	  int64_t nbytes;
 	  mus_long_t loc;
 	  unsigned char *buf = NULL;
 	  char *new_file, *comment = NULL;
@@ -6755,7 +6757,7 @@ int mus_header_change_comment(const char *filename, mus_header_t type, const cha
 	  char *new_file;
 	  int ofd, ifd, len;
 	  mus_long_t loc;
-	  long long int nbytes;
+	  int64_t nbytes;
 	  unsigned char *buf = NULL;
 	  len = strlen(filename) + 5;
 	  new_file = (char *)malloc(len * sizeof(char));
@@ -6971,12 +6973,12 @@ const char *mus_header_original_sample_type_name(int samp_type, mus_header_t typ
 bool mus_header_no_header(const char *filename)
 {
   int fd;
-  long long int bytes;
+  int64_t bytes;
   bool ok = false;
   fd = mus_file_open_read(filename);
   if (fd == -1) 
     return(mus_error(MUS_CANT_OPEN_FILE, "mus_header: can't open %s: %s", filename, STRERROR(errno)));
-  bytes = (long long int)read(fd, hdrbuf, INITIAL_READ_SIZE);
+  bytes = (int64_t)read(fd, hdrbuf, INITIAL_READ_SIZE);
   CLOSE(fd, filename);
   if (bytes > 4) 
     ok = ((match_four_chars((unsigned char *)hdrbuf, I_DSND)) || 
diff --git a/index.html b/index.html
index b6f1280..6b8fa4c 100644
--- a/index.html
+++ b/index.html
@@ -37,352 +37,354 @@
 </head>
 <body class="body">
 <div class="topheader">Index</div>
-<!-- created 11-May-17 05:26 PDT -->
+<!-- created 04-Jul-17 12:32 PDT -->
 <table>
-  <tr><td><em class=tab><a href="s7.html#sharpreaders">*#readers*</a></em></td><td></td><td><em class=tab><a href="sndclm.html#eoddcos?">eoddcos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-absin">make-absin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundreopenoutput">mus-sound-reopen-output</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveexamples"><b>Saving</b></a></em></td></tr>
-  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#epsbottommargin">eps-bottom-margin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-adjustable-sawtooth-wave">make-adjustable-sawtooth-wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundreportcache">mus-sound-report-cache</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sgfilter">savitzky-golay-filter</a></em></td></tr>
-  <tr><td class="green"><div class="centered">A</div></td><td></td><td><em class=tab><a href="extsnd.html#epsfile">eps-file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-adjustable-square-wave">make-adjustable-square-wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundsampletype">mus-sound-sample-type</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sawtooth-wave">sawtooth-wave</a></em></td></tr>
-  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#epsleftmargin">eps-left-margin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-adjustable-triangle-wave">make-adjustable-triangle-wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundsamples">mus-sound-samples</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sawtooth-wave?">sawtooth-wave?</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#abcos">abcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#epssize">eps-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-all-pass">make-all-pass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundseekframple">mus-sound-seek-frample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleby">scale-by</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#abcos?">abcos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ercos">ercos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#makeallpassbank">make-all-pass-bank</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundsrate">mus-sound-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scalechannel">scale-channel</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#abort">abort</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ercos?">ercos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-asyfm">make-asyfm</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundtypespecifier">mus-sound-type-specifier</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scaleenvelope">scale-envelope</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#absin">absin</a></em></td><td></td><td><em class=tab><a href="s7.html#errorhook">*error-hook*</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-asymmetric-fm">make-asymmetric-fm</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundwrite">mus-sound-write</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scalemixes">scale-mixes</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#absin?">absin?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#erssb">erssb</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebandpass">make-bandpass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundwritedate">mus-sound-write-date</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleselectionby">scale-selection-by</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#addampcontrols">add-amp-controls</a></em></td><td></td><td><em class=tab><a href="sndclm.html#erssb?">erssb?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebandstop">make-bandstop</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mussrate">mus-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleselectionto">scale-selection-to</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#addcolormap">add-colormap</a></em></td><td></td><td><em class=tab><a href="sndclm.html#evenmultiple">even-multiple</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-bess">make-bess</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-width">mus-width</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scalesound">scale-sound</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#adddeleteoption">add-delete-option</a></em></td><td></td><td><em class=tab><a href="sndclm.html#evenweight">even-weight</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebiquad">make-biquad</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-xcoeff">mus-xcoeff</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scaletempo">scale-tempo</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#adddirectorytoviewfileslist">add-directory-to-view-files-list</a></em></td><td></td><td><em class=tab><a href="sndscm.html#everysample">every-sample?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebirds">make-birds</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-xcoeffs">mus-xcoeffs</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleto">scale-to</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#addfilefilter">add-file-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#exit">exit</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-blackman">make-blackman</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-ycoeff">mus-ycoeff</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scanchannel">scan-channel</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#addfilesorter">add-file-sorter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#exithook">exit-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-brown-noise">make-brown-noise</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-ycoeffs">mus-ycoeffs</a></em></td><td></td><td><em class=tab><a href="sndscm.html#dspdocscanned">scanned synthesis</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#addfiletoviewfileslist">add-file-to-view-files-list</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrol">expand-control</a></em></td><td></td><td><em class=tab><a href="s7.html#makebytevector">make-byte-vector</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#scentroid">scentroid</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#addmark">add-mark</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolbounds">expand-control-bounds</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makedropsite">make-channel-drop-site</a></em></td><td></td><td class="green"><div class="centered">N</div></td><td></td><td><em class=tab><a href="sndscm.html#scratch">scratch</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#addmarkpane">add-mark-pane</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolhop">expand-control-hop</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makecolor">make-color</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#scriptarg">script-arg</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#addplayer">add-player</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontroljitter">expand-control-jitter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-comb">make-comb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#n1cos">n1cos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scriptargs">script-args</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#addsoundfileextension">add-sound-file-extension</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrollength">expand-control-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#makecombbank">make-comb-bank</a></em></td><td></td><td><em class=tab><a href="sndclm.html#n1cos?">n1cos?</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndwithnogui"><b>Scripting</b></a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#addsourcefileextension">add-source-file-extension</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolramp">expand-control-ramp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-convolve">make-convolve</a></em></td><td></td><td><em class=tab><a href="extsnd.html#nameclickhook">name-click-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#searchforclick">search-for-click</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#addtomainmenu">add-to-main-menu</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolp">expand-control?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-delay">make-delay</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nchoosekcos">nchoosekcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#searchprocedure">search-procedure</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#addtomenu">add-to-menu</a></em></td><td></td><td><em class=tab><a href="sndscm.html#explodesf2">explode-sf2</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makedifferentiator">make-differentiator</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nchoosekcos?">nchoosekcos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#searchexamples"><b>Searching</b></a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#addtooltip">add-tooltip</a></em></td><td></td><td><em class=tab><a href="sndclm.html#exponentially-weighted-moving-average">exponentially-weighted-moving-average</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-env">make-env</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ncos">ncos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#secondstosamples">seconds->samples</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#addtransform">add-transform</a></em></td><td></td><td><em class=tab><a href="sndscm.html#expsnd">expsnd</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-eoddcos">make-eoddcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ncos2?">ncos2?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectall">select-all</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#spectra">additive synthesis</a></em></td><td></td><td><em class=tab><a href="sndscm.html#expsrc">expsrc</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-ercos">make-ercos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ncos4?">ncos4?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectchannel">select-channel</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#adjustable-sawtooth-wave">adjustable-sawtooth-wave</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#make-erssb">make-erssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ncos?">ncos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectchannelhook">select-channel-hook</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#adjustable-sawtooth-wave?">adjustable-sawtooth-wave?</a></em></td><td></td><td class="green"><div class="centered">F</div></td><td></td><td><em class=tab><a href="sndclm.html#make-fft-window">make-fft-window</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newsound">new-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectsound">select-sound</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#adjustable-square-wave">adjustable-square-wave</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#make-filetoframple">make-file->frample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newsounddialog">new-sound-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectsoundhook">select-sound-hook</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#adjustable-square-wave?">adjustable-square-wave?</a></em></td><td></td><td><em class=tab><a href="s7.html#featureslist">*features*</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filetosample">make-file->sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newsoundhook">new-sound-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectedchannel">selected-channel</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#adjustable-triangle-wave">adjustable-triangle-wave</a></em></td><td></td><td><em class=tab><a href="sndscm.html#cellon">feedback fm</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filter">make-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newwidgethook">new-widget-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selecteddatacolor">selected-data-color</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#adjustable-triangle-wave?">adjustable-triangle-wave?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fft">fft</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filtered-comb">make-filtered-comb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#nextsample">next-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectedgraphcolor">selected-graph-color</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#afterapplycontrolshook">after-apply-controls-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftcancel">fft-cancel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#makefilteredcombbank">make-filtered-comb-bank</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nkssb">nkssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectedsound">selected-sound</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#afteredithook">after-edit-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftedit">fft-edit</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-fir-coeffs">make-fir-coeffs</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nkssbinterp">nkssb-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selection">selection</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#aftergraphhook">after-graph-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftenvedit">fft-env-edit</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-fir-filter">make-fir-filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nkssb?">nkssb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectiontomix">selection->mix</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#afterlispgraphhook">after-lisp-graph-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftenvinterp">fft-env-interp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-firmant">make-firmant</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noddcos">noddcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionchans">selection-chans</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#afteropenhook">after-open-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftlogfrequency">fft-log-frequency</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makefv">make-float-vector</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noddcos?">noddcos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectioncolor">selection-color</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#aftersaveashook">after-save-as-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftlogmagnitude">fft-log-magnitude</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-flocsig">make-flocsig</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noddsin">noddsin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectioncontext">selection-context</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#aftersavestatehook">after-save-state-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftsmoother">fft-smoother</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-fmssb">make-fmssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noddsin?">noddsin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectioncreatesregion">selection-creates-region</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#aftertransformhook">after-transform-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftsquelch">fft-squelch</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-formant">make-formant</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noddssb">noddssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionframples">selection-framples</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#allchans">all-chans</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftwindow">fft-window</a></em></td><td></td><td><em class=tab><a href="sndclm.html#makeformantbank">make-formant-bank</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noddssb?">noddssb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionmaxamp">selection-maxamp</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#all-pass">all-pass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftalpha">fft-window-alpha</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-frampletofile">make-frample->file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noid">noid</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionmaxampposition">selection-maxamp-position</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#allpassbank">all-pass-bank</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftbeta">fft-window-beta</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-granulate">make-granulate</a></em></td><td></td><td><em class=tab><a href="sndscm.html#cleandoc"><b>Noise Reduction</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionmember">selection-member?</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#allpassbankp">all-pass-bank?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftwithphases">fft-with-phases</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makegraphdata">make-graph-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#normalizechannel">normalize-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#selectionmembers">selection-members</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#all-pass?">all-pass?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftexamples"><b>FFTs</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-green-noise">make-green-noise</a></em></td><td></td><td><em class=tab><a href="sndscm.html#normalizeenvelope">normalize-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionposition">selection-position</a></em></td></tr>
-  <tr><td><em class=tab><a href="grfsnd.html#sndandalsa"><b>Alsa</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#nbdoc">file database</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-green-noise-interp">make-green-noise-interp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#normalizepartials">normalize-partials</a></em></td><td></td><td><em class=tab><a href="sndscm.html#selectionrms">selection-rms</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#ampcontrol">amp-control</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetoarray">file->array</a></em></td><td></td><td><em class=tab><a href="s7.html#makehashtable">make-hash-table</a></em></td><td></td><td><em class=tab><a href="sndscm.html#normalizesound">normalize-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionsrate">selection-srate</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#ampcontrolbounds">amp-control-bounds</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetoframple">file->frample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makehighpass">make-highpass</a></em></td><td></td><td><em class=tab><a href="sndscm.html#normalizedmix">normalized-mix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionok">selection?</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#amplitude-modulate">amplitude-modulate</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetoframple?">file->frample?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makehilberttransform">make-hilbert-transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#notch">notch</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionstuff"><b>Selections</b></a></em></td></tr>
-  <tr><td><em class=tab><a href="grfsnd.html#analyseladspa">analyse-ladspa</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetosample">file->sample</a></em></td><td></td><td><em class=tab><a href="s7.html#makehook">make-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#notchchannel">notch-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#setsamples">set-samples</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#anoi">anoi</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetosample?">file->sample?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-iir-filter">make-iir-filter</a></em></td><td></td><td><em class=tab><a href="sndscm.html#notchselection">notch-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#shortfilename">short-file-name</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#anyenvchannel">any-env-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filename">file-name</a></em></td><td></td><td><em class=tab><a href="s7.html#makeintvector">make-int-vector</a></em></td><td></td><td><em class=tab><a href="sndscm.html#notchsound">notch-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showaxes">show-axes</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#anyrandom">any-random</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericfilename"><b>file-name (generic)</b></a></em></td><td></td><td><em class=tab><a href="s7.html#makeiterator">make-iterator</a></em></td><td></td><td><em class=tab><a href="sndclm.html#notch?">notch?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showcontrols">show-controls</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#applycontrols">apply-controls</a></em></td><td></td><td><em class=tab><a href="s7.html#fillb">fill!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-izcos">make-izcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#npcos?">npcos?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#showdiskspace">show-disk-space</a></em></td></tr>
-  <tr><td><em class=tab><a href="grfsnd.html#applyladspa">apply-ladspa</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericfill"><b>fill! (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-j0evencos">make-j0evencos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrcos">nrcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showfullduration">show-full-duration</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#aritablep">aritable?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fillpolygon">fill-polygon</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-j0j1cos">make-j0j1cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrcos?">nrcos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showfullrange">show-full-range</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#arity">arity</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fillrectangle">fill-rectangle</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-j2cos">make-j2cos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#nrev">nrev</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showgrid">show-grid</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#arraytofile">array->file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filter">filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-jjcos">make-jjcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrsin">nrsin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showindices">show-indices</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#array-interp">array-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filterchannel">filter-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-jncos">make-jncos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrsin?">nrsin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showlistener">show-listener</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#asoneedit">as-one-edit</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolcoeffs">filter-control-coeffs</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-jpcos">make-jpcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrssb">nrssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showmarks">show-marks</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#askaboutunsavededits">ask-about-unsaved-edits</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolenvelope">filter-control-envelope</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-jycos">make-jycos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrssbinterp">nrssb-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showmixwaveforms">show-mix-waveforms</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#askbeforeoverwrite">ask-before-overwrite</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolindB">filter-control-in-dB</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-k2cos">make-k2cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrssb?">nrssb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showselection">show-selection</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#asyfmI">asyfm-I</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolinhz">filter-control-in-hz</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-k2sin">make-k2sin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxycos">nrxycos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showselectiontransform">show-selection-transform</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#asyfmJ">asyfm-J</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolorder">filter-control-order</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-k2ssb">make-k2ssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxycos?">nrxycos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showsonogramcursor">show-sonogram-cursor</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#asyfm?">asyfm?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filterwaveformcolor">filter-control-waveform-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-k3sin">make-k3sin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxysin">nrxysin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showtransformpeaks">show-transform-peaks</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#asymmetric-fm">asymmetric-fm</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolp">filter-control?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-krksin">make-krksin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxysin?">nrxysin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showwidget">show-widget</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#asymmetric-fm?">asymmetric-fm?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#filterfft">filter-fft</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-locsig">make-locsig</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nsin">nsin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showyzero">show-y-zero</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#autoresize">auto-resize</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filterselection">filter-selection</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makelowpass">make-lowpass</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nsin?">nsin?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#silenceallmixes">silence-all-mixes</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#autosavedoc">auto-save</a></em></td><td></td><td><em class=tab><a href="sndscm.html#filterselectionandsmooth">filter-selection-and-smooth</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makemixsampler">make-mix-sampler</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nsincos">nsincos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#silencemixes">silence-mixes</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#autoupdate">auto-update</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtersound">filter-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-move-sound">make-move-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nsincos?">nsincos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sinc-train">sinc-train</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#autoupdateinterval">auto-update-interval</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filter?">filter?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-autocorrelation">make-moving-autocorrelation</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nssb">nssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sinc-train?">sinc-train?</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#autocorrelate">autocorrelate</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filtered-comb">filtered-comb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-average">make-moving-average</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nssb?">nssb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sincwidth">sinc-width</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#autoload"><b>autoload</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#filteredcombbank">filtered-comb-bank</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-fft">make-moving-fft</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxy1cos">nxy1cos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sineenvchannel">sine-env-channel</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#axiscolor">axis-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filteredcombbankp">filtered-comb-bank?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-max">make-moving-max</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxy1cos?">nxy1cos?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sineramp">sine-ramp</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#axisinfo">axis-info</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filtered-comb?">filtered-comb?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-norm">make-moving-norm</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxy1sin">nxy1sin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#singerdoc">singer</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#axislabelfont">axis-label-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtersinsnd"><b>Filters</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-pitch">make-moving-pitch</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxy1sin?">nxy1sin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothchannel">smooth-channel</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#axisnumbersfont">axis-numbers-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#finddialog">find-dialog</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-scentroid">make-moving-scentroid</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxycos">nxycos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothselection">smooth-selection</a></em></td></tr>
-  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#findmark">find-mark</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-spectrum">make-moving-spectrum</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxycos?">nxycos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothsound">smooth-sound</a></em></td></tr>
-  <tr><td class="green"><div class="centered">B</div></td><td></td><td><em class=tab><a href="sndscm.html#findmix">find-mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-n1cos">make-n1cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxysin">nxysin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothexamples"><b>Smoothing</b></a></em></td></tr>
-  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#findsound">find-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nchoosekcos">make-nchoosekcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxysin?">nxysin?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pins">SMS synthesis</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#backgroundgradient">background-gradient</a></em></td><td></td><td><em class=tab><a href="sndscm.html#finfo">finfo</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-ncos">make-ncos</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#snapmarktobeat">snap-mark-to-beat</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#badheaderhook">bad-header-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#finishprogressreport">finish-progress-report</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nkssb">make-nkssb</a></em></td><td></td><td class="green"><div class="centered">O</div></td><td></td><td><em class=tab><a href="sndscm.html#snapmarks">snap-marks</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#bagpipe">bagpipe</a></em></td><td></td><td><em class=tab><a href="sndclm.html#fir-filter">fir-filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-noddcos">make-noddcos</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#snapmixtobeat">snap-mix-to-beat</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#basiccolor">basic-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#fir-filter?">fir-filter?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-noddsin">make-noddsin</a></em></td><td></td><td><em class=tab><a href="s7.html#objecttolet">object->let</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndtosample">snd->sample</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#beatspermeasure">beats-per-measure</a></em></td><td></td><td><em class=tab><a href="sndclm.html#firmant">firmant</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-noddssb">make-noddssb</a></em></td><td></td><td><em class=tab><a href="s7.html#objecttostring">object->string</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndtosamplep">snd->sample?</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#beatsperminute">beats-per-minute</a></em></td><td></td><td><em class=tab><a href="sndclm.html#firmant?">firmant?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-noid">make-noid</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oddmultiple">odd-multiple</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndcolor">snd-color</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#beforeclosehook">before-close-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fitselectionbetweenmarks">fit-selection-between-marks</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-notch">make-notch</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oddweight">odd-weight</a></em></td><td></td><td><em class=tab><a href="extsnd.html#snderror">snd-error</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#beforeexithook">before-exit-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#flattenpartials">flatten-partials</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nrcos">make-nrcos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#offsetchannel">offset-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#snderrorhook">snd-error-hook</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#beforesaveashook">before-save-as-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fv">float-vector</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nrsin">make-nrsin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#offsetsound">offset-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndfont">snd-font</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#beforesavestatehook">before-save-state-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvtimes">float-vector*</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nrssb">make-nrssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-pole">one-pole</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndgcs">snd-gcs</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#beforetransformhook">before-transform-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvplus">float-vector+</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nrxycos">make-nrxycos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-pole-all-pass">one-pole-all-pass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndhelp">snd-help</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#besj0">bes-j0</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvtochannel">float-vector->channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nrxysin">make-nrxysin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-pole-all-pass?">one-pole-all-pass?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sndscmhooks">snd-hooks</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#bess">bess</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvtolist">float-vector->list</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nsin">make-nsin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-pole?">one-pole?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndopenedsound">*snd-opened-sound*</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#bess?">bess?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvtostring">float-vector->string</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nsincos">make-nsincos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-zero">one-zero</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndprint">snd-print</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">bessel filters</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvabs">float-vector-abs!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nssb">make-nssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-zero?">one-zero?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndspectrum">snd-spectrum</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#bigbird">bigbird</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvadd">float-vector-add!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nxy1cos">make-nxy1cos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openfiledialog">open-file-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndtempnam">snd-tempnam</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#bignum">bignum</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvequal">float-vector-equal?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nxy1sin">make-nxy1sin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openfiledialogdirectory">open-file-dialog-directory</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndurl">snd-url</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#bignump">bignum?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvfill">float-vector-fill!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nxycos">make-nxycos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openhook">open-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndurls">snd-urls</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#binaryiodoc">binary files</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvlength">float-vector-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nxysin">make-nxysin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#opennextfileindirectory">open-next-file-in-directory</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndversion">snd-version</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#bindkey">bind-key</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvmax">float-vector-max</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-one-pole">make-one-pole</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openrawsound">open-raw-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndwarning">snd-warning</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#bird">bird</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvmin">float-vector-min</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-one-pole-all-pass">make-one-pole-all-pass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openrawsoundhook">open-raw-sound-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndwarninghook">snd-warning-hook</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#blackman">blackman</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvmove">float-vector-move!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-one-zero">make-one-zero</a></em></td><td></td><td><em class=tab><a href="extsnd.html#opensound">open-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sndwarp">sndwarp</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#blackman4envchannel">blackman4-env-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvmultiply">float-vector-multiply!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-oscil">make-oscil</a></em></td><td></td><td><em class=tab><a href="s7.html#openlet">openlet</a></em></td><td></td><td><em class=tab><a href="s7.html#sortb">sort!</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#blackman?">blackman?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvoffset">float-vector-offset!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-oscil-bank">make-oscil-bank</a></em></td><td></td><td><em class=tab><a href="s7.html#openletp">openlet?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-locsig"><b>Sound placement</b></a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#boldpeaksfont">bold-peaks-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvpeak">float-vector-peak</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-phase-vocoder">make-phase-vocoder</a></em></td><td></td><td><em class=tab><a href="extsnd.html#orientationhook">orientation-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#soundtoamp_env">sound->amp-env</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#break">break</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fvpolynomial">float-vector-polynomial</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-pink-noise">make-pink-noise</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oscil">oscil</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundtointeger">sound->integer</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#brown-noise">brown-noise</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvref">float-vector-ref</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makepixmap">make-pixmap</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oscil-bank">oscil-bank</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfileextensions">sound-file-extensions</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#brown-noise?">brown-noise?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvreverse">float-vector-reverse!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makeplayer">make-player</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oscil-bank?">oscil-bank?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfilep">sound-file?</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">butterworth filters</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvscale">float-vector-scale!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-polyoid">make-polyoid</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oscil?">oscil?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfilesindirectory">sound-files-in-directory</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#bytevector">byte-vector</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvset">float-vector-set!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-polyshape">make-polyshape</a></em></td><td></td><td><em class=tab><a href="sndclm.html#out-any">out-any</a></em></td><td></td><td><em class=tab><a href="sndscm.html#soundinterp">sound-interp</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#bytevectorref">byte-vector-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvsubseq">float-vector-subseq</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-polywave">make-polywave</a></em></td><td></td><td><em class=tab><a href="sndclm.html#outbank">out-bank</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundloopinfo">sound-loop-info</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#bytevectorset">byte-vector-set!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvsubtract">float-vector-subtract!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-pulse-train">make-pulse-train</a></em></td><td></td><td><em class=tab><a href="sndclm.html#outa">outa</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundproperties">sound-properties</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#bytevectorp">byte-vector?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvp">float-vector?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-pulsed-env">make-pulsed-env</a></em></td><td></td><td><em class=tab><a href="s7.html#outlet">outlet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundproperty">sound-property</a></em></td></tr>
-  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#Floatvectors"><b>Float-vectors</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-r2k!cos">make-r2k!cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#*output*">*output*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundwidgets">sound-widgets</a></em></td></tr>
-  <tr><td class="green"><div class="centered">C</div></td><td></td><td><em class=tab><a href="sndclm.html#flocsig">flocsig</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-r2k2cos">make-r2k2cos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#outputcommenthook">output-comment-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundp">sound?</a></em></td></tr>
-  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#flocsig?">flocsig?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makeramp">make-ramp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#overlayrmsenv">overlay-rms-env</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfontinfo">soundfont-info</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#definecfunction">c-define</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stereoflute">flute model</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rand">make-rand</a></em></td><td></td><td><em class=tab><a href="s7.html#owlet">owlet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sounds">sounds</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#cgp">c-g?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmbell">fm-bell</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rand-interp">make-rand-interp</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#soundstosegmentdata">sounds->segment-data</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#cobject">c-object?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmdrum">fm-drum</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rcos">make-rcos</a></em></td><td></td><td class="green"><div class="centered">P</div></td><td></td><td><em class=tab><a href="sndscm.html#spectra">spectra</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#cpoint">c-pointer</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmnoise">fm-noise</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-readin">make-readin</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#twotab">spectral interpolation</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#cpointer">c-pointer?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmparallelcomponent">fm-parallel-component</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makeregion">make-region</a></em></td><td></td><td><em class=tab><a href="extsnd.html#padchannel">pad-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#spectralpolynomial">spectral-polynomial</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#callwithexit">call-with-exit</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmvox">fm-talker</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makeregionsampler">make-region-sampler</a></em></td><td></td><td><em class=tab><a href="sndscm.html#padmarks">pad-marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrohop">spectro-hop</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#bagpipe">canter</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmtrumpet">fm-trumpet</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rk!cos">make-rk!cos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#padsound">pad-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroxangle">spectro-x-angle</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#cascadetocanonical">cascade->canonical</a></em></td><td></td><td><em class=tab><a href="sndscm.html#vdoc">fm-violin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rk!ssb">make-rk!ssb</a></em></td><td></td><td><em class=tab><a href="s7.html#pairfilename">pair-filename</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroxscale">spectro-x-scale</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#catch">catch</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmvoice">fm-voice</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rkcos">make-rkcos</a></em></td><td></td><td><em class=tab><a href="s7.html#pairlinenumber">pair-line-number</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroyangle">spectro-y-angle</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#cellon">cellon</a></em></td><td></td><td><em class=tab><a href="sndclm.html#fmssb">fmssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rkoddssb">make-rkoddssb</a></em></td><td></td><td><em class=tab><a href="sndscm.html#panmix">pan-mix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroyscale">spectro-y-scale</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#chaindsps">chain-dsps</a></em></td><td></td><td><em class=tab><a href="sndclm.html#fmssb?">fmssb?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rksin">make-rksin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#panmixfv">pan-mix-float-vector</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrozangle">spectro-z-angle</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#channeltofv">channel->float-vector</a></em></td><td></td><td><em class=tab><a href="extsnd.html#focuswidget">focus-widget</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rkssb">make-rkssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#partialstopolynomial">partials->polynomial</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrozscale">spectro-z-scale</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#channelampenvs">channel-amp-envs</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fofins">FOF synthesis</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-round-interp">make-round-interp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#partialstowave">partials->wave</a></em></td><td></td><td><em class=tab><a href="sndclm.html#spectrum">spectrum</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#channeldata">channel-data</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fofins">fofins</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rssb">make-rssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#pausing">pausing</a></em></td><td></td><td><em class=tab><a href="sndscm.html#spectrumtocoeffs">spectrum->coeffs</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#channelenvelope">channel-envelope</a></em></td><td></td><td><em class=tab><a href="sndscm.html#foreachchild">for-each-child</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rxycos">make-rxycos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#peakenvdir">peak-env-dir</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrumend">spectrum-end</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#channelpolynomial">channel-polynomial</a></em></td><td></td><td><em class=tab><a href="sndscm.html#foreachsoundfile">for-each-sound-file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rxyk!cos">make-rxyk!cos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#peaks">peaks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrumstart">spectrum-start</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#channelproperties">channel-properties</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fp">Forbidden Planet</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rxyk!sin">make-rxyk!sin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#peaksfont">peaks-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedcontrol">speed-control</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#channelproperty">channel-property</a></em></td><td></td><td><em class=tab><a href="extsnd.html#foregroundcolor">foreground-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rxysin">make-rxysin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#phase-partialstowave">phase-partials->wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedcontrolbounds">speed-control-bounds</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#channelrms">channel-rms</a></em></td><td></td><td><em class=tab><a href="extsnd.html#forgetregion">forget-region</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-sampletofile">make-sample->file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#phase-vocoder">phase-vocoder</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedstyle">speed-control-style</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#channelstyle">channel-style</a></em></td><td></td><td><em class=tab><a href="sndclm.html#formant">formant</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makesampler">make-sampler</a></em></td><td></td><td><em class=tab><a href="sndclm.html#phase-vocoder?">phase-vocoder?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedtones">speed-control-tones</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#channelsync">channel-sync</a></em></td><td></td><td><em class=tab><a href="sndclm.html#formantbank">formant-bank</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-sawtooth-wave">make-sawtooth-wave</a></em></td><td></td><td><em class=tab><a href="sndscm.html#prc95doc"><b>Physical Models</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#spotfreq">spot-freq</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#channelwidgets">channel-widgets</a></em></td><td></td><td><em class=tab><a href="sndclm.html#formantbankp">formant-bank?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makeselection">make-selection</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pianodoc">piano model</a></em></td><td></td><td><em class=tab><a href="sndclm.html#square-wave">square-wave</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#channels">channels</a></em></td><td></td><td><em class=tab><a href="sndclm.html#formant?">formant?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-sinc-train">make-sinc-train</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pink-noise">pink-noise</a></em></td><td></td><td><em class=tab><a href="sndclm.html#square-wave?">square-wave?</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#genericchannels"><b>channels (generic)</b></a></em></td><td></td><td><em class=tab><a href="s7.html#format">format</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makesndtosample">make-snd->sample</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pink-noise?">pink-noise?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#squelchupdate">squelch-update</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#channelsequal">channels-equal?</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandforth"><b>Forth</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#makesoundbox">make-sound-box</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pins">pins</a></em></td><td></td><td><em class=tab><a href="sndscm.html#squelchvowels">squelch-vowels</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#channelseq">channels=?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fp">fp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makespencerfilter">make-spencer-filter</a></em></td><td></td><td><em class=tab><a href="sndscm.html#placesound">place-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srate">srate</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#chans">chans</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fractionalfouriertransform">fractional-fourier-transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-square-wave">make-square-wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#play">play</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericsrate"><b>srate (generic)</b></a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#charposition">char-position</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frampletofile">frample->file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-src">make-src</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericplay"><b>play (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#src">src</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#chebyhka">cheby-hka</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frampletofile?">frample->file?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-ssb-am">make-ssb-am</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playarrowsize">play-arrow-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srcchannel">src-channel</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">chebyshev filters</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frampletoframple">frample->frample</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-table-lookup">make-table-lookup</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playbetweenmarks">play-between-marks</a></em></td><td></td><td><em class=tab><a href="sndscm.html#srcduration">src-duration</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#checkmixtags">check-mix-tags</a></em></td><td></td><td><em class=tab><a href="extsnd.html#framples">framples</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-table-lookup-with-env">make-table-lookup-with-env</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playhook">play-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#srcfitenvelope">src-fit-envelope</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#chordalize">chordalize</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericframples"><b>framples (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-tanhsin">make-tanhsin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playmixes">play-mixes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#srcmixes">src-mixes</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#chorus">chorus</a></em></td><td></td><td><em class=tab><a href="extsnd.html#freeplayer">free-player</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-triangle-wave">make-triangle-wave</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playoften">play-often</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srcsoundselection">src-selection</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#cleanchannel">clean-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#freesampler">free-sampler</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-two-pole">make-two-pole</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playregionforever">play-region-forever</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srcsound">src-sound</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#cleansound">clean-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#freeverb">freeverb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-two-zero">make-two-zero</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playsine">play-sine</a></em></td><td></td><td><em class=tab><a href="sndclm.html#src?">src?</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#clearlistener">clear-listener</a></em></td><td></td><td><em class=tab><a href="fm.html#fmintro"><b>Frequency Modulation</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#makevariabledisplay">make-variable-display</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playsines">play-sines</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ssb-am">ssb-am</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#cliphook">clip-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fullmix">fullmix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makevariablegraph">make-variable-graph</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playsyncdmarks">play-syncd-marks</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ssb-am?">ssb-am?</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#clipping">clipping</a></em></td><td></td><td><em class=tab><a href="s7.html#funclet">funclet</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-wave-train">make-wave-train</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playuntilcg">play-until-c-g</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ssbbank">ssb-bank</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#clmchannel">clm-channel</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#make-wave-train-with-env">make-wave-train-with-env</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playwithenvs">play-with-envs</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ssbbankenv">ssb-bank-env</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#clmexpsrc">clm-expsrc</a></em></td><td></td><td class="green"><div class="centered">G</div></td><td></td><td><em class=tab><a href="extsnd.html#mapchannel">map-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playerhome">player-home</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ssbfm">ssb-fm</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#closehook">close-hook</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#mapsoundfiles">map-sound-files</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playerQ">player?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#startdac">start-dac</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#closesound">close-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#gaussiandistribution">gaussian-distribution</a></em></td><td></td><td><em class=tab><a href="sndscm.html#maracadoc">maracas</a></em></td><td></td><td><em class=tab><a href="extsnd.html#players">players</a></em></td><td></td><td><em class=tab><a href="extsnd.html#startplaying">start-playing</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#colortolist">color->list</a></em></td><td></td><td><em class=tab><a href="extsnd.html#gcoff">gc-off</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marktointeger">mark->integer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playing">playing</a></em></td><td></td><td><em class=tab><a href="extsnd.html#startplayinghook">start-playing-hook</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#colorcutoff">color-cutoff</a></em></td><td></td><td><em class=tab><a href="extsnd.html#gcon">gc-on</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markclickhook">mark-click-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playexamples"><b>Playing</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#startplayingselectionhook">start-playing-selection-hook</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#colorhook">color-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#generators"><b>Generators</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#markclickinfo">mark-click-info</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pluck">pluck</a></em></td><td></td><td><em class=tab><a href="extsnd.html#startprogressreport">start-progress-report</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#colorinverted">color-inverted</a></em></td><td></td><td><em class=tab><a href="s7.html#gensym">gensym</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markcolor">mark-color</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandladspa"><b>Plugins</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#statusreport">status-report</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#colormixes">color-mixes</a></em></td><td></td><td><em class=tab><a href="s7.html#gensym?">gensym?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markcontext">mark-context</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polartorectangular">polar->rectangular</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stdinprompt">stdin-prompt</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#colororientationdialog">color-orientation-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#glgraphtops">gl-graph->ps</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markdraghook">mark-drag-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polynomial">polynomial</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stereotomono">stereo->mono</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#colorscale">color-scale</a></em></td><td></td><td><em class=tab><a href="extsnd.html#glspectrogram">glSpectrogram</a></em></td><td></td><td><em class=tab><a href="sndscm.html#markexplode">mark-explode</a></em></td><td></td><td><em class=tab><a href="sndscm.html#polydoc">polynomial operations</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stereoflute">stereo-flute</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#colorp">color?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#goertzel">goertzel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markhome">mark-home</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyoid">polyoid</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplayer">stop-player</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#colormap">colormap</a></em></td><td></td><td><em class=tab><a href="extsnd.html#gotolistenerend">goto-listener-end</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markhook">mark-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyoidenv">polyoid-env</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplaying">stop-playing</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#colormaptointeger">colormap->integer</a></em></td><td></td><td><em class=tab><a href="sndscm.html#grani">grani</a></em></td><td></td><td><em class=tab><a href="sndscm.html#markloops">mark-loops</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyoid?">polyoid?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplayinghook">stop-playing-hook</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#colormapname">colormap-name</a></em></td><td></td><td><em class=tab><a href="sndclm.html#grains"><b>Granular synthesis</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#markname">mark-name</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyshape">polyshape</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplayingselectionhook">stop-playing-selection-hook</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#colormapref">colormap-ref</a></em></td><td></td><td><em class=tab><a href="sndclm.html#granulate">granulate</a></em></td><td></td><td><em class=tab><a href="sndscm.html#marknametoid">mark-name->id</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyshape?">polyshape?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stretchenvelope">stretch-envelope</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#colormapsize">colormap-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#granulate?">granulate?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markproperties">mark-properties</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polywave">polywave</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stretchsoundviadft">stretch-sound-via-dft</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#colormapp">colormap?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#granulatedsoundinterp">granulated-sound-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markproperty">mark-property</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polywave?">polywave?</a></em></td><td></td><td><em class=tab><a href="s7.html#stringtobytevector">string->byte-vector</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#colors"><b>Colors</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#graph">graph</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marksample">mark-sample</a></em></td><td></td><td><em class=tab><a href="s7.html#portfilename">port-filename</a></em></td><td></td><td><em class=tab><a href="s7.html#stringposition">string-position</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#comb">comb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphtops">graph->ps</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marksync">mark-sync</a></em></td><td></td><td><em class=tab><a href="s7.html#portlinenumber">port-line-number</a></em></td><td></td><td><em class=tab><a href="s7.html#sublet">sublet</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#combbank">comb-bank</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphcolor">graph-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#marksynccolor">mark-sync-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#positiontox">position->x</a></em></td><td></td><td><em class=tab><a href="sndscm.html#superimposeffts">superimpose-ffts</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#combbankp">comb-bank?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphcursor">graph-cursor</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marksyncmax">mark-sync-max</a></em></td><td></td><td><em class=tab><a href="extsnd.html#positiontoy">position->y</a></em></td><td></td><td><em class=tab><a href="extsnd.html#swapchannels">swap-channels</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#comb?">comb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphdata">graph-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marktagheight">mark-tag-height</a></em></td><td></td><td><em class=tab><a href="extsnd.html#positioncolor">position-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#swapselectionchannels">swap-selection-channels</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#combineddatacolor">combined-data-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphhook">graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marktagwidth">mark-tag-width</a></em></td><td></td><td><em class=tab><a href="sndscm.html#powerenv">power-env</a></em></td><td></td><td><em class=tab><a href="s7.html#symboltodynamicvalue">symbol->dynamic-value</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#comment">comment</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphstyle">graph-style</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markp">mark?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pqw">pqw</a></em></td><td></td><td><em class=tab><a href="s7.html#symboltovalue">symbol->value</a></em></td></tr>
-  <tr><td><em class=tab><a href="grfsnd.html#sndwithcm"><b>Common Music</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#grapheq">graphic equalizer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markstuff"><b>Marking</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#pqwvox">pqw-vox</a></em></td><td></td><td><em class=tab><a href="s7.html#symbolaccess">symbol-access</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#complexify">complexify</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphshorizontal">graphs-horizontal</a></em></td><td></td><td><em class=tab><a href="extsnd.html#emarks">marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#preferencesdialog">preferences-dialog</a></em></td><td></td><td><em class=tab><a href="s7.html#symboltable">symbol-table</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#concatenateenvelopes">concatenate-envelopes</a></em></td><td></td><td><em class=tab><a href="sndclm.html#green-noise">green-noise</a></em></td><td></td><td><em class=tab><a href="sndscm.html#matchsoundfiles">match-sound-files</a></em></td><td></td><td><em class=tab><a href="extsnd.html#previoussample">previous-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sync">sync</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#constantp">constant?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#green-noise-interp">green-noise-interp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#maxenvelope">max-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#printdialog">print-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericsync"><b>sync (generic)</b></a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#continuationp">continuation?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#green-noise-interp?">green-noise-interp?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxregions">max-regions</a></em></td><td></td><td><em class=tab><a href="extsnd.html#printlength">print-length</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sync-everything">sync-everything</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#continue-frampletofile">continue-frample->file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#green-noise?">green-noise?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxfftpeaks">max-transform-peaks</a></em></td><td></td><td><em class=tab><a href="s7.html#proceduredocumentation">procedure-documentation</a></em></td><td></td><td><em class=tab><a href="extsnd.html#syncmax">sync-max</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#continue-sampletofile">continue-sample->file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#griddensity">grid-density</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxamp">maxamp</a></em></td><td></td><td><em class=tab><a href="s7.html#proceduresetter">procedure-setter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#syncstyle">sync-style</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#contrastchannel">contrast-channel</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#genericmaxamp"><b>maxamp (generic)</b></a></em></td><td></td><td><em class=tab><a href="s7.html#proceduresignature">procedure-signature</a></em></td><td></td><td><em class=tab><a href="extsnd.html#syncdmarks">syncd-marks</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#contrastcontrol">contrast-control</a></em></td><td></td><td class="green"><div class="centered">H</div></td><td></td><td><em class=tab><a href="extsnd.html#maxampposition">maxamp-position</a></em></td><td></td><td><em class=tab><a href="s7.html#proceduresource">procedure-source</a></em></td><td></td><td><em class=tab><a href="sndscm.html#syncdmixes">syncd-mixes</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#contrastcontrolamp">contrast-control-amp</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#maxampexamples"><b>Maxamps</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#progressreport">progress-report</a></em></td><td></td><td><em class=tab><a href="sndscm.html#syncup">syncup</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#contrastcontrolbounds">contrast-control-bounds</a></em></td><td></td><td><em class=tab><a href="sndscm.html#harmonicizer">harmonicizer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#menuwidgets">menu-widgets</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pulse-train">pulse-train</a></em></td><td></td><td><em class=tab>    </em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#contrastcontrolp">contrast-control?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#dht">Hartley transform</a></em></td><td></td><td><em class=tab><a href="sndscm.html#menusdoc">menus, optional</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pulse-train?">pulse-train?</a></em></td><td></td><td class="green"><div class="centered">T</div></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#contrast-enhancement">contrast-enhancement</a></em></td><td></td><td><em class=tab><a href="s7.html#hashtable">hash-table</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mindb">min-dB</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pulsedenv">pulsed-env</a></em></td><td></td><td><em class=tab>    </em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#contrastsound">contrast-sound</a></em></td><td></td><td><em class=tab><a href="s7.html#hashtablestar">hash-table*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mix">mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pulsedenv?">pulsed-env?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#table-lookup">table-lookup</a></em></td></tr>
-  <tr><td><em class=tab><a href="snd.html#controls"><b>Control Panel</b></a></em></td><td></td><td><em class=tab><a href="s7.html#hashtableentries">hash-table-entries</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixtofv">mix->float-vector</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#table-lookup?">table-lookup?</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#controlstochannel">controls->channel</a></em></td><td></td><td><em class=tab><a href="s7.html#hashtableref">hash-table-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtointeger">mix->integer</a></em></td><td></td><td class="green"><div class="centered">R</div></td><td></td><td><em class=tab><a href="sndclm.html#tanhsin">tanhsin</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#convolution">convolution</a></em></td><td></td><td><em class=tab><a href="s7.html#hashtableset">hash-table-set!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixamp">mix-amp</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#tanhsin?">tanhsin?</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#convolvewith">convolution reverb</a></em></td><td></td><td><em class=tab><a href="s7.html#hashtablep">hash-table?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixampenv">mix-amp-env</a></em></td><td></td><td><em class=tab><a href="sndclm.html#r2k!cos">r2k!cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#tap">tap</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#convolve">convolve</a></em></td><td></td><td><em class=tab><a href="extsnd.html#headertype">header-type</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixchannel">mix-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#r2k!cos?">r2k!cos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#tap?">tap?</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#convolvefiles">convolve-files</a></em></td><td></td><td><em class=tab><a href="snd.html#formats"><b>Headers and sample types</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixclickhook">mix-click-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#r2k2cos">r2k2cos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#telephone">telephone</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#convolveselectionwith">convolve-selection-with</a></em></td><td></td><td><em class=tab><a href="sndscm.html#hellodentist">hello-dentist</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixclickinfo">mix-click-info</a></em></td><td></td><td><em class=tab><a href="sndclm.html#r2k2cos?">r2k2cos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#tempdir">temp-dir</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#convolvewith">convolve-with</a></em></td><td></td><td><em class=tab><a href="extsnd.html#helpdialog">help-dialog</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixclicksetsamp">mix-click-sets-amp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#radianstodegrees">radians->degrees</a></em></td><td></td><td><em class=tab><a href="extsnd.html#textfocuscolor">text-focus-color</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#convolve?">convolve?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#helphook">help-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixcolor">mix-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#radianstohz">radians->hz</a></em></td><td></td><td><em class=tab><a href="extsnd.html#timegraphstyle">time-graph-style</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#fvcopy">copy</a></em></td><td></td><td><em class=tab><a href="extsnd.html#hidewidget">hide-widget</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixdialogmix">mix-dialog-mix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#rampchannel">ramp-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#timegraphtype">time-graph-type</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#s7copy">copy</a></em></td><td></td><td><em class=tab><a href="extsnd.html#highlightcolor">highlight-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixdraghook">mix-drag-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand">rand</a></em></td><td></td><td><em class=tab><a href="extsnd.html#timegraphp">time-graph?</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#genericcopy"><b>copy (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#hilberttransform">hilbert-transform</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixfiledialog">mix-file-dialog</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand-interp">rand-interp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#timestosamples">times->samples</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#copycontext">copy-context</a></em></td><td></td><td><em class=tab><a href="s7.html#hookfunctions">hook-functions</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixfv">mix-float-vector</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand-interp?">rand-interp?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#tinyfont">tiny-font</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#copysampler">copy-sampler</a></em></td><td></td><td><em class=tab><a href="sndscm.html#hookmember">hook-member</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixhome">mix-home</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand?">rand?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#telephone">touch-tone</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#copying"><b>Copying</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndhooks"><b>Hooks</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixlength">mix-length</a></em></td><td></td><td><em class=tab><a href="s7.html#random">random</a></em></td><td></td><td><em class=tab><a href="s7.html#trace">trace</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#correlate">correlate</a></em></td><td></td><td><em class=tab><a href="sndscm.html#html">html</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixmaxamp">mix-maxamp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#allrandomnumbers"><b>Random Numbers</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#trackingcursors"><b>Tracking cursors</b></a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#coverlet">coverlet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#htmldir">html-dir</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixname">mix-name</a></em></td><td></td><td><em class=tab><a href="s7.html#randomstate">random-state</a></em></td><td></td><td><em class=tab><a href="extsnd.html#trackingcursorstyle">tracking-cursor-style</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#mixdoc">cross-fade (amplitude)</a></em></td><td></td><td><em class=tab><a href="extsnd.html#htmlprogram">html-program</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixnametoid">mix-name->id</a></em></td><td></td><td><em class=tab><a href="s7.html#randomstatep">random-state?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformtofv">transform->float-vector</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#fadedoc">cross-fade (frequency domain)</a></em></td><td></td><td><em class=tab><a href="sndclm.html#hztoradians">hz->radians</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixposition">mix-position</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rcos">rcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformtointeger">transform->integer</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#crosssynthesis">cross-synthesis</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#mixproperties">mix-properties</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rcos?">rcos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformdialog">transform-dialog</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#curlet">curlet</a></em></td><td></td><td class="green"><div class="centered">I</div></td><td></td><td><em class=tab><a href="extsnd.html#mixproperty">mix-property</a></em></td><td></td><td><em class=tab><a href="s7.html#readerrorhook">*read-error-hook*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformframples">transform-framples</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#currentfont">current-font</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#mixregion">mix-region</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readhook">read-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformgraphstyle">transform-graph-style</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#cursor">cursor</a></em></td><td></td><td><em class=tab><a href="sndclm.html#iir-filter">iir-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixreleasehook">mix-release-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readmixsample">read-mix-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformgraphtype">transform-graph-type</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#cursorcolor">cursor-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#iir-filter?">iir-filter?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixsamplerQ">mix-sampler?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readonly">read-only</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformgraphp">transform-graph?</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#cursorcontext">cursor-context</a></em></td><td></td><td><em class=tab><a href="extsnd.html#gin">in</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixselection">mix-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readregionsample">read-region-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#normalizefft">transform-normalization</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#cursorlocationoffset">cursor-location-offset</a></em></td><td></td><td><em class=tab><a href="sndclm.html#in-any">in-any</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixsound">mix-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readsample">read-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformsample">transform-sample</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#cursorposition">cursor-position</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ina">ina</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixspeed">mix-speed</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readsamplewithdirection">read-sample-with-direction</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformsize">transform-size</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#cursorsize">cursor-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#inb">inb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixsync">mix-sync</a></em></td><td></td><td><em class=tab><a href="s7.html#readercond">reader-cond</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformtype">transform-type</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#cursorstyle">cursor-style</a></em></td><td></td><td><em class=tab><a href="extsnd.html#infodialog">info-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixsyncmax">mix-sync-max</a></em></td><td></td><td><em class=tab><a href="sndclm.html#readin">readin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformp">transform?</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#cursorupdateinterval">cursor-update-interval</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#initladspa">init-ladspa</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtagheight">mix-tag-height</a></em></td><td></td><td><em class=tab><a href="sndclm.html#readin?">readin?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#transposemixes">transpose-mixes</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#cursorexamples"><b>Cursors</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#initialbeg">initial-beg</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtagwidth">mix-tag-width</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rectangulartomagnitudes">rectangular->magnitudes</a></em></td><td></td><td><em class=tab><a href="sndclm.html#triangle-wave">triangle-wave</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#cutlet">cutlet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#initialdur">initial-dur</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtagy">mix-tag-y</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rectangulartopolar">rectangular->polar</a></em></td><td></td><td><em class=tab><a href="sndclm.html#triangle-wave?">triangle-wave?</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#cyclicsequences">cyclic-sequences</a></em></td><td></td><td><em class=tab><a href="extsnd.html#initialgraphhook">initial-graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixwaveformheight">mix-waveform-height</a></em></td><td></td><td><em class=tab><a href="extsnd.html#redo">redo</a></em></td><td></td><td><em class=tab><a href="sndscm.html#tubebell">tubebell</a></em></td></tr>
-  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="grfsnd.html#sndinitfile"><b>Initialization file</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixp">mix?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regiontofv">region->float-vector</a></em></td><td></td><td><em class=tab><a href="sndscm.html#tubebell">tubular bell</a></em></td></tr>
-  <tr><td class="green"><div class="centered">D</div></td><td></td><td><em class=tab><a href="s7.html#inlet">inlet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixes">mixes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regiontointeger">region->integer</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-pole">two-pole</a></em></td></tr>
-  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#insertchannel">insert-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndmixes"><b>Mixing</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionchans">region-chans</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-pole?">two-pole?</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#dacfolding">dac-combines-channels</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertfiledialog">insert-file-dialog</a></em></td><td></td><td><em class=tab><a href="sndscm.html#monotostereo">mono->stereo</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionframples">region-framples</a></em></td><td></td><td><em class=tab><a href="sndscm.html#twotab">two-tab</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#dacsize">dac-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertregion">insert-region</a></em></td><td></td><td><em class=tab><a href="sndscm.html#moogfilter">moog-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regiongraphstyle">region-graph-style</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-zero">two-zero</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#datacolor">data-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsample">insert-sample</a></em></td><td></td><td><em class=tab><a href="s7.html#morallyequalp">morally-equal?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionhome">region-home</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-zero?">two-zero?</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#datalocation">data-location</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsamples">insert-samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseclickhook">mouse-click-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionmaxamp">region-maxamp</a></em></td><td></td><td><em class=tab><a href="s7.html#typeof">type-of</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#datasize">data-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertselection">insert-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousedraghook">mouse-drag-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionmaxampposition">region-maxamp-position</a></em></td><td></td><td><em class=tab>    </em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#dbtolinear">db->linear</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsilence">insert-silence</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseentergraphhook">mouse-enter-graph-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#regionplaylist">region-play-list</a></em></td><td></td><td class="green"><div class="centered">U</div></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#cdebugging"><b>Debugging (C)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsound">insert-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseenterlabelhook">mouse-enter-label-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionposition">region-position</a></em></td><td></td><td><em class=tab>    </em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#variabledisplay"><b>Debugging (instruments)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertionexamples"><b>Insertions</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseenterlistenerhook">mouse-enter-listener-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#regionrms">region-rms</a></em></td><td></td><td><em class=tab><a href="extsnd.html#unbindkey">unbind-key</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#snderrors"><b>Debugging (Scheme)</b></a></em></td><td></td><td><em class=tab><a href="s7.html#intvector">int-vector</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseentertexthook">mouse-enter-text-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionsample">region-sample</a></em></td><td></td><td><em class=tab><a href="s7.html#unboundvariablehook">*unbound-variable-hook*</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#defaultoutputchans">default-output-chans</a></em></td><td></td><td><em class=tab><a href="s7.html#intvectorref">int-vector-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseleavegraphhook">mouse-leave-graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionsamplerQ">region-sampler?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#unclipchannel">unclip-channel</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#defaultoutputheadertype">default-output-header-type</a></em></td><td></td><td><em class=tab><a href="s7.html#intvectorset">int-vector-set!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseleavelabelhook">mouse-leave-label-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionsrate">region-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undo">undo</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#defaultoutputsampletype">default-output-sample-type</a></em></td><td></td><td><em class=tab><a href="s7.html#intvectorp">int-vector?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousleavelistenerhook">mouse-leave-listener-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionok">region?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undoexamples"><b>Undo and Redo</b></a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#defaultoutputsrate">default-output-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertocolormap">integer->colormap</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousleavetexthook">mouse-leave-text-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#eregions">regions</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undohook">undo-hook</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#defgenerator">defgenerator</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertomark">integer->mark</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousepresshook">mouse-press-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionstuff"><b>Regions</b></a></em></td><td></td><td><em class=tab><a href="s7.html#unlet">unlet</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#definestar">define*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertomix">integer->mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#move-locsig">move-locsig</a></em></td><td></td><td><em class=tab><a href="extsnd.html#remembersoundstate">remember-sound-state</a></em></td><td></td><td><em class=tab><a href="extsnd.html#unselectall">unselect-all</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#defineconstant">define-constant</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertoregion">integer->region</a></em></td><td></td><td><em class=tab><a href="sndscm.html#movemixes">move-mixes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#removeclicks">remove-clicks</a></em></td><td></td><td><em class=tab><a href="sndscm.html#updategraphs">update-graphs</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#defineenvelope">define-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertosound">integer->sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#move-sound">move-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#removefrommenu">remove-from-menu</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatehook">update-hook</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#expansion">define-expansion</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertotransform">integer->transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#move-sound?">move-sound?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#replacewithselection">replace-with-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatelispgraph">update-lisp-graph</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#definemacro">define-macro</a></em></td><td></td><td><em class=tab><a href="sndscm.html#integrateenvelope">integrate-envelope</a></em></td><td></td><td><em class=tab><a href="sndscm.html#movesyncdmarks">move-syncd-marks</a></em></td><td></td><td><em class=tab><a href="sndscm.html#reportmarknames">report-mark-names</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatesound">update-sound</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#definemacrostar">define-macro*</a></em></td><td></td><td><em class=tab><a href="sndscm.html#invertfilter">invert-filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-autocorrelation">moving-autocorrelation</a></em></td><td></td><td><em class=tab><a href="s7.html#requires7">require</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatetimegraph">update-time-graph</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#defineselectionviamarks">define-selection-via-marks</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndswitches"><b>Invocation flags</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-autocorrelation?">moving-autocorrelation?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#resampleexamples"><b>Resampling</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatetransformgraph">update-transform-graph</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#definedp">defined?</a></em></td><td></td><td><em class=tab><a href="s7.html#iterate">iterate</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-average">moving-average</a></em></td><td></td><td><em class=tab><a href="sndscm.html#resetallhooks">reset-all-hooks</a></em></td><td></td><td><em class=tab><a href="sndscm.html#uponsaveyourself">upon-save-yourself</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#degreestoradians">degrees->radians</a></em></td><td></td><td><em class=tab><a href="s7.html#iteratoratend">iterator-at-end?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-average?">moving-average?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#resetcontrols">reset-controls</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sndmotifdoc">user interface extensions</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#delay">delay</a></em></td><td></td><td><em class=tab><a href="s7.html#iteratorsequence">iterator-sequence</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-fft">moving-fft</a></em></td><td></td><td><em class=tab><a href="extsnd.html#resetlistenercursor">reset-listener-cursor</a></em></td><td></td><td><em class=tab>    </em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#delaychannelmixes">delay-channel-mixes</a></em></td><td></td><td><em class=tab><a href="s7.html#iteratorp">iterator?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-fft?">moving-fft?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#reson">reson</a></em></td><td></td><td class="green"><div class="centered">V</div></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#delaytick">delay-tick</a></em></td><td></td><td><em class=tab><a href="sndclm.html#izcos">izcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-length">moving-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#restorecontrols">restore-controls</a></em></td><td></td><td><em class=tab>    </em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#delay?">delay?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#izcos?">izcos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-max">moving-max</a></em></td><td></td><td><em class=tab><a href="sndscm.html#reverbexamples"><b>Reverb</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#variabledisplay">variable-display</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#deletecolormap">delete-colormap</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#moving-max?">moving-max?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#*reverb*">*reverb*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#variablegraphp">variable-graph?</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#deletefilefilter">delete-file-filter</a></em></td><td></td><td class="green"><div class="centered">J</div></td><td></td><td><em class=tab><a href="sndclm.html#moving-norm">moving-norm</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbdecay">reverb-control-decay</a></em></td><td></td><td><em class=tab><a href="s7.html#varlet">varlet</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#deletefilesorter">delete-file-sorter</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#moving-norm?">moving-norm?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolfeedback">reverb-control-feedback</a></em></td><td></td><td><em class=tab><a href="sndscm.html#vibratinguniformcircularstring">vibrating-uniform-circular-string</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#deletemark">delete-mark</a></em></td><td></td><td><em class=tab><a href="sndclm.html#j0evencos">j0evencos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-pitch">moving-pitch</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrollength">reverb-control-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesamp">view-files-amp</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#deletemarks">delete-marks</a></em></td><td></td><td><em class=tab><a href="sndclm.html#j0evencos?">j0evencos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-pitch?">moving-pitch?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrollengthbounds">reverb-control-length-bounds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesampenv">view-files-amp-env</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#deletesample">delete-sample</a></em></td><td></td><td><em class=tab><a href="sndclm.html#j0j1cos">j0j1cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-rms">moving-rms</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrollowpass">reverb-control-lowpass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesdialog">view-files-dialog</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#deletesamples">delete-samples</a></em></td><td></td><td><em class=tab><a href="sndclm.html#j0j1cos?">j0j1cos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-scentroid">moving-scentroid</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolscale">reverb-control-scale</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesfiles">view-files-files</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#deletesamplesandsmooth">delete-samples-and-smooth</a></em></td><td></td><td><em class=tab><a href="sndclm.html#j2cos">j2cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-scentroid?">moving-scentroid?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolscalebounds">reverb-control-scale-bounds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesselecthook">view-files-select-hook</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#deleteselection">delete-selection</a></em></td><td></td><td><em class=tab><a href="sndclm.html#j2cos?">j2cos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-spectrum">moving-spectrum</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolp">reverb-control?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesselectedfiles">view-files-selected-files</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#deleteselectionandsmooth">delete-selection-and-smooth</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandjack"><b>Jack</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-spectrum?">moving-spectrum?</a></em></td><td></td><td><em class=tab><a href="s7.html#reverseb">reverse!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilessort">view-files-sort</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#deletetransform">delete-transform</a></em></td><td></td><td><em class=tab><a href="sndscm.html#jcreverb">jc-reverb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-sum">moving-sum</a></em></td><td></td><td><em class=tab><a href="sndscm.html#reversebyblocks">reverse-by-blocks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesspeed">view-files-speed</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#deletionexamples"><b>Deletions</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#jjcos">jjcos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mpg">mpg</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reversechannel">reverse-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesspeedstyle">view-files-speed-style</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#describehook">describe-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jjcos?">jjcos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsabuffersize">mus-alsa-buffer-size</a></em></td><td></td><td><em class=tab><a href="sndscm.html#reverseenvelope">reverse-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewmixesdialog">view-mixes-dialog</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#describemark">describe-mark</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jncos">jncos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsabuffers">mus-alsa-buffers</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverseselection">reverse-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewregionsdialog">view-regions-dialog</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#dht">dht</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jncos?">jncos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsacapturedevice">mus-alsa-capture-device</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reversesound">reverse-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewsound">view-sound</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#dialogwidgets">dialog-widgets</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jpcos">jpcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsadevice">mus-alsa-device</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverseexamples"><b>Reversing</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#singerdoc">voice physical model</a></em></td></tr>
-  <tr><td><em class=tab><a href="s7.html#dilambda">dilambda</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jpcos?">jpcos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsaplaybackdevice">mus-alsa-playback-device</a></em></td><td></td><td><em class=tab><a href="extsnd.html#revertsound">revert-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#voicedtounvoiced">voiced->unvoiced</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#disablecontrolpanel">disable-control-panel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#justsounds">just-sounds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsasquelchwarning">mus-alsa-squelch-warning</a></em></td><td></td><td><em class=tab><a href="extsnd.html#rightsample">right-sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#volterrafilter">volterra-filter</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#displaybarkfft">display-bark-fft</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jycos">jycos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#musarrayprintlength">mus-array-print-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ring-modulate">ring-modulate</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmvox">vox</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#displaycorrelation">display-correlation</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jycos?">jycos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musbytespersample">mus-bytes-per-sample</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rk!cos">rk!cos</a></em></td><td></td><td><em class=tab>    </em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#displaydb">display-db</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#mus-channel">mus-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rk!cos?">rk!cos?</a></em></td><td></td><td class="green"><div class="centered">W</div></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#displayedits">display-edits</a></em></td><td></td><td class="green"><div class="centered">K</div></td><td></td><td><em class=tab><a href="sndclm.html#mus-channels">mus-channels</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rk!ssb">rk!ssb</a></em></td><td></td><td><em class=tab>    </em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#displayenergy">display-energy</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#mus-chebyshev-tu-sum">mus-chebyshev-tu-sum</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rk!ssb?">rk!ssb?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#wave-train">wave-train</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#dissolvefade">dissolve-fade</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k2cos">k2cos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musclipping">mus-clipping</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rkcos">rkcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#wave-train?">wave-train?</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#ditherchannel">dither-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k2cos?">k2cos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-close">mus-close</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rkcos?">rkcos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#wavelettype">wavelet-type</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#dithersound">dither-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k2sin">k2sin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-copy">mus-copy</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rkoddssb">rkoddssb</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pqwvox">waveshaping voice</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#dolph">dolph</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k2sin?">k2sin?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-data">mus-data</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rkoddssb?">rkoddssb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#wavohop">wavo-hop</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#dot-product">dot-product</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k2ssb">k2ssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-describe">mus-describe</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rksin">rksin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#wavotrace">wavo-trace</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#dotsize">dot-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k2ssb?">k2ssb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#muserrorhook">mus-error-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rksin?">rksin?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#weighted-moving-average">weighted-moving-average</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#downoct">down-oct</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k3sin">k3sin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#muserrortypetostring">mus-error-type->string</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rkssb">rkssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#widgetposition">widget-position</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#drawaxes">draw-axes</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k3sin?">k3sin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musexpandfilename">mus-expand-filename</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rkssb?">rkssb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#widgetsize">widget-size</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#drawdot">draw-dot</a></em></td><td></td><td><em class=tab><a href="sndscm.html#kalmanfilterchannel">kalman-filter-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-feedback">mus-feedback</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rmsgain">rms</a></em></td><td></td><td><em class=tab><a href="extsnd.html#widgettext">widget-text</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#drawdots">draw-dots</a></em></td><td></td><td><em class=tab><a href="extsnd.html#key">key</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-feedforward">mus-feedforward</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rmsgain">rms, gain, balance gens</a></em></td><td></td><td><em class=tab><a href="extsnd.html#movingwindows"><b>Window size and position</b></a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#drawline">draw-line</a></em></td><td></td><td><em class=tab><a href="extsnd.html#keybinding">key-binding</a></em></td><td></td><td><em class=tab><a href="sndclm.html#fft">mus-fft</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rmsenvelope">rms-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowheight">window-height</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#drawlines">draw-lines</a></em></td><td></td><td><em class=tab><a href="extsnd.html#keypresshook">key-press-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#musfilebuffersize">mus-file-buffer-size</a></em></td><td></td><td><em class=tab><a href="s7.html#rootlet">rootlet</a></em></td><td></td><td><em class=tab><a href="sndscm.html#windowsamples">window-samples</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#drawmarkhook">draw-mark-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#krksin">krksin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musfileclipping">mus-file-clipping</a></em></td><td></td><td><em class=tab><a href="s7.html#rootletredefinitionhook">*rootlet-redefinition-hook*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowwidth">window-width</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#drawmixhook">draw-mix-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#krksin?">krksin?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#musfilemix">mus-file-mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#round-interp">round-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowx">window-x</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#drawstring">draw-string</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#mus-file-name">mus-file-name</a></em></td><td></td><td><em class=tab><a href="sndclm.html#round-interp?">round-interp?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowy">window-y</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#drone">drone</a></em></td><td></td><td class="green"><div class="centered">L</div></td><td></td><td><em class=tab><a href="sndclm.html#musfloatequalfudgefactor">mus-float-equal-fudge-factor</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rssb">rssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withbackgroundprocesses">with-background-processes</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#makedropsite">drop sites</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#mus-frequency">mus-frequency</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rssbinterp">rssb-interp</a></em></td><td></td><td><em class=tab><a href="s7.html#withbaffle">with-baffle</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#drophook">drop-hook</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#ladspadescriptor">ladspa-descriptor</a></em></td><td></td><td><em class=tab><a href="sndclm.html#musgeneratorp">mus-generator?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rssb?">rssb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withfilemonitor">with-file-monitor</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#duringopenhook">during-open-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ladspadir">ladspa-dir</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musheaderrawdefaults">mus-header-raw-defaults</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rubbersound">rubber-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withgl">with-gl</a></em></td></tr>
-  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="s7.html#lambdastar">lambda*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musheadertypetostring">mus-header-type->string</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandruby"><b>Ruby</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#withinsetgraph">with-inset-graph</a></em></td></tr>
-  <tr><td class="green"><div class="centered">E</div></td><td></td><td><em class=tab><a href="sndscm.html#lbjpiano">lbj-piano</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musheadertypename">mus-header-type-name</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxycos">rxycos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withinterrupts">with-interrupts</a></em></td></tr>
-  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#leftsample">left-sample</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-hop">mus-hop</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxycos?">rxycos?</a></em></td><td></td><td><em class=tab><a href="s7.html#with-let">with-let</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#editlists"><b>Edit lists</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericlength"><b>length (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-increment">mus-increment</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxyk!cos">rxyk!cos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withlocalhook">with-local-hook</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#editfragment">edit-fragment</a></em></td><td></td><td><em class=tab><a href="s7.html#lettolist">let->list</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-input?">mus-input?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxyk!cos?">rxyk!cos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withmenuicons">with-menu-icons</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#editheaderdialog">edit-header-dialog</a></em></td><td></td><td><em class=tab><a href="s7.html#letref">let-ref</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-interp-type">mus-interp-type</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxyk!sin">rxyk!sin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withmixtags">with-mix-tags</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#edithook">edit-hook</a></em></td><td></td><td><em class=tab><a href="s7.html#letset">let-set!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-interpolate">mus-interpolate</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxyk!sin?">rxyk!sin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withpointerfocus">with-pointer-focus</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#editlisttofunction">edit-list->function</a></em></td><td></td><td><em class=tab><a href="s7.html#lettemporarily">let-temporarily</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-length">mus-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxysin">rxysin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withrelativepanes">with-relative-panes</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#editposition">edit-position</a></em></td><td></td><td><em class=tab><a href="s7.html#letp">let?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-location">mus-location</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxysin?">rxysin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withsmptelabel">with-smpte-label</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#editproperties">edit-properties</a></em></td><td></td><td><em class=tab><a href="sndclm.html#lineartodb">linear->db</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musmaxmalloc">mus-max-malloc</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#withsound">with-sound</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#editproperty">edit-property</a></em></td><td></td><td><em class=tab><a href="sndscm.html#linearsrcchannel">linear-src-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musmaxtablesize">mus-max-table-size</a></em></td><td></td><td class="green"><div class="centered">S</div></td><td></td><td><em class=tab><a href="sndscm.html#withtemporaryselection">with-temporary-selection</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#edittree">edit-tree</a></em></td><td></td><td><em class=tab><a href="sndscm.html#lintdoc">lint for scheme</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-name">mus-name</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#withtoolbar">with-toolbar</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#edits">edits</a></em></td><td></td><td><em class=tab><a href="extsnd.html#lispgraphhook">lisp-graph-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-offset">mus-offset</a></em></td><td></td><td><em class=tab><a href="s7.html#s7doc"><b>s7 scheme</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#withtooltips">with-tooltips</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#edot-product">edot-product</a></em></td><td></td><td><em class=tab><a href="extsnd.html#lispgraphstyle">lisp-graph-style</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-order">mus-order</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sample">sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withtrackingcursor">with-tracking-cursor</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#effectshook">effects-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#lispgraphp">lisp-graph?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musosssetbuffers">mus-oss-set-buffers</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sampletofile">sample->file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withverbosecursor">with-verbose-cursor</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">elliptic filters</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listtofv">list->float-vector</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-output?">mus-output?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sampletofile?">sample->file?</a></em></td><td></td><td><em class=tab>    </em></td></tr>
-  <tr><td><em class=tab><a href="grfsnd.html#emacssnd"><b>Emacs and Snd</b></a></em></td><td></td><td><em class=tab><a href="grfsnd.html#listladspa">list-ladspa</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-phase">mus-phase</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sampletype">sample-type</a></em></td><td></td><td class="green"><div class="centered">X</div></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#env">env</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerclickhook">listener-click-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-ramp">mus-ramp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sampleratendQ">sampler-at-end?</a></em></td><td></td><td><em class=tab>    </em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#env-any">env-any</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenercolor">listener-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-rand-seed">mus-rand-seed</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplerhome">sampler-home</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xtoposition">x->position</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envchannel">env-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenercolorized">listener-colorized</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-random">mus-random</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplerposition">sampler-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xaxislabel">x-axis-label</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envchannelwithbase">env-channel-with-base</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerfont">listener-font</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-reset">mus-reset</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplerQ">sampler?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xaxisstyle">x-axis-style</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#envexptchannel">env-expt-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerprompt">listener-prompt</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-run">mus-run</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplers"><b>samplers</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#xbounds">x-bounds</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#env-interp">env-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerselection">listener-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussampletypetostring">mus-sample-type->string</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samples">samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xpositionslider">x-position-slider</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#envmixes">env-mixes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenertextcolor">listener-text-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussampletypename">mus-sample-type-name</a></em></td><td></td><td><em class=tab><a href="sndclm.html#samplestoseconds">samples->seconds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xzoomslider">x-zoom-slider</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envselection">env-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#littleendianp">little-endian?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-scaler">mus-scaler</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sashcolor">sash-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#xbopen">xb-open</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envsound">env-sound</a></em></td><td></td><td><em class=tab><a href="s7.html#loadhook">*load-hook*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundchans">mus-sound-chans</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveasdialogautocomment">save-as-dialog-auto-comment</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xrampchannel">xramp-channel</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#envsoundinterp">env-sound-interp</a></em></td><td></td><td><em class=tab><a href="s7.html#loadpath">*load-path*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundcloseinput">mus-sound-close-input</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveasdialogsrc">save-as-dialog-src</a></em></td><td></td><td><em class=tab>    </em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#envsquaredchannel">env-squared-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#locatezero">locate-zero</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundcloseoutput">mus-sound-close-output</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savecontrols">save-controls</a></em></td><td></td><td class="green"><div class="centered">Y</div></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#env?">env?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig">locsig</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundcomment">mus-sound-comment</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savedir">save-dir</a></em></td><td></td><td><em class=tab>    </em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envedbase">enved-base</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-ref">locsig-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussounddatalocation">mus-sound-data-location</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveedithistory">save-edit-history</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ytoposition">y->position</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envedclipping">enved-clip?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-reverb-ref">locsig-reverb-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussounddatumsize">mus-sound-datum-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveenvelopes">save-envelopes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#yaxislabel">y-axis-label</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#enveddialog">enved-dialog</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-reverb-set!">locsig-reverb-set!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundduration">mus-sound-duration</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savehook">save-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ybounds">y-bounds</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envedenvelope">enved-envelope</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-set!">locsig-set!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundforget">mus-sound-forget</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savelistener">save-listener</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ypositionslider">y-position-slider</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#filterenv">enved-filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-type">locsig-type</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundframples">mus-sound-framples</a></em></td><td></td><td><em class=tab><a href="sndscm.html#savemarkproperties">save-mark-properties</a></em></td><td></td><td><em class=tab><a href="extsnd.html#yzoomslider">y-zoom-slider</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#filterenvorder">enved-filter-order</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig?">locsig?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundheadertype">mus-sound-header-type</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savemarks">save-marks</a></em></td><td></td><td><em class=tab>    </em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envedhook">enved-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#logfreqstart">log-freq-start</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundlength">mus-sound-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savemix">save-mix</a></em></td><td></td><td class="green"><div class="centered">Z</div></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envedin-dB">enved-in-dB</a></em></td><td></td><td><em class=tab><a href="sndscm.html#lpccoeffs">lpc-coeffs</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundloopinfo">mus-sound-loop-info</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveregion">save-region</a></em></td><td></td><td><em class=tab>    </em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envedpower">enved-power</a></em></td><td></td><td><em class=tab><a href="sndscm.html#lpcpredict">lpc-predict</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundmarkinfo">mus-sound-mark-info</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveregiondialog">save-region-dialog</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ztransform">z-transform</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envedstyle">enved-style</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundmaxamp">mus-sound-maxamp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveselection">save-selection</a></em></td><td></td><td><em class=tab><a href="sndscm.html#zecho">zecho</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envedtarget">enved-target</a></em></td><td></td><td class="green"><div class="centered">M</div></td><td></td><td><em class=tab><a href="extsnd.html#mussoundmaxampexists">mus-sound-maxamp-exists?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveselectiondialog">save-selection-dialog</a></em></td><td></td><td><em class=tab><a href="sndscm.html#zeroplus">zero+</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envedwaving">enved-wave?</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundopeninput">mus-sound-open-input</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savesound">save-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#zeropad">zero-pad</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envedwaveformcolor">enved-waveform-color</a></em></td><td></td><td><em class=tab><a href="s7.html#macrop">macro?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundopenoutput">mus-sound-open-output</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savesoundas">save-sound-as</a></em></td><td></td><td><em class=tab><a href="sndscm.html#zerophase">zero-phase</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#envelopeinterp">envelope-interp</a></em></td><td></td><td><em class=tab><a href="s7.html#macroexpand">macroexpand</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundpath">mus-sound-path</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savesounddialog">save-sound-dialog</a></em></td><td></td><td><em class=tab><a href="sndscm.html#zipsound">zip-sound</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndscm.html#envelopedmix">enveloped-mix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mainmenu">main-menu</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundpreload">mus-sound-preload</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savestate">save-state</a></em></td><td></td><td><em class=tab><a href="sndscm.html#zipper">zipper</a></em></td></tr>
-  <tr><td><em class=tab><a href="extsnd.html#envexamples"><b>Envelopes</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mainwidgets">main-widgets</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundprune">mus-sound-prune</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savestatefile">save-state-file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#zoomcolor">zoom-color</a></em></td></tr>
-  <tr><td><em class=tab><a href="sndclm.html#eoddcos">eoddcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-abcos">make-abcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundread">mus-sound-read</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savestatehook">save-state-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#zoomfocusstyle">zoom-focus-style</a></em></td></tr>
-  
+  <tr><td><em class=tab><a href="s7.html#sharpreaders">*#readers*</a></em></td><td></td><td><em class=tab><a href="sndclm.html#eoddcos">eoddcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mainwidgets">main-widgets</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundsamples">mus-sound-samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleby">scale-by</a></em></td></tr>
+  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#eoddcos?">eoddcos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-abcos">make-abcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundsrate">mus-sound-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scalechannel">scale-channel</a></em></td></tr>
+  <tr><td class="green"><div class="centered">A</div></td><td></td><td><em class=tab><a href="extsnd.html#epsbottommargin">eps-bottom-margin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-absin">make-absin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundtypespecifier">mus-sound-type-specifier</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scaleenvelope">scale-envelope</a></em></td></tr>
+  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#epsfile">eps-file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-adjustable-sawtooth-wave">make-adjustable-sawtooth-wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundwritedate">mus-sound-write-date</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scalemixes">scale-mixes</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#abcos">abcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#epsleftmargin">eps-left-margin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-adjustable-square-wave">make-adjustable-square-wave</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mussrate">mus-srate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleselectionby">scale-selection-by</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#abcos?">abcos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#epssize">eps-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-adjustable-triangle-wave">make-adjustable-triangle-wave</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-width">mus-width</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleselectionto">scale-selection-to</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#abort">abort</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ercos">ercos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-all-pass">make-all-pass</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-xcoeff">mus-xcoeff</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scalesound">scale-sound</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#absin">absin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ercos?">ercos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#makeallpassbank">make-all-pass-bank</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-xcoeffs">mus-xcoeffs</a></em></td><td></td><td><em class=tab><a href="sndscm.html#scaletempo">scale-tempo</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#absin?">absin?</a></em></td><td></td><td><em class=tab><a href="s7.html#errorhook">*error-hook*</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-asyfm">make-asyfm</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-ycoeff">mus-ycoeff</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scaleto">scale-to</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#addampcontrols">add-amp-controls</a></em></td><td></td><td><em class=tab><a href="sndclm.html#erssb">erssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-asymmetric-fm">make-asymmetric-fm</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-ycoeffs">mus-ycoeffs</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scanchannel">scan-channel</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#addcolormap">add-colormap</a></em></td><td></td><td><em class=tab><a href="sndclm.html#erssb?">erssb?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebandpass">make-bandpass</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#dspdocscanned">scanned synthesis</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#adddeleteoption">add-delete-option</a></em></td><td></td><td><em class=tab><a href="sndclm.html#evenmultiple">even-multiple</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebandstop">make-bandstop</a></em></td><td></td><td class="green"><div class="centered">N</div></td><td></td><td><em class=tab><a href="sndscm.html#scentroid">scentroid</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#adddirectorytoviewfileslist">add-directory-to-view-files-list</a></em></td><td></td><td><em class=tab><a href="sndclm.html#evenweight">even-weight</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-bess">make-bess</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#scratch">scratch</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#addfilefilter">add-file-filter</a></em></td><td></td><td><em class=tab><a href="sndscm.html#everysample">every-sample?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebiquad">make-biquad</a></em></td><td></td><td><em class=tab><a href="sndclm.html#n1cos">n1cos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scriptarg">script-arg</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#addfilesorter">add-file-sorter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#exit">exit</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makebirds">make-birds</a></em></td><td></td><td><em class=tab><a href="sndclm.html#n1cos?">n1cos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#scriptargs">script-args</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#addfiletoviewfileslist">add-file-to-view-files-list</a></em></td><td></td><td><em class=tab><a href="extsnd.html#exithook">exit-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-blackman">make-blackman</a></em></td><td></td><td><em class=tab><a href="extsnd.html#nameclickhook">name-click-hook</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndwithnogui"><b>Scripting</b></a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#addmark">add-mark</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrol">expand-control</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-brown-noise">make-brown-noise</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nchoosekcos">nchoosekcos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#searchforclick">search-for-click</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#addmarkpane">add-mark-pane</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolbounds">expand-control-bounds</a></em></td><td></td><td><em class=tab><a href="s7.html#makebytevector">make-byte-vector</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nchoosekcos?">nchoosekcos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#searchprocedure">search-procedure</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#addplayer">add-player</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolhop">expand-control-hop</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makedropsite">make-channel-drop-site</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ncos">ncos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#searchexamples"><b>Searching</b></a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#addsoundfileextension">add-sound-file-extension</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontroljitter">expand-control-jitter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makecolor">make-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ncos2?">ncos2?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#secondstosamples">seconds->samples</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#addsourcefileextension">add-source-file-extension</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrollength">expand-control-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-comb">make-comb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ncos4?">ncos4?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectall">select-all</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#addtomainmenu">add-to-main-menu</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolramp">expand-control-ramp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#makecombbank">make-comb-bank</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ncos?">ncos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectchannel">select-channel</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#addtomenu">add-to-menu</a></em></td><td></td><td><em class=tab><a href="extsnd.html#expandcontrolp">expand-control?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-convolve">make-convolve</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newsound">new-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectchannelhook">select-channel-hook</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#addtooltip">add-tooltip</a></em></td><td></td><td><em class=tab><a href="sndscm.html#explodesf2">explode-sf2</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-delay">make-delay</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newsounddialog">new-sound-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectsound">select-sound</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#addtransform">add-transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#exponentially-weighted-moving-average">exponentially-weighted-moving-average</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makedifferentiator">make-differentiator</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newsoundhook">new-sound-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectsoundhook">select-sound-hook</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#spectra">additive synthesis</a></em></td><td></td><td><em class=tab><a href="sndscm.html#expsnd">expsnd</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-env">make-env</a></em></td><td></td><td><em class=tab><a href="extsnd.html#newwidgethook">new-widget-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectedchannel">selected-channel</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#adjustable-sawtooth-wave">adjustable-sawtooth-wave</a></em></td><td></td><td><em class=tab><a href="sndscm.html#expsrc">expsrc</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-eoddcos">make-eoddcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#nextsample">next-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selecteddatacolor">selected-data-color</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#adjustable-sawtooth-wave?">adjustable-sawtooth-wave?</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#make-ercos">make-ercos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nkssb">nkssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectedgraphcolor">selected-graph-color</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#adjustable-square-wave">adjustable-square-wave</a></em></td><td></td><td class="green"><div class="centered">F</div></td><td></td><td><em class=tab><a href="sndclm.html#make-erssb">make-erssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nkssbinterp">nkssb-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectedsound">selected-sound</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#adjustable-square-wave?">adjustable-square-wave?</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#make-fft-window">make-fft-window</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nkssb?">nkssb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selection">selection</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#adjustable-triangle-wave">adjustable-triangle-wave</a></em></td><td></td><td><em class=tab><a href="s7.html#featureslist">*features*</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filetoframple">make-file->frample</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noddcos">noddcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectiontomix">selection->mix</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#adjustable-triangle-wave?">adjustable-triangle-wave?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#cellon">feedback fm</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filetosample">make-file->sample</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noddcos?">noddcos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionchans">selection-chans</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#afterapplycontrolshook">after-apply-controls-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fft">fft</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filter">make-filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noddsin">noddsin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectioncolor">selection-color</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#afteredithook">after-edit-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftcancel">fft-cancel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-filtered-comb">make-filtered-comb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noddsin?">noddsin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectioncontext">selection-context</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#aftergraphhook">after-graph-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftedit">fft-edit</a></em></td><td></td><td><em class=tab><a href="sndclm.html#makefilteredcombbank">make-filtered-comb-bank</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noddssb">noddssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectioncreatesregion">selection-creates-region</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#afterlispgraphhook">after-lisp-graph-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftenvedit">fft-env-edit</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-fir-coeffs">make-fir-coeffs</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noddssb?">noddssb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionframples">selection-framples</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#afteropenhook">after-open-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftenvinterp">fft-env-interp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-fir-filter">make-fir-filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#noid">noid</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionmaxamp">selection-maxamp</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#aftersaveashook">after-save-as-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftlogfrequency">fft-log-frequency</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-firmant">make-firmant</a></em></td><td></td><td><em class=tab><a href="sndscm.html#cleandoc"><b>Noise Reduction</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionmaxampposition">selection-maxamp-position</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#aftersavestatehook">after-save-state-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftlogmagnitude">fft-log-magnitude</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makefv">make-float-vector</a></em></td><td></td><td><em class=tab><a href="extsnd.html#normalizechannel">normalize-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionmember">selection-member?</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#aftertransformhook">after-transform-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftsmoother">fft-smoother</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-flocsig">make-flocsig</a></em></td><td></td><td><em class=tab><a href="sndscm.html#normalizeenvelope">normalize-envelope</a></em></td><td></td><td><em class=tab><a href="sndscm.html#selectionmembers">selection-members</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#allchans">all-chans</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fftsquelch">fft-squelch</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-fmssb">make-fmssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#normalizepartials">normalize-partials</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionposition">selection-position</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#all-pass">all-pass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftwindow">fft-window</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-formant">make-formant</a></em></td><td></td><td><em class=tab><a href="sndscm.html#normalizesound">normalize-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#selectionrms">selection-rms</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#allpassbank">all-pass-bank</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftalpha">fft-window-alpha</a></em></td><td></td><td><em class=tab><a href="sndclm.html#makeformantbank">make-formant-bank</a></em></td><td></td><td><em class=tab><a href="sndscm.html#normalizedmix">normalized-mix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionsrate">selection-srate</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#allpassbankp">all-pass-bank?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftbeta">fft-window-beta</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-frampletofile">make-frample->file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#notch">notch</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionok">selection?</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#all-pass?">all-pass?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftwithphases">fft-with-phases</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-granulate">make-granulate</a></em></td><td></td><td><em class=tab><a href="sndscm.html#notchchannel">notch-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#selectionstuff"><b>Selections</b></a></em></td></tr>
+  <tr><td><em class=tab><a href="grfsnd.html#sndandalsa"><b>Alsa</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#fftexamples"><b>FFTs</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#makegraphdata">make-graph-data</a></em></td><td></td><td><em class=tab><a href="sndscm.html#notchselection">notch-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#setsamples">set-samples</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#ampcontrol">amp-control</a></em></td><td></td><td><em class=tab><a href="sndscm.html#nbdoc">file database</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-green-noise">make-green-noise</a></em></td><td></td><td><em class=tab><a href="sndscm.html#notchsound">notch-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#shortfilename">short-file-name</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#ampcontrolbounds">amp-control-bounds</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetoarray">file->array</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-green-noise-interp">make-green-noise-interp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#notch?">notch?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showaxes">show-axes</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#amplitude-modulate">amplitude-modulate</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetoframple">file->frample</a></em></td><td></td><td><em class=tab><a href="s7.html#makehashtable">make-hash-table</a></em></td><td></td><td><em class=tab><a href="sndclm.html#npcos?">npcos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showcontrols">show-controls</a></em></td></tr>
+  <tr><td><em class=tab><a href="grfsnd.html#analyseladspa">analyse-ladspa</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetoframple?">file->frample?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makehighpass">make-highpass</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrcos">nrcos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#showdiskspace">show-disk-space</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#anoi">anoi</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetosample">file->sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makehilberttransform">make-hilbert-transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrcos?">nrcos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showfullduration">show-full-duration</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#anyenvchannel">any-env-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filetosample?">file->sample?</a></em></td><td></td><td><em class=tab><a href="s7.html#makehook">make-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#nrev">nrev</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showfullrange">show-full-range</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#anyrandom">any-random</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filename">file-name</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-iir-filter">make-iir-filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrsin">nrsin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showgrid">show-grid</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#applycontrols">apply-controls</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericfilename"><b>file-name (generic)</b></a></em></td><td></td><td><em class=tab><a href="s7.html#makeintvector">make-int-vector</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrsin?">nrsin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showindices">show-indices</a></em></td></tr>
+  <tr><td><em class=tab><a href="grfsnd.html#applyladspa">apply-ladspa</a></em></td><td></td><td><em class=tab><a href="s7.html#fillb">fill!</a></em></td><td></td><td><em class=tab><a href="s7.html#makeiterator">make-iterator</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrssb">nrssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showlistener">show-listener</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#aritablep">aritable?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericfill"><b>fill! (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-izcos">make-izcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrssbinterp">nrssb-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showmarks">show-marks</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#arity">arity</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fillpolygon">fill-polygon</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-j0evencos">make-j0evencos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrssb?">nrssb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showmixwaveforms">show-mix-waveforms</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#arraytofile">array->file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fillrectangle">fill-rectangle</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-j0j1cos">make-j0j1cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxycos">nrxycos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showselection">show-selection</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#array-interp">array-interp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filter">filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-j2cos">make-j2cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxycos?">nrxycos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showselectiontransform">show-selection-transform</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#asoneedit">as-one-edit</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filterchannel">filter-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-jjcos">make-jjcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxysin">nrxysin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showsonogramcursor">show-sonogram-cursor</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#askaboutunsavededits">ask-about-unsaved-edits</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolcoeffs">filter-control-coeffs</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-jncos">make-jncos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nrxysin?">nrxysin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showtransformpeaks">show-transform-peaks</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#askbeforeoverwrite">ask-before-overwrite</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolenvelope">filter-control-envelope</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-jpcos">make-jpcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nsin">nsin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showwidget">show-widget</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#asyfmI">asyfm-I</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolindB">filter-control-in-dB</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-jycos">make-jycos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nsin?">nsin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#showyzero">show-y-zero</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#asyfmJ">asyfm-J</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolinhz">filter-control-in-hz</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-k2cos">make-k2cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nsincos">nsincos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#silenceallmixes">silence-all-mixes</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#asyfm?">asyfm?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolorder">filter-control-order</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-k2sin">make-k2sin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nsincos?">nsincos?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#silencemixes">silence-mixes</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#asymmetric-fm">asymmetric-fm</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filterwaveformcolor">filter-control-waveform-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-k2ssb">make-k2ssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nssb">nssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sinc-train">sinc-train</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#asymmetric-fm?">asymmetric-fm?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtercontrolp">filter-control?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-k3sin">make-k3sin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nssb?">nssb?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sinc-train?">sinc-train?</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#autoresize">auto-resize</a></em></td><td></td><td><em class=tab><a href="sndscm.html#filterfft">filter-fft</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-krksin">make-krksin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxy1cos">nxy1cos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sincwidth">sinc-width</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#autosavedoc">auto-save</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filterselection">filter-selection</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-locsig">make-locsig</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxy1cos?">nxy1cos?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sineenvchannel">sine-env-channel</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#autoupdate">auto-update</a></em></td><td></td><td><em class=tab><a href="sndscm.html#filterselectionandsmooth">filter-selection-and-smooth</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makelowpass">make-lowpass</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxy1sin">nxy1sin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sineramp">sine-ramp</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#autoupdateinterval">auto-update-interval</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtersound">filter-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makemixsampler">make-mix-sampler</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxy1sin?">nxy1sin?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#singerdoc">singer</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#autocorrelate">autocorrelate</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filter?">filter?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-move-sound">make-move-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxycos">nxycos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothchannel">smooth-channel</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#autoload"><b>autoload</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#filtered-comb">filtered-comb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-autocorrelation">make-moving-autocorrelation</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxycos?">nxycos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothselection">smooth-selection</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#axiscolor">axis-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filteredcombbank">filtered-comb-bank</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-average">make-moving-average</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxysin">nxysin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothsound">smooth-sound</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#axisinfo">axis-info</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filteredcombbankp">filtered-comb-bank?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-fft">make-moving-fft</a></em></td><td></td><td><em class=tab><a href="sndclm.html#nxysin?">nxysin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#smoothexamples"><b>Smoothing</b></a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#axislabelfont">axis-label-font</a></em></td><td></td><td><em class=tab><a href="sndclm.html#filtered-comb?">filtered-comb?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-max">make-moving-max</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#pins">SMS synthesis</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#axisnumbersfont">axis-numbers-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#filtersinsnd"><b>Filters</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-norm">make-moving-norm</a></em></td><td></td><td class="green"><div class="centered">O</div></td><td></td><td><em class=tab><a href="sndscm.html#snapmarktobeat">snap-mark-to-beat</a></em></td></tr>
+  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#finddialog">find-dialog</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-pitch">make-moving-pitch</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#snapmarks">snap-marks</a></em></td></tr>
+  <tr><td class="green"><div class="centered">B</div></td><td></td><td><em class=tab><a href="extsnd.html#findmark">find-mark</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-scentroid">make-moving-scentroid</a></em></td><td></td><td><em class=tab><a href="s7.html#objecttolet">object->let</a></em></td><td></td><td><em class=tab><a href="sndscm.html#snapmixtobeat">snap-mix-to-beat</a></em></td></tr>
+  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#findmix">find-mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-moving-spectrum">make-moving-spectrum</a></em></td><td></td><td><em class=tab><a href="s7.html#objecttostring">object->string</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndtosample">snd->sample</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#backgroundgradient">background-gradient</a></em></td><td></td><td><em class=tab><a href="extsnd.html#findsound">find-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-n1cos">make-n1cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oddmultiple">odd-multiple</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndtosamplep">snd->sample?</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#badheaderhook">bad-header-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#finfo">finfo</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nchoosekcos">make-nchoosekcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oddweight">odd-weight</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndcolor">snd-color</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#bagpipe">bagpipe</a></em></td><td></td><td><em class=tab><a href="extsnd.html#finishprogressreport">finish-progress-report</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-ncos">make-ncos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#offsetchannel">offset-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#snderror">snd-error</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#basiccolor">basic-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#fir-filter">fir-filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nkssb">make-nkssb</a></em></td><td></td><td><em class=tab><a href="sndscm.html#offsetsound">offset-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#snderrorhook">snd-error-hook</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#beatspermeasure">beats-per-measure</a></em></td><td></td><td><em class=tab><a href="sndclm.html#fir-filter?">fir-filter?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-noddcos">make-noddcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-pole">one-pole</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndfont">snd-font</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#beatsperminute">beats-per-minute</a></em></td><td></td><td><em class=tab><a href="sndclm.html#firmant">firmant</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-noddsin">make-noddsin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-pole-all-pass">one-pole-all-pass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndgcs">snd-gcs</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#beforeclosehook">before-close-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#firmant?">firmant?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-noddssb">make-noddssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-pole-all-pass?">one-pole-all-pass?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndhelp">snd-help</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#beforeexithook">before-exit-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fitselectionbetweenmarks">fit-selection-between-marks</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-noid">make-noid</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-pole?">one-pole?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sndscmhooks">snd-hooks</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#beforesaveashook">before-save-as-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#flattenpartials">flatten-partials</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-notch">make-notch</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-zero">one-zero</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndopenedsound">*snd-opened-sound*</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#beforesavestatehook">before-save-state-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fv">float-vector</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nrcos">make-nrcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#one-zero?">one-zero?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndprint">snd-print</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#beforetransformhook">before-transform-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvtimes">float-vector*</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nrsin">make-nrsin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openfiledialog">open-file-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndspectrum">snd-spectrum</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#besj0">bes-j0</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvplus">float-vector+</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nrssb">make-nrssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openfiledialogdirectory">open-file-dialog-directory</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndtempnam">snd-tempnam</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#bess">bess</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvtochannel">float-vector->channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nrxycos">make-nrxycos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openhook">open-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndurl">snd-url</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#bess?">bess?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvtolist">float-vector->list</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nrxysin">make-nrxysin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#opennextfileindirectory">open-next-file-in-directory</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndurls">snd-urls</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">bessel filters</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvtostring">float-vector->string</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nsin">make-nsin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openrawsound">open-raw-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndversion">snd-version</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#bigbird">bigbird</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvabs">float-vector-abs!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nsincos">make-nsincos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#openrawsoundhook">open-raw-sound-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndwarning">snd-warning</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#bignum">bignum</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvadd">float-vector-add!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nssb">make-nssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#opensound">open-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndwarninghook">snd-warning-hook</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#bignump">bignum?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvequal">float-vector-equal?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nxy1cos">make-nxy1cos</a></em></td><td></td><td><em class=tab><a href="s7.html#openlet">openlet</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sndwarp">sndwarp</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#binaryiodoc">binary files</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvfill">float-vector-fill!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nxy1sin">make-nxy1sin</a></em></td><td></td><td><em class=tab><a href="s7.html#openletp">openlet?</a></em></td><td></td><td><em class=tab><a href="s7.html#sortb">sort!</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#bindkey">bind-key</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvlength">float-vector-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nxycos">make-nxycos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#orientationhook">orientation-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-locsig"><b>Sound placement</b></a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#bird">bird</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvmax">float-vector-max</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-nxysin">make-nxysin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oscil">oscil</a></em></td><td></td><td><em class=tab><a href="sndscm.html#soundtoamp_env">sound->amp-env</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#blackman">blackman</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvmin">float-vector-min</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-one-pole">make-one-pole</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oscil-bank">oscil-bank</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundtointeger">sound->integer</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#blackman4envchannel">blackman4-env-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvmove">float-vector-move!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-one-pole-all-pass">make-one-pole-all-pass</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oscil-bank?">oscil-bank?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfileextensions">sound-file-extensions</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#blackman?">blackman?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvmultiply">float-vector-multiply!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-one-zero">make-one-zero</a></em></td><td></td><td><em class=tab><a href="sndclm.html#oscil?">oscil?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfilep">sound-file?</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#boldpeaksfont">bold-peaks-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvoffset">float-vector-offset!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-oscil">make-oscil</a></em></td><td></td><td><em class=tab><a href="sndclm.html#out-any">out-any</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfilesindirectory">sound-files-in-directory</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#break">break</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvpeak">float-vector-peak</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-oscil-bank">make-oscil-bank</a></em></td><td></td><td><em class=tab><a href="sndclm.html#outbank">out-bank</a></em></td><td></td><td><em class=tab><a href="sndscm.html#soundinterp">sound-interp</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#brown-noise">brown-noise</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fvpolynomial">float-vector-polynomial</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-phase-vocoder">make-phase-vocoder</a></em></td><td></td><td><em class=tab><a href="sndclm.html#outa">outa</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundloopinfo">sound-loop-info</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#brown-noise?">brown-noise?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvref">float-vector-ref</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-pink-noise">make-pink-noise</a></em></td><td></td><td><em class=tab><a href="s7.html#outlet">outlet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundproperties">sound-properties</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">butterworth filters</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvreverse">float-vector-reverse!</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makepixmap">make-pixmap</a></em></td><td></td><td><em class=tab><a href="sndclm.html#*output*">*output*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundproperty">sound-property</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#bytevector">byte-vector</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvscale">float-vector-scale!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makeplayer">make-player</a></em></td><td></td><td><em class=tab><a href="extsnd.html#outputcommenthook">output-comment-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundwidgets">sound-widgets</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#bytevectorref">byte-vector-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvset">float-vector-set!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-polyoid">make-polyoid</a></em></td><td></td><td><em class=tab><a href="sndscm.html#overlayrmsenv">overlay-rms-env</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundp">sound?</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#bytevectorset">byte-vector-set!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvsubseq">float-vector-subseq</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-polyshape">make-polyshape</a></em></td><td></td><td><em class=tab><a href="s7.html#owlet">owlet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#soundfontinfo">soundfont-info</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#bytevectorp">byte-vector?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#fvsubtract">float-vector-subtract!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-polywave">make-polywave</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#sounds">sounds</a></em></td></tr>
+  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#fvp">float-vector?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-pulse-train">make-pulse-train</a></em></td><td></td><td class="green"><div class="centered">P</div></td><td></td><td><em class=tab><a href="sndscm.html#soundstosegmentdata">sounds->segment-data</a></em></td></tr>
+  <tr><td class="green"><div class="centered">C</div></td><td></td><td><em class=tab><a href="extsnd.html#Floatvectors"><b>Float-vectors</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-pulsed-env">make-pulsed-env</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#spectra">spectra</a></em></td></tr>
+  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#flocsig">flocsig</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-r2k!cos">make-r2k!cos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#padchannel">pad-channel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#twotab">spectral interpolation</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#definecfunction">c-define</a></em></td><td></td><td><em class=tab><a href="sndclm.html#flocsig?">flocsig?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-r2k2cos">make-r2k2cos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#padmarks">pad-marks</a></em></td><td></td><td><em class=tab><a href="sndscm.html#spectralpolynomial">spectral-polynomial</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#cgp">c-g?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stereoflute">flute model</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makeramp">make-ramp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#padsound">pad-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrohop">spectro-hop</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#cobject">c-object?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmbell">fm-bell</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rand">make-rand</a></em></td><td></td><td><em class=tab><a href="s7.html#pairfilename">pair-filename</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroxangle">spectro-x-angle</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#cpoint">c-pointer</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmdrum">fm-drum</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rand-interp">make-rand-interp</a></em></td><td></td><td><em class=tab><a href="s7.html#pairlinenumber">pair-line-number</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroxscale">spectro-x-scale</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#cpointer">c-pointer?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmnoise">fm-noise</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rcos">make-rcos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#panmix">pan-mix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroyangle">spectro-y-angle</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#callwithexit">call-with-exit</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmparallelcomponent">fm-parallel-component</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-readin">make-readin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#panmixfv">pan-mix-float-vector</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectroyscale">spectro-y-scale</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#bagpipe">canter</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmvox">fm-talker</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makeregion">make-region</a></em></td><td></td><td><em class=tab><a href="sndclm.html#partialstopolynomial">partials->polynomial</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrozangle">spectro-z-angle</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#cascadetocanonical">cascade->canonical</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmtrumpet">fm-trumpet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makeregionsampler">make-region-sampler</a></em></td><td></td><td><em class=tab><a href="sndclm.html#partialstowave">partials->wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrozscale">spectro-z-scale</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#catch">catch</a></em></td><td></td><td><em class=tab><a href="sndscm.html#vdoc">fm-violin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rk!cos">make-rk!cos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#pausing">pausing</a></em></td><td></td><td><em class=tab><a href="sndclm.html#spectrum">spectrum</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#cellon">cellon</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmvoice">fm-voice</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rk!ssb">make-rk!ssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#peakenvdir">peak-env-dir</a></em></td><td></td><td><em class=tab><a href="sndscm.html#spectrumtocoeffs">spectrum->coeffs</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#chaindsps">chain-dsps</a></em></td><td></td><td><em class=tab><a href="sndclm.html#fmssb">fmssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rkcos">make-rkcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#peaks">peaks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrumend">spectrum-end</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#channeltofv">channel->float-vector</a></em></td><td></td><td><em class=tab><a href="sndclm.html#fmssb?">fmssb?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rkoddssb">make-rkoddssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#peaksfont">peaks-font</a></em></td><td></td><td><em class=tab><a href="extsnd.html#spectrumstart">spectrum-start</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#channelampenvs">channel-amp-envs</a></em></td><td></td><td><em class=tab><a href="extsnd.html#focuswidget">focus-widget</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rksin">make-rksin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#phase-partialstowave">phase-partials->wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedcontrol">speed-control</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#channeldata">channel-data</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fofins">FOF synthesis</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rkssb">make-rkssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#phase-vocoder">phase-vocoder</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedcontrolbounds">speed-control-bounds</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#channelenvelope">channel-envelope</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fofins">fofins</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-round-interp">make-round-interp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#phase-vocoder?">phase-vocoder?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedstyle">speed-control-style</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#channelpolynomial">channel-polynomial</a></em></td><td></td><td><em class=tab><a href="sndscm.html#foreachchild">for-each-child</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rssb">make-rssb</a></em></td><td></td><td><em class=tab><a href="sndscm.html#prc95doc"><b>Physical Models</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#speedtones">speed-control-tones</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#channelproperties">channel-properties</a></em></td><td></td><td><em class=tab><a href="sndscm.html#foreachsoundfile">for-each-sound-file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rxycos">make-rxycos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pianodoc">piano model</a></em></td><td></td><td><em class=tab><a href="sndscm.html#spotfreq">spot-freq</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#channelproperty">channel-property</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fp">Forbidden Planet</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rxyk!cos">make-rxyk!cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pink-noise">pink-noise</a></em></td><td></td><td><em class=tab><a href="sndclm.html#square-wave">square-wave</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#channelrms">channel-rms</a></em></td><td></td><td><em class=tab><a href="extsnd.html#foregroundcolor">foreground-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rxyk!sin">make-rxyk!sin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pink-noise?">pink-noise?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#square-wave?">square-wave?</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#channelstyle">channel-style</a></em></td><td></td><td><em class=tab><a href="extsnd.html#forgetregion">forget-region</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-rxysin">make-rxysin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pins">pins</a></em></td><td></td><td><em class=tab><a href="extsnd.html#squelchupdate">squelch-update</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#channelsync">channel-sync</a></em></td><td></td><td><em class=tab><a href="sndclm.html#formant">formant</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-sampletofile">make-sample->file</a></em></td><td></td><td><em class=tab><a href="sndscm.html#placesound">place-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#squelchvowels">squelch-vowels</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#channelwidgets">channel-widgets</a></em></td><td></td><td><em class=tab><a href="sndclm.html#formantbank">formant-bank</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makesampler">make-sampler</a></em></td><td></td><td><em class=tab><a href="extsnd.html#play">play</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srate">srate</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#channels">channels</a></em></td><td></td><td><em class=tab><a href="sndclm.html#formantbankp">formant-bank?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-sawtooth-wave">make-sawtooth-wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericplay"><b>play (generic)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericsrate"><b>srate (generic)</b></a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#genericchannels"><b>channels (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#formant?">formant?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makeselection">make-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playarrowsize">play-arrow-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#src">src</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#channelsequal">channels-equal?</a></em></td><td></td><td><em class=tab><a href="s7.html#format">format</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-sinc-train">make-sinc-train</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playbetweenmarks">play-between-marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srcchannel">src-channel</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#channelseq">channels=?</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandforth"><b>Forth</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#makesndtosample">make-snd->sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playhook">play-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#srcduration">src-duration</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#chans">chans</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fp">fp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makesoundbox">make-sound-box</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playmixes">play-mixes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#srcfitenvelope">src-fit-envelope</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#charposition">char-position</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fractionalfouriertransform">fractional-fourier-transform</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makespencerfilter">make-spencer-filter</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playoften">play-often</a></em></td><td></td><td><em class=tab><a href="sndscm.html#srcmixes">src-mixes</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#chebyhka">cheby-hka</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frampletofile">frample->file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-square-wave">make-square-wave</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playregionforever">play-region-forever</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srcsoundselection">src-selection</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">chebyshev filters</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frampletofile?">frample->file?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-src">make-src</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playsine">play-sine</a></em></td><td></td><td><em class=tab><a href="extsnd.html#srcsound">src-sound</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#checkmixtags">check-mix-tags</a></em></td><td></td><td><em class=tab><a href="sndclm.html#frampletoframple">frample->frample</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-ssb-am">make-ssb-am</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playsines">play-sines</a></em></td><td></td><td><em class=tab><a href="sndclm.html#src?">src?</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#chordalize">chordalize</a></em></td><td></td><td><em class=tab><a href="extsnd.html#framples">framples</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-table-lookup">make-table-lookup</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playsyncdmarks">play-syncd-marks</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ssb-am">ssb-am</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#chorus">chorus</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericframples"><b>framples (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-table-lookup-with-env">make-table-lookup-with-env</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playuntilcg">play-until-c-g</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ssb-am?">ssb-am?</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#cleanchannel">clean-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#freeplayer">free-player</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-tanhsin">make-tanhsin</a></em></td><td></td><td><em class=tab><a href="sndscm.html#playwithenvs">play-with-envs</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ssbbank">ssb-bank</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#cleansound">clean-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#freesampler">free-sampler</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-triangle-wave">make-triangle-wave</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playerhome">player-home</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ssbbankenv">ssb-bank-env</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#clearlistener">clear-listener</a></em></td><td></td><td><em class=tab><a href="sndscm.html#freeverb">freeverb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-two-pole">make-two-pole</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playerQ">player?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ssbfm">ssb-fm</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#cliphook">clip-hook</a></em></td><td></td><td><em class=tab><a href="fm.html#fmintro"><b>Frequency Modulation</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#make-two-zero">make-two-zero</a></em></td><td></td><td><em class=tab><a href="extsnd.html#players">players</a></em></td><td></td><td><em class=tab><a href="sndscm.html#startdac">start-dac</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#clipping">clipping</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fullmix">fullmix</a></em></td><td></td><td><em class=tab><a href="sndscm.html#makevariabledisplay">make-variable-display</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playing">playing</a></em></td><td></td><td><em class=tab><a href="extsnd.html#startplaying">start-playing</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#clmchannel">clm-channel</a></em></td><td></td><td><em class=tab><a href="s7.html#funclet">funclet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#makevariablegraph">make-variable-graph</a></em></td><td></td><td><em class=tab><a href="extsnd.html#playexamples"><b>Playing</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#startplayinghook">start-playing-hook</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#clmexpsrc">clm-expsrc</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#make-wave-train">make-wave-train</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pluck">pluck</a></em></td><td></td><td><em class=tab><a href="extsnd.html#startplayingselectionhook">start-playing-selection-hook</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#closehook">close-hook</a></em></td><td></td><td class="green"><div class="centered">G</div></td><td></td><td><em class=tab><a href="sndclm.html#make-wave-train-with-env">make-wave-train-with-env</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandladspa"><b>Plugins</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#startprogressreport">start-progress-report</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#closesound">close-sound</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#mapchannel">map-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polartorectangular">polar->rectangular</a></em></td><td></td><td><em class=tab><a href="extsnd.html#statusreport">status-report</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#colortolist">color->list</a></em></td><td></td><td><em class=tab><a href="sndscm.html#gaussiandistribution">gaussian-distribution</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mapsoundfiles">map-sound-files</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polynomial">polynomial</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stdinprompt">stdin-prompt</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#colorcutoff">color-cutoff</a></em></td><td></td><td><em class=tab><a href="extsnd.html#gcoff">gc-off</a></em></td><td></td><td><em class=tab><a href="sndscm.html#maracadoc">maracas</a></em></td><td></td><td><em class=tab><a href="sndscm.html#polydoc">polynomial operations</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stereotomono">stereo->mono</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#colorhook">color-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#gcon">gc-on</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marktointeger">mark->integer</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyoid">polyoid</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stereoflute">stereo-flute</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#colorinverted">color-inverted</a></em></td><td></td><td><em class=tab><a href="sndclm.html#generators"><b>Generators</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#markclickhook">mark-click-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyoidenv">polyoid-env</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplayer">stop-player</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#colormixes">color-mixes</a></em></td><td></td><td><em class=tab><a href="s7.html#gensym">gensym</a></em></td><td></td><td><em class=tab><a href="sndscm.html#markclickinfo">mark-click-info</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyoid?">polyoid?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplaying">stop-playing</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#colororientationdialog">color-orientation-dialog</a></em></td><td></td><td><em class=tab><a href="s7.html#gensym?">gensym?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markcolor">mark-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyshape">polyshape</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplayinghook">stop-playing-hook</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#colorscale">color-scale</a></em></td><td></td><td><em class=tab><a href="extsnd.html#glgraphtops">gl-graph->ps</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markcontext">mark-context</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polyshape?">polyshape?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#stopplayingselectionhook">stop-playing-selection-hook</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#colorp">color?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#glspectrogram">glSpectrogram</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markdraghook">mark-drag-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polywave">polywave</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stretchenvelope">stretch-envelope</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#colormap">colormap</a></em></td><td></td><td><em class=tab><a href="sndscm.html#goertzel">goertzel</a></em></td><td></td><td><em class=tab><a href="sndscm.html#markexplode">mark-explode</a></em></td><td></td><td><em class=tab><a href="sndclm.html#polywave?">polywave?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#stretchsoundviadft">stretch-sound-via-dft</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#colormaptointeger">colormap->integer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#gotolistenerend">goto-listener-end</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markhome">mark-home</a></em></td><td></td><td><em class=tab><a href="s7.html#portfilename">port-filename</a></em></td><td></td><td><em class=tab><a href="s7.html#stringtobytevector">string->byte-vector</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#colormapname">colormap-name</a></em></td><td></td><td><em class=tab><a href="sndscm.html#grani">grani</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markhook">mark-hook</a></em></td><td></td><td><em class=tab><a href="s7.html#portlinenumber">port-line-number</a></em></td><td></td><td><em class=tab><a href="s7.html#stringposition">string-position</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#colormapref">colormap-ref</a></em></td><td></td><td><em class=tab><a href="sndclm.html#grains"><b>Granular synthesis</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#markloops">mark-loops</a></em></td><td></td><td><em class=tab><a href="extsnd.html#positiontox">position->x</a></em></td><td></td><td><em class=tab><a href="s7.html#sublet">sublet</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#colormapsize">colormap-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#granulate">granulate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markname">mark-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#positiontoy">position->y</a></em></td><td></td><td><em class=tab><a href="sndscm.html#superimposeffts">superimpose-ffts</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#colormapp">colormap?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#granulate?">granulate?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#marknametoid">mark-name->id</a></em></td><td></td><td><em class=tab><a href="extsnd.html#positioncolor">position-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#swapchannels">swap-channels</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#colors"><b>Colors</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#granulatedsoundinterp">granulated-sound-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markproperties">mark-properties</a></em></td><td></td><td><em class=tab><a href="sndscm.html#powerenv">power-env</a></em></td><td></td><td><em class=tab><a href="sndscm.html#swapselectionchannels">swap-selection-channels</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#comb">comb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graph">graph</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markproperty">mark-property</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pqw">pqw</a></em></td><td></td><td><em class=tab><a href="s7.html#symboltodynamicvalue">symbol->dynamic-value</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#combbank">comb-bank</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphtops">graph->ps</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marksample">mark-sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pqwvox">pqw-vox</a></em></td><td></td><td><em class=tab><a href="s7.html#symboltovalue">symbol->value</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#combbankp">comb-bank?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphcolor">graph-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marksync">mark-sync</a></em></td><td></td><td><em class=tab><a href="extsnd.html#preferencesdialog">preferences-dialog</a></em></td><td></td><td><em class=tab><a href="s7.html#symbolaccess">symbol-access</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#comb?">comb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphcursor">graph-cursor</a></em></td><td></td><td><em class=tab><a href="sndscm.html#marksynccolor">mark-sync-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#previoussample">previous-sample</a></em></td><td></td><td><em class=tab><a href="s7.html#symboltable">symbol-table</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#combineddatacolor">combined-data-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphdata">graph-data</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marksyncmax">mark-sync-max</a></em></td><td></td><td><em class=tab><a href="extsnd.html#printdialog">print-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sync">sync</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#comment">comment</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphhook">graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marktagheight">mark-tag-height</a></em></td><td></td><td><em class=tab><a href="extsnd.html#printlength">print-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericsync"><b>sync (generic)</b></a></em></td></tr>
+  <tr><td><em class=tab><a href="grfsnd.html#sndwithcm"><b>Common Music</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphstyle">graph-style</a></em></td><td></td><td><em class=tab><a href="extsnd.html#marktagwidth">mark-tag-width</a></em></td><td></td><td><em class=tab><a href="s7.html#proceduredocumentation">procedure-documentation</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sync-everything">sync-everything</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#complexify">complexify</a></em></td><td></td><td><em class=tab><a href="sndscm.html#grapheq">graphic equalizer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markp">mark?</a></em></td><td></td><td><em class=tab><a href="s7.html#proceduresetter">procedure-setter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#syncmax">sync-max</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#concatenateenvelopes">concatenate-envelopes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#graphshorizontal">graphs-horizontal</a></em></td><td></td><td><em class=tab><a href="extsnd.html#markstuff"><b>Marking</b></a></em></td><td></td><td><em class=tab><a href="s7.html#proceduresignature">procedure-signature</a></em></td><td></td><td><em class=tab><a href="extsnd.html#syncstyle">sync-style</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#constantp">constant?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#green-noise">green-noise</a></em></td><td></td><td><em class=tab><a href="extsnd.html#emarks">marks</a></em></td><td></td><td><em class=tab><a href="s7.html#proceduresource">procedure-source</a></em></td><td></td><td><em class=tab><a href="extsnd.html#syncdmarks">syncd-marks</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#continuationp">continuation?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#green-noise-interp">green-noise-interp</a></em></td><td></td><td><em class=tab><a href="sndscm.html#matchsoundfiles">match-sound-files</a></em></td><td></td><td><em class=tab><a href="extsnd.html#progressreport">progress-report</a></em></td><td></td><td><em class=tab><a href="sndscm.html#syncdmixes">syncd-mixes</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#continue-frampletofile">continue-frample->file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#green-noise-interp?">green-noise-interp?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#maxenvelope">max-envelope</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pulse-train">pulse-train</a></em></td><td></td><td><em class=tab><a href="sndscm.html#syncup">syncup</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#continue-sampletofile">continue-sample->file</a></em></td><td></td><td><em class=tab><a href="sndclm.html#green-noise?">green-noise?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxregions">max-regions</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pulse-train?">pulse-train?</a></em></td><td></td><td><em class=tab>    </em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#contrastchannel">contrast-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#griddensity">grid-density</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxfftpeaks">max-transform-peaks</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pulsedenv">pulsed-env</a></em></td><td></td><td class="green"><div class="centered">T</div></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#contrastcontrol">contrast-control</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#maxamp">maxamp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#pulsedenv?">pulsed-env?</a></em></td><td></td><td><em class=tab>    </em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#contrastcontrolamp">contrast-control-amp</a></em></td><td></td><td class="green"><div class="centered">H</div></td><td></td><td><em class=tab><a href="extsnd.html#genericmaxamp"><b>maxamp (generic)</b></a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#table-lookup">table-lookup</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#contrastcontrolbounds">contrast-control-bounds</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#maxampposition">maxamp-position</a></em></td><td></td><td class="green"><div class="centered">R</div></td><td></td><td><em class=tab><a href="sndclm.html#table-lookup?">table-lookup?</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#contrastcontrolp">contrast-control?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#harmonicizer">harmonicizer</a></em></td><td></td><td><em class=tab><a href="extsnd.html#maxampexamples"><b>Maxamps</b></a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#tanhsin">tanhsin</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#contrast-enhancement">contrast-enhancement</a></em></td><td></td><td><em class=tab><a href="sndscm.html#dht">Hartley transform</a></em></td><td></td><td><em class=tab><a href="extsnd.html#menuwidgets">menu-widgets</a></em></td><td></td><td><em class=tab><a href="sndclm.html#r2k!cos">r2k!cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#tanhsin?">tanhsin?</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#contrastsound">contrast-sound</a></em></td><td></td><td><em class=tab><a href="s7.html#hashtable">hash-table</a></em></td><td></td><td><em class=tab><a href="sndscm.html#menusdoc">menus, optional</a></em></td><td></td><td><em class=tab><a href="sndclm.html#r2k!cos?">r2k!cos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#tap">tap</a></em></td></tr>
+  <tr><td><em class=tab><a href="snd.html#controls"><b>Control Panel</b></a></em></td><td></td><td><em class=tab><a href="s7.html#hashtablestar">hash-table*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mindb">min-dB</a></em></td><td></td><td><em class=tab><a href="sndclm.html#r2k2cos">r2k2cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#tap?">tap?</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#controlstochannel">controls->channel</a></em></td><td></td><td><em class=tab><a href="s7.html#hashtableentries">hash-table-entries</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mix">mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#r2k2cos?">r2k2cos?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#telephone">telephone</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#convolution">convolution</a></em></td><td></td><td><em class=tab><a href="s7.html#hashtableref">hash-table-ref</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixtofv">mix->float-vector</a></em></td><td></td><td><em class=tab><a href="sndclm.html#radianstodegrees">radians->degrees</a></em></td><td></td><td><em class=tab><a href="extsnd.html#tempdir">temp-dir</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#convolvewith">convolution reverb</a></em></td><td></td><td><em class=tab><a href="s7.html#hashtableset">hash-table-set!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtointeger">mix->integer</a></em></td><td></td><td><em class=tab><a href="sndclm.html#radianstohz">radians->hz</a></em></td><td></td><td><em class=tab><a href="extsnd.html#textfocuscolor">text-focus-color</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#convolve">convolve</a></em></td><td></td><td><em class=tab><a href="s7.html#hashtablep">hash-table?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixamp">mix-amp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#rampchannel">ramp-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#timegraphstyle">time-graph-style</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#convolvefiles">convolve-files</a></em></td><td></td><td><em class=tab><a href="extsnd.html#headertype">header-type</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixampenv">mix-amp-env</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand">rand</a></em></td><td></td><td><em class=tab><a href="extsnd.html#timegraphtype">time-graph-type</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#convolveselectionwith">convolve-selection-with</a></em></td><td></td><td><em class=tab><a href="snd.html#formats"><b>Headers and sample types</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixchannel">mix-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand-interp">rand-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#timegraphp">time-graph?</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#convolvewith">convolve-with</a></em></td><td></td><td><em class=tab><a href="sndscm.html#hellodentist">hello-dentist</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixclickhook">mix-click-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand-interp?">rand-interp?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#timestosamples">times->samples</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#convolve?">convolve?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#helpdialog">help-dialog</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixclickinfo">mix-click-info</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rand?">rand?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#tinyfont">tiny-font</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#fvcopy">copy</a></em></td><td></td><td><em class=tab><a href="extsnd.html#helphook">help-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixclicksetsamp">mix-click-sets-amp</a></em></td><td></td><td><em class=tab><a href="s7.html#random">random</a></em></td><td></td><td><em class=tab><a href="sndscm.html#telephone">touch-tone</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#s7copy">copy</a></em></td><td></td><td><em class=tab><a href="extsnd.html#hidewidget">hide-widget</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixcolor">mix-color</a></em></td><td></td><td><em class=tab><a href="sndscm.html#allrandomnumbers"><b>Random Numbers</b></a></em></td><td></td><td><em class=tab><a href="s7.html#trace">trace</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#genericcopy"><b>copy (generic)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#highlightcolor">highlight-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixdialogmix">mix-dialog-mix</a></em></td><td></td><td><em class=tab><a href="s7.html#randomstate">random-state</a></em></td><td></td><td><em class=tab><a href="extsnd.html#trackingcursors"><b>Tracking cursors</b></a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#copycontext">copy-context</a></em></td><td></td><td><em class=tab><a href="sndscm.html#hilberttransform">hilbert-transform</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixdraghook">mix-drag-hook</a></em></td><td></td><td><em class=tab><a href="s7.html#randomstatep">random-state?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#trackingcursorstyle">tracking-cursor-style</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#copysampler">copy-sampler</a></em></td><td></td><td><em class=tab><a href="s7.html#hookfunctions">hook-functions</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixfiledialog">mix-file-dialog</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rcos">rcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformtofv">transform->float-vector</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#copying"><b>Copying</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#hookmember">hook-member</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixfv">mix-float-vector</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rcos?">rcos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformtointeger">transform->integer</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#correlate">correlate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndhooks"><b>Hooks</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixhome">mix-home</a></em></td><td></td><td><em class=tab><a href="s7.html#readerrorhook">*read-error-hook*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformdialog">transform-dialog</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#coverlet">coverlet</a></em></td><td></td><td><em class=tab><a href="sndscm.html#html">html</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixlength">mix-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readhook">read-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformframples">transform-framples</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#mixdoc">cross-fade (amplitude)</a></em></td><td></td><td><em class=tab><a href="extsnd.html#htmldir">html-dir</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixmaxamp">mix-maxamp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readmixsample">read-mix-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformgraphstyle">transform-graph-style</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#fadedoc">cross-fade (frequency domain)</a></em></td><td></td><td><em class=tab><a href="extsnd.html#htmlprogram">html-program</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixname">mix-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readonly">read-only</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformgraphtype">transform-graph-type</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#crosssynthesis">cross-synthesis</a></em></td><td></td><td><em class=tab><a href="sndclm.html#hztoradians">hz->radians</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixnametoid">mix-name->id</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readregionsample">read-region-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformgraphp">transform-graph?</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#curlet">curlet</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#mixposition">mix-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readsample">read-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#normalizefft">transform-normalization</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#currentfont">current-font</a></em></td><td></td><td class="green"><div class="centered">I</div></td><td></td><td><em class=tab><a href="extsnd.html#mixproperties">mix-properties</a></em></td><td></td><td><em class=tab><a href="extsnd.html#readsamplewithdirection">read-sample-with-direction</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformsample">transform-sample</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#cursor">cursor</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#mixproperty">mix-property</a></em></td><td></td><td><em class=tab><a href="s7.html#readercond">reader-cond</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformsize">transform-size</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#cursorcolor">cursor-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#iir-filter">iir-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixregion">mix-region</a></em></td><td></td><td><em class=tab><a href="sndclm.html#readin">readin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformtype">transform-type</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#cursorcontext">cursor-context</a></em></td><td></td><td><em class=tab><a href="sndclm.html#iir-filter?">iir-filter?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixreleasehook">mix-release-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#readin?">readin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#transformp">transform?</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#cursorlocationoffset">cursor-location-offset</a></em></td><td></td><td><em class=tab><a href="extsnd.html#gin">in</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixsamplerQ">mix-sampler?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rectangulartomagnitudes">rectangular->magnitudes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#transposemixes">transpose-mixes</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#cursorposition">cursor-position</a></em></td><td></td><td><em class=tab><a href="sndclm.html#in-any">in-any</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixselection">mix-selection</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rectangulartopolar">rectangular->polar</a></em></td><td></td><td><em class=tab><a href="sndclm.html#triangle-wave">triangle-wave</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#cursorsize">cursor-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ina">ina</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mixsound">mix-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#redo">redo</a></em></td><td></td><td><em class=tab><a href="sndclm.html#triangle-wave?">triangle-wave?</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#cursorstyle">cursor-style</a></em></td><td></td><td><em class=tab><a href="sndclm.html#inb">inb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixspeed">mix-speed</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regiontofv">region->float-vector</a></em></td><td></td><td><em class=tab><a href="sndscm.html#tubebell">tubebell</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#cursorupdateinterval">cursor-update-interval</a></em></td><td></td><td><em class=tab><a href="extsnd.html#infodialog">info-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixsync">mix-sync</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regiontointeger">region->integer</a></em></td><td></td><td><em class=tab><a href="sndscm.html#tubebell">tubular bell</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#cursorexamples"><b>Cursors</b></a></em></td><td></td><td><em class=tab><a href="grfsnd.html#initladspa">init-ladspa</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixsyncmax">mix-sync-max</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionchans">region-chans</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-pole">two-pole</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#cutlet">cutlet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#initialbeg">initial-beg</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtagheight">mix-tag-height</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionframples">region-framples</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-pole?">two-pole?</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#cyclicsequences">cyclic-sequences</a></em></td><td></td><td><em class=tab><a href="extsnd.html#initialdur">initial-dur</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtagwidth">mix-tag-width</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regiongraphstyle">region-graph-style</a></em></td><td></td><td><em class=tab><a href="sndscm.html#twotab">two-tab</a></em></td></tr>
+  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#initialgraphhook">initial-graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixtagy">mix-tag-y</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionhome">region-home</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-zero">two-zero</a></em></td></tr>
+  <tr><td class="green"><div class="centered">D</div></td><td></td><td><em class=tab><a href="grfsnd.html#sndinitfile"><b>Initialization file</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixwaveformheight">mix-waveform-height</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionmaxamp">region-maxamp</a></em></td><td></td><td><em class=tab><a href="sndclm.html#two-zero?">two-zero?</a></em></td></tr>
+  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="s7.html#inlet">inlet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixp">mix?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionmaxampposition">region-maxamp-position</a></em></td><td></td><td><em class=tab><a href="s7.html#typeof">type-of</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#dacfolding">dac-combines-channels</a></em></td><td></td><td><em class=tab><a href="sndscm.html#insertchannel">insert-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mixes">mixes</a></em></td><td></td><td><em class=tab><a href="sndscm.html#regionplaylist">region-play-list</a></em></td><td></td><td><em class=tab>    </em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#dacsize">dac-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertfiledialog">insert-file-dialog</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sndmixes"><b>Mixing</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionposition">region-position</a></em></td><td></td><td class="green"><div class="centered">U</div></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#datacolor">data-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertregion">insert-region</a></em></td><td></td><td><em class=tab><a href="sndscm.html#monotostereo">mono->stereo</a></em></td><td></td><td><em class=tab><a href="sndscm.html#regionrms">region-rms</a></em></td><td></td><td><em class=tab>    </em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#datalocation">data-location</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsample">insert-sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#moogfilter">moog-filter</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionsample">region-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#unbindkey">unbind-key</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#datasize">data-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsamples">insert-samples</a></em></td><td></td><td><em class=tab><a href="s7.html#morallyequalp">morally-equal?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionsamplerQ">region-sampler?</a></em></td><td></td><td><em class=tab><a href="s7.html#unboundvariablehook">*unbound-variable-hook*</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#dbtolinear">db->linear</a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertselection">insert-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseclickhook">mouse-click-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionsrate">region-srate</a></em></td><td></td><td><em class=tab><a href="sndscm.html#unclipchannel">unclip-channel</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#cdebugging"><b>Debugging (C)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsilence">insert-silence</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousedraghook">mouse-drag-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionok">region?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undo">undo</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#variabledisplay"><b>Debugging (instruments)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertsound">insert-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseentergraphhook">mouse-enter-graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#eregions">regions</a></em></td><td></td><td><em class=tab><a href="extsnd.html#undoexamples"><b>Undo and Redo</b></a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#snderrors"><b>Debugging (Scheme)</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#insertionexamples"><b>Insertions</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseenterlabelhook">mouse-enter-label-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#regionstuff"><b>Regions</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#undohook">undo-hook</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#defaultoutputchans">default-output-chans</a></em></td><td></td><td><em class=tab><a href="s7.html#intvector">int-vector</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseenterlistenerhook">mouse-enter-listener-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#remembersoundstate">remember-sound-state</a></em></td><td></td><td><em class=tab><a href="s7.html#unlet">unlet</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#defaultoutputheadertype">default-output-header-type</a></em></td><td></td><td><em class=tab><a href="s7.html#intvectorref">int-vector-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseentertexthook">mouse-enter-text-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#removeclicks">remove-clicks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#unselectall">unselect-all</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#defaultoutputsampletype">default-output-sample-type</a></em></td><td></td><td><em class=tab><a href="s7.html#intvectorset">int-vector-set!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseleavegraphhook">mouse-leave-graph-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#removefrommenu">remove-from-menu</a></em></td><td></td><td><em class=tab><a href="sndscm.html#updategraphs">update-graphs</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#defaultoutputsrate">default-output-srate</a></em></td><td></td><td><em class=tab><a href="s7.html#intvectorp">int-vector?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mouseleavelabelhook">mouse-leave-label-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#replacewithselection">replace-with-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatehook">update-hook</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#defgenerator">defgenerator</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertocolormap">integer->colormap</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousleavelistenerhook">mouse-leave-listener-hook</a></em></td><td></td><td><em class=tab><a href="sndscm.html#reportmarknames">report-mark-names</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatelispgraph">update-lisp-graph</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#definestar">define*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertomark">integer->mark</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousleavetexthook">mouse-leave-text-hook</a></em></td><td></td><td><em class=tab><a href="s7.html#requires7">require</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatesound">update-sound</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#defineconstant">define-constant</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertomix">integer->mix</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mousepresshook">mouse-press-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#resampleexamples"><b>Resampling</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatetimegraph">update-time-graph</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#defineenvelope">define-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertoregion">integer->region</a></em></td><td></td><td><em class=tab><a href="sndclm.html#move-locsig">move-locsig</a></em></td><td></td><td><em class=tab><a href="sndscm.html#resetallhooks">reset-all-hooks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#updatetransformgraph">update-transform-graph</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#expansion">define-expansion</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertosound">integer->sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#movemixes">move-mixes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#resetcontrols">reset-controls</a></em></td><td></td><td><em class=tab><a href="sndscm.html#uponsaveyourself">upon-save-yourself</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#definemacro">define-macro</a></em></td><td></td><td><em class=tab><a href="extsnd.html#integertotransform">integer->transform</a></em></td><td></td><td><em class=tab><a href="sndclm.html#move-sound">move-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#resetlistenercursor">reset-listener-cursor</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sndmotifdoc">user interface extensions</a></em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#definemacrostar">define-macro*</a></em></td><td></td><td><em class=tab><a href="sndscm.html#integrateenvelope">integrate-envelope</a></em></td><td></td><td><em class=tab><a href="sndclm.html#move-sound?">move-sound?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#reson">reson</a></em></td><td></td><td><em class=tab>    </em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#defineselectionviamarks">define-selection-via-marks</a></em></td><td></td><td><em class=tab><a href="sndscm.html#invertfilter">invert-filter</a></em></td><td></td><td><em class=tab><a href="sndscm.html#movesyncdmarks">move-syncd-marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#restorecontrols">restore-controls</a></em></td><td></td><td class="green"><div class="centered">V</div></td></tr>
+  <tr><td><em class=tab><a href="s7.html#definedp">defined?</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndswitches"><b>Invocation flags</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-autocorrelation">moving-autocorrelation</a></em></td><td></td><td><em class=tab><a href="sndscm.html#reverbexamples"><b>Reverb</b></a></em></td><td></td><td><em class=tab>    </em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#degreestoradians">degrees->radians</a></em></td><td></td><td><em class=tab><a href="s7.html#iterate">iterate</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-autocorrelation?">moving-autocorrelation?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#*reverb*">*reverb*</a></em></td><td></td><td><em class=tab><a href="sndscm.html#variabledisplay">variable-display</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#delay">delay</a></em></td><td></td><td><em class=tab><a href="s7.html#iteratoratend">iterator-at-end?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-average">moving-average</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbdecay">reverb-control-decay</a></em></td><td></td><td><em class=tab><a href="extsnd.html#variablegraphp">variable-graph?</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#delaychannelmixes">delay-channel-mixes</a></em></td><td></td><td><em class=tab><a href="s7.html#iteratorsequence">iterator-sequence</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-average?">moving-average?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolfeedback">reverb-control-feedback</a></em></td><td></td><td><em class=tab><a href="s7.html#varlet">varlet</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#delaytick">delay-tick</a></em></td><td></td><td><em class=tab><a href="s7.html#iteratorp">iterator?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-fft">moving-fft</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrollength">reverb-control-length</a></em></td><td></td><td><em class=tab><a href="sndscm.html#vibratinguniformcircularstring">vibrating-uniform-circular-string</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#delay?">delay?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#izcos">izcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-fft?">moving-fft?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrollengthbounds">reverb-control-length-bounds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesamp">view-files-amp</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#deletecolormap">delete-colormap</a></em></td><td></td><td><em class=tab><a href="sndclm.html#izcos?">izcos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-length">moving-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrollowpass">reverb-control-lowpass</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesampenv">view-files-amp-env</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#deletefilefilter">delete-file-filter</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#moving-max">moving-max</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolscale">reverb-control-scale</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesdialog">view-files-dialog</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#deletefilesorter">delete-file-sorter</a></em></td><td></td><td class="green"><div class="centered">J</div></td><td></td><td><em class=tab><a href="sndclm.html#moving-max?">moving-max?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolscalebounds">reverb-control-scale-bounds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesfiles">view-files-files</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#deletemark">delete-mark</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#moving-norm">moving-norm</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverbcontrolp">reverb-control?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesselecthook">view-files-select-hook</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#deletemarks">delete-marks</a></em></td><td></td><td><em class=tab><a href="sndclm.html#j0evencos">j0evencos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-norm?">moving-norm?</a></em></td><td></td><td><em class=tab><a href="s7.html#reverseb">reverse!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesselectedfiles">view-files-selected-files</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#deletesample">delete-sample</a></em></td><td></td><td><em class=tab><a href="sndclm.html#j0evencos?">j0evencos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-pitch">moving-pitch</a></em></td><td></td><td><em class=tab><a href="sndscm.html#reversebyblocks">reverse-by-blocks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilessort">view-files-sort</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#deletesamples">delete-samples</a></em></td><td></td><td><em class=tab><a href="sndclm.html#j0j1cos">j0j1cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-pitch?">moving-pitch?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reversechannel">reverse-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesspeed">view-files-speed</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#deletesamplesandsmooth">delete-samples-and-smooth</a></em></td><td></td><td><em class=tab><a href="sndclm.html#j0j1cos?">j0j1cos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-rms">moving-rms</a></em></td><td></td><td><em class=tab><a href="sndscm.html#reverseenvelope">reverse-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewfilesspeedstyle">view-files-speed-style</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#deleteselection">delete-selection</a></em></td><td></td><td><em class=tab><a href="sndclm.html#j2cos">j2cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-scentroid">moving-scentroid</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverseselection">reverse-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewmixesdialog">view-mixes-dialog</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#deleteselectionandsmooth">delete-selection-and-smooth</a></em></td><td></td><td><em class=tab><a href="sndclm.html#j2cos?">j2cos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-scentroid?">moving-scentroid?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reversesound">reverse-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewregionsdialog">view-regions-dialog</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#deletetransform">delete-transform</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandjack"><b>Jack</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-spectrum">moving-spectrum</a></em></td><td></td><td><em class=tab><a href="extsnd.html#reverseexamples"><b>Reversing</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#viewsound">view-sound</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#deletionexamples"><b>Deletions</b></a></em></td><td></td><td><em class=tab><a href="sndscm.html#jcreverb">jc-reverb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-spectrum?">moving-spectrum?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#revertsound">revert-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#singerdoc">voice physical model</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#describehook">describe-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jjcos">jjcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#moving-sum">moving-sum</a></em></td><td></td><td><em class=tab><a href="extsnd.html#rightsample">right-sample</a></em></td><td></td><td><em class=tab><a href="sndscm.html#voicedtounvoiced">voiced->unvoiced</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#describemark">describe-mark</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jjcos?">jjcos?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#mpg">mpg</a></em></td><td></td><td><em class=tab><a href="sndclm.html#ring-modulate">ring-modulate</a></em></td><td></td><td><em class=tab><a href="sndscm.html#volterrafilter">volterra-filter</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#dht">dht</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jncos">jncos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsabuffersize">mus-alsa-buffer-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rk!cos">rk!cos</a></em></td><td></td><td><em class=tab><a href="sndscm.html#fmvox">vox</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#dialogwidgets">dialog-widgets</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jncos?">jncos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsabuffers">mus-alsa-buffers</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rk!cos?">rk!cos?</a></em></td><td></td><td><em class=tab>    </em></td></tr>
+  <tr><td><em class=tab><a href="s7.html#dilambda">dilambda</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jpcos">jpcos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsacapturedevice">mus-alsa-capture-device</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rk!ssb">rk!ssb</a></em></td><td></td><td class="green"><div class="centered">W</div></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#disablecontrolpanel">disable-control-panel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jpcos?">jpcos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsadevice">mus-alsa-device</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rk!ssb?">rk!ssb?</a></em></td><td></td><td><em class=tab>    </em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#displaybarkfft">display-bark-fft</a></em></td><td></td><td><em class=tab><a href="extsnd.html#justsounds">just-sounds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsaplaybackdevice">mus-alsa-playback-device</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rkcos">rkcos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#wave-train">wave-train</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#displaycorrelation">display-correlation</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jycos">jycos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musalsasquelchwarning">mus-alsa-squelch-warning</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rkcos?">rkcos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#wave-train?">wave-train?</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#displaydb">display-db</a></em></td><td></td><td><em class=tab><a href="sndclm.html#jycos?">jycos?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#musarrayprintlength">mus-array-print-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rkoddssb">rkoddssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#wavelettype">wavelet-type</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#displayedits">display-edits</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#musbytespersample">mus-bytes-per-sample</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rkoddssb?">rkoddssb?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#pqwvox">waveshaping voice</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#displayenergy">display-energy</a></em></td><td></td><td class="green"><div class="centered">K</div></td><td></td><td><em class=tab><a href="sndclm.html#mus-channel">mus-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rksin">rksin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#wavohop">wavo-hop</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#dissolvefade">dissolve-fade</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#mus-channels">mus-channels</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rksin?">rksin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#wavotrace">wavo-trace</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#ditherchannel">dither-channel</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k2cos">k2cos</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-chebyshev-tu-sum">mus-chebyshev-tu-sum</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rkssb">rkssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#weighted-moving-average">weighted-moving-average</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#dithersound">dither-sound</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k2cos?">k2cos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musclipping">mus-clipping</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rkssb?">rkssb?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#widgetposition">widget-position</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#dolph">dolph</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k2sin">k2sin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-close">mus-close</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rmsgain">rms</a></em></td><td></td><td><em class=tab><a href="extsnd.html#widgetsize">widget-size</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#dot-product">dot-product</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k2sin?">k2sin?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-copy">mus-copy</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rmsgain">rms, gain, balance gens</a></em></td><td></td><td><em class=tab><a href="extsnd.html#widgettext">widget-text</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#dotsize">dot-size</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k2ssb">k2ssb</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-data">mus-data</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rmsenvelope">rms-envelope</a></em></td><td></td><td><em class=tab><a href="extsnd.html#movingwindows"><b>Window size and position</b></a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#downoct">down-oct</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k2ssb?">k2ssb?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-describe">mus-describe</a></em></td><td></td><td><em class=tab><a href="s7.html#rootlet">rootlet</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowheight">window-height</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#drawaxes">draw-axes</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k3sin">k3sin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#muserrorhook">mus-error-hook</a></em></td><td></td><td><em class=tab><a href="s7.html#rootletredefinitionhook">*rootlet-redefinition-hook*</a></em></td><td></td><td><em class=tab><a href="sndscm.html#windowsamples">window-samples</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#drawdot">draw-dot</a></em></td><td></td><td><em class=tab><a href="sndclm.html#k3sin?">k3sin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#muserrortypetostring">mus-error-type->string</a></em></td><td></td><td><em class=tab><a href="sndclm.html#round-interp">round-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowwidth">window-width</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#drawdots">draw-dots</a></em></td><td></td><td><em class=tab><a href="sndscm.html#kalmanfilterchannel">kalman-filter-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musexpandfilename">mus-expand-filename</a></em></td><td></td><td><em class=tab><a href="sndclm.html#round-interp?">round-interp?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowx">window-x</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#drawline">draw-line</a></em></td><td></td><td><em class=tab><a href="extsnd.html#key">key</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-feedback">mus-feedback</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rssb">rssb</a></em></td><td></td><td><em class=tab><a href="extsnd.html#windowy">window-y</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#drawlines">draw-lines</a></em></td><td></td><td><em class=tab><a href="extsnd.html#keybinding">key-binding</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-feedforward">mus-feedforward</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rssbinterp">rssb-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withbackgroundprocesses">with-background-processes</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#drawmarkhook">draw-mark-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#keypresshook">key-press-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#fft">mus-fft</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rssb?">rssb?</a></em></td><td></td><td><em class=tab><a href="s7.html#withbaffle">with-baffle</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#drawmixhook">draw-mix-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#krksin">krksin</a></em></td><td></td><td><em class=tab><a href="sndclm.html#musfilebuffersize">mus-file-buffer-size</a></em></td><td></td><td><em class=tab><a href="sndscm.html#rubbersound">rubber-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withfilemonitor">with-file-monitor</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#drawstring">draw-string</a></em></td><td></td><td><em class=tab><a href="sndclm.html#krksin?">krksin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musfileclipping">mus-file-clipping</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#sndandruby"><b>Ruby</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#withgl">with-gl</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#drone">drone</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#musfilemix">mus-file-mix</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxycos">rxycos</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withinsetgraph">with-inset-graph</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#makedropsite">drop sites</a></em></td><td></td><td class="green"><div class="centered">L</div></td><td></td><td><em class=tab><a href="sndclm.html#mus-file-name">mus-file-name</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxycos?">rxycos?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withinterrupts">with-interrupts</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#drophook">drop-hook</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndclm.html#musfloatequalfudgefactor">mus-float-equal-fudge-factor</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxyk!cos">rxyk!cos</a></em></td><td></td><td><em class=tab><a href="s7.html#with-let">with-let</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#duringopenhook">during-open-hook</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#ladspadescriptor">ladspa-descriptor</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-frequency">mus-frequency</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxyk!cos?">rxyk!cos?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#withlocalhook">with-local-hook</a></em></td></tr>
+  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#ladspadir">ladspa-dir</a></em></td><td></td><td><em class=tab><a href="sndclm.html#musgeneratorp">mus-generator?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxyk!sin">rxyk!sin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withmenuicons">with-menu-icons</a></em></td></tr>
+  <tr><td class="green"><div class="centered">E</div></td><td></td><td><em class=tab><a href="s7.html#lambdastar">lambda*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musheaderrawdefaults">mus-header-raw-defaults</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxyk!sin?">rxyk!sin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withmixtags">with-mix-tags</a></em></td></tr>
+  <tr><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#lbjpiano">lbj-piano</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musheadertypetostring">mus-header-type->string</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxysin">rxysin</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withpointerfocus">with-pointer-focus</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#editlists"><b>Edit lists</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#leftsample">left-sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musheadertypename">mus-header-type-name</a></em></td><td></td><td><em class=tab><a href="sndclm.html#rxysin?">rxysin?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withrelativepanes">with-relative-panes</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#editfragment">edit-fragment</a></em></td><td></td><td><em class=tab><a href="extsnd.html#genericlength"><b>length (generic)</b></a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-hop">mus-hop</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#withsmptelabel">with-smpte-label</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#editheaderdialog">edit-header-dialog</a></em></td><td></td><td><em class=tab><a href="s7.html#lettolist">let->list</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-increment">mus-increment</a></em></td><td></td><td class="green"><div class="centered">S</div></td><td></td><td><em class=tab><a href="sndscm.html#withsound">with-sound</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#edithook">edit-hook</a></em></td><td></td><td><em class=tab><a href="s7.html#letref">let-ref</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-input?">mus-input?</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="sndscm.html#withtemporaryselection">with-temporary-selection</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#editlisttofunction">edit-list->function</a></em></td><td></td><td><em class=tab><a href="s7.html#letset">let-set!</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-interp-type">mus-interp-type</a></em></td><td></td><td><em class=tab><a href="s7.html#s7doc"><b>s7 scheme</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#withtoolbar">with-toolbar</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#editposition">edit-position</a></em></td><td></td><td><em class=tab><a href="s7.html#lettemporarily">let-temporarily</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-interpolate">mus-interpolate</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sample">sample</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withtooltips">with-tooltips</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#editproperties">edit-properties</a></em></td><td></td><td><em class=tab><a href="s7.html#letp">let?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-length">mus-length</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sampletofile">sample->file</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withtrackingcursor">with-tracking-cursor</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#editproperty">edit-property</a></em></td><td></td><td><em class=tab><a href="sndclm.html#lineartodb">linear->db</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-location">mus-location</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sampletofile?">sample->file?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#withverbosecursor">with-verbose-cursor</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#edittree">edit-tree</a></em></td><td></td><td><em class=tab><a href="sndscm.html#linearsrcchannel">linear-src-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musmaxmalloc">mus-max-malloc</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sampletype">sample-type</a></em></td><td></td><td><em class=tab>    </em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#edits">edits</a></em></td><td></td><td><em class=tab><a href="sndscm.html#lintdoc">lint for scheme</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musmaxtablesize">mus-max-table-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sampleratendQ">sampler-at-end?</a></em></td><td></td><td class="green"><div class="centered">X</div></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#edot-product">edot-product</a></em></td><td></td><td><em class=tab><a href="extsnd.html#lispgraphhook">lisp-graph-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-name">mus-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplerhome">sampler-home</a></em></td><td></td><td><em class=tab>    </em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#effectshook">effects-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#lispgraphstyle">lisp-graph-style</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-offset">mus-offset</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplerposition">sampler-position</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xtoposition">x->position</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#analogfilterdoc">elliptic filters</a></em></td><td></td><td><em class=tab><a href="extsnd.html#lispgraphp">lisp-graph?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-order">mus-order</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplerQ">sampler?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xaxislabel">x-axis-label</a></em></td></tr>
+  <tr><td><em class=tab><a href="grfsnd.html#emacssnd"><b>Emacs and Snd</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#listtofv">list->float-vector</a></em></td><td></td><td><em class=tab><a href="extsnd.html#musosssetbuffers">mus-oss-set-buffers</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samplers"><b>samplers</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#xaxisstyle">x-axis-style</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#env">env</a></em></td><td></td><td><em class=tab><a href="grfsnd.html#listladspa">list-ladspa</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-output?">mus-output?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#samples">samples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xbounds">x-bounds</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#env-any">env-any</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerclickhook">listener-click-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-phase">mus-phase</a></em></td><td></td><td><em class=tab><a href="sndclm.html#samplestoseconds">samples->seconds</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xpositionslider">x-position-slider</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#envchannel">env-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenercolor">listener-color</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-ramp">mus-ramp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#sashcolor">sash-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xzoomslider">x-zoom-slider</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#envchannelwithbase">env-channel-with-base</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenercolorized">listener-colorized</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-rand-seed">mus-rand-seed</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveasdialogautocomment">save-as-dialog-auto-comment</a></em></td><td></td><td><em class=tab><a href="sndscm.html#xbopen">xb-open</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#envexptchannel">env-expt-channel</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerfont">listener-font</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-random">mus-random</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveasdialogsrc">save-as-dialog-src</a></em></td><td></td><td><em class=tab><a href="extsnd.html#xrampchannel">xramp-channel</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#env-interp">env-interp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerprompt">listener-prompt</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-reset">mus-reset</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savecontrols">save-controls</a></em></td><td></td><td><em class=tab>    </em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#envmixes">env-mixes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenerselection">listener-selection</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-run">mus-run</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savedir">save-dir</a></em></td><td></td><td class="green"><div class="centered">Y</div></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#envselection">env-selection</a></em></td><td></td><td><em class=tab><a href="extsnd.html#listenertextcolor">listener-text-color</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussampletypetostring">mus-sample-type->string</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveedithistory">save-edit-history</a></em></td><td></td><td><em class=tab>    </em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#envsound">env-sound</a></em></td><td></td><td><em class=tab><a href="extsnd.html#littleendianp">little-endian?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussampletypename">mus-sample-type-name</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveenvelopes">save-envelopes</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ytoposition">y->position</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#envsoundinterp">env-sound-interp</a></em></td><td></td><td><em class=tab><a href="s7.html#loadhook">*load-hook*</a></em></td><td></td><td><em class=tab><a href="sndclm.html#mus-scaler">mus-scaler</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savehook">save-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#yaxislabel">y-axis-label</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndscm.html#envsquaredchannel">env-squared-channel</a></em></td><td></td><td><em class=tab><a href="s7.html#loadpath">*load-path*</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundchans">mus-sound-chans</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savelistener">save-listener</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ybounds">y-bounds</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#env?">env?</a></em></td><td></td><td><em class=tab><a href="sndscm.html#locatezero">locate-zero</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundcomment">mus-sound-comment</a></em></td><td></td><td><em class=tab><a href="sndscm.html#savemarkproperties">save-mark-properties</a></em></td><td></td><td><em class=tab><a href="extsnd.html#ypositionslider">y-position-slider</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#envedbase">enved-base</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig">locsig</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussounddatalocation">mus-sound-data-location</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savemarks">save-marks</a></em></td><td></td><td><em class=tab><a href="extsnd.html#yzoomslider">y-zoom-slider</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#envedclipping">enved-clip?</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-ref">locsig-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussounddatumsize">mus-sound-datum-size</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savemix">save-mix</a></em></td><td></td><td><em class=tab>    </em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#enveddialog">enved-dialog</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-reverb-ref">locsig-reverb-ref</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundduration">mus-sound-duration</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveregion">save-region</a></em></td><td></td><td class="green"><div class="centered">Z</div></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#envedenvelope">enved-envelope</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-reverb-set!">locsig-reverb-set!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundforget">mus-sound-forget</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveregiondialog">save-region-dialog</a></em></td><td></td><td><em class=tab>    </em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#filterenv">enved-filter</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-set!">locsig-set!</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundframples">mus-sound-framples</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveselection">save-selection</a></em></td><td></td><td><em class=tab><a href="sndscm.html#ztransform">z-transform</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#filterenvorder">enved-filter-order</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig-type">locsig-type</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundheadertype">mus-sound-header-type</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveselectiondialog">save-selection-dialog</a></em></td><td></td><td><em class=tab><a href="sndscm.html#zecho">zecho</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#envedhook">enved-hook</a></em></td><td></td><td><em class=tab><a href="sndclm.html#locsig?">locsig?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundlength">mus-sound-length</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savesound">save-sound</a></em></td><td></td><td><em class=tab><a href="sndscm.html#zeroplus">zero+</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#envedin-dB">enved-in-dB</a></em></td><td></td><td><em class=tab><a href="extsnd.html#logfreqstart">log-freq-start</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundloopinfo">mus-sound-loop-info</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savesoundas">save-sound-as</a></em></td><td></td><td><em class=tab><a href="extsnd.html#zeropad">zero-pad</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#envedpower">enved-power</a></em></td><td></td><td><em class=tab><a href="sndscm.html#lpccoeffs">lpc-coeffs</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundmarkinfo">mus-sound-mark-info</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savesounddialog">save-sound-dialog</a></em></td><td></td><td><em class=tab><a href="sndscm.html#zerophase">zero-phase</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#envedstyle">enved-style</a></em></td><td></td><td><em class=tab><a href="sndscm.html#lpcpredict">lpc-predict</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundmaxamp">mus-sound-maxamp</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savestate">save-state</a></em></td><td></td><td><em class=tab><a href="sndscm.html#zipsound">zip-sound</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#envedtarget">enved-target</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundmaxampexists">mus-sound-maxamp-exists?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savestatefile">save-state-file</a></em></td><td></td><td><em class=tab><a href="sndscm.html#zipper">zipper</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#envedwaving">enved-wave?</a></em></td><td></td><td class="green"><div class="centered">M</div></td><td></td><td><em class=tab><a href="extsnd.html#mussoundpath">mus-sound-path</a></em></td><td></td><td><em class=tab><a href="extsnd.html#savestatehook">save-state-hook</a></em></td><td></td><td><em class=tab><a href="extsnd.html#zoomcolor">zoom-color</a></em></td></tr>
+  <tr><td><em class=tab><a href="extsnd.html#envedwaveformcolor">enved-waveform-color</a></em></td><td></td><td><em class=tab>    </em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundpreload">mus-sound-preload</a></em></td><td></td><td><em class=tab><a href="extsnd.html#saveexamples"><b>Saving</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#zoomfocusstyle">zoom-focus-style</a></em></td></tr>
+  <tr><td><em class=tab><a href="sndclm.html#envelopeinterp">envelope-interp</a></em></td><td></td><td><em class=tab><a href="s7.html#macrop">macro?</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundprune">mus-sound-prune</a></em></td><td></td><td><em class=tab><a href="sndscm.html#sgfilter">savitzky-golay-filter</a></em></td><td></td>
+</tr>
+  <tr><td><em class=tab><a href="sndscm.html#envelopedmix">enveloped-mix</a></em></td><td></td><td><em class=tab><a href="s7.html#macroexpand">macroexpand</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundreportcache">mus-sound-report-cache</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sawtooth-wave">sawtooth-wave</a></em></td><td></td>
+</tr>
+  <tr><td><em class=tab><a href="extsnd.html#envexamples"><b>Envelopes</b></a></em></td><td></td><td><em class=tab><a href="extsnd.html#mainmenu">main-menu</a></em></td><td></td><td><em class=tab><a href="extsnd.html#mussoundsampletype">mus-sound-sample-type</a></em></td><td></td><td><em class=tab><a href="sndclm.html#sawtooth-wave?">sawtooth-wave?</a></em></td><td></td>
+</tr>
+
 </table>
 </body></html>
diff --git a/io.c b/io.c
index 5bd52e9..c2d17f4 100644
--- a/io.c
+++ b/io.c
@@ -24,6 +24,8 @@
 #endif
 #include <string.h>
 #include <stdarg.h>
+#include <stdint.h>
+#include <inttypes.h>
 
 #ifdef _MSC_VER
   #include <direct.h>
@@ -33,6 +35,26 @@
 
 #include "_sndlib.h"
 
+#if (!USE_SND)
+#define mus_clear_floats(Arr, Len)		\
+  do {						\
+    mus_long_t K;				\
+    mus_float_t *dst;				\
+    dst = Arr;					\
+    for (K = Len; K > 0; K--)			\
+      *dst++ = 0.0;				\
+  } while (0)
+#define mus_copy_floats(Dst, Src, Len)		\
+  do {						\
+    mus_long_t K;				\
+    mus_float_t *dst, *src;			\
+    dst = Dst;					\
+    src = Src;					\
+    for (K = Len; K > 0; K--)			\
+      *dst++ = *src++;				\
+    } while (0)
+#endif
+
 #define HAVE_BYTESWAP_H __linux__
 
 #define mus_byte_to_sample(n)  (((mus_float_t)(n) / (mus_float_t)(1 << 7)))
@@ -429,13 +451,13 @@ unsigned int mus_char_to_ulint(const unsigned char *inp)
 #if __GNUC__ && HAVE_BYTESWAP_H
     /* these work, but newer versions of gcc complain about strict aliasing rules
      *   #define big_endian_float(n)             ({unsigned int x; x = bswap_32((*((unsigned int *)n))); (*((float *)&x));})
-     *   #define big_endian_double(n)            ({unsigned long long int x; x = bswap_64((*((unsigned long long int *)n))); (*((double *)&x));})
+     *   #define big_endian_double(n)            ({uint64_t x; x = bswap_64((*((uint64_t *)n))); (*((double *)&x));})
      */
     typedef struct {union {unsigned int i; float f;} u;} uiflt;
-    typedef struct {union {unsigned long long int l; double d;} u;} uidbl;
+    typedef struct {union {uint64_t l; double d;} u;} uidbl;
 
     #define big_endian_float(n)                  ({uiflt x; x.u.i = bswap_32((*((unsigned int *)n))); x.u.f;})
-    #define big_endian_double(n)                 ({uidbl x; x.u.l = bswap_64((*((unsigned long long int *)n))); x.u.d;})
+    #define big_endian_double(n)                 ({uidbl x; x.u.l = bswap_64((*((uint64_t *)n))); x.u.d;})
 #else
     #define big_endian_float(n)                  (mus_char_to_bfloat(n))
     #define big_endian_double(n)                 (mus_char_to_bdouble(n))
@@ -506,7 +528,7 @@ unsigned int mus_char_to_ulint(const unsigned char *inp)
 
 #if __GNUC__ && HAVE_BYTESWAP_H
     #define little_endian_float(n)               ({unsigned int x; x = bswap_32((*((unsigned int *)n))); (*((float *)&x));})
-    #define little_endian_double(n)              ({unsigned long long int x; x = bswap_64((*((unsigned long long int *)n))); (*((double *)&x));})
+    #define little_endian_double(n)              ({uint64_t x; x = bswap_64((*((uint64_t *)n))); (*((double *)&x));})
 #else
     #define little_endian_float(n)               (mus_char_to_lfloat(n))
     #define little_endian_double(n)              (mus_char_to_ldouble(n))
@@ -1094,9 +1116,9 @@ static mus_long_t mus_read_any_1(int tfd, mus_long_t beg, int chans, mus_long_t
 	      buffer = (mus_float_t *)(bufs[0]);
 	      if (buffer)
 		{
-		  copy_floats(buffer, fd->saved_data[0] + beg, lim);
+		  mus_copy_floats(buffer, fd->saved_data[0] + beg, lim);
 		  if (lim < nints)
-		    clear_floats(buffer + lim, nints - lim);
+		    mus_clear_floats(buffer + lim, nints - lim);
 		}
 	    }
 	  else
@@ -1107,9 +1129,9 @@ static mus_long_t mus_read_any_1(int tfd, mus_long_t beg, int chans, mus_long_t
 		    buffer = (mus_float_t *)(bufs[k]);
 		    if (buffer)
 		      {
-			copy_floats(buffer, fd->saved_data[k] + beg, lim);
+			mus_copy_floats(buffer, fd->saved_data[k] + beg, lim);
 			if (lim < nints)
-			  clear_floats(buffer + lim, nints - lim);
+			  mus_clear_floats(buffer + lim, nints - lim);
 		      }
 		  }
 	    }
@@ -1171,7 +1193,7 @@ static mus_long_t mus_read_any_1(int tfd, mus_long_t beg, int chans, mus_long_t
 		    {
 		      mus_float_t *p;
 		      p = bufs[k];
-		      clear_floats(p + loc, nints - loc);
+		      mus_clear_floats(p + loc, nints - loc);
 		    }
 	      return(total_read);
 	    }
@@ -1726,7 +1748,7 @@ mus_long_t mus_file_read(int tfd, mus_long_t beg, mus_long_t num, int chans, mus
 	  buffer = bufs[k];
 	  /* this happens routinely in mus_outa + initial write (reads ahead in effect) */
 	  /* fprintf(stderr, "clear from %lld for %lld\n", rtn, num-rtn); */
-	  clear_floats(buffer + rtn, num - rtn);
+	  mus_clear_floats(buffer + rtn, num - rtn);
 	}
     }
   return(num);
@@ -1749,7 +1771,7 @@ mus_long_t mus_file_read_chans(int tfd, mus_long_t beg, mus_long_t num, int chan
 	  {
 	    mus_float_t *buffer;
 	    buffer = bufs[k];
-	    clear_floats(buffer + rtn, num - rtn);
+	    mus_clear_floats(buffer + rtn, num - rtn);
 	  }
     }
 
@@ -1761,8 +1783,8 @@ mus_long_t mus_file_read_chans(int tfd, mus_long_t beg, mus_long_t num, int chan
 
 static int checked_write(int tfd, char *buf, mus_long_t chars)
 {
-  long long int bytes;
-  bytes = (long long int)write(tfd, buf, chars);
+  int64_t bytes;
+  bytes = (int64_t)write(tfd, buf, chars);
   if (bytes != chars) 
     {
       io_fd *fd;
@@ -1775,7 +1797,7 @@ static int checked_write(int tfd, char *buf, mus_long_t chars)
 			 fd->name));
       else
 	return(mus_error(MUS_WRITE_ERROR,
-			 "mus_write: write error for %s%s%s: only %lld of %lld" " bytes written",
+			 "mus_write: write error for %s%s%s: only %" PRId64 " of %lld" " bytes written",
 			 fd->name, (errno) ? ": " : "", (errno) ? STRERROR(errno) : "",
 			 bytes, chars));
     }
diff --git a/libc.scm b/libc.scm
index 89ed0bc..5fb440c 100644
--- a/libc.scm
+++ b/libc.scm
@@ -21,7 +21,7 @@
 	(set! *libraries* (cons (cons "libc.scm" (curlet)) *libraries*))
 	
 	;; -------- stddef.h --------
-	(define NULL (c-pointer 0))
+	(define NULL (c-pointer 0 'void*))
 	(define (c-null? p) (equal? p NULL))
 
 	;; -------- stdbool.h --------
@@ -91,7 +91,7 @@
 			  INTPTR_MAX UINTPTR_MAX INTMAX_MIN INTMAX_MAX UINTMAX_MAX PTRDIFF_MIN PTRDIFF_MAX SIG_ATOMIC_MIN SIG_ATOMIC_MAX 
 			  SIZE_MAX WCHAR_MIN WCHAR_MAX WINT_MIN WINT_MAX )))
 	   
-	   (c-pointer (stdin stdout stderr))
+	   (FILE* (stdin stdout stderr))
 	   
 	   ;; -------- endian.h --------
 	   ;; also has htobe16 etc
@@ -103,7 +103,7 @@
                   static s7_pointer g_string_to_c_pointer(s7_scheme *sc, s7_pointer args)
                   {
                    if (s7_is_string(s7_car(args)))
-                     return(s7_make_c_pointer(sc, (void *)s7_string(s7_car(args))));
+                     return(s7_make_c_pointer_with_type(sc, (void *)s7_string(s7_car(args)), s7_make_symbol(sc, \"void*\"), s7_f(sc)));
                    return(s7_car(args));
                   }")
 	   
@@ -574,7 +574,9 @@
                   static int internal_ftw_function(const char *fpath, const struct stat *sb, int typeflag)
                   {
                     s7_list_set(internal_ftw_sc, internal_ftw_arglist, 0, s7_make_string(internal_ftw_sc, fpath));
-                    s7_list_set(internal_ftw_sc, internal_ftw_arglist, 1, s7_make_c_pointer(internal_ftw_sc, (void *)sb));
+                    s7_list_set(internal_ftw_sc, internal_ftw_arglist, 1, 
+                                s7_make_c_pointer_with_type(internal_ftw_sc, (void *)sb, 
+                                                            s7_make_symbol(internal_ftw_sc, \"void*\"), s7_f(internal_ftw_sc)));
                     s7_list_set(internal_ftw_sc, internal_ftw_arglist, 2, s7_make_integer(internal_ftw_sc, typeflag));
                     return((int)s7_integer(s7_call(internal_ftw_sc, internal_ftw_closure, internal_ftw_arglist)));
                   }
@@ -700,7 +702,7 @@
                     time_t *tm;
                     tm = (time_t *)calloc(1, sizeof(time_t));
                     (*tm) = (time_t)s7_integer(s7_car(args));
-                    return(s7_make_c_pointer(sc, (void *)tm));
+                    return(s7_make_c_pointer_with_type(sc, (void *)tm, s7_make_symbol(sc, \"time_t*\"), s7_f(sc)));
                   }
                   static s7_pointer g_strftime(s7_scheme *sc, s7_pointer args) 
                   {
diff --git a/libgsl.scm b/libgsl.scm
index a9227d5..378c3ee 100644
--- a/libgsl.scm
+++ b/libgsl.scm
@@ -754,7 +754,7 @@
 	 
 	 (in-C "static s7_pointer g_gsl_sf_result_make(s7_scheme *sc, s7_pointer args)
                 {
-                  return(s7_make_c_pointer(sc, (void *)calloc(1, sizeof(gsl_sf_result))));
+                  return(s7_make_c_pointer_with_type(sc, (void *)calloc(1, sizeof(gsl_sf_result)), s7_make_symbol(sc, \"gsl_sf_result*\"), s7_f(sc)));
                 }
                 static s7_pointer g_gsl_sf_result_val(s7_scheme *sc, s7_pointer args)
                 {
@@ -766,12 +766,12 @@
                 }
                 static s7_pointer g_gsl_sf_result_e10_make(s7_scheme *sc, s7_pointer args)
                 {
-                  return(s7_make_c_pointer(sc, (void *)calloc(1, sizeof(gsl_sf_result_e10))));
+                  return(s7_make_c_pointer_with_type(sc, (void *)calloc(1, sizeof(gsl_sf_result_e10)), s7_make_symbol(sc, \"gsl_sf_result_e10*\"), s7_f(sc)));
                 }
                 static s7_pointer g_to_doubles(s7_scheme *sc, s7_pointer args)
                 {
                   if (s7_is_vector(s7_car(args)))
-                    return(s7_make_c_pointer(sc, (void *)s7_float_vector_elements(s7_car(args))));
+                    return(s7_make_c_pointer_with_type(sc, (void *)s7_float_vector_elements(s7_car(args)), s7_make_symbol(sc, \"double*\"), s7_f(sc)));
                   return(s7_car(args));
                 }
                 ")
@@ -967,37 +967,38 @@
 	 (double gsl_stats_median_from_sorted_data (double* size_t size_t))
 	 (double gsl_stats_quantile_from_sorted_data (double* size_t size_t double))
 	 
-	 (c-pointer (gsl_interp_linear gsl_interp_polynomial gsl_interp_cspline gsl_interp_cspline_periodic gsl_interp_akima
-		     gsl_interp_akima_periodic gsl_min_fminimizer_goldensection gsl_min_fminimizer_brent gsl_min_fminimizer_quad_golden
-		     gsl_multimin_fminimizer_nmsimplex gsl_multimin_fminimizer_nmsimplex2 gsl_multimin_fminimizer_nmsimplex2rand
-		     gsl_multiroot_fsolver_dnewton gsl_multiroot_fsolver_broyden gsl_multiroot_fsolver_hybrid gsl_multiroot_fsolver_hybrids
-		     gsl_prec_eps gsl_prec_sqrt_eps
-		     gsl_prec_root3_eps gsl_prec_root4_eps gsl_prec_root5_eps gsl_prec_root6_eps gsl_root_fsolver_bisection gsl_root_fsolver_brent
-		     gsl_root_fsolver_falsepos gsl_version
-		     gsl_wavelet_daubechies gsl_wavelet_daubechies_centered gsl_wavelet_haar gsl_wavelet_haar_centered gsl_wavelet_bspline
-		     gsl_wavelet_bspline_centered))
+	 (gsl_interp_type* (gsl_interp_linear gsl_interp_polynomial gsl_interp_cspline gsl_interp_cspline_periodic 
+			    gsl_interp_akima gsl_interp_akima_periodic))
+	 (gsl_min_fminimizer_type* (gsl_min_fminimizer_goldensection gsl_min_fminimizer_brent gsl_min_fminimizer_quad_golden))
+	 (gsl_multimin_fminimizer_type* (gsl_multimin_fminimizer_nmsimplex gsl_multimin_fminimizer_nmsimplex2 gsl_multimin_fminimizer_nmsimplex2rand))
+	 (gsl_multiroot_fsolver_type* (gsl_multiroot_fsolver_dnewton gsl_multiroot_fsolver_broyden gsl_multiroot_fsolver_hybrid gsl_multiroot_fsolver_hybrids))
+	 (double* (gsl_prec_eps gsl_prec_sqrt_eps gsl_prec_root3_eps gsl_prec_root4_eps gsl_prec_root5_eps gsl_prec_root6_eps))
+	 (gsl_root_fsolver_type* (gsl_root_fsolver_bisection gsl_root_fsolver_brent gsl_root_fsolver_falsepos))
+	 (char* (gsl_version))
+	 (gsl_wavelet_type* (gsl_wavelet_daubechies gsl_wavelet_daubechies_centered gsl_wavelet_haar gsl_wavelet_haar_centered gsl_wavelet_bspline
+			     gsl_wavelet_bspline_centered))
 	 
 	 (reader-cond ((>= gsl-version 1.16)
-		       (c-pointer (gsl_multifit_robust_default gsl_multifit_robust_bisquare gsl_multifit_robust_cauchy gsl_multifit_robust_fair
-				   gsl_multifit_robust_huber gsl_multifit_robust_ols gsl_multifit_robust_welsch))))
+		       (gsl_multifit_robust_type* (gsl_multifit_robust_default gsl_multifit_robust_bisquare gsl_multifit_robust_cauchy gsl_multifit_robust_fair
+				                   gsl_multifit_robust_huber gsl_multifit_robust_ols gsl_multifit_robust_welsch))))
 	 
 	 (reader-cond ((>= gsl-version 2.0)
-		       (c-pointer gsl_interp_steffen)))
+		       (gsl_interp_type* (gsl_interp_steffen))))
 	 
 	 (int (gsl_message_mask gsl_check_range))
 	 
 	 ;; randist, rng
-	 (c-pointer (gsl_qrng_niederreiter_2 gsl_qrng_sobol gsl_qrng_halton gsl_qrng_reversehalton
-		     gsl_rng_borosh13 gsl_rng_coveyou gsl_rng_cmrg gsl_rng_fishman18 gsl_rng_fishman20 gsl_rng_fishman2x gsl_rng_gfsr4 
-		     gsl_rng_knuthran gsl_rng_knuthran2 gsl_rng_knuthran2002 gsl_rng_lecuyer21 gsl_rng_minstd gsl_rng_mrg gsl_rng_mt19937 
-		     gsl_rng_mt19937_1999 gsl_rng_mt19937_1998 gsl_rng_r250 gsl_rng_ran0 gsl_rng_ran1 gsl_rng_ran2 gsl_rng_ran3 gsl_rng_rand 
-		     gsl_rng_rand48 gsl_rng_random128_bsd gsl_rng_random128_glibc2 gsl_rng_random128_libc5 gsl_rng_random256_bsd 
-		     gsl_rng_random256_glibc2 gsl_rng_random256_libc5 gsl_rng_random32_bsd gsl_rng_random32_glibc2 gsl_rng_random32_libc5 
-		     gsl_rng_random64_bsd gsl_rng_random64_glibc2 gsl_rng_random64_libc5 gsl_rng_random8_bsd gsl_rng_random8_glibc2 
-		     gsl_rng_random8_libc5 gsl_rng_random_bsd gsl_rng_random_glibc2 gsl_rng_random_libc5 gsl_rng_randu 
-		     gsl_rng_ranf gsl_rng_ranlux gsl_rng_ranlux389 gsl_rng_ranlxd1 gsl_rng_ranlxd2 gsl_rng_ranlxs0 gsl_rng_ranlxs1 
-		     gsl_rng_ranlxs2 gsl_rng_ranmar gsl_rng_slatec gsl_rng_taus gsl_rng_taus2 gsl_rng_taus113 gsl_rng_transputer 
-		     gsl_rng_tt800 gsl_rng_uni gsl_rng_uni32 gsl_rng_vax gsl_rng_waterman14 gsl_rng_zuf gsl_rng_default gsl_rng_default_seed))
+	 (gsl_qrng_type* (gsl_qrng_niederreiter_2 gsl_qrng_sobol gsl_qrng_halton gsl_qrng_reversehalton))
+	 (gsl_rng_type* (gsl_rng_default gsl_rng_borosh13 gsl_rng_coveyou gsl_rng_cmrg gsl_rng_fishman18 gsl_rng_fishman20 gsl_rng_fishman2x gsl_rng_gfsr4 
+		         gsl_rng_knuthran gsl_rng_knuthran2 gsl_rng_knuthran2002 gsl_rng_lecuyer21 gsl_rng_minstd gsl_rng_mrg gsl_rng_mt19937 
+			 gsl_rng_mt19937_1999 gsl_rng_mt19937_1998 gsl_rng_r250 gsl_rng_ran0 gsl_rng_ran1 gsl_rng_ran2 gsl_rng_ran3 gsl_rng_rand 
+			 gsl_rng_rand48 gsl_rng_random128_bsd gsl_rng_random128_glibc2 gsl_rng_random128_libc5 gsl_rng_random256_bsd 
+			 gsl_rng_random256_glibc2 gsl_rng_random256_libc5 gsl_rng_random32_bsd gsl_rng_random32_glibc2 gsl_rng_random32_libc5 
+			 gsl_rng_random64_bsd gsl_rng_random64_glibc2 gsl_rng_random64_libc5 gsl_rng_random8_bsd gsl_rng_random8_glibc2 
+			 gsl_rng_random8_libc5 gsl_rng_random_bsd gsl_rng_random_glibc2 gsl_rng_random_libc5 gsl_rng_randu 
+			 gsl_rng_ranf gsl_rng_ranlux gsl_rng_ranlux389 gsl_rng_ranlxd1 gsl_rng_ranlxd2 gsl_rng_ranlxs0 gsl_rng_ranlxs1 
+			 gsl_rng_ranlxs2 gsl_rng_ranmar gsl_rng_slatec gsl_rng_taus gsl_rng_taus2 gsl_rng_taus113 gsl_rng_transputer 
+			 gsl_rng_tt800 gsl_rng_uni gsl_rng_uni32 gsl_rng_vax gsl_rng_waterman14 gsl_rng_zuf gsl_rng_default_seed))
 	 
 	 (gsl_qrng* gsl_qrng_alloc (gsl_qrng_type* int))
 	 (int gsl_qrng_memcpy (gsl_qrng* gsl_qrng*))
@@ -2661,14 +2662,18 @@
                 static gsl_multimin_function gsl_mmf;
                 static double gsl_mmf_caller(const gsl_vector *x, void *p) 
                 {
-                  return(s7_real(s7_call(gsl_mmf_s7, (s7_pointer)p, s7_cons(gsl_mmf_s7, s7_make_c_pointer(gsl_mmf_s7, (void *)x), s7_nil(gsl_mmf_s7)))));
+                  return(s7_real(s7_call(gsl_mmf_s7, (s7_pointer)p, 
+                                         s7_cons(gsl_mmf_s7, 
+                                                 s7_make_c_pointer_with_type(gsl_mmf_s7, (void *)x, s7_make_symbol(gsl_mmf_s7, \"gsl_vector*\"), s7_f(gsl_mmf_s7)),
+                                                 s7_nil(gsl_mmf_s7)))));
                 }
                 #define make_gsl_mm_function(Args, Size) do {gsl_mmf.f = gsl_mmf_caller; gsl_mmf.n = Size; gsl_mmf.params = (void *)Args; gsl_mmf_s7 = sc;} while (0)
                 static s7_pointer g_gsl_multimin_fminimizer_set(s7_scheme *sc, s7_pointer args)
                 {
                   make_gsl_mm_function(s7_cadr(args), ((gsl_vector *)s7_c_pointer(s7_caddr(args)))->size);
                   return(s7_make_integer(sc, gsl_multimin_fminimizer_set((gsl_multimin_fminimizer *)s7_c_pointer(s7_car(args)),
-                                                &gsl_mmf, (gsl_vector *)s7_c_pointer(s7_caddr(args)), (gsl_vector *)s7_c_pointer(s7_cadddr(args)))));
+                                                &gsl_mmf, (gsl_vector *)s7_c_pointer(s7_caddr(args)), 
+                                                          (gsl_vector *)s7_c_pointer(s7_cadddr(args)))));
                 }
                 static s7_pointer g_gsl_multimin_diff(s7_scheme *sc, s7_pointer args)
                 {
@@ -2689,8 +2694,9 @@
                 static int gsl_rf_caller(const gsl_vector *x, void *p, gsl_vector *y) 
                 {
                   return(s7_integer(s7_call(gsl_rf_s7, (s7_pointer)p, 
-                          s7_cons(gsl_rf_s7, s7_make_c_pointer(gsl_rf_s7, (void *)x), 
-                             s7_cons(gsl_rf_s7, s7_make_c_pointer(gsl_rf_s7, (void *)y), s7_nil(gsl_rf_s7))))));
+                          s7_cons(gsl_rf_s7, s7_make_c_pointer_with_type(gsl_rf_s7, (void *)x, s7_make_symbol(gsl_rf_s7, \"gsl_vector*\"), s7_f(gsl_rf_s7)),
+                             s7_cons(gsl_rf_s7, s7_make_c_pointer_with_type(gsl_rf_s7, (void *)y, s7_make_symbol(gsl_rf_s7, \"gsl_vector*\"), s7_f(gsl_rf_s7)),
+                                     s7_nil(gsl_rf_s7))))));
                 }
                 #define make_gsl_rf_function(Args, Size) do {gsl_rf.f = gsl_rf_caller; gsl_rf.n = Size; gsl_rf.params = (void *)Args; gsl_rf_s7 = sc;} while (0)
                 static s7_pointer g_gsl_multiroot_fsolver_set(s7_scheme *sc, s7_pointer args)
@@ -2840,7 +2846,7 @@
 		       (size_t gsl_spblas_scatter (gsl_spmatrix* size_t double size_t* double* size_t gsl_spmatrix* size_t))
 		       
 		       ;; splinalg
-		       (c-pointer gsl_splinalg_itersolve_gmres)
+		       (gsl_splinalg_itersolve_type* gsl_splinalg_itersolve_gmres)
 		       
 		       (gsl_splinalg_itersolve* gsl_splinalg_itersolve_alloc (gsl_splinalg_itersolve_type* size_t size_t))
 		       (void gsl_splinalg_itersolve_free (gsl_splinalg_itersolve*))
@@ -2874,7 +2880,7 @@
 		       (int gsl_spmatrix_transpose_memcpy (gsl_spmatrix* gsl_spmatrix*))
 		       
 		       ;; interp2d
-		       (c-pointer (gsl_interp2d_bilinear gsl_interp2d_bicubic))
+		       (gsl_interp2d_type* (gsl_interp2d_bilinear gsl_interp2d_bicubic))
 		       
 		       (gsl_interp2d* gsl_interp2d_alloc (gsl_interp2d_type* size_t size_t))
 		       (char* gsl_interp2d_name (gsl_interp2d*))
diff --git a/libgtk_s7.c b/libgtk_s7.c
new file mode 100644
index 0000000..8e47713
--- /dev/null
+++ b/libgtk_s7.c
@@ -0,0 +1,55552 @@
+/* libgtk_s7.c */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+#include <stdbool.h>
+#include "s7.h"
+
+#define HAVE_CAIRO_1_8    ((CAIRO_VERSION_MAJOR >= 1) && (CAIRO_VERSION_MINOR >= 8))
+#define HAVE_CAIRO_1_9_12 ((CAIRO_VERSION_MAJOR >= 1) && (CAIRO_VERSION_MINOR >= 9) && (CAIRO_VERSION_MICRO >= 12))
+
+#if ((!__NetBSD__) && ((_MSC_VER) || (!defined(__STC__)) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ < 199901L))))
+  #define __func__ __FUNCTION__
+#endif
+
+#include <string.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <inttypes.h>
+
+#include <glib.h>
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
+#if (!GTK_CHECK_VERSION(3, 0, 0))
+  #include <gdk/gdkkeysyms.h>
+#endif
+#include <glib-object.h>
+#include <pango/pango.h>
+#include <cairo/cairo.h>
+static s7_pointer lg_true, lg_false;
+static bool lg_boolean(s7_pointer val) {return(val != lg_false);}
+#define s7_make_type_with_c_pointer(Sc, Type, Ptr) s7_make_c_pointer_with_type(Sc, Ptr, Type, lg_false)
+
+
+static int xm_obj_tag;
+static void xm_obj_free(void *val)
+{
+  free(val);
+}
+static bool s7_equalp_xm(void *x1, void *x2)
+{
+  return(x1 == x2);
+}
+static s7_pointer make_xm_obj(s7_scheme *sc, void *ptr)
+{
+  return(s7_make_object(sc, xm_obj_tag, ptr));
+}
+static void define_xm_obj(s7_scheme *sc)
+{
+ xm_obj_tag = s7_new_type_x(sc, "<XmObj>", NULL, xm_obj_free, s7_equalp_xm, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+}  
+
+static s7_pointer GtkCenterBox__sym, GtkCheckButton__sym, GdkDrawContext__sym, GtkDrawingAreaDrawFunc_sym, GtkShortcutLabel__sym,
+                  GtkPadActionType_sym, GtkPadActionEntry__sym, GActionGroup__sym, GtkPadController__sym, GdkDevicePadFeature_sym,
+                  GdkDevicePad__sym, GdkDrawingContext__sym, GdkSubpixelLayout_sym, GdkMonitor__sym, GdkDeviceTool__sym,
+                  GdkAxisFlags_sym, GdkSeatGrabPrepareFunc_sym, GdkSeatCapabilities_sym, GdkGrabStatus_sym, GtkPopoverConstraint_sym,
+                  GtkShortcutsWindow__sym, GtkStackSidebar__sym, GtkSearchEntry__sym, GtkPopoverMenu__sym, GtkStyleContext__sym,
+                  GdkGLContext__sym, GtkGLArea__sym, GtkPropagationPhase_sym, GtkEventController__sym, GtkGestureZoom__sym,
+                  GtkGestureSwipe__sym, GtkGestureSingle__sym, GtkGestureRotate__sym, GtkGestureMultiPress__sym, GtkGesturePan__sym,
+                  GtkGestureDrag__sym, GdkEventSequence__sym, GtkEventSequenceState_sym, GtkGesture__sym, GtkPopover__sym,
+                  GtkActionBar__sym, GtkFlowBox__sym, GtkFlowBoxChild__sym, GdkEventType_sym, GtkSearchBar__sym,
+                  GtkListBox__sym, GtkListBoxRow__sym, GtkHeaderBar__sym, GtkRevealerTransitionType_sym, GtkRevealer__sym,
+                  GtkStackTransitionType_sym, GtkStack__sym, GtkStackSwitcher__sym, GtkPlacesSidebar__sym, GtkPlacesOpenFlags_sym,
+                  GtkBaselinePosition_sym, GdkFullscreenMode_sym, GtkInputHints_sym, GtkInputPurpose_sym, GtkLevelBarMode_sym,
+                  GtkLevelBar__sym, GtkMenuButton__sym, GtkColorChooser__sym, GtkApplicationWindow__sym, GtkApplication__sym,
+                  GMenuModel__sym, guint___sym, GdkModifierIntent_sym, GtkFontChooser__sym, GdkScrollDirection_sym,
+                  GtkOverlay__sym, GtkWidgetPath__sym, GtkStateFlags_sym, GdkScreen___sym, GtkToolShell__sym,
+                  GtkWindowGroup__sym, GtkInvisible__sym, GtkOrientable__sym, GtkCellArea__sym, GtkBorder__sym,
+                  GtkSwitch__sym, GtkScrollablePolicy_sym, GtkScrollable__sym, GtkGrid__sym, GdkRGBA__sym,
+                  GtkComboBoxText__sym, GtkAlign_sym, GtkSizeRequestMode_sym, cairo_region_overlap_t_sym, cairo_rectangle_int_t__sym,
+                  double__sym, cairo_rectangle_t__sym, cairo_device_t__sym, cairo_bool_t_sym, cairo_text_cluster_flags_t__sym,
+                  cairo_text_cluster_t___sym, cairo_glyph_t___sym, cairo_text_cluster_flags_t_sym, cairo_text_cluster_t__sym, cairo_region_t__sym,
+                  GtkMessageDialog__sym, GdkDevice__sym, GtkAccessible__sym, GdkModifierType__sym, GtkToolPaletteDragTargets_sym,
+                  GtkToolItemGroup__sym, GtkToolPalette__sym, GtkSpinner__sym, GtkEntryBuffer__sym, GtkMessageType_sym,
+                  GtkInfoBar__sym, GIcon__sym, GtkEntryIconPosition_sym, GFile__sym, GtkScaleButton__sym,
+                  GtkCalendarDetailFunc_sym, GtkTooltip__sym, cairo_rectangle_list_t__sym, void__sym, cairo_filter_t_sym,
+                  cairo_extend_t_sym, cairo_format_t_sym, cairo_path_t__sym, cairo_destroy_func_t_sym, cairo_user_data_key_t__sym,
+                  cairo_text_extents_t__sym, cairo_font_extents_t__sym, cairo_font_face_t__sym, cairo_glyph_t__sym, cairo_scaled_font_t__sym,
+                  cairo_font_weight_t_sym, cairo_font_slant_t_sym, cairo_hint_metrics_t_sym, cairo_hint_style_t_sym, cairo_subpixel_order_t_sym,
+                  cairo_status_t_sym, bool_sym, cairo_matrix_t__sym, cairo_line_join_t_sym, cairo_line_cap_t_sym,
+                  cairo_fill_rule_t_sym, cairo_antialias_t_sym, cairo_operator_t_sym, cairo_pattern_t__sym, cairo_content_t_sym,
+                  GtkPageSet_sym, GtkPageRange__sym, GtkPrintPages_sym, GtkPrintQuality_sym, GtkPrintDuplex_sym,
+                  GtkPaperSize__sym, GtkPageOrientation_sym, GtkPrintSettingsFunc_sym, GtkPageSetupDoneFunc_sym, GtkPrintStatus_sym,
+                  GtkPrintOperationAction_sym, GtkPrintOperationResult_sym, GtkUnit_sym, GtkPrintSettings__sym, GtkPrintOperation__sym,
+                  GtkPageSetup__sym, GtkPrintContext__sym, cairo_surface_t__sym, GtkTreeViewGridLines_sym, GtkRecentData__sym,
+                  GtkTextBufferDeserializeFunc_sym, GtkTextBufferSerializeFunc_sym, time_t_sym, GtkRecentChooserMenu__sym, GtkRecentManager__sym,
+                  GtkRecentFilter__sym, GtkRecentSortFunc_sym, GtkRecentSortType_sym, GtkRecentChooser__sym, GtkLinkButton__sym,
+                  GtkAssistantPageType_sym, GtkAssistantPageFunc_sym, GtkAssistant__sym, GDestroyNotify_sym, GtkTreeViewSearchPositionFunc_sym,
+                  GtkSensitivityType_sym, GtkClipboardRichTextReceivedFunc_sym, GtkMenuBar__sym, GtkPackDirection_sym, GtkIconViewDropPosition_sym,
+                  GValue__sym, GLogFunc_sym, PangoMatrix__sym, PangoRenderPart_sym, PangoRenderer__sym,
+                  GtkClipboardImageReceivedFunc_sym, GtkMenuToolButton__sym, GtkFileChooserButton__sym, PangoScriptIter__sym, PangoScript_sym,
+                  PangoAttrFilterFunc_sym, PangoEllipsizeMode_sym, GtkIconViewForeachFunc_sym, GtkAboutDialog__sym, GtkTreeViewRowSeparatorFunc_sym,
+                  GtkCellView__sym, GtkAccelMap__sym, GtkClipboardTargetsReceivedFunc_sym, GtkOrientation_sym, GtkToolButton__sym,
+                  GtkIconLookupFlags_sym, GtkIconInfo__sym, GtkIconTheme__sym, GtkFileChooser__sym, GtkCellLayoutDataFunc_sym,
+                  GtkCellLayout__sym, GtkFileFilterFunc_sym, GtkFileFilterFlags_sym, GtkFileFilter__sym, GSourceFunc_sym,
+                  GtkToggleToolButton__sym, GtkSeparatorToolItem__sym, GtkRadioToolButton__sym, GtkEntryCompletionMatchFunc_sym, GtkFontButton__sym,
+                  GtkExpander__sym, GtkComboBox__sym, GtkTreeModelFilter__sym, GtkFileChooserAction_sym, GtkToolItem__sym,
+                  GtkEventBox__sym, GtkCalendarDisplayOptions_sym, GdkScreen__sym, PangoLayoutRun__sym, PangoLayoutIter__sym,
+                  PangoLayoutLine__sym, int__sym, PangoAlignment_sym, PangoWrapMode_sym, PangoItem__sym,
+                  PangoGlyphString__sym, PangoFontMap__sym, PangoGlyph_sym, PangoFontFace__sym, PangoFontFace___sym,
+                  PangoFontFamily__sym, PangoFontMask_sym, PangoFontDescription___sym, PangoCoverageLevel_sym, PangoCoverage__sym,
+                  PangoFontMetrics__sym, PangoFontset__sym, PangoFont__sym, PangoFontFamily___sym, PangoLogAttr__sym,
+                  PangoAnalysis__sym, PangoAttrList___sym, PangoAttrIterator__sym, PangoRectangle__sym, PangoUnderline_sym,
+                  PangoStretch_sym, PangoVariant_sym, PangoWeight_sym, PangoStyle_sym, guint16_sym,
+                  PangoAttribute__sym, PangoAttrType_sym, PangoColor__sym, GdkGravity_sym, GtkWindowPosition_sym,
+                  GtkWindowType_sym, GtkWindow__sym, GtkTextDirection_sym, AtkObject__sym, GtkDirectionType_sym,
+                  GtkAllocation__sym, GtkViewport__sym, GtkTreeViewSearchEqualFunc_sym, GtkTreeViewDropPosition_sym, GtkTreeViewMappingFunc_sym,
+                  GtkTreeViewColumnDropFunc_sym, GtkTreeViewColumnSizing_sym, GtkTreeCellDataFunc_sym, GtkTreeStore__sym, GtkTreeIterCompareFunc_sym,
+                  GtkSortType_sym, GtkTreeSortable__sym, GtkTreeSelectionForeachFunc_sym, GtkTreeModel___sym, GtkTreeSelectionFunc_sym,
+                  GtkSelectionMode_sym, GtkTreeModelSort__sym, GtkTreeModelForeachFunc_sym, GtkTreeModelFlags_sym, GtkTreeRowReference__sym,
+                  GtkTreeDragDest__sym, GtkTreeDragSource__sym, GtkToolbarStyle_sym, GtkToolbar__sym, GtkToggleButton__sym,
+                  PangoTabArray__sym, GtkWrapMode_sym, GtkTextWindowType_sym, GtkTextView__sym, GtkTextTagTableForeach_sym,
+                  GtkTextAttributes__sym, GtkTextSearchFlags_sym, GtkTextCharPredicate_sym, GtkTextMark__sym, GtkTextChildAnchor__sym,
+                  GtkTextIter__sym, GtkTextTagTable__sym, GtkTextBuffer__sym, GtkStatusbar__sym, GtkSpinType_sym,
+                  GtkSpinButtonUpdatePolicy_sym, GtkSpinButton__sym, GtkSizeGroupMode_sym, GtkSizeGroup__sym, GtkSettings__sym,
+                  GtkCornerType_sym, GtkPolicyType_sym, GtkScrolledWindow__sym, GtkScale__sym, GtkRange__sym,
+                  GtkRadioMenuItem__sym, GtkRadioButton__sym, GtkProgressBar__sym, GtkPaned__sym, GtkPositionType_sym,
+                  GtkNotebook__sym, GtkMenuShell__sym, gint__sym, GtkMenuItem__sym, GtkMenu__sym,
+                  PangoLanguage__sym, GtkListStore__sym, GtkLayout__sym, GtkJustification_sym, GtkLabel__sym,
+                  guint16__sym, GtkIMContextSimple__sym, GdkEventKey__sym, PangoAttrList__sym, GtkIMContext__sym,
+                  GtkImageType_sym, GtkImage__sym, GtkShadowType_sym, GtkFrame__sym, GtkFixed__sym,
+                  PangoLayout__sym, GtkEntry__sym, GtkEditable__sym, GtkTargetList__sym, GtkDestDefaults_sym,
+                  etc_sym, GtkDialog__sym, GtkCallback_sym, GtkContainer__sym, GtkClipboardTextReceivedFunc_sym,
+                  GtkClipboardReceivedFunc_sym, GtkClipboardClearFunc_sym, GtkClipboardGetFunc_sym, GtkTargetEntry__sym, GtkCheckMenuItem__sym,
+                  GtkCellRendererToggle__sym, GtkCellRendererText__sym, GtkCellRendererState_sym, GtkCellEditable__sym, GtkCalendar__sym,
+                  GtkReliefStyle_sym, GtkButton__sym, GtkPackType_sym, GtkBox__sym, GtkBin__sym,
+                  GtkBindingSet__sym, GtkButtonBox__sym, GtkButtonBoxStyle_sym, GtkAspectFrame__sym, GtkAdjustment__sym,
+                  GtkAccelMapForeach_sym, GtkAccelLabel__sym, GtkAccelGroupEntry__sym, lambda3_sym, GSList__sym,
+                  GObject__sym, GtkAccelFlags_sym, GtkAccelGroup__sym, GTimeVal__sym, GdkPixbufAnimationIter__sym,
+                  GdkPixbufAnimation__sym, GdkInterpType_sym, double_sym, gfloat_sym, guchar_sym,
+                  char___sym, GdkPixbufDestroyNotify_sym, GError__sym, int_sym, GdkColorspace_sym,
+                  GdkWindowTypeHint_sym, GdkWindowHints_sym, GdkGeometry__sym, GdkWindowEdge_sym, GdkWMFunction_sym,
+                  GdkWMDecoration_sym, GdkEventMask_sym, GdkWindowState_sym, GdkFilterFunc_sym, GdkWindowType_sym,
+                  GdkPropMode_sym, guchar__sym, PangoContext__sym, PangoDirection_sym, GdkKeymapKey__sym,
+                  GdkKeymap__sym, GdkRectangle__sym, char__sym, gchar___sym, GdkEventFunc_sym,
+                  gdouble_sym, GList__sym, guint32_sym, GdkDragAction_sym, GdkDragContext__sym,
+                  GdkCursorType_sym, GdkDisplay__sym, GdkCursor__sym, GSignalMatchType_sym, GConnectFlags_sym,
+                  GtkDestroyNotify_sym, GSignalEmissionHook_sym, gulong_sym, GSignalInvocationHint__sym, GQuark_sym,
+                  guint__sym, GSignalQuery__sym, GType__sym, GSignalCMarshaller_sym, gpointer_sym,
+                  GSignalAccumulator_sym, GSignalFlags_sym, GType_sym, GClosureNotify_sym, GCallback_sym,
+                  GNormalizeMode_sym, glong_sym, gssize_sym, gunichar__sym, void_sym,
+                  GtkDrawingArea__sym, GdkSeat__sym, GtkRecentInfo__sym, gsize_sym, guint8__sym,
+                  GdkAtom_sym, GLogLevelFlags_sym, GdkPixbuf__sym, GtkIconView__sym, GtkEntryCompletion__sym,
+                  GtkFileFilterInfo__sym, GtkTreeSelection__sym, GtkCellRenderer__sym, GtkTreeViewColumn__sym, GtkTreeView__sym,
+                  gunichar_sym, gint_sym, GdkAtom__sym, GtkSelectionData__sym, GtkClipboard__sym,
+                  GtkTreeIter__sym, GtkTreePath__sym, GtkTreeModel__sym, gboolean_sym, GdkModifierType_sym,
+                  guint_sym, gchar__sym, GtkTextTag__sym, GdkXEvent__sym, GtkWidget__sym,
+                  lambda_data_sym, GClosure__sym, GtkAccelKey__sym, GdkEventMotion__sym, gdouble__sym,
+                  GdkEventAny__sym, GdkEvent__sym, GdkWindow__sym, cairo_t__sym, cairo_font_options_t__sym,
+                  PangoFontDescription__sym, idler_sym, GtkCellRendererPixbuf__sym, GtkScrollbar__sym, GtkSeparator__sym,
+                  GtkSeparatorMenuItem__sym, GdkEventExpose__sym, GdkEventNoExpose__sym, GdkEventVisibility__sym, GdkEventButton__sym,
+                  GdkEventScroll__sym, GdkEventCrossing__sym, GdkEventFocus__sym, GdkEventConfigure__sym, GdkEventProperty__sym,
+                  GdkEventSelection__sym, GdkEventProximity__sym, GdkEventSetting__sym, GdkEventWindowState__sym, GdkEventDND__sym,
+                  GtkFileChooserDialog__sym, GtkFileChooserWidget__sym, GtkColorButton__sym, GtkAccelMap_sym, GtkCellRendererCombo__sym,
+                  GtkCellRendererProgress__sym, GtkCellRendererAccel__sym, GtkCellRendererSpin__sym, GtkRecentChooserDialog__sym, GtkRecentChooserWidget__sym,
+                  GtkCellRendererSpinner__sym, gboolean__sym, GtkFontChooserDialog__sym, GtkFontChooserWidget__sym, GtkColorChooserDialog__sym,
+                  GtkColorChooserWidget__sym, GtkColorWidget__sym, GtkGestureLongPress__sym;
+
+#define lg_is_list(Arg) s7_is_list(sc, Arg)
+static s7_scheme *cbsc = NULL;
+static gboolean lg_find_func(GtkAccelKey* key, GClosure* closure, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return((gboolean)0);
+  return((gboolean)lg_boolean(s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 3,
+                   s7_make_c_pointer(cbsc, key),
+                   s7_make_c_pointer(cbsc, closure),
+                   s7_cadr((s7_pointer)func_info)))));
+}
+
+static void lg_func2(GtkWidget* w, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 2,
+                   s7_make_c_pointer(cbsc, w),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static gboolean lg_timer_func(gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return((gboolean)0);
+  return((gboolean)lg_boolean(s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 1,
+                   s7_cadr((s7_pointer)func_info)))));
+}
+
+static void lg_destroy_func(gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_cadddr((s7_pointer)func_info), 
+           s7_list(cbsc, 1,
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static GdkFilterReturn lg_filter_func(GdkXEvent* xevent, GdkEvent* event, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return((GdkFilterReturn)0);
+  return((GdkFilterReturn)s7_c_pointer(s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 3,
+                   s7_make_c_pointer(cbsc, xevent),
+                   s7_make_c_pointer(cbsc, event),
+                   s7_cadr((s7_pointer)func_info)))));
+}
+
+static void lg_event_func(GdkEvent* event, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 2,
+                   s7_make_c_pointer(cbsc, event),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static void lg_text_tag_table_foreach(GtkTextTag* tag, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 2,
+                   s7_make_c_pointer(cbsc, tag),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static void lg_accel_map_foreach(gpointer func_info, const gchar* accel_path, guint accel_key, GdkModifierType accel_mods, gboolean changed)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 5,
+                   s7_cadr((s7_pointer)func_info),
+                   s7_make_string(cbsc, accel_path),
+                   s7_make_integer(cbsc, accel_key),
+                   s7_make_integer(cbsc, accel_mods),
+                   s7_make_boolean(cbsc, changed)));
+}
+
+static gboolean lg_model_func(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return((gboolean)0);
+  return((gboolean)lg_boolean(s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 4,
+                   s7_make_c_pointer(cbsc, model),
+                   s7_make_c_pointer(cbsc, path),
+                   s7_make_c_pointer(cbsc, iter),
+                   s7_cadr((s7_pointer)func_info)))));
+}
+
+static void lg_tree_selection_func(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 4,
+                   s7_make_c_pointer(cbsc, model),
+                   s7_make_c_pointer(cbsc, path),
+                   s7_make_c_pointer(cbsc, iter),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static void lg_clip_received(GtkClipboard* clipboard, GtkSelectionData* selection_data, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 3,
+                   s7_make_c_pointer(cbsc, clipboard),
+                   s7_make_c_pointer(cbsc, selection_data),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static void lg_clip_text_received(GtkClipboard* clipboard, const gchar* text, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 3,
+                   s7_make_c_pointer(cbsc, clipboard),
+                   s7_make_string(cbsc, text),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static void lg_clip_targets_received(GtkClipboard* clipboard, GdkAtom* atoms, gint n_atoms, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 4,
+                   s7_make_c_pointer(cbsc, clipboard),
+                   s7_make_c_pointer(cbsc, atoms),
+                   s7_make_integer(cbsc, n_atoms),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static gboolean lg_text_char_predicate(gunichar ch, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return((gboolean)0);
+  return((gboolean)lg_boolean(s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 2,
+                   s7_make_integer(cbsc, ch),
+                   s7_cadr((s7_pointer)func_info)))));
+}
+
+static gboolean lg_tree_column(GtkTreeView* tree_view, GtkTreeViewColumn* column, GtkTreeViewColumn* prev_column, GtkTreeViewColumn* next_column, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return((gboolean)0);
+  return((gboolean)lg_boolean(s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 5,
+                   s7_make_c_pointer(cbsc, tree_view),
+                   s7_make_c_pointer(cbsc, column),
+                   s7_make_c_pointer(cbsc, prev_column),
+                   s7_make_c_pointer(cbsc, next_column),
+                   s7_cadr((s7_pointer)func_info)))));
+}
+
+static void lg_tree_mapping(GtkTreeView* tree_view, GtkTreePath* path, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 3,
+                   s7_make_c_pointer(cbsc, tree_view),
+                   s7_make_c_pointer(cbsc, path),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static gboolean lg_tree_search(GtkTreeModel* model, gint column, const gchar* key, GtkTreeIter* iter, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return((gboolean)0);
+  return((gboolean)lg_boolean(s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 5,
+                   s7_make_c_pointer(cbsc, model),
+                   s7_make_integer(cbsc, column),
+                   s7_make_string(cbsc, key),
+                   s7_make_c_pointer(cbsc, iter),
+                   s7_cadr((s7_pointer)func_info)))));
+}
+
+static void lg_cell_data(GtkTreeViewColumn* tree_column, GtkCellRenderer* cell, GtkTreeModel* tree_model, GtkTreeIter* iter, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 5,
+                   s7_make_c_pointer(cbsc, tree_column),
+                   s7_make_c_pointer(cbsc, cell),
+                   s7_make_c_pointer(cbsc, tree_model),
+                   s7_make_c_pointer(cbsc, iter),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static gint lg_iter_compare(GtkTreeModel* model, GtkTreeIter* a, GtkTreeIter* b, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return((gint)0);
+  return((gint)s7_integer(s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 4,
+                   s7_make_c_pointer(cbsc, model),
+                   s7_make_c_pointer(cbsc, a),
+                   s7_make_c_pointer(cbsc, b),
+                   s7_cadr((s7_pointer)func_info)))));
+}
+
+static gboolean lg_tree_selection(GtkTreeSelection* selection, GtkTreeModel* model, GtkTreePath* path, gboolean path_currently_selected, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return((gboolean)0);
+  return((gboolean)lg_boolean(s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 5,
+                   s7_make_c_pointer(cbsc, selection),
+                   s7_make_c_pointer(cbsc, model),
+                   s7_make_c_pointer(cbsc, path),
+                   s7_make_boolean(cbsc, path_currently_selected),
+                   s7_cadr((s7_pointer)func_info)))));
+}
+
+static void lg_clip_get(GtkClipboard* clipboard, GtkSelectionData* selection_data, guint info, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 4,
+                   s7_make_c_pointer(cbsc, clipboard),
+                   s7_make_c_pointer(cbsc, selection_data),
+                   s7_make_integer(cbsc, info),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static void lg_clip_clear(GtkClipboard* clipboard, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_caddr((s7_pointer)func_info), 
+           s7_list(cbsc, 2,
+                   s7_make_c_pointer(cbsc, clipboard),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static gboolean lg_file_filter(const GtkFileFilterInfo* info, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return((gboolean)0);
+  return((gboolean)lg_boolean(s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 2,
+                   s7_make_c_pointer(cbsc, (void *)info),
+                   s7_cadr((s7_pointer)func_info)))));
+}
+
+static gboolean lg_entry_completion_match(GtkEntryCompletion* completion, const gchar* key, GtkTreeIter* iter, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return((gboolean)0);
+  return((gboolean)lg_boolean(s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 4,
+                   s7_make_c_pointer(cbsc, completion),
+                   s7_make_string(cbsc, key),
+                   s7_make_c_pointer(cbsc, iter),
+                   s7_cadr((s7_pointer)func_info)))));
+}
+
+static gboolean lg_row_separator(GtkTreeModel* model, GtkTreeIter* iter, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return((gboolean)0);
+  return((gboolean)lg_boolean(s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 3,
+                   s7_make_c_pointer(cbsc, model),
+                   s7_make_c_pointer(cbsc, iter),
+                   s7_cadr((s7_pointer)func_info)))));
+}
+
+static void lg_icon_view_foreach(GtkIconView* icon_view, GtkTreePath* path, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 3,
+                   s7_make_c_pointer(cbsc, icon_view),
+                   s7_make_c_pointer(cbsc, path),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static void lg_clip_image_received(GtkClipboard* clipboard, GdkPixbuf* pixbuf, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 3,
+                   s7_make_c_pointer(cbsc, clipboard),
+                   s7_make_c_pointer(cbsc, pixbuf),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static void lg_g_message_log_func(const gchar* domain, GLogLevelFlags log_level, const gchar* message, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 4,
+                   s7_make_string(cbsc, domain),
+                   s7_make_integer(cbsc, log_level),
+                   s7_make_string(cbsc, message),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static void lg_clip_rich_text_received(GtkClipboard* clipboard, GdkAtom format, const guint8* text, gsize length, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  #if (!(defined(__cplusplus)))
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 5,
+                   s7_make_c_pointer(cbsc, clipboard),
+                   s7_make_c_pointer(cbsc, format),
+                   s7_make_c_pointer(cbsc, (void *)text),
+                   s7_make_integer(cbsc, length),
+                   s7_cadr((s7_pointer)func_info)));
+  #endif
+}
+
+static void lg_search_position(GtkTreeView* tree_view, GtkWidget* search_dialog, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 3,
+                   s7_make_c_pointer(cbsc, tree_view),
+                   s7_make_c_pointer(cbsc, search_dialog),
+                   s7_cadr((s7_pointer)func_info)));
+}
+
+static gint lg_page_func(gint current_page, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return((gint)0);
+  return((gint)s7_integer(s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 2,
+                   s7_make_integer(cbsc, current_page),
+                   s7_cadr((s7_pointer)func_info)))));
+}
+
+static gint lg_recent_sort(GtkRecentInfo* a, GtkRecentInfo* b, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return((gint)0);
+  return((gint)s7_integer(s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 3,
+                   s7_make_c_pointer(cbsc, a),
+                   s7_make_c_pointer(cbsc, b),
+                   s7_cadr((s7_pointer)func_info)))));
+}
+
+#if GTK_CHECK_VERSION(3, 20, 0)
+static void lg_prepare_func(GdkSeat* seat, GdkWindow* window, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 3,
+                   s7_make_c_pointer(cbsc, seat),
+                   s7_make_c_pointer(cbsc, window),
+                   s7_cadr((s7_pointer)func_info)));
+}
+#endif
+
+#if GTK_CHECK_VERSION(3, 99, 0)
+static void lg_draw_func(GtkDrawingArea* self, gpointer func_info)
+{
+  if (!s7_is_list(cbsc, (s7_pointer)func_info)) return;
+  s7_apply_function(cbsc, 
+    s7_car((s7_pointer)func_info), 
+           s7_list(cbsc, 2,
+                   s7_make_c_pointer(cbsc, self),
+                   s7_cadr((s7_pointer)func_info)));
+}
+#endif
+
+
+static gboolean lg_func3(GtkWidget *w, GdkEventAny *ev, gpointer data)
+{
+  return(s7_apply_function(cbsc, s7_car((s7_pointer)data),
+                             s7_list(cbsc, 3, s7_make_c_pointer_with_type(cbsc, w, GtkWidget__sym, lg_false),
+                                              s7_make_c_pointer_with_type(cbsc, ev, GdkEventAny__sym, lg_false),
+                                              s7_cadr((s7_pointer)data))) != lg_false);
+}
+
+static gboolean lg_func4(GtkPrintOperation *op, GtkPrintContext *context, gint page_nr, gpointer data)
+{
+  return(s7_apply_function(cbsc, s7_car((s7_pointer)data),
+                            s7_list(cbsc, 4, s7_make_c_pointer_with_type(cbsc, op, GtkPrintOperation__sym, lg_false),
+                                             s7_make_c_pointer_with_type(cbsc, context, GtkPrintContext__sym, lg_false),
+                                             s7_make_integer(cbsc, page_nr),
+                                             s7_cadr((s7_pointer)data))) != lg_false);
+}
+
+static s7_pointer lg_g_unichar_validate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_validate "gboolean g_unichar_validate(gunichar ch)"
+  s7_pointer ch;
+  ch = s7_car(args);
+  if (!s7_is_integer(ch)) s7_wrong_type_arg_error(sc, "g_unichar_validate", 1, ch, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_validate(s7_integer(ch))));
+}
+
+static s7_pointer lg_g_unichar_isalnum(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_isalnum "gboolean g_unichar_isalnum(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_isalnum", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_isalnum(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_isalpha(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_isalpha "gboolean g_unichar_isalpha(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_isalpha", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_isalpha(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_iscntrl(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_iscntrl "gboolean g_unichar_iscntrl(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_iscntrl", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_iscntrl(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_isdefined(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_isdefined "gboolean g_unichar_isdefined(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_isdefined", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_isdefined(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_isdigit(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_isdigit "gboolean g_unichar_isdigit(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_isdigit", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_isdigit(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_isgraph(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_isgraph "gboolean g_unichar_isgraph(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_isgraph", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_isgraph(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_islower(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_islower "gboolean g_unichar_islower(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_islower", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_islower(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_ismark(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_ismark "gboolean g_unichar_ismark(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_ismark", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_ismark(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_isprint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_isprint "gboolean g_unichar_isprint(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_isprint", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_isprint(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_ispunct(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_ispunct "gboolean g_unichar_ispunct(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_ispunct", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_ispunct(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_isspace(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_isspace "gboolean g_unichar_isspace(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_isspace", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_isspace(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_istitle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_istitle "gboolean g_unichar_istitle(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_istitle", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_istitle(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_isupper(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_isupper "gboolean g_unichar_isupper(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_isupper", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_isupper(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_isxdigit(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_isxdigit "gboolean g_unichar_isxdigit(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_isxdigit", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_isxdigit(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_iswide(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_iswide "gboolean g_unichar_iswide(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_iswide", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_iswide(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_iswide_cjk(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_iswide_cjk "gboolean g_unichar_iswide_cjk(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_iswide_cjk", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_iswide_cjk(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_iszerowidth(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_iszerowidth "gboolean g_unichar_iszerowidth(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_iszerowidth", 1, c, "gunichar");
+  return(s7_make_boolean(sc, g_unichar_iszerowidth(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_toupper(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_toupper "gunichar g_unichar_toupper(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_toupper", 1, c, "gunichar");
+  return(s7_make_integer(sc, g_unichar_toupper(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_tolower(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_tolower "gunichar g_unichar_tolower(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_tolower", 1, c, "gunichar");
+  return(s7_make_integer(sc, g_unichar_tolower(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_totitle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_totitle "gunichar g_unichar_totitle(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_totitle", 1, c, "gunichar");
+  return(s7_make_integer(sc, g_unichar_totitle(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_digit_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_digit_value "gint g_unichar_digit_value(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_digit_value", 1, c, "gunichar");
+  return(s7_make_integer(sc, g_unichar_digit_value(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_xdigit_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_xdigit_value "gint g_unichar_xdigit_value(gunichar c)"
+  s7_pointer c;
+  c = s7_car(args);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_unichar_xdigit_value", 1, c, "gunichar");
+  return(s7_make_integer(sc, g_unichar_xdigit_value(s7_integer(c))));
+}
+
+static s7_pointer lg_g_unichar_combining_class(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unichar_combining_class "gint g_unichar_combining_class(gunichar uc)"
+  s7_pointer uc;
+  uc = s7_car(args);
+  if (!s7_is_integer(uc)) s7_wrong_type_arg_error(sc, "g_unichar_combining_class", 1, uc, "gunichar");
+  return(s7_make_integer(sc, g_unichar_combining_class(s7_integer(uc))));
+}
+
+static s7_pointer lg_g_unicode_canonical_ordering(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_unicode_canonical_ordering "void g_unicode_canonical_ordering(gunichar* string, gsize len)"
+  s7_pointer _p;
+  s7_pointer string, len;
+  _p = args;
+  string = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(string, gunichar__sym)) s7_wrong_type_arg_error(sc, "g_unicode_canonical_ordering", 1, string, "gunichar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "g_unicode_canonical_ordering", 2, len, "gsize");
+  g_unicode_canonical_ordering(s7_c_pointer(string), s7_integer(len));
+  return(lg_false);
+}
+
+static s7_pointer lg_g_utf8_get_char(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_get_char "gunichar g_utf8_get_char(gchar* p)"
+  s7_pointer p;
+  p = s7_car(args);
+  if (!s7_is_string(p)) s7_wrong_type_arg_error(sc, "g_utf8_get_char", 1, p, "gchar*");
+  return(s7_make_integer(sc, g_utf8_get_char((const gchar*)s7_string(p))));
+}
+
+static s7_pointer lg_g_utf8_get_char_validated(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_get_char_validated "gunichar g_utf8_get_char_validated(gchar* p, gssize max_len)"
+  s7_pointer _p;
+  s7_pointer p, max_len;
+  _p = args;
+  p = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(p)) s7_wrong_type_arg_error(sc, "g_utf8_get_char_validated", 1, p, "gchar*");
+  max_len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(max_len)) s7_wrong_type_arg_error(sc, "g_utf8_get_char_validated", 2, max_len, "gssize");
+  return(s7_make_integer(sc, g_utf8_get_char_validated((const gchar*)s7_string(p), s7_integer(max_len))));
+}
+
+static s7_pointer lg_g_utf8_prev_char(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_prev_char "gchar* g_utf8_prev_char(gchar* p)"
+  s7_pointer p;
+  p = s7_car(args);
+  if (!s7_is_string(p)) s7_wrong_type_arg_error(sc, "g_utf8_prev_char", 1, p, "gchar*");
+  return(s7_make_string(sc, g_utf8_prev_char((const gchar*)s7_string(p))));
+}
+
+static s7_pointer lg_g_utf8_find_next_char(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_find_next_char "gchar* g_utf8_find_next_char(gchar* p, gchar* end)"
+  s7_pointer _p;
+  s7_pointer p, end;
+  _p = args;
+  p = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(p)) s7_wrong_type_arg_error(sc, "g_utf8_find_next_char", 1, p, "gchar*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(end)) s7_wrong_type_arg_error(sc, "g_utf8_find_next_char", 2, end, "gchar*");
+  return(s7_make_string(sc, g_utf8_find_next_char((const gchar*)s7_string(p), (const gchar*)s7_string(end))));
+}
+
+static s7_pointer lg_g_utf8_find_prev_char(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_find_prev_char "gchar* g_utf8_find_prev_char(gchar* str, gchar* p)"
+  s7_pointer _p;
+  s7_pointer str, p;
+  _p = args;
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "g_utf8_find_prev_char", 1, str, "gchar*");
+  p = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(p)) s7_wrong_type_arg_error(sc, "g_utf8_find_prev_char", 2, p, "gchar*");
+  return(s7_make_string(sc, g_utf8_find_prev_char((const gchar*)s7_string(str), (const gchar*)s7_string(p))));
+}
+
+static s7_pointer lg_g_utf8_strlen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_strlen "glong g_utf8_strlen(gchar* p, gssize max)"
+  s7_pointer _p;
+  s7_pointer p, max;
+  _p = args;
+  p = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(p)) s7_wrong_type_arg_error(sc, "g_utf8_strlen", 1, p, "gchar*");
+  max = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(max)) s7_wrong_type_arg_error(sc, "g_utf8_strlen", 2, max, "gssize");
+  return(s7_make_integer(sc, g_utf8_strlen((const gchar*)s7_string(p), s7_integer(max))));
+}
+
+static s7_pointer lg_g_utf8_strchr(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_strchr "gchar* g_utf8_strchr(gchar* p, gssize len, gunichar c)"
+  s7_pointer _p;
+  s7_pointer p, len, c;
+  _p = args;
+  p = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(p)) s7_wrong_type_arg_error(sc, "g_utf8_strchr", 1, p, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "g_utf8_strchr", 2, len, "gssize");
+  c = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_utf8_strchr", 3, c, "gunichar");
+  return(s7_make_string(sc, g_utf8_strchr((const gchar*)s7_string(p), s7_integer(len), s7_integer(c))));
+}
+
+static s7_pointer lg_g_utf8_strrchr(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_strrchr "gchar* g_utf8_strrchr(gchar* p, gssize len, gunichar c)"
+  s7_pointer _p;
+  s7_pointer p, len, c;
+  _p = args;
+  p = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(p)) s7_wrong_type_arg_error(sc, "g_utf8_strrchr", 1, p, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "g_utf8_strrchr", 2, len, "gssize");
+  c = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(c)) s7_wrong_type_arg_error(sc, "g_utf8_strrchr", 3, c, "gunichar");
+  return(s7_make_string(sc, g_utf8_strrchr((const gchar*)s7_string(p), s7_integer(len), s7_integer(c))));
+}
+
+static s7_pointer lg_g_utf8_strreverse(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_strreverse "gchar* g_utf8_strreverse(gchar* str, gssize len)"
+  s7_pointer _p;
+  s7_pointer str, len;
+  _p = args;
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "g_utf8_strreverse", 1, str, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "g_utf8_strreverse", 2, len, "gssize");
+  return(s7_make_string(sc, g_utf8_strreverse((const gchar*)s7_string(str), s7_integer(len))));
+}
+
+static s7_pointer lg_g_utf8_validate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_validate "gboolean g_utf8_validate(gchar* str, gssize max_len, gchar** [end])"
+  s7_pointer _p;
+  s7_pointer str, max_len;
+  gchar* ref_end = NULL;
+  _p = args;
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "g_utf8_validate", 1, str, "gchar*");
+  max_len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(max_len)) s7_wrong_type_arg_error(sc, "g_utf8_validate", 2, max_len, "gssize");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, g_utf8_validate((const gchar*)s7_string(str), s7_integer(max_len), (const gchar**)&ref_end));
+      return(s7_list(sc, 2, result, s7_make_string(sc, ref_end)));
+   }
+}
+
+static s7_pointer lg_g_utf8_strup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_strup "gchar* g_utf8_strup(gchar* str, gssize len)"
+  s7_pointer _p;
+  s7_pointer str, len;
+  _p = args;
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "g_utf8_strup", 1, str, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "g_utf8_strup", 2, len, "gssize");
+  return(s7_make_string(sc, g_utf8_strup((const gchar*)s7_string(str), s7_integer(len))));
+}
+
+static s7_pointer lg_g_utf8_strdown(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_strdown "gchar* g_utf8_strdown(gchar* str, gssize len)"
+  s7_pointer _p;
+  s7_pointer str, len;
+  _p = args;
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "g_utf8_strdown", 1, str, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "g_utf8_strdown", 2, len, "gssize");
+  return(s7_make_string(sc, g_utf8_strdown((const gchar*)s7_string(str), s7_integer(len))));
+}
+
+static s7_pointer lg_g_utf8_casefold(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_casefold "gchar* g_utf8_casefold(gchar* str, gssize len)"
+  s7_pointer _p;
+  s7_pointer str, len;
+  _p = args;
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "g_utf8_casefold", 1, str, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "g_utf8_casefold", 2, len, "gssize");
+  return(s7_make_string(sc, g_utf8_casefold((const gchar*)s7_string(str), s7_integer(len))));
+}
+
+static s7_pointer lg_g_utf8_normalize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_normalize "gchar* g_utf8_normalize(gchar* str, gssize len, GNormalizeMode mode)"
+  s7_pointer _p;
+  s7_pointer str, len, mode;
+  _p = args;
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "g_utf8_normalize", 1, str, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "g_utf8_normalize", 2, len, "gssize");
+  mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mode)) s7_wrong_type_arg_error(sc, "g_utf8_normalize", 3, mode, "GNormalizeMode");
+  return(s7_make_string(sc, g_utf8_normalize((const gchar*)s7_string(str), s7_integer(len), s7_integer(mode))));
+}
+
+static s7_pointer lg_g_utf8_collate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_collate "gint g_utf8_collate(gchar* str1, gchar* str2)"
+  s7_pointer _p;
+  s7_pointer str1, str2;
+  _p = args;
+  str1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str1)) s7_wrong_type_arg_error(sc, "g_utf8_collate", 1, str1, "gchar*");
+  str2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str2)) s7_wrong_type_arg_error(sc, "g_utf8_collate", 2, str2, "gchar*");
+  return(s7_make_integer(sc, g_utf8_collate((const gchar*)s7_string(str1), (const gchar*)s7_string(str2))));
+}
+
+static s7_pointer lg_g_utf8_collate_key(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_collate_key "gchar* g_utf8_collate_key(gchar* str, gssize len)"
+  s7_pointer _p;
+  s7_pointer str, len;
+  _p = args;
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "g_utf8_collate_key", 1, str, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "g_utf8_collate_key", 2, len, "gssize");
+  return(s7_make_string(sc, g_utf8_collate_key((const gchar*)s7_string(str), s7_integer(len))));
+}
+
+static s7_pointer lg_g_utf8_collate_key_for_filename(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_utf8_collate_key_for_filename "gchar* g_utf8_collate_key_for_filename(gchar* str, gssize len)"
+  s7_pointer _p;
+  s7_pointer str, len;
+  _p = args;
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "g_utf8_collate_key_for_filename", 1, str, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "g_utf8_collate_key_for_filename", 2, len, "gssize");
+  return(s7_make_string(sc, g_utf8_collate_key_for_filename((const gchar*)s7_string(str), s7_integer(len))));
+}
+
+static s7_pointer lg_g_cclosure_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_cclosure_new "GClosure* g_cclosure_new(GCallback func, lambda_data func_info, GClosureNotify destroy_data)"
+  s7_pointer _p;
+  s7_pointer func, func_info, destroy_data;
+  _p = args;
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GCallback_sym)) s7_wrong_type_arg_error(sc, "g_cclosure_new", 1, func, "GCallback");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "g_cclosure_new", 2, func_info, "lambda_data");
+  destroy_data = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(destroy_data, GClosureNotify_sym)) && (destroy_data != lg_false)) s7_wrong_type_arg_error(sc, "g_cclosure_new", 3, destroy_data, "GClosureNotify");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    result = s7_make_c_pointer(sc, g_cclosure_new(s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(destroy_data)));
+    return(result);
+   }
+}
+
+static s7_pointer lg_g_signal_newv(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_newv "guint g_signal_newv(gchar* signal_name, GType itype, GSignalFlags signal_flags, \
+GClosure* class_closure, GSignalAccumulator accumulator, gpointer accu_data, GSignalCMarshaller c_marshaller, \
+GType return_type, guint n_params, GType* param_types)"
+  s7_pointer _p;
+  s7_pointer signal_name, itype, signal_flags, class_closure, accumulator, accu_data, c_marshaller, return_type, n_params, param_types;
+  _p = args;
+  signal_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(signal_name)) s7_wrong_type_arg_error(sc, "g_signal_newv", 1, signal_name, "gchar*");
+  itype = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(itype)) s7_wrong_type_arg_error(sc, "g_signal_newv", 2, itype, "GType");
+  signal_flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(signal_flags)) s7_wrong_type_arg_error(sc, "g_signal_newv", 3, signal_flags, "GSignalFlags");
+  class_closure = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(class_closure, GClosure__sym)) && (class_closure != lg_false)) s7_wrong_type_arg_error(sc, "g_signal_newv", 4, class_closure, "GClosure*");
+  accumulator = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accumulator, GSignalAccumulator_sym)) s7_wrong_type_arg_error(sc, "g_signal_newv", 5, accumulator, "GSignalAccumulator");
+  accu_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accu_data, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_newv", 6, accu_data, "gpointer");
+  c_marshaller = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(c_marshaller, GSignalCMarshaller_sym)) s7_wrong_type_arg_error(sc, "g_signal_newv", 7, c_marshaller, "GSignalCMarshaller");
+  return_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(return_type)) s7_wrong_type_arg_error(sc, "g_signal_newv", 8, return_type, "GType");
+  n_params = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_params)) s7_wrong_type_arg_error(sc, "g_signal_newv", 9, n_params, "guint");
+  param_types = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(param_types, GType__sym)) s7_wrong_type_arg_error(sc, "g_signal_newv", 10, param_types, "GType*");
+  return(s7_make_integer(sc, g_signal_newv(s7_string(signal_name), s7_integer(itype), s7_integer(signal_flags), s7_c_pointer(class_closure), s7_c_pointer(accumulator), s7_c_pointer(accu_data), s7_c_pointer(c_marshaller), s7_integer(return_type), s7_integer(n_params), s7_c_pointer(param_types))));
+}
+
+static s7_pointer lg_g_signal_lookup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_lookup "guint g_signal_lookup(gchar* name, GType itype)"
+  s7_pointer _p;
+  s7_pointer name, itype;
+  _p = args;
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "g_signal_lookup", 1, name, "gchar*");
+  itype = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(itype)) s7_wrong_type_arg_error(sc, "g_signal_lookup", 2, itype, "GType");
+  return(s7_make_integer(sc, g_signal_lookup(s7_string(name), s7_integer(itype))));
+}
+
+static s7_pointer lg_g_signal_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_name "gchar* g_signal_name(guint signal_id)"
+  s7_pointer signal_id;
+  signal_id = s7_car(args);
+  if (!s7_is_integer(signal_id)) s7_wrong_type_arg_error(sc, "g_signal_name", 1, signal_id, "guint");
+  return(s7_make_string(sc, g_signal_name(s7_integer(signal_id))));
+}
+
+static s7_pointer lg_g_signal_query(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_query "void g_signal_query(guint signal_id, GSignalQuery* query)"
+  s7_pointer _p;
+  s7_pointer signal_id, query;
+  _p = args;
+  signal_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(signal_id)) s7_wrong_type_arg_error(sc, "g_signal_query", 1, signal_id, "guint");
+  query = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(query, GSignalQuery__sym)) s7_wrong_type_arg_error(sc, "g_signal_query", 2, query, "GSignalQuery*");
+  g_signal_query(s7_integer(signal_id), s7_c_pointer(query));
+  return(lg_false);
+}
+
+static s7_pointer lg_g_signal_list_ids(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_list_ids "guint* g_signal_list_ids(GType itype, guint* n_ids)"
+  s7_pointer _p;
+  s7_pointer itype, n_ids;
+  _p = args;
+  itype = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(itype)) s7_wrong_type_arg_error(sc, "g_signal_list_ids", 1, itype, "GType");
+  n_ids = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(n_ids, guint__sym)) s7_wrong_type_arg_error(sc, "g_signal_list_ids", 2, n_ids, "guint*");
+  return(s7_make_type_with_c_pointer(sc, guint__sym, g_signal_list_ids(s7_integer(itype), s7_c_pointer(n_ids))));
+}
+
+static s7_pointer lg_g_signal_parse_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_parse_name "gboolean g_signal_parse_name(gchar* detailed_signal, GType itype, guint* [signal_id_p], \
+GQuark* [detail_p], gboolean force_detail_quark)"
+  s7_pointer _p;
+  s7_pointer detailed_signal, itype, force_detail_quark;
+  guint ref_signal_id_p;
+  GQuark ref_detail_p;
+  _p = args;
+  detailed_signal = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(detailed_signal)) s7_wrong_type_arg_error(sc, "g_signal_parse_name", 1, detailed_signal, "gchar*");
+  itype = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(itype)) s7_wrong_type_arg_error(sc, "g_signal_parse_name", 2, itype, "GType");
+  force_detail_quark = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(force_detail_quark)) s7_wrong_type_arg_error(sc, "g_signal_parse_name", 5, force_detail_quark, "gboolean");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, g_signal_parse_name(s7_string(detailed_signal), s7_integer(itype), &ref_signal_id_p, &ref_detail_p, lg_boolean(force_detail_quark)));
+      return(s7_list(sc, 3, result, s7_make_integer(sc, ref_signal_id_p), s7_make_integer(sc, ref_detail_p)));
+   }
+}
+
+static s7_pointer lg_g_signal_get_invocation_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_get_invocation_hint "GSignalInvocationHint* g_signal_get_invocation_hint(gpointer instance)"
+  s7_pointer instance;
+  instance = s7_car(args);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_get_invocation_hint", 1, instance, "gpointer");
+  return(s7_make_type_with_c_pointer(sc, GSignalInvocationHint__sym, g_signal_get_invocation_hint(s7_c_pointer(instance))));
+}
+
+static s7_pointer lg_g_signal_stop_emission(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_stop_emission "void g_signal_stop_emission(gpointer instance, guint signal_id, GQuark detail)"
+  s7_pointer _p;
+  s7_pointer instance, signal_id, detail;
+  _p = args;
+  instance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_stop_emission", 1, instance, "gpointer");
+  signal_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(signal_id)) s7_wrong_type_arg_error(sc, "g_signal_stop_emission", 2, signal_id, "guint");
+  detail = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(detail)) s7_wrong_type_arg_error(sc, "g_signal_stop_emission", 3, detail, "GQuark");
+  g_signal_stop_emission(s7_c_pointer(instance), s7_integer(signal_id), s7_integer(detail));
+  return(lg_false);
+}
+
+static s7_pointer lg_g_signal_stop_emission_by_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_stop_emission_by_name "void g_signal_stop_emission_by_name(gpointer instance, gchar* detailed_signal)"
+  s7_pointer _p;
+  s7_pointer instance, detailed_signal;
+  _p = args;
+  instance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_stop_emission_by_name", 1, instance, "gpointer");
+  detailed_signal = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(detailed_signal)) s7_wrong_type_arg_error(sc, "g_signal_stop_emission_by_name", 2, detailed_signal, "gchar*");
+  g_signal_stop_emission_by_name(s7_c_pointer(instance), s7_string(detailed_signal));
+  return(lg_false);
+}
+
+static s7_pointer lg_g_signal_add_emission_hook(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_add_emission_hook "gulong g_signal_add_emission_hook(guint signal_id, GQuark quark, \
+GSignalEmissionHook hook_func, lambda_data func_info, GtkDestroyNotify data_destroy)"
+  s7_pointer _p;
+  s7_pointer signal_id, quark, hook_func, func_info, data_destroy;
+  _p = args;
+  signal_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(signal_id)) s7_wrong_type_arg_error(sc, "g_signal_add_emission_hook", 1, signal_id, "guint");
+  quark = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(quark)) s7_wrong_type_arg_error(sc, "g_signal_add_emission_hook", 2, quark, "GQuark");
+  hook_func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(hook_func, GSignalEmissionHook_sym)) s7_wrong_type_arg_error(sc, "g_signal_add_emission_hook", 3, hook_func, "GSignalEmissionHook");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "g_signal_add_emission_hook", 4, func_info, "lambda_data");
+  data_destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data_destroy, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "g_signal_add_emission_hook", 5, data_destroy, "GtkDestroyNotify");
+  {
+    s7_pointer result;
+    s7_pointer lg_ptr = s7_list(sc, 5, lg_false, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 3, data_destroy);
+    result = s7_make_integer(sc, g_signal_add_emission_hook(s7_integer(signal_id), s7_integer(quark), s7_c_pointer(hook_func), (gpointer)lg_ptr, s7_c_pointer(data_destroy)));
+    return(result);
+   }
+}
+
+static s7_pointer lg_g_signal_remove_emission_hook(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_remove_emission_hook "void g_signal_remove_emission_hook(guint signal_id, gulong hook_id)"
+  s7_pointer _p;
+  s7_pointer signal_id, hook_id;
+  _p = args;
+  signal_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(signal_id)) s7_wrong_type_arg_error(sc, "g_signal_remove_emission_hook", 1, signal_id, "guint");
+  hook_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hook_id)) s7_wrong_type_arg_error(sc, "g_signal_remove_emission_hook", 2, hook_id, "gulong");
+  g_signal_remove_emission_hook(s7_integer(signal_id), s7_integer(hook_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_g_signal_has_handler_pending(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_has_handler_pending "gboolean g_signal_has_handler_pending(gpointer instance, guint signal_id, \
+GQuark detail, gboolean may_be_blocked)"
+  s7_pointer _p;
+  s7_pointer instance, signal_id, detail, may_be_blocked;
+  _p = args;
+  instance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_has_handler_pending", 1, instance, "gpointer");
+  signal_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(signal_id)) s7_wrong_type_arg_error(sc, "g_signal_has_handler_pending", 2, signal_id, "guint");
+  detail = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(detail)) s7_wrong_type_arg_error(sc, "g_signal_has_handler_pending", 3, detail, "GQuark");
+  may_be_blocked = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(may_be_blocked)) s7_wrong_type_arg_error(sc, "g_signal_has_handler_pending", 4, may_be_blocked, "gboolean");
+  return(s7_make_boolean(sc, g_signal_has_handler_pending(s7_c_pointer(instance), s7_integer(signal_id), s7_integer(detail), lg_boolean(may_be_blocked))));
+}
+
+static s7_pointer lg_g_signal_connect_closure_by_id(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_connect_closure_by_id "gulong g_signal_connect_closure_by_id(gpointer instance, \
+guint signal_id, GQuark detail, GClosure* closure, gboolean after)"
+  s7_pointer _p;
+  s7_pointer instance, signal_id, detail, closure, after;
+  _p = args;
+  instance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_connect_closure_by_id", 1, instance, "gpointer");
+  signal_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(signal_id)) s7_wrong_type_arg_error(sc, "g_signal_connect_closure_by_id", 2, signal_id, "guint");
+  detail = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(detail)) s7_wrong_type_arg_error(sc, "g_signal_connect_closure_by_id", 3, detail, "GQuark");
+  closure = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(closure, GClosure__sym)) s7_wrong_type_arg_error(sc, "g_signal_connect_closure_by_id", 4, closure, "GClosure*");
+  after = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(after)) s7_wrong_type_arg_error(sc, "g_signal_connect_closure_by_id", 5, after, "gboolean");
+  return(s7_make_integer(sc, g_signal_connect_closure_by_id(s7_c_pointer(instance), s7_integer(signal_id), s7_integer(detail), s7_c_pointer(closure), lg_boolean(after))));
+}
+
+static s7_pointer lg_g_signal_connect_closure(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_connect_closure "gulong g_signal_connect_closure(gpointer instance, gchar* detailed_signal, \
+GClosure* closure, gboolean after)"
+  s7_pointer _p;
+  s7_pointer instance, detailed_signal, closure, after;
+  _p = args;
+  instance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_connect_closure", 1, instance, "gpointer");
+  detailed_signal = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(detailed_signal)) s7_wrong_type_arg_error(sc, "g_signal_connect_closure", 2, detailed_signal, "gchar*");
+  closure = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(closure, GClosure__sym)) s7_wrong_type_arg_error(sc, "g_signal_connect_closure", 3, closure, "GClosure*");
+  after = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(after)) s7_wrong_type_arg_error(sc, "g_signal_connect_closure", 4, after, "gboolean");
+  return(s7_make_integer(sc, g_signal_connect_closure(s7_c_pointer(instance), s7_string(detailed_signal), s7_c_pointer(closure), lg_boolean(after))));
+}
+
+static s7_pointer lg_g_signal_connect_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_connect_data "gulong g_signal_connect_data(gpointer instance, gchar* detailed_signal, \
+GCallback func, lambda_data func_info, GClosureNotify destroy_data, GConnectFlags connect_flags)"
+  s7_pointer _p;
+  s7_pointer instance, detailed_signal, func, func_info, destroy_data, connect_flags;
+  _p = args;
+  instance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_connect_data", 1, instance, "gpointer");
+  detailed_signal = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(detailed_signal)) s7_wrong_type_arg_error(sc, "g_signal_connect_data", 2, detailed_signal, "gchar*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GCallback_sym)) s7_wrong_type_arg_error(sc, "g_signal_connect_data", 3, func, "GCallback");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "g_signal_connect_data", 4, func_info, "lambda_data");
+  destroy_data = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(destroy_data, GClosureNotify_sym)) && (destroy_data != lg_false)) s7_wrong_type_arg_error(sc, "g_signal_connect_data", 5, destroy_data, "GClosureNotify");
+  connect_flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(connect_flags)) s7_wrong_type_arg_error(sc, "g_signal_connect_data", 6, connect_flags, "GConnectFlags");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    result = s7_make_integer(sc, g_signal_connect_data(s7_c_pointer(instance), s7_string(detailed_signal), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(destroy_data), s7_integer(connect_flags)));
+    return(result);
+   }
+}
+
+static s7_pointer lg_g_signal_handler_block(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_handler_block "void g_signal_handler_block(gpointer instance, gulong handler_id)"
+  s7_pointer _p;
+  s7_pointer instance, handler_id;
+  _p = args;
+  instance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handler_block", 1, instance, "gpointer");
+  handler_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(handler_id)) s7_wrong_type_arg_error(sc, "g_signal_handler_block", 2, handler_id, "gulong");
+  g_signal_handler_block(s7_c_pointer(instance), s7_integer(handler_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_g_signal_handler_unblock(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_handler_unblock "void g_signal_handler_unblock(gpointer instance, gulong handler_id)"
+  s7_pointer _p;
+  s7_pointer instance, handler_id;
+  _p = args;
+  instance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handler_unblock", 1, instance, "gpointer");
+  handler_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(handler_id)) s7_wrong_type_arg_error(sc, "g_signal_handler_unblock", 2, handler_id, "gulong");
+  g_signal_handler_unblock(s7_c_pointer(instance), s7_integer(handler_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_g_signal_handler_disconnect(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_handler_disconnect "void g_signal_handler_disconnect(gpointer instance, gulong handler_id)"
+  s7_pointer _p;
+  s7_pointer instance, handler_id;
+  _p = args;
+  instance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handler_disconnect", 1, instance, "gpointer");
+  handler_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(handler_id)) s7_wrong_type_arg_error(sc, "g_signal_handler_disconnect", 2, handler_id, "gulong");
+  g_signal_handler_disconnect(s7_c_pointer(instance), s7_integer(handler_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_g_signal_handler_is_connected(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_handler_is_connected "gboolean g_signal_handler_is_connected(gpointer instance, \
+gulong handler_id)"
+  s7_pointer _p;
+  s7_pointer instance, handler_id;
+  _p = args;
+  instance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handler_is_connected", 1, instance, "gpointer");
+  handler_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(handler_id)) s7_wrong_type_arg_error(sc, "g_signal_handler_is_connected", 2, handler_id, "gulong");
+  return(s7_make_boolean(sc, g_signal_handler_is_connected(s7_c_pointer(instance), s7_integer(handler_id))));
+}
+
+static s7_pointer lg_g_signal_handler_find(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_handler_find "gulong g_signal_handler_find(gpointer instance, GSignalMatchType mask, \
+guint signal_id, GQuark detail, GClosure* closure, gpointer func, gpointer data)"
+  s7_pointer _p;
+  s7_pointer instance, mask, signal_id, detail, closure, func, data;
+  _p = args;
+  instance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handler_find", 1, instance, "gpointer");
+  mask = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mask)) s7_wrong_type_arg_error(sc, "g_signal_handler_find", 2, mask, "GSignalMatchType");
+  signal_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(signal_id)) s7_wrong_type_arg_error(sc, "g_signal_handler_find", 3, signal_id, "guint");
+  detail = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(detail)) s7_wrong_type_arg_error(sc, "g_signal_handler_find", 4, detail, "GQuark");
+  closure = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(closure, GClosure__sym)) && (closure != lg_false)) s7_wrong_type_arg_error(sc, "g_signal_handler_find", 5, closure, "GClosure*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handler_find", 6, func, "gpointer");
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handler_find", 7, data, "gpointer");
+  return(s7_make_integer(sc, g_signal_handler_find(s7_c_pointer(instance), s7_integer(mask), s7_integer(signal_id), s7_integer(detail), s7_c_pointer(closure), s7_c_pointer(func), s7_c_pointer(data))));
+}
+
+static s7_pointer lg_g_signal_handlers_block_matched(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_handlers_block_matched "guint g_signal_handlers_block_matched(gpointer instance, \
+GSignalMatchType mask, guint signal_id, GQuark detail, GClosure* closure, gpointer func, gpointer data)"
+  s7_pointer _p;
+  s7_pointer instance, mask, signal_id, detail, closure, func, data;
+  _p = args;
+  instance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handlers_block_matched", 1, instance, "gpointer");
+  mask = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mask)) s7_wrong_type_arg_error(sc, "g_signal_handlers_block_matched", 2, mask, "GSignalMatchType");
+  signal_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(signal_id)) s7_wrong_type_arg_error(sc, "g_signal_handlers_block_matched", 3, signal_id, "guint");
+  detail = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(detail)) s7_wrong_type_arg_error(sc, "g_signal_handlers_block_matched", 4, detail, "GQuark");
+  closure = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(closure, GClosure__sym)) && (closure != lg_false)) s7_wrong_type_arg_error(sc, "g_signal_handlers_block_matched", 5, closure, "GClosure*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handlers_block_matched", 6, func, "gpointer");
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handlers_block_matched", 7, data, "gpointer");
+  return(s7_make_integer(sc, g_signal_handlers_block_matched(s7_c_pointer(instance), s7_integer(mask), s7_integer(signal_id), s7_integer(detail), s7_c_pointer(closure), s7_c_pointer(func), s7_c_pointer(data))));
+}
+
+static s7_pointer lg_g_signal_handlers_unblock_matched(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_handlers_unblock_matched "guint g_signal_handlers_unblock_matched(gpointer instance, \
+GSignalMatchType mask, guint signal_id, GQuark detail, GClosure* closure, gpointer func, gpointer data)"
+  s7_pointer _p;
+  s7_pointer instance, mask, signal_id, detail, closure, func, data;
+  _p = args;
+  instance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handlers_unblock_matched", 1, instance, "gpointer");
+  mask = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mask)) s7_wrong_type_arg_error(sc, "g_signal_handlers_unblock_matched", 2, mask, "GSignalMatchType");
+  signal_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(signal_id)) s7_wrong_type_arg_error(sc, "g_signal_handlers_unblock_matched", 3, signal_id, "guint");
+  detail = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(detail)) s7_wrong_type_arg_error(sc, "g_signal_handlers_unblock_matched", 4, detail, "GQuark");
+  closure = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(closure, GClosure__sym)) && (closure != lg_false)) s7_wrong_type_arg_error(sc, "g_signal_handlers_unblock_matched", 5, closure, "GClosure*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handlers_unblock_matched", 6, func, "gpointer");
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handlers_unblock_matched", 7, data, "gpointer");
+  return(s7_make_integer(sc, g_signal_handlers_unblock_matched(s7_c_pointer(instance), s7_integer(mask), s7_integer(signal_id), s7_integer(detail), s7_c_pointer(closure), s7_c_pointer(func), s7_c_pointer(data))));
+}
+
+static s7_pointer lg_g_signal_handlers_disconnect_matched(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_handlers_disconnect_matched "guint g_signal_handlers_disconnect_matched(gpointer instance, \
+GSignalMatchType mask, guint signal_id, GQuark detail, GClosure* closure, gpointer func, gpointer data)"
+  s7_pointer _p;
+  s7_pointer instance, mask, signal_id, detail, closure, func, data;
+  _p = args;
+  instance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handlers_disconnect_matched", 1, instance, "gpointer");
+  mask = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mask)) s7_wrong_type_arg_error(sc, "g_signal_handlers_disconnect_matched", 2, mask, "GSignalMatchType");
+  signal_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(signal_id)) s7_wrong_type_arg_error(sc, "g_signal_handlers_disconnect_matched", 3, signal_id, "guint");
+  detail = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(detail)) s7_wrong_type_arg_error(sc, "g_signal_handlers_disconnect_matched", 4, detail, "GQuark");
+  closure = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(closure, GClosure__sym)) && (closure != lg_false)) s7_wrong_type_arg_error(sc, "g_signal_handlers_disconnect_matched", 5, closure, "GClosure*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handlers_disconnect_matched", 6, func, "gpointer");
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handlers_disconnect_matched", 7, data, "gpointer");
+  return(s7_make_integer(sc, g_signal_handlers_disconnect_matched(s7_c_pointer(instance), s7_integer(mask), s7_integer(signal_id), s7_integer(detail), s7_c_pointer(closure), s7_c_pointer(func), s7_c_pointer(data))));
+}
+
+static s7_pointer lg_g_signal_handlers_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_handlers_destroy "void g_signal_handlers_destroy(gpointer instance)"
+  s7_pointer instance;
+  instance = s7_car(args);
+  if (!s7_is_c_pointer_of_type(instance, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_signal_handlers_destroy", 1, instance, "gpointer");
+  g_signal_handlers_destroy(s7_c_pointer(instance));
+  return(lg_false);
+}
+
+static s7_pointer lg_g_object_ref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_object_ref "gpointer g_object_ref(gpointer object)"
+  s7_pointer object;
+  object = s7_car(args);
+  if (!s7_is_c_pointer_of_type(object, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_object_ref", 1, object, "gpointer");
+  return(s7_make_type_with_c_pointer(sc, gpointer_sym, g_object_ref(s7_c_pointer(object))));
+}
+
+static s7_pointer lg_g_object_unref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_object_unref "void g_object_unref(gpointer object)"
+  s7_pointer object;
+  object = s7_car(args);
+  if (!s7_is_c_pointer_of_type(object, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_object_unref", 1, object, "gpointer");
+  g_object_unref(s7_c_pointer(object));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_cursor_new_for_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cursor_new_for_display "GdkCursor* gdk_cursor_new_for_display(GdkDisplay* display, GdkCursorType cursor_type)"
+  s7_pointer _p;
+  s7_pointer display, cursor_type;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_cursor_new_for_display", 1, display, "GdkDisplay*");
+  cursor_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(cursor_type)) s7_wrong_type_arg_error(sc, "gdk_cursor_new_for_display", 2, cursor_type, "GdkCursorType");
+  return(s7_make_type_with_c_pointer(sc, GdkCursor__sym, gdk_cursor_new_for_display(s7_c_pointer(display), s7_integer(cursor_type))));
+}
+
+static s7_pointer lg_gdk_cursor_get_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cursor_get_display "GdkDisplay* gdk_cursor_get_display(GdkCursor* cursor)"
+  s7_pointer cursor;
+  cursor = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cursor, GdkCursor__sym)) s7_wrong_type_arg_error(sc, "gdk_cursor_get_display", 1, cursor, "GdkCursor*");
+  return(s7_make_type_with_c_pointer(sc, GdkDisplay__sym, gdk_cursor_get_display(s7_c_pointer(cursor))));
+}
+
+static s7_pointer lg_gdk_drag_status(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_status "void gdk_drag_status(GdkDragContext* context, GdkDragAction action, guint32 time)"
+  s7_pointer _p;
+  s7_pointer context, action, time;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_status", 1, context, "GdkDragContext*");
+  action = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(action)) s7_wrong_type_arg_error(sc, "gdk_drag_status", 2, action, "GdkDragAction");
+  time = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(time)) s7_wrong_type_arg_error(sc, "gdk_drag_status", 3, time, "guint32");
+  gdk_drag_status(s7_c_pointer(context), s7_integer(action), s7_integer(time));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_drop_reply(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drop_reply "void gdk_drop_reply(GdkDragContext* context, gboolean ok, guint32 time)"
+  s7_pointer _p;
+  s7_pointer context, ok, time;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drop_reply", 1, context, "GdkDragContext*");
+  ok = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(ok)) s7_wrong_type_arg_error(sc, "gdk_drop_reply", 2, ok, "gboolean");
+  time = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(time)) s7_wrong_type_arg_error(sc, "gdk_drop_reply", 3, time, "guint32");
+  gdk_drop_reply(s7_c_pointer(context), lg_boolean(ok), s7_integer(time));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_drop_finish(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drop_finish "void gdk_drop_finish(GdkDragContext* context, gboolean success, guint32 time)"
+  s7_pointer _p;
+  s7_pointer context, success, time;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drop_finish", 1, context, "GdkDragContext*");
+  success = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(success)) s7_wrong_type_arg_error(sc, "gdk_drop_finish", 2, success, "gboolean");
+  time = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(time)) s7_wrong_type_arg_error(sc, "gdk_drop_finish", 3, time, "guint32");
+  gdk_drop_finish(s7_c_pointer(context), lg_boolean(success), s7_integer(time));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_drag_get_selection(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_get_selection "GdkAtom gdk_drag_get_selection(GdkDragContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_get_selection", 1, context, "GdkDragContext*");
+  return(s7_make_type_with_c_pointer(sc, GdkAtom_sym, gdk_drag_get_selection(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_drag_begin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_begin "GdkDragContext* gdk_drag_begin(GdkWindow* window, GList* targets)"
+  s7_pointer _p;
+  s7_pointer window, targets;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_begin", 1, window, "GdkWindow*");
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GList__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_begin", 2, targets, "GList*");
+  return(s7_make_type_with_c_pointer(sc, GdkDragContext__sym, gdk_drag_begin(s7_c_pointer(window), s7_c_pointer(targets))));
+}
+
+static s7_pointer lg_gdk_drag_drop(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_drop "void gdk_drag_drop(GdkDragContext* context, guint32 time)"
+  s7_pointer _p;
+  s7_pointer context, time;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_drop", 1, context, "GdkDragContext*");
+  time = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(time)) s7_wrong_type_arg_error(sc, "gdk_drag_drop", 2, time, "guint32");
+  gdk_drag_drop(s7_c_pointer(context), s7_integer(time));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_drag_abort(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_abort "void gdk_drag_abort(GdkDragContext* context, guint32 time)"
+  s7_pointer _p;
+  s7_pointer context, time;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_abort", 1, context, "GdkDragContext*");
+  time = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(time)) s7_wrong_type_arg_error(sc, "gdk_drag_abort", 2, time, "guint32");
+  gdk_drag_abort(s7_c_pointer(context), s7_integer(time));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_events_pending(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_events_pending "gboolean gdk_events_pending( void)"
+  return(s7_make_boolean(sc, gdk_events_pending()));
+}
+
+static s7_pointer lg_gdk_event_get(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get "GdkEvent* gdk_event_get( void)"
+  return(s7_make_type_with_c_pointer(sc, GdkEvent__sym, gdk_event_get()));
+}
+
+static s7_pointer lg_gdk_event_peek(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_peek "GdkEvent* gdk_event_peek( void)"
+  return(s7_make_type_with_c_pointer(sc, GdkEvent__sym, gdk_event_peek()));
+}
+
+static s7_pointer lg_gdk_event_put(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_put "void gdk_event_put(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_put", 1, event, "GdkEvent*");
+  gdk_event_put(s7_c_pointer(event));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_event_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_copy "GdkEvent* gdk_event_copy(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_copy", 1, event, "GdkEvent*");
+  return(s7_make_type_with_c_pointer(sc, GdkEvent__sym, gdk_event_copy(s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gdk_event_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_free "void gdk_event_free(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_free", 1, event, "GdkEvent*");
+  gdk_event_free(s7_c_pointer(event));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_event_get_time(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_time "guint32 gdk_event_get_time(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if ((!s7_is_c_pointer_of_type(event, GdkEvent__sym)) && (event != lg_false)) s7_wrong_type_arg_error(sc, "gdk_event_get_time", 1, event, "GdkEvent*");
+  return(s7_make_integer(sc, gdk_event_get_time(s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gdk_event_get_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_state "gboolean gdk_event_get_state(GdkEvent* event, GdkModifierType* [state])"
+  s7_pointer _p;
+  s7_pointer event;
+  GdkModifierType ref_state;
+  _p = args;
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_state", 1, event, "GdkEvent*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_event_get_state(s7_c_pointer(event), &ref_state));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_state)));
+   }
+}
+
+static s7_pointer lg_gdk_event_get_coords(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_coords "gboolean gdk_event_get_coords(GdkEvent* event, gdouble* [x_win], gdouble* [y_win])"
+  s7_pointer _p;
+  s7_pointer event;
+  gdouble ref_x_win;
+  gdouble ref_y_win;
+  _p = args;
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_coords", 1, event, "GdkEvent*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_event_get_coords(s7_c_pointer(event), &ref_x_win, &ref_y_win));
+      return(s7_list(sc, 3, result, s7_make_real(sc, ref_x_win), s7_make_real(sc, ref_y_win)));
+   }
+}
+
+static s7_pointer lg_gdk_event_get_root_coords(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_root_coords "gboolean gdk_event_get_root_coords(GdkEvent* event, gdouble* [x_root], \
+gdouble* [y_root])"
+  s7_pointer _p;
+  s7_pointer event;
+  gdouble ref_x_root;
+  gdouble ref_y_root;
+  _p = args;
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_root_coords", 1, event, "GdkEvent*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_event_get_root_coords(s7_c_pointer(event), &ref_x_root, &ref_y_root));
+      return(s7_list(sc, 3, result, s7_make_real(sc, ref_x_root), s7_make_real(sc, ref_y_root)));
+   }
+}
+
+static s7_pointer lg_gdk_event_handler_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_handler_set "void gdk_event_handler_set(GdkEventFunc func, lambda_data func_info, \
+GtkDestroyNotify notify)"
+  s7_pointer _p;
+  s7_pointer func, func_info, notify;
+  _p = args;
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GdkEventFunc_sym)) s7_wrong_type_arg_error(sc, "gdk_event_handler_set", 1, func, "GdkEventFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gdk_event_handler_set", 2, func_info, "lambda_data");
+  notify = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notify, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gdk_event_handler_set", 3, notify, "GtkDestroyNotify");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 3, notify);
+    gdk_event_handler_set(s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(notify));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gdk_set_show_events(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_set_show_events "void gdk_set_show_events(gboolean show_events)"
+  s7_pointer show_events;
+  show_events = s7_car(args);
+  if (!s7_is_boolean(show_events)) s7_wrong_type_arg_error(sc, "gdk_set_show_events", 1, show_events, "gboolean");
+  gdk_set_show_events(lg_boolean(show_events));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_get_show_events(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_get_show_events "gboolean gdk_get_show_events( void)"
+  return(s7_make_boolean(sc, gdk_get_show_events()));
+}
+
+static s7_pointer lg_gdk_init(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_init "void gdk_init(gint* {argc}, gchar*** |argv|)"
+  s7_pointer argc, argv;
+  argc = s7_car(args);
+  argv = s7_cadr(args);
+  gint ref_argc;
+  gchar** ref_argv = NULL;
+  ref_argc = (gint)s7_integer(argc);
+  ref_argv = (gchar**)calloc(ref_argc, sizeof(gchar*));
+  {
+    int i;
+    s7_pointer lst;
+    lst = argv;
+    for (i = 0; i < ref_argc; i++, lst = s7_cdr(lst)) ref_argv[i] = (gchar*)s7_string(s7_car(lst));
+  }
+  gdk_init(&ref_argc, &ref_argv);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_argc), s7_make_c_pointer(sc, ref_argv)));
+}
+
+static s7_pointer lg_gdk_init_check(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_init_check "gboolean gdk_init_check(gint* {argc}, gchar*** |argv|)"
+  s7_pointer argc, argv;
+  argc = s7_car(args);
+  argv = s7_cadr(args);
+  gint ref_argc;
+  gchar** ref_argv = NULL;
+  ref_argc = (gint)s7_integer(argc);
+  ref_argv = (gchar**)calloc(ref_argc, sizeof(gchar*));
+  {
+    int i;
+    s7_pointer lst;
+    lst = argv;
+    for (i = 0; i < ref_argc; i++, lst = s7_cdr(lst)) ref_argv[i] = (gchar*)s7_string(s7_car(lst));
+  }
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_init_check(&ref_argc, &ref_argv));
+      return(s7_list(sc, 3, result, s7_make_integer(sc, ref_argc), s7_make_c_pointer(sc, ref_argv)));
+   }
+}
+
+static s7_pointer lg_gdk_get_program_class(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_get_program_class "char* gdk_get_program_class( void)"
+  return(s7_make_string(sc, gdk_get_program_class()));
+}
+
+static s7_pointer lg_gdk_set_program_class(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_set_program_class "void gdk_set_program_class(char* program_class)"
+  s7_pointer program_class;
+  program_class = s7_car(args);
+  if (!s7_is_string(program_class)) s7_wrong_type_arg_error(sc, "gdk_set_program_class", 1, program_class, "char*");
+  gdk_set_program_class((char*)s7_string(program_class));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_error_trap_push(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_error_trap_push "void gdk_error_trap_push( void)"
+  gdk_error_trap_push();
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_error_trap_pop(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_error_trap_pop "gint gdk_error_trap_pop( void)"
+  return(s7_make_integer(sc, gdk_error_trap_pop()));
+}
+
+static s7_pointer lg_gdk_get_display_arg_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_get_display_arg_name "gchar* gdk_get_display_arg_name( void)"
+  return(s7_make_string(sc, gdk_get_display_arg_name()));
+}
+
+static s7_pointer lg_gdk_notify_startup_complete(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_notify_startup_complete "void gdk_notify_startup_complete( void)"
+  gdk_notify_startup_complete();
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_flush(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_flush "void gdk_flush( void)"
+  gdk_flush();
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_beep(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_beep "void gdk_beep( void)"
+  gdk_beep();
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_set_double_click_time(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_set_double_click_time "void gdk_set_double_click_time(guint msec)"
+  s7_pointer msec;
+  msec = s7_car(args);
+  if (!s7_is_integer(msec)) s7_wrong_type_arg_error(sc, "gdk_set_double_click_time", 1, msec, "guint");
+  gdk_set_double_click_time(s7_integer(msec));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_rectangle_intersect(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_rectangle_intersect "gboolean gdk_rectangle_intersect(GdkRectangle* src1, GdkRectangle* src2, \
+GdkRectangle* dest)"
+  s7_pointer _p;
+  s7_pointer src1, src2, dest;
+  _p = args;
+  src1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(src1, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_rectangle_intersect", 1, src1, "GdkRectangle*");
+  src2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(src2, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_rectangle_intersect", 2, src2, "GdkRectangle*");
+  dest = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dest, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_rectangle_intersect", 3, dest, "GdkRectangle*");
+  return(s7_make_boolean(sc, gdk_rectangle_intersect(s7_c_pointer(src1), s7_c_pointer(src2), s7_c_pointer(dest))));
+}
+
+static s7_pointer lg_gdk_rectangle_union(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_rectangle_union "void gdk_rectangle_union(GdkRectangle* src1, GdkRectangle* src2, GdkRectangle* dest)"
+  s7_pointer _p;
+  s7_pointer src1, src2, dest;
+  _p = args;
+  src1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(src1, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_rectangle_union", 1, src1, "GdkRectangle*");
+  src2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(src2, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_rectangle_union", 2, src2, "GdkRectangle*");
+  dest = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dest, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_rectangle_union", 3, dest, "GdkRectangle*");
+  gdk_rectangle_union(s7_c_pointer(src1), s7_c_pointer(src2), s7_c_pointer(dest));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_keymap_get_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keymap_get_default "GdkKeymap* gdk_keymap_get_default( void)"
+  return(s7_make_type_with_c_pointer(sc, GdkKeymap__sym, gdk_keymap_get_default()));
+}
+
+static s7_pointer lg_gdk_keymap_lookup_key(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keymap_lookup_key "guint gdk_keymap_lookup_key(GdkKeymap* keymap, GdkKeymapKey* key)"
+  s7_pointer _p;
+  s7_pointer keymap, key;
+  _p = args;
+  keymap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(keymap, GdkKeymap__sym)) s7_wrong_type_arg_error(sc, "gdk_keymap_lookup_key", 1, keymap, "GdkKeymap*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(key, GdkKeymapKey__sym)) s7_wrong_type_arg_error(sc, "gdk_keymap_lookup_key", 2, key, "GdkKeymapKey*");
+  return(s7_make_integer(sc, gdk_keymap_lookup_key(s7_c_pointer(keymap), s7_c_pointer(key))));
+}
+
+static s7_pointer lg_gdk_keymap_get_entries_for_keyval(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keymap_get_entries_for_keyval "gboolean gdk_keymap_get_entries_for_keyval(GdkKeymap* keymap, \
+guint keyval, GdkKeymapKey** [keys], gint* [n_keys])"
+  s7_pointer _p;
+  s7_pointer keymap, keyval;
+  GdkKeymapKey* ref_keys = NULL;
+  gint ref_n_keys;
+  _p = args;
+  keymap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(keymap, GdkKeymap__sym)) s7_wrong_type_arg_error(sc, "gdk_keymap_get_entries_for_keyval", 1, keymap, "GdkKeymap*");
+  keyval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gdk_keymap_get_entries_for_keyval", 2, keyval, "guint");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_keymap_get_entries_for_keyval(s7_c_pointer(keymap), s7_integer(keyval), &ref_keys, &ref_n_keys));
+      return(s7_list(sc, 3, result, s7_make_c_pointer(sc, ref_keys), s7_make_integer(sc, ref_n_keys)));
+   }
+}
+
+static s7_pointer lg_gdk_keymap_get_entries_for_keycode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keymap_get_entries_for_keycode "gboolean gdk_keymap_get_entries_for_keycode(GdkKeymap* keymap, \
+guint hardware_keycode, GdkKeymapKey** [keys], guint** [keyvals], gint* [n_entries])"
+  s7_pointer _p;
+  s7_pointer keymap, hardware_keycode;
+  GdkKeymapKey* ref_keys = NULL;
+  guint* ref_keyvals = NULL;
+  gint ref_n_entries;
+  _p = args;
+  keymap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(keymap, GdkKeymap__sym)) s7_wrong_type_arg_error(sc, "gdk_keymap_get_entries_for_keycode", 1, keymap, "GdkKeymap*");
+  hardware_keycode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hardware_keycode)) s7_wrong_type_arg_error(sc, "gdk_keymap_get_entries_for_keycode", 2, hardware_keycode, "guint");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_keymap_get_entries_for_keycode(s7_c_pointer(keymap), s7_integer(hardware_keycode), &ref_keys, &ref_keyvals, &ref_n_entries));
+      return(s7_list(sc, 4, result, s7_make_c_pointer(sc, ref_keys), s7_make_c_pointer(sc, ref_keyvals), s7_make_integer(sc, ref_n_entries)));
+   }
+}
+
+static s7_pointer lg_gdk_keymap_get_direction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keymap_get_direction "PangoDirection gdk_keymap_get_direction(GdkKeymap* keymap)"
+  s7_pointer keymap;
+  keymap = s7_car(args);
+  if (!s7_is_c_pointer_of_type(keymap, GdkKeymap__sym)) s7_wrong_type_arg_error(sc, "gdk_keymap_get_direction", 1, keymap, "GdkKeymap*");
+  return(s7_make_integer(sc, gdk_keymap_get_direction(s7_c_pointer(keymap))));
+}
+
+static s7_pointer lg_gdk_keyval_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keyval_name "gchar* gdk_keyval_name(guint keyval)"
+  s7_pointer keyval;
+  keyval = s7_car(args);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gdk_keyval_name", 1, keyval, "guint");
+  return(s7_make_string(sc, gdk_keyval_name(s7_integer(keyval))));
+}
+
+static s7_pointer lg_gdk_keyval_from_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keyval_from_name "guint gdk_keyval_from_name(gchar* keyval_name)"
+  s7_pointer keyval_name;
+  keyval_name = s7_car(args);
+  if (!s7_is_string(keyval_name)) s7_wrong_type_arg_error(sc, "gdk_keyval_from_name", 1, keyval_name, "gchar*");
+  return(s7_make_integer(sc, gdk_keyval_from_name(s7_string(keyval_name))));
+}
+
+static s7_pointer lg_gdk_keyval_convert_case(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keyval_convert_case "void gdk_keyval_convert_case(guint symbol, guint* [lower], guint* [upper])"
+  s7_pointer _p;
+  s7_pointer symbol;
+  guint ref_lower;
+  guint ref_upper;
+  _p = args;
+  symbol = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(symbol)) s7_wrong_type_arg_error(sc, "gdk_keyval_convert_case", 1, symbol, "guint");
+  gdk_keyval_convert_case(s7_integer(symbol), &ref_lower, &ref_upper);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_lower), s7_make_integer(sc, ref_upper)));
+}
+
+static s7_pointer lg_gdk_keyval_to_upper(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keyval_to_upper "guint gdk_keyval_to_upper(guint keyval)"
+  s7_pointer keyval;
+  keyval = s7_car(args);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gdk_keyval_to_upper", 1, keyval, "guint");
+  return(s7_make_integer(sc, gdk_keyval_to_upper(s7_integer(keyval))));
+}
+
+static s7_pointer lg_gdk_keyval_to_lower(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keyval_to_lower "guint gdk_keyval_to_lower(guint keyval)"
+  s7_pointer keyval;
+  keyval = s7_car(args);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gdk_keyval_to_lower", 1, keyval, "guint");
+  return(s7_make_integer(sc, gdk_keyval_to_lower(s7_integer(keyval))));
+}
+
+static s7_pointer lg_gdk_keyval_is_upper(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keyval_is_upper "gboolean gdk_keyval_is_upper(guint keyval)"
+  s7_pointer keyval;
+  keyval = s7_car(args);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gdk_keyval_is_upper", 1, keyval, "guint");
+  return(s7_make_boolean(sc, gdk_keyval_is_upper(s7_integer(keyval))));
+}
+
+static s7_pointer lg_gdk_keyval_is_lower(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keyval_is_lower "gboolean gdk_keyval_is_lower(guint keyval)"
+  s7_pointer keyval;
+  keyval = s7_car(args);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gdk_keyval_is_lower", 1, keyval, "guint");
+  return(s7_make_boolean(sc, gdk_keyval_is_lower(s7_integer(keyval))));
+}
+
+static s7_pointer lg_gdk_keyval_to_unicode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keyval_to_unicode "guint32 gdk_keyval_to_unicode(guint keyval)"
+  s7_pointer keyval;
+  keyval = s7_car(args);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gdk_keyval_to_unicode", 1, keyval, "guint");
+  return(s7_make_integer(sc, gdk_keyval_to_unicode(s7_integer(keyval))));
+}
+
+static s7_pointer lg_gdk_unicode_to_keyval(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_unicode_to_keyval "guint gdk_unicode_to_keyval(guint32 wc)"
+  s7_pointer wc;
+  wc = s7_car(args);
+  if (!s7_is_integer(wc)) s7_wrong_type_arg_error(sc, "gdk_unicode_to_keyval", 1, wc, "guint32");
+  return(s7_make_integer(sc, gdk_unicode_to_keyval(s7_integer(wc))));
+}
+
+static s7_pointer lg_gdk_pango_context_get(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pango_context_get "PangoContext* gdk_pango_context_get( void)"
+  return(s7_make_type_with_c_pointer(sc, PangoContext__sym, gdk_pango_context_get()));
+}
+
+static s7_pointer lg_gdk_atom_intern(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_atom_intern "GdkAtom gdk_atom_intern(gchar* atom_name, gboolean only_if_exists)"
+  s7_pointer _p;
+  s7_pointer atom_name, only_if_exists;
+  _p = args;
+  atom_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(atom_name)) s7_wrong_type_arg_error(sc, "gdk_atom_intern", 1, atom_name, "gchar*");
+  only_if_exists = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(only_if_exists)) s7_wrong_type_arg_error(sc, "gdk_atom_intern", 2, only_if_exists, "gboolean");
+  return(s7_make_type_with_c_pointer(sc, GdkAtom_sym, gdk_atom_intern(s7_string(atom_name), lg_boolean(only_if_exists))));
+}
+
+static s7_pointer lg_gdk_atom_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_atom_name "gchar* gdk_atom_name(GdkAtom atom)"
+  s7_pointer atom;
+  atom = s7_car(args);
+  if (!s7_is_c_pointer_of_type(atom, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_atom_name", 1, atom, "GdkAtom");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gdk_atom_name(s7_c_pointer(atom));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gdk_property_get(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_property_get "gboolean gdk_property_get(GdkWindow* window, GdkAtom property, GdkAtom type, \
+gulong offset, gulong length, gint pdelete, GdkAtom* [actual_property_type], gint* [actual_format], gint* [actual_length], \
+guchar** [data])"
+  s7_pointer _p;
+  s7_pointer window, property, type, offset, length, pdelete;
+  GdkAtom ref_actual_property_type;
+  gint ref_actual_format;
+  gint ref_actual_length;
+  guchar* ref_data = NULL;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_property_get", 1, window, "GdkWindow*");
+  property = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(property, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_property_get", 2, property, "GdkAtom");
+  type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(type, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_property_get", 3, type, "GdkAtom");
+  offset = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(offset)) s7_wrong_type_arg_error(sc, "gdk_property_get", 4, offset, "gulong");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "gdk_property_get", 5, length, "gulong");
+  pdelete = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pdelete)) s7_wrong_type_arg_error(sc, "gdk_property_get", 6, pdelete, "gint");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_property_get(s7_c_pointer(window), s7_c_pointer(property), s7_c_pointer(type), s7_integer(offset), s7_integer(length), s7_integer(pdelete), &ref_actual_property_type, &ref_actual_format, &ref_actual_length, &ref_data));
+    {
+      s7_pointer data_val = lg_false;
+      if (ref_actual_property_type == GDK_TARGET_STRING)
+	data_val = s7_make_string(sc, (char *)ref_data);
+      else if (ref_actual_length > 0) data_val = s7_make_string_with_length(sc, (char *)ref_data, ref_actual_length * ref_actual_format / 8);
+     return(s7_list(sc, 5, result, s7_make_c_pointer(sc, ref_actual_property_type), s7_make_integer(sc, ref_actual_format), 
+                       s7_make_integer(sc, ref_actual_length), data_val));
+    }
+  }
+}
+
+static s7_pointer lg_gdk_property_change(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_property_change "void gdk_property_change(GdkWindow* window, GdkAtom property, GdkAtom type, \
+gint format, GdkPropMode mode, guchar* data, gint nelements)"
+  s7_pointer _p;
+  s7_pointer window, property, type, format, mode, data, nelements;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_property_change", 1, window, "GdkWindow*");
+  property = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(property, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_property_change", 2, property, "GdkAtom");
+  type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(type, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_property_change", 3, type, "GdkAtom");
+  format = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(format)) s7_wrong_type_arg_error(sc, "gdk_property_change", 4, format, "gint");
+  mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mode)) s7_wrong_type_arg_error(sc, "gdk_property_change", 5, mode, "GdkPropMode");
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, guchar__sym)) s7_wrong_type_arg_error(sc, "gdk_property_change", 6, data, "guchar*");
+  nelements = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(nelements)) s7_wrong_type_arg_error(sc, "gdk_property_change", 7, nelements, "gint");
+  gdk_property_change(s7_c_pointer(window), s7_c_pointer(property), s7_c_pointer(type), s7_integer(format), s7_integer(mode), s7_c_pointer(data), s7_integer(nelements));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_property_delete(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_property_delete "void gdk_property_delete(GdkWindow* window, GdkAtom property)"
+  s7_pointer _p;
+  s7_pointer window, property;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_property_delete", 1, window, "GdkWindow*");
+  property = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(property, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_property_delete", 2, property, "GdkAtom");
+  gdk_property_delete(s7_c_pointer(window), s7_c_pointer(property));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_utf8_to_string_target(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_utf8_to_string_target "gchar* gdk_utf8_to_string_target(gchar* str)"
+  s7_pointer str;
+  str = s7_car(args);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "gdk_utf8_to_string_target", 1, str, "gchar*");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gdk_utf8_to_string_target(s7_string(str));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gdk_selection_owner_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_selection_owner_set "gboolean gdk_selection_owner_set(GdkWindow* owner, GdkAtom selection, \
+guint32 time, gboolean send_event)"
+  s7_pointer _p;
+  s7_pointer owner, selection, time, send_event;
+  _p = args;
+  owner = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(owner, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_selection_owner_set", 1, owner, "GdkWindow*");
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_selection_owner_set", 2, selection, "GdkAtom");
+  time = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(time)) s7_wrong_type_arg_error(sc, "gdk_selection_owner_set", 3, time, "guint32");
+  send_event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(send_event)) s7_wrong_type_arg_error(sc, "gdk_selection_owner_set", 4, send_event, "gboolean");
+  return(s7_make_boolean(sc, gdk_selection_owner_set(s7_c_pointer(owner), s7_c_pointer(selection), s7_integer(time), lg_boolean(send_event))));
+}
+
+static s7_pointer lg_gdk_selection_owner_get(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_selection_owner_get "GdkWindow* gdk_selection_owner_get(GdkAtom selection)"
+  s7_pointer selection;
+  selection = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_selection_owner_get", 1, selection, "GdkAtom");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_selection_owner_get(s7_c_pointer(selection))));
+}
+
+static s7_pointer lg_gdk_selection_convert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_selection_convert "void gdk_selection_convert(GdkWindow* requestor, GdkAtom selection, \
+GdkAtom target, guint32 time)"
+  s7_pointer _p;
+  s7_pointer requestor, selection, target, time;
+  _p = args;
+  requestor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(requestor, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_selection_convert", 1, requestor, "GdkWindow*");
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_selection_convert", 2, selection, "GdkAtom");
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_selection_convert", 3, target, "GdkAtom");
+  time = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(time)) s7_wrong_type_arg_error(sc, "gdk_selection_convert", 4, time, "guint32");
+  gdk_selection_convert(s7_c_pointer(requestor), s7_c_pointer(selection), s7_c_pointer(target), s7_integer(time));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_selection_property_get(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_selection_property_get "gboolean gdk_selection_property_get(GdkWindow* requestor, guchar** [data], \
+GdkAtom* [prop_type], gint* [prop_format])"
+  s7_pointer _p;
+  s7_pointer requestor;
+  guchar* ref_data = NULL;
+  GdkAtom ref_prop_type;
+  gint ref_prop_format;
+  _p = args;
+  requestor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(requestor, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_selection_property_get", 1, requestor, "GdkWindow*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_selection_property_get(s7_c_pointer(requestor), &ref_data, &ref_prop_type, &ref_prop_format));
+      return(s7_list(sc, 4, result, s7_make_c_pointer(sc, ref_data), s7_make_c_pointer(sc, ref_prop_type), s7_make_integer(sc, ref_prop_format)));
+   }
+}
+
+static s7_pointer lg_gdk_window_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_destroy "void gdk_window_destroy(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_destroy", 1, window, "GdkWindow*");
+  gdk_window_destroy(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_get_window_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_window_type "GdkWindowType gdk_window_get_window_type(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_window_type", 1, window, "GdkWindow*");
+  return(s7_make_integer(sc, gdk_window_get_window_type(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_show(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_show "void gdk_window_show(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_show", 1, window, "GdkWindow*");
+  gdk_window_show(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_hide(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_hide "void gdk_window_hide(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_hide", 1, window, "GdkWindow*");
+  gdk_window_hide(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_withdraw(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_withdraw "void gdk_window_withdraw(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_withdraw", 1, window, "GdkWindow*");
+  gdk_window_withdraw(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_show_unraised(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_show_unraised "void gdk_window_show_unraised(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_show_unraised", 1, window, "GdkWindow*");
+  gdk_window_show_unraised(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_move(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_move "void gdk_window_move(GdkWindow* window, gint x, gint y)"
+  s7_pointer _p;
+  s7_pointer window, x, y;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_move", 1, window, "GdkWindow*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gdk_window_move", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gdk_window_move", 3, y, "gint");
+  gdk_window_move(s7_c_pointer(window), s7_integer(x), s7_integer(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_resize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_resize "void gdk_window_resize(GdkWindow* window, gint width, gint height)"
+  s7_pointer _p;
+  s7_pointer window, width, height;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_resize", 1, window, "GdkWindow*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gdk_window_resize", 2, width, "gint");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gdk_window_resize", 3, height, "gint");
+  gdk_window_resize(s7_c_pointer(window), s7_integer(width), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_move_resize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_move_resize "void gdk_window_move_resize(GdkWindow* window, gint x, gint y, gint width, \
+gint height)"
+  s7_pointer _p;
+  s7_pointer window, x, y, width, height;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_move_resize", 1, window, "GdkWindow*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gdk_window_move_resize", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gdk_window_move_resize", 3, y, "gint");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gdk_window_move_resize", 4, width, "gint");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gdk_window_move_resize", 5, height, "gint");
+  gdk_window_move_resize(s7_c_pointer(window), s7_integer(x), s7_integer(y), s7_integer(width), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_raise(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_raise "void gdk_window_raise(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_raise", 1, window, "GdkWindow*");
+  gdk_window_raise(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_lower(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_lower "void gdk_window_lower(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_lower", 1, window, "GdkWindow*");
+  gdk_window_lower(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_focus "void gdk_window_focus(GdkWindow* window, guint32 timestamp)"
+  s7_pointer _p;
+  s7_pointer window, timestamp;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_focus", 1, window, "GdkWindow*");
+  timestamp = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(timestamp)) s7_wrong_type_arg_error(sc, "gdk_window_focus", 2, timestamp, "guint32");
+  gdk_window_focus(s7_c_pointer(window), s7_integer(timestamp));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_user_data "void gdk_window_set_user_data(GdkWindow* window, gpointer user_data)"
+  s7_pointer _p;
+  s7_pointer window, user_data;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(window, GdkWindow__sym)) && (window != lg_false)) s7_wrong_type_arg_error(sc, "gdk_window_set_user_data", 1, window, "GdkWindow*");
+  user_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(user_data, gpointer_sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_user_data", 2, user_data, "gpointer");
+  gdk_window_set_user_data(s7_c_pointer(window), s7_c_pointer(user_data));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_add_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_add_filter "void gdk_window_add_filter(GdkWindow* window, GdkFilterFunc func, \
+lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer window, func, func_info;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_add_filter", 1, window, "GdkWindow*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GdkFilterFunc_sym)) s7_wrong_type_arg_error(sc, "gdk_window_add_filter", 2, func, "GdkFilterFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gdk_window_add_filter", 3, func_info, "lambda_data");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    gdk_window_add_filter(s7_c_pointer(window), s7_c_pointer(func), (gpointer)lg_ptr);
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gdk_window_remove_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_remove_filter "void gdk_window_remove_filter(GdkWindow* window, GdkFilterFunc func, \
+lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer window, func, func_info;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_remove_filter", 1, window, "GdkWindow*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GdkFilterFunc_sym)) s7_wrong_type_arg_error(sc, "gdk_window_remove_filter", 2, func, "GdkFilterFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gdk_window_remove_filter", 3, func_info, "lambda_data");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    gdk_window_remove_filter(s7_c_pointer(window), s7_c_pointer(func), (gpointer)lg_ptr);
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gdk_window_scroll(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_scroll "void gdk_window_scroll(GdkWindow* window, gint dx, gint dy)"
+  s7_pointer _p;
+  s7_pointer window, dx, dy;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_scroll", 1, window, "GdkWindow*");
+  dx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dx)) s7_wrong_type_arg_error(sc, "gdk_window_scroll", 2, dx, "gint");
+  dy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dy)) s7_wrong_type_arg_error(sc, "gdk_window_scroll", 3, dy, "gint");
+  gdk_window_scroll(s7_c_pointer(window), s7_integer(dx), s7_integer(dy));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_child_shapes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_child_shapes "void gdk_window_set_child_shapes(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_child_shapes", 1, window, "GdkWindow*");
+  gdk_window_set_child_shapes(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_merge_child_shapes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_merge_child_shapes "void gdk_window_merge_child_shapes(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_merge_child_shapes", 1, window, "GdkWindow*");
+  gdk_window_merge_child_shapes(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_is_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_is_visible "gboolean gdk_window_is_visible(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_is_visible", 1, window, "GdkWindow*");
+  return(s7_make_boolean(sc, gdk_window_is_visible(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_is_viewable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_is_viewable "gboolean gdk_window_is_viewable(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_is_viewable", 1, window, "GdkWindow*");
+  return(s7_make_boolean(sc, gdk_window_is_viewable(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_get_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_state "GdkWindowState gdk_window_get_state(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_state", 1, window, "GdkWindow*");
+  return(s7_make_integer(sc, gdk_window_get_state(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_get_root_origin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_root_origin "void gdk_window_get_root_origin(GdkWindow* window, gint* [x], \
+gint* [y])"
+  s7_pointer _p;
+  s7_pointer window;
+  gint ref_x;
+  gint ref_y;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_root_origin", 1, window, "GdkWindow*");
+  gdk_window_get_root_origin(s7_c_pointer(window), &ref_x, &ref_y);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_x), s7_make_integer(sc, ref_y)));
+}
+
+static s7_pointer lg_gdk_window_get_frame_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_frame_extents "void gdk_window_get_frame_extents(GdkWindow* window, GdkRectangle* rect)"
+  s7_pointer _p;
+  s7_pointer window, rect;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_frame_extents", 1, window, "GdkWindow*");
+  rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rect, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_frame_extents", 2, rect, "GdkRectangle*");
+  gdk_window_get_frame_extents(s7_c_pointer(window), s7_c_pointer(rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_get_parent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_parent "GdkWindow* gdk_window_get_parent(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_parent", 1, window, "GdkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_window_get_parent(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_get_toplevel(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_toplevel "GdkWindow* gdk_window_get_toplevel(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_toplevel", 1, window, "GdkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_window_get_toplevel(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_get_children(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_children "GList* gdk_window_get_children(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_children", 1, window, "GdkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gdk_window_get_children(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_peek_children(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_peek_children "GList* gdk_window_peek_children(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_peek_children", 1, window, "GdkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gdk_window_peek_children(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_get_events(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_events "GdkEventMask gdk_window_get_events(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_events", 1, window, "GdkWindow*");
+  return(s7_make_integer(sc, gdk_window_get_events(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_set_events(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_events "void gdk_window_set_events(GdkWindow* window, GdkEventMask event_mask)"
+  s7_pointer _p;
+  s7_pointer window, event_mask;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_events", 1, window, "GdkWindow*");
+  event_mask = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(event_mask)) s7_wrong_type_arg_error(sc, "gdk_window_set_events", 2, event_mask, "GdkEventMask");
+  gdk_window_set_events(s7_c_pointer(window), s7_integer(event_mask));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_icon_list(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_icon_list "void gdk_window_set_icon_list(GdkWindow* window, GList* pixbufs)"
+  s7_pointer _p;
+  s7_pointer window, pixbufs;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_icon_list", 1, window, "GdkWindow*");
+  pixbufs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbufs, GList__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_icon_list", 2, pixbufs, "GList*");
+  gdk_window_set_icon_list(s7_c_pointer(window), s7_c_pointer(pixbufs));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_icon_name "void gdk_window_set_icon_name(GdkWindow* window, gchar* name)"
+  s7_pointer _p;
+  s7_pointer window, name;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_icon_name", 1, window, "GdkWindow*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gdk_window_set_icon_name", 2, name, "gchar*");
+  gdk_window_set_icon_name(s7_c_pointer(window), s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_group "void gdk_window_set_group(GdkWindow* window, GdkWindow* leader)"
+  s7_pointer _p;
+  s7_pointer window, leader;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_group", 1, window, "GdkWindow*");
+  leader = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(leader, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_group", 2, leader, "GdkWindow*");
+  gdk_window_set_group(s7_c_pointer(window), s7_c_pointer(leader));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_decorations(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_decorations "void gdk_window_set_decorations(GdkWindow* window, GdkWMDecoration decorations)"
+  s7_pointer _p;
+  s7_pointer window, decorations;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_decorations", 1, window, "GdkWindow*");
+  decorations = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(decorations)) s7_wrong_type_arg_error(sc, "gdk_window_set_decorations", 2, decorations, "GdkWMDecoration");
+  gdk_window_set_decorations(s7_c_pointer(window), s7_integer(decorations));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_get_decorations(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_decorations "gboolean gdk_window_get_decorations(GdkWindow* window, GdkWMDecoration* [decorations])"
+  s7_pointer _p;
+  s7_pointer window;
+  GdkWMDecoration ref_decorations;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_decorations", 1, window, "GdkWindow*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_window_get_decorations(s7_c_pointer(window), &ref_decorations));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_decorations)));
+   }
+}
+
+static s7_pointer lg_gdk_window_set_functions(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_functions "void gdk_window_set_functions(GdkWindow* window, GdkWMFunction functions)"
+  s7_pointer _p;
+  s7_pointer window, functions;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_functions", 1, window, "GdkWindow*");
+  functions = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(functions)) s7_wrong_type_arg_error(sc, "gdk_window_set_functions", 2, functions, "GdkWMFunction");
+  gdk_window_set_functions(s7_c_pointer(window), s7_integer(functions));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_iconify(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_iconify "void gdk_window_iconify(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_iconify", 1, window, "GdkWindow*");
+  gdk_window_iconify(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_deiconify(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_deiconify "void gdk_window_deiconify(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_deiconify", 1, window, "GdkWindow*");
+  gdk_window_deiconify(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_stick(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_stick "void gdk_window_stick(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_stick", 1, window, "GdkWindow*");
+  gdk_window_stick(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_unstick(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_unstick "void gdk_window_unstick(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_unstick", 1, window, "GdkWindow*");
+  gdk_window_unstick(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_maximize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_maximize "void gdk_window_maximize(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_maximize", 1, window, "GdkWindow*");
+  gdk_window_maximize(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_unmaximize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_unmaximize "void gdk_window_unmaximize(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_unmaximize", 1, window, "GdkWindow*");
+  gdk_window_unmaximize(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_register_dnd(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_register_dnd "void gdk_window_register_dnd(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_register_dnd", 1, window, "GdkWindow*");
+  gdk_window_register_dnd(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_begin_resize_drag(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_begin_resize_drag "void gdk_window_begin_resize_drag(GdkWindow* window, GdkWindowEdge edge, \
+gint button, gint root_x, gint root_y, guint32 timestamp)"
+  s7_pointer _p;
+  s7_pointer window, edge, button, root_x, root_y, timestamp;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_begin_resize_drag", 1, window, "GdkWindow*");
+  edge = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(edge)) s7_wrong_type_arg_error(sc, "gdk_window_begin_resize_drag", 2, edge, "GdkWindowEdge");
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(button)) s7_wrong_type_arg_error(sc, "gdk_window_begin_resize_drag", 3, button, "gint");
+  root_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(root_x)) s7_wrong_type_arg_error(sc, "gdk_window_begin_resize_drag", 4, root_x, "gint");
+  root_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(root_y)) s7_wrong_type_arg_error(sc, "gdk_window_begin_resize_drag", 5, root_y, "gint");
+  timestamp = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(timestamp)) s7_wrong_type_arg_error(sc, "gdk_window_begin_resize_drag", 6, timestamp, "guint32");
+  gdk_window_begin_resize_drag(s7_c_pointer(window), s7_integer(edge), s7_integer(button), s7_integer(root_x), s7_integer(root_y), s7_integer(timestamp));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_begin_move_drag(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_begin_move_drag "void gdk_window_begin_move_drag(GdkWindow* window, gint button, \
+gint root_x, gint root_y, guint32 timestamp)"
+  s7_pointer _p;
+  s7_pointer window, button, root_x, root_y, timestamp;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_begin_move_drag", 1, window, "GdkWindow*");
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(button)) s7_wrong_type_arg_error(sc, "gdk_window_begin_move_drag", 2, button, "gint");
+  root_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(root_x)) s7_wrong_type_arg_error(sc, "gdk_window_begin_move_drag", 3, root_x, "gint");
+  root_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(root_y)) s7_wrong_type_arg_error(sc, "gdk_window_begin_move_drag", 4, root_y, "gint");
+  timestamp = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(timestamp)) s7_wrong_type_arg_error(sc, "gdk_window_begin_move_drag", 5, timestamp, "guint32");
+  gdk_window_begin_move_drag(s7_c_pointer(window), s7_integer(button), s7_integer(root_x), s7_integer(root_y), s7_integer(timestamp));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_invalidate_rect(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_invalidate_rect "void gdk_window_invalidate_rect(GdkWindow* window, GdkRectangle* rect, \
+gboolean invalidate_children)"
+  s7_pointer _p;
+  s7_pointer window, rect, invalidate_children;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_invalidate_rect", 1, window, "GdkWindow*");
+  rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rect, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_window_invalidate_rect", 2, rect, "GdkRectangle*");
+  invalidate_children = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(invalidate_children)) s7_wrong_type_arg_error(sc, "gdk_window_invalidate_rect", 3, invalidate_children, "gboolean");
+  gdk_window_invalidate_rect(s7_c_pointer(window), s7_c_pointer(rect), lg_boolean(invalidate_children));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_freeze_updates(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_freeze_updates "void gdk_window_freeze_updates(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_freeze_updates", 1, window, "GdkWindow*");
+  gdk_window_freeze_updates(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_thaw_updates(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_thaw_updates "void gdk_window_thaw_updates(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_thaw_updates", 1, window, "GdkWindow*");
+  gdk_window_thaw_updates(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_constrain_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_constrain_size "void gdk_window_constrain_size(GdkGeometry* geometry, GdkWindowHints flags, \
+gint width, gint height, gint* [new_width], gint* [new_height])"
+  s7_pointer _p;
+  s7_pointer geometry, flags, width, height;
+  gint ref_new_width;
+  gint ref_new_height;
+  _p = args;
+  geometry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(geometry, GdkGeometry__sym)) s7_wrong_type_arg_error(sc, "gdk_window_constrain_size", 1, geometry, "GdkGeometry*");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gdk_window_constrain_size", 2, flags, "GdkWindowHints");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gdk_window_constrain_size", 3, width, "gint");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gdk_window_constrain_size", 4, height, "gint");
+  gdk_window_constrain_size(s7_c_pointer(geometry), s7_integer(flags), s7_integer(width), s7_integer(height), &ref_new_width, &ref_new_height);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_new_width), s7_make_integer(sc, ref_new_height)));
+}
+
+static s7_pointer lg_gdk_window_set_type_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_type_hint "void gdk_window_set_type_hint(GdkWindow* window, GdkWindowTypeHint hint)"
+  s7_pointer _p;
+  s7_pointer window, hint;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_type_hint", 1, window, "GdkWindow*");
+  hint = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hint)) s7_wrong_type_arg_error(sc, "gdk_window_set_type_hint", 2, hint, "GdkWindowTypeHint");
+  gdk_window_set_type_hint(s7_c_pointer(window), s7_integer(hint));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_modal_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_modal_hint "void gdk_window_set_modal_hint(GdkWindow* window, gboolean modal)"
+  s7_pointer _p;
+  s7_pointer window, modal;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_modal_hint", 1, window, "GdkWindow*");
+  modal = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(modal)) s7_wrong_type_arg_error(sc, "gdk_window_set_modal_hint", 2, modal, "gboolean");
+  gdk_window_set_modal_hint(s7_c_pointer(window), lg_boolean(modal));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_title "void gdk_window_set_title(GdkWindow* window, gchar* title)"
+  s7_pointer _p;
+  s7_pointer window, title;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_title", 1, window, "GdkWindow*");
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gdk_window_set_title", 2, title, "gchar*");
+  gdk_window_set_title(s7_c_pointer(window), s7_string(title));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_role(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_role "void gdk_window_set_role(GdkWindow* window, gchar* role)"
+  s7_pointer _p;
+  s7_pointer window, role;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_role", 1, window, "GdkWindow*");
+  role = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(role)) s7_wrong_type_arg_error(sc, "gdk_window_set_role", 2, role, "gchar*");
+  gdk_window_set_role(s7_c_pointer(window), s7_string(role));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_transient_for(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_transient_for "void gdk_window_set_transient_for(GdkWindow* window, GdkWindow* parent)"
+  s7_pointer _p;
+  s7_pointer window, parent;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_transient_for", 1, window, "GdkWindow*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(parent, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_transient_for", 2, parent, "GdkWindow*");
+  gdk_window_set_transient_for(s7_c_pointer(window), s7_c_pointer(parent));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_cursor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_cursor "void gdk_window_set_cursor(GdkWindow* window, GdkCursor* cursor)"
+  s7_pointer _p;
+  s7_pointer window, cursor;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_cursor", 1, window, "GdkWindow*");
+  cursor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cursor, GdkCursor__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_cursor", 2, cursor, "GdkCursor*");
+  gdk_window_set_cursor(s7_c_pointer(window), s7_c_pointer(cursor));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_get_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_user_data "void gdk_window_get_user_data(GdkWindow* window, gpointer* [data])"
+  s7_pointer _p;
+  s7_pointer window;
+  gpointer ref_data;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_user_data", 1, window, "GdkWindow*");
+  gdk_window_get_user_data(s7_c_pointer(window), &ref_data);
+    return(s7_list(sc, 1, s7_make_c_pointer(sc, ref_data)));
+}
+
+static s7_pointer lg_gdk_window_get_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_position "void gdk_window_get_position(GdkWindow* window, gint* [x], gint* [y])"
+  s7_pointer _p;
+  s7_pointer window;
+  gint ref_x;
+  gint ref_y;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_position", 1, window, "GdkWindow*");
+  gdk_window_get_position(s7_c_pointer(window), &ref_x, &ref_y);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_x), s7_make_integer(sc, ref_y)));
+}
+
+static s7_pointer lg_gdk_window_get_origin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_origin "gint gdk_window_get_origin(GdkWindow* window, gint* [x], gint* [y])"
+  s7_pointer _p;
+  s7_pointer window;
+  gint ref_x;
+  gint ref_y;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_origin", 1, window, "GdkWindow*");
+  {
+    s7_pointer result;
+    result = s7_make_integer(sc, gdk_window_get_origin(s7_c_pointer(window), &ref_x, &ref_y));
+      return(s7_list(sc, 3, result, s7_make_integer(sc, ref_x), s7_make_integer(sc, ref_y)));
+   }
+}
+
+static s7_pointer lg_gdk_get_default_root_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_get_default_root_window "GdkWindow* gdk_get_default_root_window( void)"
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_get_default_root_window()));
+}
+
+static s7_pointer lg_gdk_pixbuf_error_quark(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_error_quark "GQuark gdk_pixbuf_error_quark( void)"
+  return(s7_make_integer(sc, gdk_pixbuf_error_quark()));
+}
+
+static s7_pointer lg_gdk_pixbuf_get_colorspace(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_get_colorspace "GdkColorspace gdk_pixbuf_get_colorspace(GdkPixbuf* pixbuf)"
+  s7_pointer pixbuf;
+  pixbuf = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_get_colorspace", 1, pixbuf, "GdkPixbuf*");
+  return(s7_make_integer(sc, gdk_pixbuf_get_colorspace(s7_c_pointer(pixbuf))));
+}
+
+static s7_pointer lg_gdk_pixbuf_get_n_channels(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_get_n_channels "int gdk_pixbuf_get_n_channels(GdkPixbuf* pixbuf)"
+  s7_pointer pixbuf;
+  pixbuf = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_get_n_channels", 1, pixbuf, "GdkPixbuf*");
+  return(s7_make_integer(sc, gdk_pixbuf_get_n_channels(s7_c_pointer(pixbuf))));
+}
+
+static s7_pointer lg_gdk_pixbuf_get_has_alpha(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_get_has_alpha "gboolean gdk_pixbuf_get_has_alpha(GdkPixbuf* pixbuf)"
+  s7_pointer pixbuf;
+  pixbuf = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_get_has_alpha", 1, pixbuf, "GdkPixbuf*");
+  return(s7_make_boolean(sc, gdk_pixbuf_get_has_alpha(s7_c_pointer(pixbuf))));
+}
+
+static s7_pointer lg_gdk_pixbuf_get_bits_per_sample(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_get_bits_per_sample "int gdk_pixbuf_get_bits_per_sample(GdkPixbuf* pixbuf)"
+  s7_pointer pixbuf;
+  pixbuf = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_get_bits_per_sample", 1, pixbuf, "GdkPixbuf*");
+  return(s7_make_integer(sc, gdk_pixbuf_get_bits_per_sample(s7_c_pointer(pixbuf))));
+}
+
+static s7_pointer lg_gdk_pixbuf_get_pixels(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_get_pixels "guchar* gdk_pixbuf_get_pixels(GdkPixbuf* pixbuf)"
+  s7_pointer pixbuf;
+  pixbuf = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_get_pixels", 1, pixbuf, "GdkPixbuf*");
+  return(s7_make_type_with_c_pointer(sc, guchar__sym, gdk_pixbuf_get_pixels(s7_c_pointer(pixbuf))));
+}
+
+static s7_pointer lg_gdk_pixbuf_get_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_get_width "int gdk_pixbuf_get_width(GdkPixbuf* pixbuf)"
+  s7_pointer pixbuf;
+  pixbuf = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_get_width", 1, pixbuf, "GdkPixbuf*");
+  return(s7_make_integer(sc, gdk_pixbuf_get_width(s7_c_pointer(pixbuf))));
+}
+
+static s7_pointer lg_gdk_pixbuf_get_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_get_height "int gdk_pixbuf_get_height(GdkPixbuf* pixbuf)"
+  s7_pointer pixbuf;
+  pixbuf = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_get_height", 1, pixbuf, "GdkPixbuf*");
+  return(s7_make_integer(sc, gdk_pixbuf_get_height(s7_c_pointer(pixbuf))));
+}
+
+static s7_pointer lg_gdk_pixbuf_get_rowstride(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_get_rowstride "int gdk_pixbuf_get_rowstride(GdkPixbuf* pixbuf)"
+  s7_pointer pixbuf;
+  pixbuf = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_get_rowstride", 1, pixbuf, "GdkPixbuf*");
+  return(s7_make_integer(sc, gdk_pixbuf_get_rowstride(s7_c_pointer(pixbuf))));
+}
+
+static s7_pointer lg_gdk_pixbuf_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_new "GdkPixbuf* gdk_pixbuf_new(GdkColorspace colorspace, gboolean has_alpha, int bits_per_sample, \
+int width, int height)"
+  s7_pointer _p;
+  s7_pointer colorspace, has_alpha, bits_per_sample, width, height;
+  _p = args;
+  colorspace = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(colorspace)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new", 1, colorspace, "GdkColorspace");
+  has_alpha = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(has_alpha)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new", 2, has_alpha, "gboolean");
+  bits_per_sample = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(bits_per_sample)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new", 3, bits_per_sample, "int");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new", 4, width, "int");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new", 5, height, "int");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gdk_pixbuf_new(s7_integer(colorspace), lg_boolean(has_alpha), s7_integer(bits_per_sample), s7_integer(width), s7_integer(height))));
+}
+
+static s7_pointer lg_gdk_pixbuf_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_copy "GdkPixbuf* gdk_pixbuf_copy(GdkPixbuf* pixbuf)"
+  s7_pointer pixbuf;
+  pixbuf = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_copy", 1, pixbuf, "GdkPixbuf*");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gdk_pixbuf_copy(s7_c_pointer(pixbuf))));
+}
+
+static s7_pointer lg_gdk_pixbuf_new_subpixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_new_subpixbuf "GdkPixbuf* gdk_pixbuf_new_subpixbuf(GdkPixbuf* src_pixbuf, int src_x, \
+int src_y, int width, int height)"
+  s7_pointer _p;
+  s7_pointer src_pixbuf, src_x, src_y, width, height;
+  _p = args;
+  src_pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(src_pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_subpixbuf", 1, src_pixbuf, "GdkPixbuf*");
+  src_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(src_x)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_subpixbuf", 2, src_x, "int");
+  src_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(src_y)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_subpixbuf", 3, src_y, "int");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_subpixbuf", 4, width, "int");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_subpixbuf", 5, height, "int");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gdk_pixbuf_new_subpixbuf(s7_c_pointer(src_pixbuf), s7_integer(src_x), s7_integer(src_y), s7_integer(width), s7_integer(height))));
+}
+
+static s7_pointer lg_gdk_pixbuf_new_from_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_new_from_file "GdkPixbuf* gdk_pixbuf_new_from_file(char* filename, GError** [error])"
+  s7_pointer _p;
+  s7_pointer filename;
+  GError* ref_error = NULL;
+  _p = args;
+  filename = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(filename)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_from_file", 1, filename, "char*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gdk_pixbuf_new_from_file((char*)s7_string(filename), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gdk_pixbuf_new_from_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_new_from_data "GdkPixbuf* gdk_pixbuf_new_from_data(guchar* data, GdkColorspace colorspace, \
+gboolean has_alpha, int bits_per_sample, int width, int height, int rowstride, GdkPixbufDestroyNotify destroy_fn, \
+gpointer destroy_fn_data)"
+  s7_pointer _p;
+  s7_pointer data, colorspace, has_alpha, bits_per_sample, width, height, rowstride, destroy_fn, destroy_fn_data;
+  _p = args;
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, guchar__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_from_data", 1, data, "guchar*");
+  colorspace = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(colorspace)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_from_data", 2, colorspace, "GdkColorspace");
+  has_alpha = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(has_alpha)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_from_data", 3, has_alpha, "gboolean");
+  bits_per_sample = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(bits_per_sample)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_from_data", 4, bits_per_sample, "int");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_from_data", 5, width, "int");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_from_data", 6, height, "int");
+  rowstride = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(rowstride)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_from_data", 7, rowstride, "int");
+  destroy_fn = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy_fn, GdkPixbufDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_from_data", 8, destroy_fn, "GdkPixbufDestroyNotify");
+  destroy_fn_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy_fn_data, gpointer_sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_from_data", 9, destroy_fn_data, "gpointer");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gdk_pixbuf_new_from_data(s7_c_pointer(data), s7_integer(colorspace), lg_boolean(has_alpha), s7_integer(bits_per_sample), s7_integer(width), s7_integer(height), s7_integer(rowstride), s7_c_pointer(destroy_fn), s7_c_pointer(destroy_fn_data))));
+}
+
+static s7_pointer lg_gdk_pixbuf_new_from_xpm_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_new_from_xpm_data "GdkPixbuf* gdk_pixbuf_new_from_xpm_data(char** data)"
+  s7_pointer data;
+  data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(data, char___sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_new_from_xpm_data", 1, data, "char**");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gdk_pixbuf_new_from_xpm_data((const char**)s7_c_pointer(data))));
+}
+
+static s7_pointer lg_gdk_pixbuf_fill(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_fill "void gdk_pixbuf_fill(GdkPixbuf* pixbuf, guint32 pixel)"
+  s7_pointer _p;
+  s7_pointer pixbuf, pixel;
+  _p = args;
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_fill", 1, pixbuf, "GdkPixbuf*");
+  pixel = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pixel)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_fill", 2, pixel, "guint32");
+  gdk_pixbuf_fill(s7_c_pointer(pixbuf), s7_integer(pixel));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_pixbuf_savev(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_savev "gboolean gdk_pixbuf_savev(GdkPixbuf* pixbuf, char* filename, char* type, \
+char** option_keys, char** option_values, GError** [error])"
+  s7_pointer _p;
+  s7_pointer pixbuf, filename, type, option_keys, option_values;
+  GError* ref_error = NULL;
+  _p = args;
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_savev", 1, pixbuf, "GdkPixbuf*");
+  filename = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(filename)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_savev", 2, filename, "char*");
+  type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(type)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_savev", 3, type, "char*");
+  option_keys = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(option_keys, char___sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_savev", 4, option_keys, "char**");
+  option_values = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(option_values, char___sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_savev", 5, option_values, "char**");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_pixbuf_savev(s7_c_pointer(pixbuf), (char*)s7_string(filename), (char*)s7_string(type), s7_c_pointer(option_keys), s7_c_pointer(option_values), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gdk_pixbuf_add_alpha(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_add_alpha "GdkPixbuf* gdk_pixbuf_add_alpha(GdkPixbuf* pixbuf, gboolean substitute_color, \
+guchar r, guchar g, guchar b)"
+  s7_pointer _p;
+  s7_pointer pixbuf, substitute_color, r, g, b;
+  _p = args;
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_add_alpha", 1, pixbuf, "GdkPixbuf*");
+  substitute_color = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(substitute_color)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_add_alpha", 2, substitute_color, "gboolean");
+  r = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(r)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_add_alpha", 3, r, "guchar");
+  g = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(g)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_add_alpha", 4, g, "guchar");
+  b = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(b)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_add_alpha", 5, b, "guchar");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gdk_pixbuf_add_alpha(s7_c_pointer(pixbuf), lg_boolean(substitute_color), s7_integer(r), s7_integer(g), s7_integer(b))));
+}
+
+static s7_pointer lg_gdk_pixbuf_copy_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_copy_area "void gdk_pixbuf_copy_area(GdkPixbuf* src_pixbuf, int src_x, int src_y, \
+int width, int height, GdkPixbuf* dest_pixbuf, int dest_x, int dest_y)"
+  s7_pointer _p;
+  s7_pointer src_pixbuf, src_x, src_y, width, height, dest_pixbuf, dest_x, dest_y;
+  _p = args;
+  src_pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(src_pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_copy_area", 1, src_pixbuf, "GdkPixbuf*");
+  src_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(src_x)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_copy_area", 2, src_x, "int");
+  src_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(src_y)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_copy_area", 3, src_y, "int");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_copy_area", 4, width, "int");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_copy_area", 5, height, "int");
+  dest_pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dest_pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_copy_area", 6, dest_pixbuf, "GdkPixbuf*");
+  dest_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_x)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_copy_area", 7, dest_x, "int");
+  dest_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_y)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_copy_area", 8, dest_y, "int");
+  gdk_pixbuf_copy_area(s7_c_pointer(src_pixbuf), s7_integer(src_x), s7_integer(src_y), s7_integer(width), s7_integer(height), s7_c_pointer(dest_pixbuf), s7_integer(dest_x), s7_integer(dest_y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_pixbuf_saturate_and_pixelate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_saturate_and_pixelate "void gdk_pixbuf_saturate_and_pixelate(GdkPixbuf* src, GdkPixbuf* dest, \
+gfloat saturation, gboolean pixelate)"
+  s7_pointer _p;
+  s7_pointer src, dest, saturation, pixelate;
+  _p = args;
+  src = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(src, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_saturate_and_pixelate", 1, src, "GdkPixbuf*");
+  dest = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dest, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_saturate_and_pixelate", 2, dest, "GdkPixbuf*");
+  saturation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(saturation)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_saturate_and_pixelate", 3, saturation, "gfloat");
+  pixelate = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(pixelate)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_saturate_and_pixelate", 4, pixelate, "gboolean");
+  gdk_pixbuf_saturate_and_pixelate(s7_c_pointer(src), s7_c_pointer(dest), s7_real(saturation), lg_boolean(pixelate));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_pixbuf_scale(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_scale "void gdk_pixbuf_scale(GdkPixbuf* src, GdkPixbuf* dest, int dest_x, int dest_y, \
+int dest_width, int dest_height, double offset_x, double offset_y, double scale_x, double scale_y, GdkInterpType interp_type)"
+  s7_pointer _p;
+  s7_pointer src, dest, dest_x, dest_y, dest_width, dest_height, offset_x, offset_y, scale_x, scale_y, interp_type;
+  _p = args;
+  src = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(src, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale", 1, src, "GdkPixbuf*");
+  dest = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dest, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale", 2, dest, "GdkPixbuf*");
+  dest_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_x)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale", 3, dest_x, "int");
+  dest_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_y)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale", 4, dest_y, "int");
+  dest_width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_width)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale", 5, dest_width, "int");
+  dest_height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_height)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale", 6, dest_height, "int");
+  offset_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(offset_x)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale", 7, offset_x, "double");
+  offset_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(offset_y)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale", 8, offset_y, "double");
+  scale_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(scale_x)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale", 9, scale_x, "double");
+  scale_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(scale_y)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale", 10, scale_y, "double");
+  interp_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(interp_type)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale", 11, interp_type, "GdkInterpType");
+  gdk_pixbuf_scale(s7_c_pointer(src), s7_c_pointer(dest), s7_integer(dest_x), s7_integer(dest_y), s7_integer(dest_width), s7_integer(dest_height), s7_real(offset_x), s7_real(offset_y), s7_real(scale_x), s7_real(scale_y), s7_integer(interp_type));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_pixbuf_composite(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_composite "void gdk_pixbuf_composite(GdkPixbuf* src, GdkPixbuf* dest, int dest_x, \
+int dest_y, int dest_width, int dest_height, double offset_x, double offset_y, double scale_x, double scale_y, \
+GdkInterpType interp_type, int overall_alpha)"
+  s7_pointer _p;
+  s7_pointer src, dest, dest_x, dest_y, dest_width, dest_height, offset_x, offset_y, scale_x, scale_y, interp_type, overall_alpha;
+  _p = args;
+  src = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(src, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite", 1, src, "GdkPixbuf*");
+  dest = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dest, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite", 2, dest, "GdkPixbuf*");
+  dest_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_x)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite", 3, dest_x, "int");
+  dest_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_y)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite", 4, dest_y, "int");
+  dest_width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_width)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite", 5, dest_width, "int");
+  dest_height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_height)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite", 6, dest_height, "int");
+  offset_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(offset_x)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite", 7, offset_x, "double");
+  offset_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(offset_y)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite", 8, offset_y, "double");
+  scale_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(scale_x)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite", 9, scale_x, "double");
+  scale_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(scale_y)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite", 10, scale_y, "double");
+  interp_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(interp_type)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite", 11, interp_type, "GdkInterpType");
+  overall_alpha = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(overall_alpha)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite", 12, overall_alpha, "int");
+  gdk_pixbuf_composite(s7_c_pointer(src), s7_c_pointer(dest), s7_integer(dest_x), s7_integer(dest_y), s7_integer(dest_width), s7_integer(dest_height), s7_real(offset_x), s7_real(offset_y), s7_real(scale_x), s7_real(scale_y), s7_integer(interp_type), s7_integer(overall_alpha));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_pixbuf_composite_color(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_composite_color "void gdk_pixbuf_composite_color(GdkPixbuf* src, GdkPixbuf* dest, \
+int dest_x, int dest_y, int dest_width, int dest_height, double offset_x, double offset_y, double scale_x, \
+double scale_y, GdkInterpType interp_type, int overall_alpha, int check_x, int check_y, int check_size, \
+guint32 color1, guint32 color2)"
+  s7_pointer _p;
+  s7_pointer src, dest, dest_x, dest_y, dest_width, dest_height, offset_x, offset_y, scale_x, scale_y, interp_type, overall_alpha, check_x, check_y, check_size, color1, color2;
+  _p = args;
+  src = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(src, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 1, src, "GdkPixbuf*");
+  dest = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dest, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 2, dest, "GdkPixbuf*");
+  dest_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_x)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 3, dest_x, "int");
+  dest_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_y)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 4, dest_y, "int");
+  dest_width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_width)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 5, dest_width, "int");
+  dest_height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_height)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 6, dest_height, "int");
+  offset_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(offset_x)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 7, offset_x, "double");
+  offset_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(offset_y)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 8, offset_y, "double");
+  scale_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(scale_x)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 9, scale_x, "double");
+  scale_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(scale_y)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 10, scale_y, "double");
+  interp_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(interp_type)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 11, interp_type, "GdkInterpType");
+  overall_alpha = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(overall_alpha)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 12, overall_alpha, "int");
+  check_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(check_x)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 13, check_x, "int");
+  check_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(check_y)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 14, check_y, "int");
+  check_size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(check_size)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 15, check_size, "int");
+  color1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(color1)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 16, color1, "guint32");
+  color2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(color2)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color", 17, color2, "guint32");
+  gdk_pixbuf_composite_color(s7_c_pointer(src), s7_c_pointer(dest), s7_integer(dest_x), s7_integer(dest_y), s7_integer(dest_width), s7_integer(dest_height), s7_real(offset_x), s7_real(offset_y), s7_real(scale_x), s7_real(scale_y), s7_integer(interp_type), s7_integer(overall_alpha), s7_integer(check_x), s7_integer(check_y), s7_integer(check_size), s7_integer(color1), s7_integer(color2));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_pixbuf_scale_simple(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_scale_simple "GdkPixbuf* gdk_pixbuf_scale_simple(GdkPixbuf* src, int dest_width, \
+int dest_height, GdkInterpType interp_type)"
+  s7_pointer _p;
+  s7_pointer src, dest_width, dest_height, interp_type;
+  _p = args;
+  src = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(src, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale_simple", 1, src, "GdkPixbuf*");
+  dest_width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_width)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale_simple", 2, dest_width, "int");
+  dest_height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_height)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale_simple", 3, dest_height, "int");
+  interp_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(interp_type)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_scale_simple", 4, interp_type, "GdkInterpType");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gdk_pixbuf_scale_simple(s7_c_pointer(src), s7_integer(dest_width), s7_integer(dest_height), s7_integer(interp_type))));
+}
+
+static s7_pointer lg_gdk_pixbuf_composite_color_simple(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_composite_color_simple "GdkPixbuf* gdk_pixbuf_composite_color_simple(GdkPixbuf* src, \
+int dest_width, int dest_height, GdkInterpType interp_type, int overall_alpha, int check_size, guint32 color1, \
+guint32 color2)"
+  s7_pointer _p;
+  s7_pointer src, dest_width, dest_height, interp_type, overall_alpha, check_size, color1, color2;
+  _p = args;
+  src = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(src, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color_simple", 1, src, "GdkPixbuf*");
+  dest_width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_width)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color_simple", 2, dest_width, "int");
+  dest_height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dest_height)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color_simple", 3, dest_height, "int");
+  interp_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(interp_type)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color_simple", 4, interp_type, "GdkInterpType");
+  overall_alpha = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(overall_alpha)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color_simple", 5, overall_alpha, "int");
+  check_size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(check_size)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color_simple", 6, check_size, "int");
+  color1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(color1)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color_simple", 7, color1, "guint32");
+  color2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(color2)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_composite_color_simple", 8, color2, "guint32");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gdk_pixbuf_composite_color_simple(s7_c_pointer(src), s7_integer(dest_width), s7_integer(dest_height), s7_integer(interp_type), s7_integer(overall_alpha), s7_integer(check_size), s7_integer(color1), s7_integer(color2))));
+}
+
+static s7_pointer lg_gdk_pixbuf_animation_new_from_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_animation_new_from_file "GdkPixbufAnimation* gdk_pixbuf_animation_new_from_file(char* filename, \
+GError** [error])"
+  s7_pointer _p;
+  s7_pointer filename;
+  GError* ref_error = NULL;
+  _p = args;
+  filename = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(filename)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_animation_new_from_file", 1, filename, "char*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GdkPixbufAnimation__sym, gdk_pixbuf_animation_new_from_file((char*)s7_string(filename), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gdk_pixbuf_animation_get_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_animation_get_width "int gdk_pixbuf_animation_get_width(GdkPixbufAnimation* animation)"
+  s7_pointer animation;
+  animation = s7_car(args);
+  if (!s7_is_c_pointer_of_type(animation, GdkPixbufAnimation__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_animation_get_width", 1, animation, "GdkPixbufAnimation*");
+  return(s7_make_integer(sc, gdk_pixbuf_animation_get_width(s7_c_pointer(animation))));
+}
+
+static s7_pointer lg_gdk_pixbuf_animation_get_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_animation_get_height "int gdk_pixbuf_animation_get_height(GdkPixbufAnimation* animation)"
+  s7_pointer animation;
+  animation = s7_car(args);
+  if (!s7_is_c_pointer_of_type(animation, GdkPixbufAnimation__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_animation_get_height", 1, animation, "GdkPixbufAnimation*");
+  return(s7_make_integer(sc, gdk_pixbuf_animation_get_height(s7_c_pointer(animation))));
+}
+
+static s7_pointer lg_gdk_pixbuf_animation_is_static_image(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_animation_is_static_image "gboolean gdk_pixbuf_animation_is_static_image(GdkPixbufAnimation* animation)"
+  s7_pointer animation;
+  animation = s7_car(args);
+  if (!s7_is_c_pointer_of_type(animation, GdkPixbufAnimation__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_animation_is_static_image", 1, animation, "GdkPixbufAnimation*");
+  return(s7_make_boolean(sc, gdk_pixbuf_animation_is_static_image(s7_c_pointer(animation))));
+}
+
+static s7_pointer lg_gdk_pixbuf_animation_get_static_image(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_animation_get_static_image "GdkPixbuf* gdk_pixbuf_animation_get_static_image(GdkPixbufAnimation* animation)"
+  s7_pointer animation;
+  animation = s7_car(args);
+  if (!s7_is_c_pointer_of_type(animation, GdkPixbufAnimation__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_animation_get_static_image", 1, animation, "GdkPixbufAnimation*");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gdk_pixbuf_animation_get_static_image(s7_c_pointer(animation))));
+}
+
+static s7_pointer lg_gdk_pixbuf_animation_get_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_animation_get_iter "GdkPixbufAnimationIter* gdk_pixbuf_animation_get_iter(GdkPixbufAnimation* animation, \
+GTimeVal* start_time)"
+  s7_pointer _p;
+  s7_pointer animation, start_time;
+  _p = args;
+  animation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(animation, GdkPixbufAnimation__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_animation_get_iter", 1, animation, "GdkPixbufAnimation*");
+  start_time = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start_time, GTimeVal__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_animation_get_iter", 2, start_time, "GTimeVal*");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbufAnimationIter__sym, gdk_pixbuf_animation_get_iter(s7_c_pointer(animation), s7_c_pointer(start_time))));
+}
+
+static s7_pointer lg_gdk_pixbuf_animation_iter_get_delay_time(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_animation_iter_get_delay_time "int gdk_pixbuf_animation_iter_get_delay_time(GdkPixbufAnimationIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GdkPixbufAnimationIter__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_animation_iter_get_delay_time", 1, iter, "GdkPixbufAnimationIter*");
+  return(s7_make_integer(sc, gdk_pixbuf_animation_iter_get_delay_time(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gdk_pixbuf_animation_iter_get_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_animation_iter_get_pixbuf "GdkPixbuf* gdk_pixbuf_animation_iter_get_pixbuf(GdkPixbufAnimationIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GdkPixbufAnimationIter__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_animation_iter_get_pixbuf", 1, iter, "GdkPixbufAnimationIter*");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gdk_pixbuf_animation_iter_get_pixbuf(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gdk_pixbuf_animation_iter_on_currently_loading_frame(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_animation_iter_on_currently_loading_frame "gboolean gdk_pixbuf_animation_iter_on_currently_loading_frame(GdkPixbufAnimationIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GdkPixbufAnimationIter__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_animation_iter_on_currently_loading_frame", 1, iter, "GdkPixbufAnimationIter*");
+  return(s7_make_boolean(sc, gdk_pixbuf_animation_iter_on_currently_loading_frame(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gdk_pixbuf_animation_iter_advance(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_animation_iter_advance "gboolean gdk_pixbuf_animation_iter_advance(GdkPixbufAnimationIter* iter, \
+GTimeVal* current_time)"
+  s7_pointer _p;
+  s7_pointer iter, current_time;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GdkPixbufAnimationIter__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_animation_iter_advance", 1, iter, "GdkPixbufAnimationIter*");
+  current_time = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(current_time, GTimeVal__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_animation_iter_advance", 2, current_time, "GTimeVal*");
+  return(s7_make_boolean(sc, gdk_pixbuf_animation_iter_advance(s7_c_pointer(iter), s7_c_pointer(current_time))));
+}
+
+static s7_pointer lg_gdk_pixbuf_get_option(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pixbuf_get_option "gchar* gdk_pixbuf_get_option(GdkPixbuf* pixbuf, gchar* key)"
+  s7_pointer _p;
+  s7_pointer pixbuf, key;
+  _p = args;
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_get_option", 1, pixbuf, "GdkPixbuf*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gdk_pixbuf_get_option", 2, key, "gchar*");
+  return(s7_make_string(sc, gdk_pixbuf_get_option(s7_c_pointer(pixbuf), s7_string(key))));
+}
+
+static s7_pointer lg_gtk_accel_group_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_group_new "GtkAccelGroup* gtk_accel_group_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkAccelGroup__sym, gtk_accel_group_new()));
+}
+
+static s7_pointer lg_gtk_accel_group_lock(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_group_lock "void gtk_accel_group_lock(GtkAccelGroup* accel_group)"
+  s7_pointer accel_group;
+  accel_group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_group_lock", 1, accel_group, "GtkAccelGroup*");
+  gtk_accel_group_lock(s7_c_pointer(accel_group));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_group_unlock(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_group_unlock "void gtk_accel_group_unlock(GtkAccelGroup* accel_group)"
+  s7_pointer accel_group;
+  accel_group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_group_unlock", 1, accel_group, "GtkAccelGroup*");
+  gtk_accel_group_unlock(s7_c_pointer(accel_group));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_group_connect(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_group_connect "void gtk_accel_group_connect(GtkAccelGroup* accel_group, guint accel_key, \
+GdkModifierType accel_mods, GtkAccelFlags accel_flags, GClosure* closure)"
+  s7_pointer _p;
+  s7_pointer accel_group, accel_key, accel_mods, accel_flags, closure;
+  _p = args;
+  accel_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_group_connect", 1, accel_group, "GtkAccelGroup*");
+  accel_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_key)) s7_wrong_type_arg_error(sc, "gtk_accel_group_connect", 2, accel_key, "guint");
+  accel_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_mods)) s7_wrong_type_arg_error(sc, "gtk_accel_group_connect", 3, accel_mods, "GdkModifierType");
+  accel_flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_flags)) s7_wrong_type_arg_error(sc, "gtk_accel_group_connect", 4, accel_flags, "GtkAccelFlags");
+  closure = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(closure, GClosure__sym)) && (closure != lg_false)) s7_wrong_type_arg_error(sc, "gtk_accel_group_connect", 5, closure, "GClosure*");
+  gtk_accel_group_connect(s7_c_pointer(accel_group), s7_integer(accel_key), s7_integer(accel_mods), s7_integer(accel_flags), s7_c_pointer(closure));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_group_connect_by_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_group_connect_by_path "void gtk_accel_group_connect_by_path(GtkAccelGroup* accel_group, \
+gchar* accel_path, GClosure* closure)"
+  s7_pointer _p;
+  s7_pointer accel_group, accel_path, closure;
+  _p = args;
+  accel_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_group_connect_by_path", 1, accel_group, "GtkAccelGroup*");
+  accel_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(accel_path)) s7_wrong_type_arg_error(sc, "gtk_accel_group_connect_by_path", 2, accel_path, "gchar*");
+  closure = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(closure, GClosure__sym)) && (closure != lg_false)) s7_wrong_type_arg_error(sc, "gtk_accel_group_connect_by_path", 3, closure, "GClosure*");
+  gtk_accel_group_connect_by_path(s7_c_pointer(accel_group), s7_string(accel_path), s7_c_pointer(closure));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_group_disconnect(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_group_disconnect "gboolean gtk_accel_group_disconnect(GtkAccelGroup* accel_group, \
+GClosure* closure)"
+  s7_pointer _p;
+  s7_pointer accel_group, closure;
+  _p = args;
+  accel_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_group_disconnect", 1, accel_group, "GtkAccelGroup*");
+  closure = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(closure, GClosure__sym)) && (closure != lg_false)) s7_wrong_type_arg_error(sc, "gtk_accel_group_disconnect", 2, closure, "GClosure*");
+  return(s7_make_boolean(sc, gtk_accel_group_disconnect(s7_c_pointer(accel_group), s7_c_pointer(closure))));
+}
+
+static s7_pointer lg_gtk_accel_group_disconnect_key(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_group_disconnect_key "gboolean gtk_accel_group_disconnect_key(GtkAccelGroup* accel_group, \
+guint accel_key, GdkModifierType accel_mods)"
+  s7_pointer _p;
+  s7_pointer accel_group, accel_key, accel_mods;
+  _p = args;
+  accel_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_group_disconnect_key", 1, accel_group, "GtkAccelGroup*");
+  accel_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_key)) s7_wrong_type_arg_error(sc, "gtk_accel_group_disconnect_key", 2, accel_key, "guint");
+  accel_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_mods)) s7_wrong_type_arg_error(sc, "gtk_accel_group_disconnect_key", 3, accel_mods, "GdkModifierType");
+  return(s7_make_boolean(sc, gtk_accel_group_disconnect_key(s7_c_pointer(accel_group), s7_integer(accel_key), s7_integer(accel_mods))));
+}
+
+static s7_pointer lg_gtk_accel_groups_activate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_groups_activate "gboolean gtk_accel_groups_activate(GObject* object, guint accel_key, \
+GdkModifierType accel_mods)"
+  s7_pointer _p;
+  s7_pointer object, accel_key, accel_mods;
+  _p = args;
+  object = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(object, GObject__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_groups_activate", 1, object, "GObject*");
+  accel_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_key)) s7_wrong_type_arg_error(sc, "gtk_accel_groups_activate", 2, accel_key, "guint");
+  accel_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_mods)) s7_wrong_type_arg_error(sc, "gtk_accel_groups_activate", 3, accel_mods, "GdkModifierType");
+  return(s7_make_boolean(sc, gtk_accel_groups_activate(s7_c_pointer(object), s7_integer(accel_key), s7_integer(accel_mods))));
+}
+
+static s7_pointer lg_gtk_accel_groups_from_object(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_groups_from_object "GSList* gtk_accel_groups_from_object(GObject* object)"
+  s7_pointer object;
+  object = s7_car(args);
+  if (!s7_is_c_pointer_of_type(object, GObject__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_groups_from_object", 1, object, "GObject*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_accel_groups_from_object(s7_c_pointer(object))));
+}
+
+static s7_pointer lg_gtk_accel_group_find(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_group_find "GtkAccelKey* gtk_accel_group_find(GtkAccelGroup* accel_group, lambda3 func, \
+lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer accel_group, func, func_info;
+  _p = args;
+  accel_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_group_find", 1, accel_group, "GtkAccelGroup*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, lambda3_sym)) s7_wrong_type_arg_error(sc, "gtk_accel_group_find", 2, func, "lambda3");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_accel_group_find", 3, func_info, "lambda_data");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    result = s7_make_c_pointer(sc, gtk_accel_group_find(s7_c_pointer(accel_group), s7_c_pointer(func), (gpointer)lg_ptr));
+    return(result);
+   }
+}
+
+static s7_pointer lg_gtk_accel_group_from_accel_closure(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_group_from_accel_closure "GtkAccelGroup* gtk_accel_group_from_accel_closure(GClosure* closure)"
+  s7_pointer closure;
+  closure = s7_car(args);
+  if ((!s7_is_c_pointer_of_type(closure, GClosure__sym)) && (closure != lg_false)) s7_wrong_type_arg_error(sc, "gtk_accel_group_from_accel_closure", 1, closure, "GClosure*");
+  return(s7_make_type_with_c_pointer(sc, GtkAccelGroup__sym, gtk_accel_group_from_accel_closure(s7_c_pointer(closure))));
+}
+
+static s7_pointer lg_gtk_accelerator_valid(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accelerator_valid "gboolean gtk_accelerator_valid(guint keyval, GdkModifierType modifiers)"
+  s7_pointer _p;
+  s7_pointer keyval, modifiers;
+  _p = args;
+  keyval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gtk_accelerator_valid", 1, keyval, "guint");
+  modifiers = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(modifiers)) s7_wrong_type_arg_error(sc, "gtk_accelerator_valid", 2, modifiers, "GdkModifierType");
+  return(s7_make_boolean(sc, gtk_accelerator_valid(s7_integer(keyval), s7_integer(modifiers))));
+}
+
+static s7_pointer lg_gtk_accelerator_parse(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accelerator_parse "void gtk_accelerator_parse(gchar* accelerator, guint* [accelerator_key], \
+GdkModifierType* [accelerator_mods])"
+  s7_pointer _p;
+  s7_pointer accelerator;
+  guint ref_accelerator_key;
+  GdkModifierType ref_accelerator_mods;
+  _p = args;
+  accelerator = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(accelerator)) s7_wrong_type_arg_error(sc, "gtk_accelerator_parse", 1, accelerator, "gchar*");
+  gtk_accelerator_parse(s7_string(accelerator), &ref_accelerator_key, &ref_accelerator_mods);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_accelerator_key), s7_make_integer(sc, ref_accelerator_mods)));
+}
+
+static s7_pointer lg_gtk_accelerator_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accelerator_name "gchar* gtk_accelerator_name(guint accelerator_key, GdkModifierType accelerator_mods)"
+  s7_pointer _p;
+  s7_pointer accelerator_key, accelerator_mods;
+  _p = args;
+  accelerator_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accelerator_key)) s7_wrong_type_arg_error(sc, "gtk_accelerator_name", 1, accelerator_key, "guint");
+  accelerator_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accelerator_mods)) s7_wrong_type_arg_error(sc, "gtk_accelerator_name", 2, accelerator_mods, "GdkModifierType");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_accelerator_name(s7_integer(accelerator_key), s7_integer(accelerator_mods));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_accelerator_set_default_mod_mask(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accelerator_set_default_mod_mask "void gtk_accelerator_set_default_mod_mask(GdkModifierType default_mod_mask)"
+  s7_pointer default_mod_mask;
+  default_mod_mask = s7_car(args);
+  if (!s7_is_integer(default_mod_mask)) s7_wrong_type_arg_error(sc, "gtk_accelerator_set_default_mod_mask", 1, default_mod_mask, "GdkModifierType");
+  gtk_accelerator_set_default_mod_mask(s7_integer(default_mod_mask));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_group_query(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_group_query "GtkAccelGroupEntry* gtk_accel_group_query(GtkAccelGroup* accel_group, \
+guint accel_key, GdkModifierType accel_mods, guint* [n_entries])"
+  s7_pointer _p;
+  s7_pointer accel_group, accel_key, accel_mods;
+  guint ref_n_entries;
+  _p = args;
+  accel_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_group_query", 1, accel_group, "GtkAccelGroup*");
+  accel_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_key)) s7_wrong_type_arg_error(sc, "gtk_accel_group_query", 2, accel_key, "guint");
+  accel_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_mods)) s7_wrong_type_arg_error(sc, "gtk_accel_group_query", 3, accel_mods, "GdkModifierType");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GtkAccelGroupEntry__sym, gtk_accel_group_query(s7_c_pointer(accel_group), s7_integer(accel_key), s7_integer(accel_mods), &ref_n_entries));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_n_entries)));
+   }
+}
+
+static s7_pointer lg_gtk_accel_group_activate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_group_activate "gboolean gtk_accel_group_activate(GtkAccelGroup* accel_group, GQuark accel_quark, \
+GObject* acceleratable, guint accel_key, GdkModifierType accel_mods)"
+  s7_pointer _p;
+  s7_pointer accel_group, accel_quark, acceleratable, accel_key, accel_mods;
+  _p = args;
+  accel_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_group_activate", 1, accel_group, "GtkAccelGroup*");
+  accel_quark = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_quark)) s7_wrong_type_arg_error(sc, "gtk_accel_group_activate", 2, accel_quark, "GQuark");
+  acceleratable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(acceleratable, GObject__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_group_activate", 3, acceleratable, "GObject*");
+  accel_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_key)) s7_wrong_type_arg_error(sc, "gtk_accel_group_activate", 4, accel_key, "guint");
+  accel_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_mods)) s7_wrong_type_arg_error(sc, "gtk_accel_group_activate", 5, accel_mods, "GdkModifierType");
+  return(s7_make_boolean(sc, gtk_accel_group_activate(s7_c_pointer(accel_group), s7_integer(accel_quark), s7_c_pointer(acceleratable), s7_integer(accel_key), s7_integer(accel_mods))));
+}
+
+static s7_pointer lg_gtk_accel_label_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_label_new "GtkWidget* gtk_accel_label_new(gchar* string)"
+  s7_pointer string;
+  string = s7_car(args);
+  if (!s7_is_string(string)) s7_wrong_type_arg_error(sc, "gtk_accel_label_new", 1, string, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_accel_label_new(s7_string(string))));
+}
+
+static s7_pointer lg_gtk_accel_label_get_accel_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_label_get_accel_widget "GtkWidget* gtk_accel_label_get_accel_widget(GtkAccelLabel* accel_label)"
+  s7_pointer accel_label;
+  accel_label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(accel_label, GtkAccelLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_label_get_accel_widget", 1, accel_label, "GtkAccelLabel*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_accel_label_get_accel_widget(s7_c_pointer(accel_label))));
+}
+
+static s7_pointer lg_gtk_accel_label_get_accel_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_label_get_accel_width "guint gtk_accel_label_get_accel_width(GtkAccelLabel* accel_label)"
+  s7_pointer accel_label;
+  accel_label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(accel_label, GtkAccelLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_label_get_accel_width", 1, accel_label, "GtkAccelLabel*");
+  return(s7_make_integer(sc, gtk_accel_label_get_accel_width(s7_c_pointer(accel_label))));
+}
+
+static s7_pointer lg_gtk_accel_label_set_accel_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_label_set_accel_widget "void gtk_accel_label_set_accel_widget(GtkAccelLabel* accel_label, \
+GtkWidget* accel_widget)"
+  s7_pointer _p;
+  s7_pointer accel_label, accel_widget;
+  _p = args;
+  accel_label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_label, GtkAccelLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_label_set_accel_widget", 1, accel_label, "GtkAccelLabel*");
+  accel_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_label_set_accel_widget", 2, accel_widget, "GtkWidget*");
+  gtk_accel_label_set_accel_widget(s7_c_pointer(accel_label), s7_c_pointer(accel_widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_label_set_accel_closure(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_label_set_accel_closure "void gtk_accel_label_set_accel_closure(GtkAccelLabel* accel_label, \
+GClosure* closure)"
+  s7_pointer _p;
+  s7_pointer accel_label, closure;
+  _p = args;
+  accel_label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_label, GtkAccelLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_label_set_accel_closure", 1, accel_label, "GtkAccelLabel*");
+  closure = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(closure, GClosure__sym)) && (closure != lg_false)) s7_wrong_type_arg_error(sc, "gtk_accel_label_set_accel_closure", 2, closure, "GClosure*");
+  gtk_accel_label_set_accel_closure(s7_c_pointer(accel_label), s7_c_pointer(closure));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_label_refetch(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_label_refetch "gboolean gtk_accel_label_refetch(GtkAccelLabel* accel_label)"
+  s7_pointer accel_label;
+  accel_label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(accel_label, GtkAccelLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_label_refetch", 1, accel_label, "GtkAccelLabel*");
+  return(s7_make_boolean(sc, gtk_accel_label_refetch(s7_c_pointer(accel_label))));
+}
+
+static s7_pointer lg_gtk_accel_map_add_entry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_map_add_entry "void gtk_accel_map_add_entry(gchar* accel_path, guint accel_key, \
+GdkModifierType accel_mods)"
+  s7_pointer _p;
+  s7_pointer accel_path, accel_key, accel_mods;
+  _p = args;
+  accel_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(accel_path)) s7_wrong_type_arg_error(sc, "gtk_accel_map_add_entry", 1, accel_path, "gchar*");
+  accel_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_key)) s7_wrong_type_arg_error(sc, "gtk_accel_map_add_entry", 2, accel_key, "guint");
+  accel_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_mods)) s7_wrong_type_arg_error(sc, "gtk_accel_map_add_entry", 3, accel_mods, "GdkModifierType");
+  gtk_accel_map_add_entry(s7_string(accel_path), s7_integer(accel_key), s7_integer(accel_mods));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_map_lookup_entry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_map_lookup_entry "gboolean gtk_accel_map_lookup_entry(gchar* accel_path, GtkAccelKey* key)"
+  s7_pointer _p;
+  s7_pointer accel_path, key;
+  _p = args;
+  accel_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(accel_path)) s7_wrong_type_arg_error(sc, "gtk_accel_map_lookup_entry", 1, accel_path, "gchar*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(key, GtkAccelKey__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_map_lookup_entry", 2, key, "GtkAccelKey*");
+  return(s7_make_boolean(sc, gtk_accel_map_lookup_entry(s7_string(accel_path), s7_c_pointer(key))));
+}
+
+static s7_pointer lg_gtk_accel_map_change_entry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_map_change_entry "gboolean gtk_accel_map_change_entry(gchar* accel_path, guint accel_key, \
+GdkModifierType accel_mods, gboolean replace)"
+  s7_pointer _p;
+  s7_pointer accel_path, accel_key, accel_mods, replace;
+  _p = args;
+  accel_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(accel_path)) s7_wrong_type_arg_error(sc, "gtk_accel_map_change_entry", 1, accel_path, "gchar*");
+  accel_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_key)) s7_wrong_type_arg_error(sc, "gtk_accel_map_change_entry", 2, accel_key, "guint");
+  accel_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_mods)) s7_wrong_type_arg_error(sc, "gtk_accel_map_change_entry", 3, accel_mods, "GdkModifierType");
+  replace = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(replace)) s7_wrong_type_arg_error(sc, "gtk_accel_map_change_entry", 4, replace, "gboolean");
+  return(s7_make_boolean(sc, gtk_accel_map_change_entry(s7_string(accel_path), s7_integer(accel_key), s7_integer(accel_mods), lg_boolean(replace))));
+}
+
+static s7_pointer lg_gtk_accel_map_load(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_map_load "void gtk_accel_map_load(gchar* file_name)"
+  s7_pointer file_name;
+  file_name = s7_car(args);
+  if (!s7_is_string(file_name)) s7_wrong_type_arg_error(sc, "gtk_accel_map_load", 1, file_name, "gchar*");
+  gtk_accel_map_load(s7_string(file_name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_map_save(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_map_save "void gtk_accel_map_save(gchar* file_name)"
+  s7_pointer file_name;
+  file_name = s7_car(args);
+  if (!s7_is_string(file_name)) s7_wrong_type_arg_error(sc, "gtk_accel_map_save", 1, file_name, "gchar*");
+  gtk_accel_map_save(s7_string(file_name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_map_foreach(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_map_foreach "void gtk_accel_map_foreach(lambda_data func_info, GtkAccelMapForeach func)"
+  s7_pointer _p;
+  s7_pointer func_info, func;
+  _p = args;
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_accel_map_foreach", 1, func_info, "lambda_data");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkAccelMapForeach_sym)) s7_wrong_type_arg_error(sc, "gtk_accel_map_foreach", 2, func, "GtkAccelMapForeach");
+  {
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    gtk_accel_map_foreach((gpointer)lg_ptr, s7_c_pointer(func));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_accel_map_load_fd(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_map_load_fd "void gtk_accel_map_load_fd(gint fd)"
+  s7_pointer fd;
+  fd = s7_car(args);
+  if (!s7_is_integer(fd)) s7_wrong_type_arg_error(sc, "gtk_accel_map_load_fd", 1, fd, "gint");
+  gtk_accel_map_load_fd(s7_integer(fd));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_map_save_fd(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_map_save_fd "void gtk_accel_map_save_fd(gint fd)"
+  s7_pointer fd;
+  fd = s7_car(args);
+  if (!s7_is_integer(fd)) s7_wrong_type_arg_error(sc, "gtk_accel_map_save_fd", 1, fd, "gint");
+  gtk_accel_map_save_fd(s7_integer(fd));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_map_add_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_map_add_filter "void gtk_accel_map_add_filter(gchar* filter_pattern)"
+  s7_pointer filter_pattern;
+  filter_pattern = s7_car(args);
+  if (!s7_is_string(filter_pattern)) s7_wrong_type_arg_error(sc, "gtk_accel_map_add_filter", 1, filter_pattern, "gchar*");
+  gtk_accel_map_add_filter(s7_string(filter_pattern));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_map_foreach_unfiltered(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_map_foreach_unfiltered "void gtk_accel_map_foreach_unfiltered(lambda_data func_info, \
+GtkAccelMapForeach func)"
+  s7_pointer _p;
+  s7_pointer func_info, func;
+  _p = args;
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_accel_map_foreach_unfiltered", 1, func_info, "lambda_data");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkAccelMapForeach_sym)) s7_wrong_type_arg_error(sc, "gtk_accel_map_foreach_unfiltered", 2, func, "GtkAccelMapForeach");
+  {
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    gtk_accel_map_foreach_unfiltered((gpointer)lg_ptr, s7_c_pointer(func));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_adjustment_clamp_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_clamp_page "void gtk_adjustment_clamp_page(GtkAdjustment* adjustment, gdouble lower, \
+gdouble upper)"
+  s7_pointer _p;
+  s7_pointer adjustment, lower, upper;
+  _p = args;
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_clamp_page", 1, adjustment, "GtkAdjustment*");
+  lower = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(lower)) s7_wrong_type_arg_error(sc, "gtk_adjustment_clamp_page", 2, lower, "gdouble");
+  upper = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(upper)) s7_wrong_type_arg_error(sc, "gtk_adjustment_clamp_page", 3, upper, "gdouble");
+  gtk_adjustment_clamp_page(s7_c_pointer(adjustment), s7_real(lower), s7_real(upper));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_adjustment_get_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_get_value "gdouble gtk_adjustment_get_value(GtkAdjustment* adjustment)"
+  s7_pointer adjustment;
+  adjustment = s7_car(args);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_get_value", 1, adjustment, "GtkAdjustment*");
+  return(s7_make_real(sc, gtk_adjustment_get_value(s7_c_pointer(adjustment))));
+}
+
+static s7_pointer lg_gtk_adjustment_set_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_set_value "void gtk_adjustment_set_value(GtkAdjustment* adjustment, gdouble value)"
+  s7_pointer _p;
+  s7_pointer adjustment, value;
+  _p = args;
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_set_value", 1, adjustment, "GtkAdjustment*");
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(value)) s7_wrong_type_arg_error(sc, "gtk_adjustment_set_value", 2, value, "gdouble");
+  gtk_adjustment_set_value(s7_c_pointer(adjustment), s7_real(value));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_aspect_frame_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_aspect_frame_new "GtkWidget* gtk_aspect_frame_new(gchar* label, gfloat xalign, gfloat yalign, \
+gfloat ratio, gboolean obey_child)"
+  s7_pointer _p;
+  s7_pointer label, xalign, yalign, ratio, obey_child;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_aspect_frame_new", 1, label, "gchar*");
+  xalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xalign)) s7_wrong_type_arg_error(sc, "gtk_aspect_frame_new", 2, xalign, "gfloat");
+  yalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(yalign)) s7_wrong_type_arg_error(sc, "gtk_aspect_frame_new", 3, yalign, "gfloat");
+  ratio = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(ratio)) s7_wrong_type_arg_error(sc, "gtk_aspect_frame_new", 4, ratio, "gfloat");
+  obey_child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(obey_child)) s7_wrong_type_arg_error(sc, "gtk_aspect_frame_new", 5, obey_child, "gboolean");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_aspect_frame_new(s7_string(label), s7_real(xalign), s7_real(yalign), s7_real(ratio), lg_boolean(obey_child))));
+}
+
+static s7_pointer lg_gtk_aspect_frame_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_aspect_frame_set "void gtk_aspect_frame_set(GtkAspectFrame* aspect_frame, gfloat xalign, \
+gfloat yalign, gfloat ratio, gboolean obey_child)"
+  s7_pointer _p;
+  s7_pointer aspect_frame, xalign, yalign, ratio, obey_child;
+  _p = args;
+  aspect_frame = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(aspect_frame, GtkAspectFrame__sym)) s7_wrong_type_arg_error(sc, "gtk_aspect_frame_set", 1, aspect_frame, "GtkAspectFrame*");
+  xalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xalign)) s7_wrong_type_arg_error(sc, "gtk_aspect_frame_set", 2, xalign, "gfloat");
+  yalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(yalign)) s7_wrong_type_arg_error(sc, "gtk_aspect_frame_set", 3, yalign, "gfloat");
+  ratio = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(ratio)) s7_wrong_type_arg_error(sc, "gtk_aspect_frame_set", 4, ratio, "gfloat");
+  obey_child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(obey_child)) s7_wrong_type_arg_error(sc, "gtk_aspect_frame_set", 5, obey_child, "gboolean");
+  gtk_aspect_frame_set(s7_c_pointer(aspect_frame), s7_real(xalign), s7_real(yalign), s7_real(ratio), lg_boolean(obey_child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_button_box_get_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_box_get_layout "GtkButtonBoxStyle gtk_button_box_get_layout(GtkButtonBox* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkButtonBox__sym)) s7_wrong_type_arg_error(sc, "gtk_button_box_get_layout", 1, widget, "GtkButtonBox*");
+  return(s7_make_integer(sc, gtk_button_box_get_layout(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_button_box_set_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_box_set_layout "void gtk_button_box_set_layout(GtkButtonBox* widget, GtkButtonBoxStyle layout_style)"
+  s7_pointer _p;
+  s7_pointer widget, layout_style;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkButtonBox__sym)) s7_wrong_type_arg_error(sc, "gtk_button_box_set_layout", 1, widget, "GtkButtonBox*");
+  layout_style = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(layout_style)) s7_wrong_type_arg_error(sc, "gtk_button_box_set_layout", 2, layout_style, "GtkButtonBoxStyle");
+  gtk_button_box_set_layout(s7_c_pointer(widget), s7_integer(layout_style));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_button_box_set_child_secondary(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_box_set_child_secondary "void gtk_button_box_set_child_secondary(GtkButtonBox* widget, \
+GtkWidget* child, gboolean is_secondary)"
+  s7_pointer _p;
+  s7_pointer widget, child, is_secondary;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkButtonBox__sym)) s7_wrong_type_arg_error(sc, "gtk_button_box_set_child_secondary", 1, widget, "GtkButtonBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_button_box_set_child_secondary", 2, child, "GtkWidget*");
+  is_secondary = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(is_secondary)) s7_wrong_type_arg_error(sc, "gtk_button_box_set_child_secondary", 3, is_secondary, "gboolean");
+  gtk_button_box_set_child_secondary(s7_c_pointer(widget), s7_c_pointer(child), lg_boolean(is_secondary));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_binding_set_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_binding_set_new "GtkBindingSet* gtk_binding_set_new(gchar* set_name)"
+  s7_pointer set_name;
+  set_name = s7_car(args);
+  if (!s7_is_string(set_name)) s7_wrong_type_arg_error(sc, "gtk_binding_set_new", 1, set_name, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkBindingSet__sym, gtk_binding_set_new(s7_string(set_name))));
+}
+
+static s7_pointer lg_gtk_binding_set_by_class(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_binding_set_by_class "GtkBindingSet* gtk_binding_set_by_class(gpointer object_class)"
+  s7_pointer object_class;
+  object_class = s7_car(args);
+  if (!s7_is_c_pointer_of_type(object_class, gpointer_sym)) s7_wrong_type_arg_error(sc, "gtk_binding_set_by_class", 1, object_class, "gpointer");
+  return(s7_make_type_with_c_pointer(sc, GtkBindingSet__sym, gtk_binding_set_by_class(s7_c_pointer(object_class))));
+}
+
+static s7_pointer lg_gtk_binding_set_find(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_binding_set_find "GtkBindingSet* gtk_binding_set_find(gchar* set_name)"
+  s7_pointer set_name;
+  set_name = s7_car(args);
+  if (!s7_is_string(set_name)) s7_wrong_type_arg_error(sc, "gtk_binding_set_find", 1, set_name, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkBindingSet__sym, gtk_binding_set_find(s7_string(set_name))));
+}
+
+static s7_pointer lg_gtk_binding_entry_remove(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_binding_entry_remove "void gtk_binding_entry_remove(GtkBindingSet* binding_set, guint keyval, \
+GdkModifierType modifiers)"
+  s7_pointer _p;
+  s7_pointer binding_set, keyval, modifiers;
+  _p = args;
+  binding_set = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(binding_set, GtkBindingSet__sym)) s7_wrong_type_arg_error(sc, "gtk_binding_entry_remove", 1, binding_set, "GtkBindingSet*");
+  keyval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gtk_binding_entry_remove", 2, keyval, "guint");
+  modifiers = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(modifiers)) s7_wrong_type_arg_error(sc, "gtk_binding_entry_remove", 3, modifiers, "GdkModifierType");
+  gtk_binding_entry_remove(s7_c_pointer(binding_set), s7_integer(keyval), s7_integer(modifiers));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_bin_get_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_bin_get_child "GtkWidget* gtk_bin_get_child(GtkBin* bin)"
+  s7_pointer bin;
+  bin = s7_car(args);
+  if (!s7_is_c_pointer_of_type(bin, GtkBin__sym)) s7_wrong_type_arg_error(sc, "gtk_bin_get_child", 1, bin, "GtkBin*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_bin_get_child(s7_c_pointer(bin))));
+}
+
+static s7_pointer lg_gtk_box_set_homogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_box_set_homogeneous "void gtk_box_set_homogeneous(GtkBox* box, gboolean homogeneous)"
+  s7_pointer _p;
+  s7_pointer box, homogeneous;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkBox__sym)) s7_wrong_type_arg_error(sc, "gtk_box_set_homogeneous", 1, box, "GtkBox*");
+  homogeneous = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(homogeneous)) s7_wrong_type_arg_error(sc, "gtk_box_set_homogeneous", 2, homogeneous, "gboolean");
+  gtk_box_set_homogeneous(s7_c_pointer(box), lg_boolean(homogeneous));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_box_get_homogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_box_get_homogeneous "gboolean gtk_box_get_homogeneous(GtkBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkBox__sym)) s7_wrong_type_arg_error(sc, "gtk_box_get_homogeneous", 1, box, "GtkBox*");
+  return(s7_make_boolean(sc, gtk_box_get_homogeneous(s7_c_pointer(box))));
+}
+
+static s7_pointer lg_gtk_box_set_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_box_set_spacing "void gtk_box_set_spacing(GtkBox* box, gint spacing)"
+  s7_pointer _p;
+  s7_pointer box, spacing;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkBox__sym)) s7_wrong_type_arg_error(sc, "gtk_box_set_spacing", 1, box, "GtkBox*");
+  spacing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(spacing)) s7_wrong_type_arg_error(sc, "gtk_box_set_spacing", 2, spacing, "gint");
+  gtk_box_set_spacing(s7_c_pointer(box), s7_integer(spacing));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_box_get_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_box_get_spacing "gint gtk_box_get_spacing(GtkBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkBox__sym)) s7_wrong_type_arg_error(sc, "gtk_box_get_spacing", 1, box, "GtkBox*");
+  return(s7_make_integer(sc, gtk_box_get_spacing(s7_c_pointer(box))));
+}
+
+static s7_pointer lg_gtk_box_reorder_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_box_reorder_child "void gtk_box_reorder_child(GtkBox* box, GtkWidget* child, gint position)"
+  s7_pointer _p;
+  s7_pointer box, child, position;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkBox__sym)) s7_wrong_type_arg_error(sc, "gtk_box_reorder_child", 1, box, "GtkBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_box_reorder_child", 2, child, "GtkWidget*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_box_reorder_child", 3, position, "gint");
+  gtk_box_reorder_child(s7_c_pointer(box), s7_c_pointer(child), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_box_query_child_packing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_box_query_child_packing "void gtk_box_query_child_packing(GtkBox* box, GtkWidget* child, \
+gboolean* [expand], gboolean* [fill], guint* [padding], GtkPackType* [pack_type])"
+  s7_pointer _p;
+  s7_pointer box, child;
+  gboolean ref_expand;
+  gboolean ref_fill;
+  guint ref_padding;
+  GtkPackType ref_pack_type;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkBox__sym)) s7_wrong_type_arg_error(sc, "gtk_box_query_child_packing", 1, box, "GtkBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_box_query_child_packing", 2, child, "GtkWidget*");
+  gtk_box_query_child_packing(s7_c_pointer(box), s7_c_pointer(child), &ref_expand, &ref_fill, &ref_padding, &ref_pack_type);
+    return(s7_list(sc, 4, s7_make_boolean(sc, ref_expand), s7_make_boolean(sc, ref_fill), s7_make_integer(sc, ref_padding), s7_make_integer(sc, ref_pack_type)));
+}
+
+static s7_pointer lg_gtk_box_set_child_packing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_box_set_child_packing "void gtk_box_set_child_packing(GtkBox* box, GtkWidget* child, \
+gboolean expand, gboolean fill, guint padding, GtkPackType pack_type)"
+  s7_pointer _p;
+  s7_pointer box, child, expand, fill, padding, pack_type;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkBox__sym)) s7_wrong_type_arg_error(sc, "gtk_box_set_child_packing", 1, box, "GtkBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_box_set_child_packing", 2, child, "GtkWidget*");
+  expand = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(expand)) s7_wrong_type_arg_error(sc, "gtk_box_set_child_packing", 3, expand, "gboolean");
+  fill = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(fill)) s7_wrong_type_arg_error(sc, "gtk_box_set_child_packing", 4, fill, "gboolean");
+  padding = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(padding)) s7_wrong_type_arg_error(sc, "gtk_box_set_child_packing", 5, padding, "guint");
+  pack_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pack_type)) s7_wrong_type_arg_error(sc, "gtk_box_set_child_packing", 6, pack_type, "GtkPackType");
+  gtk_box_set_child_packing(s7_c_pointer(box), s7_c_pointer(child), lg_boolean(expand), lg_boolean(fill), s7_integer(padding), s7_integer(pack_type));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_button_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_new "GtkWidget* gtk_button_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_button_new()));
+}
+
+static s7_pointer lg_gtk_button_new_with_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_new_with_label "GtkWidget* gtk_button_new_with_label(gchar* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_button_new_with_label", 1, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_button_new_with_label(s7_string(label))));
+}
+
+static s7_pointer lg_gtk_button_new_with_mnemonic(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_new_with_mnemonic "GtkWidget* gtk_button_new_with_mnemonic(gchar* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_button_new_with_mnemonic", 1, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_button_new_with_mnemonic(s7_string(label))));
+}
+
+static s7_pointer lg_gtk_button_clicked(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_clicked "void gtk_button_clicked(GtkButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkButton__sym)) s7_wrong_type_arg_error(sc, "gtk_button_clicked", 1, button, "GtkButton*");
+  gtk_button_clicked(s7_c_pointer(button));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_button_set_relief(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_set_relief "void gtk_button_set_relief(GtkButton* button, GtkReliefStyle newstyle)"
+  s7_pointer _p;
+  s7_pointer button, newstyle;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkButton__sym)) s7_wrong_type_arg_error(sc, "gtk_button_set_relief", 1, button, "GtkButton*");
+  newstyle = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(newstyle)) s7_wrong_type_arg_error(sc, "gtk_button_set_relief", 2, newstyle, "GtkReliefStyle");
+  gtk_button_set_relief(s7_c_pointer(button), s7_integer(newstyle));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_button_get_relief(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_get_relief "GtkReliefStyle gtk_button_get_relief(GtkButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkButton__sym)) s7_wrong_type_arg_error(sc, "gtk_button_get_relief", 1, button, "GtkButton*");
+  return(s7_make_integer(sc, gtk_button_get_relief(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_button_set_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_set_label "void gtk_button_set_label(GtkButton* button, gchar* label)"
+  s7_pointer _p;
+  s7_pointer button, label;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkButton__sym)) s7_wrong_type_arg_error(sc, "gtk_button_set_label", 1, button, "GtkButton*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_button_set_label", 2, label, "gchar*");
+  gtk_button_set_label(s7_c_pointer(button), s7_string(label));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_button_get_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_get_label "gchar* gtk_button_get_label(GtkButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkButton__sym)) s7_wrong_type_arg_error(sc, "gtk_button_get_label", 1, button, "GtkButton*");
+  return(s7_make_string(sc, gtk_button_get_label(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_button_set_use_underline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_set_use_underline "void gtk_button_set_use_underline(GtkButton* button, gboolean use_underline)"
+  s7_pointer _p;
+  s7_pointer button, use_underline;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkButton__sym)) s7_wrong_type_arg_error(sc, "gtk_button_set_use_underline", 1, button, "GtkButton*");
+  use_underline = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_underline)) s7_wrong_type_arg_error(sc, "gtk_button_set_use_underline", 2, use_underline, "gboolean");
+  gtk_button_set_use_underline(s7_c_pointer(button), lg_boolean(use_underline));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_button_get_use_underline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_get_use_underline "gboolean gtk_button_get_use_underline(GtkButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkButton__sym)) s7_wrong_type_arg_error(sc, "gtk_button_get_use_underline", 1, button, "GtkButton*");
+  return(s7_make_boolean(sc, gtk_button_get_use_underline(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_calendar_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_new "GtkWidget* gtk_calendar_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_calendar_new()));
+}
+
+static s7_pointer lg_gtk_calendar_select_day(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_select_day "void gtk_calendar_select_day(GtkCalendar* calendar, guint day)"
+  s7_pointer _p;
+  s7_pointer calendar, day;
+  _p = args;
+  calendar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(calendar, GtkCalendar__sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_select_day", 1, calendar, "GtkCalendar*");
+  day = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(day)) s7_wrong_type_arg_error(sc, "gtk_calendar_select_day", 2, day, "guint");
+  gtk_calendar_select_day(s7_c_pointer(calendar), s7_integer(day));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_calendar_clear_marks(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_clear_marks "void gtk_calendar_clear_marks(GtkCalendar* calendar)"
+  s7_pointer calendar;
+  calendar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(calendar, GtkCalendar__sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_clear_marks", 1, calendar, "GtkCalendar*");
+  gtk_calendar_clear_marks(s7_c_pointer(calendar));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_calendar_get_date(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_get_date "void gtk_calendar_get_date(GtkCalendar* calendar, guint* [year], guint* [month], \
+guint* [day])"
+  s7_pointer _p;
+  s7_pointer calendar;
+  guint ref_year;
+  guint ref_month;
+  guint ref_day;
+  _p = args;
+  calendar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(calendar, GtkCalendar__sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_get_date", 1, calendar, "GtkCalendar*");
+  gtk_calendar_get_date(s7_c_pointer(calendar), &ref_year, &ref_month, &ref_day);
+    return(s7_list(sc, 3, s7_make_integer(sc, ref_year), s7_make_integer(sc, ref_month), s7_make_integer(sc, ref_day)));
+}
+
+static s7_pointer lg_gtk_cell_editable_start_editing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_editable_start_editing "void gtk_cell_editable_start_editing(GtkCellEditable* cell_editable, \
+GdkEvent* event)"
+  s7_pointer _p;
+  s7_pointer cell_editable, event;
+  _p = args;
+  cell_editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_editable, GtkCellEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_editable_start_editing", 1, cell_editable, "GtkCellEditable*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(event, GdkEvent__sym)) && (event != lg_false)) s7_wrong_type_arg_error(sc, "gtk_cell_editable_start_editing", 2, event, "GdkEvent*");
+  gtk_cell_editable_start_editing(s7_c_pointer(cell_editable), s7_c_pointer(event));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_editable_editing_done(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_editable_editing_done "void gtk_cell_editable_editing_done(GtkCellEditable* cell_editable)"
+  s7_pointer cell_editable;
+  cell_editable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cell_editable, GtkCellEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_editable_editing_done", 1, cell_editable, "GtkCellEditable*");
+  gtk_cell_editable_editing_done(s7_c_pointer(cell_editable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_editable_remove_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_editable_remove_widget "void gtk_cell_editable_remove_widget(GtkCellEditable* cell_editable)"
+  s7_pointer cell_editable;
+  cell_editable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cell_editable, GtkCellEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_editable_remove_widget", 1, cell_editable, "GtkCellEditable*");
+  gtk_cell_editable_remove_widget(s7_c_pointer(cell_editable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_renderer_activate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_activate "gboolean gtk_cell_renderer_activate(GtkCellRenderer* cell, GdkEvent* event, \
+GtkWidget* widget, gchar* path, GdkRectangle* background_area, GdkRectangle* cell_area, GtkCellRendererState flags)"
+  s7_pointer _p;
+  s7_pointer cell, event, widget, path, background_area, cell_area, flags;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_activate", 1, cell, "GtkCellRenderer*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_activate", 2, event, "GdkEvent*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_activate", 3, widget, "GtkWidget*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(path)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_activate", 4, path, "gchar*");
+  background_area = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(background_area, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_activate", 5, background_area, "GdkRectangle*");
+  cell_area = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_area, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_activate", 6, cell_area, "GdkRectangle*");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_activate", 7, flags, "GtkCellRendererState");
+  return(s7_make_boolean(sc, gtk_cell_renderer_activate(s7_c_pointer(cell), s7_c_pointer(event), s7_c_pointer(widget), s7_string(path), s7_c_pointer(background_area), s7_c_pointer(cell_area), s7_integer(flags))));
+}
+
+static s7_pointer lg_gtk_cell_renderer_start_editing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_start_editing "GtkCellEditable* gtk_cell_renderer_start_editing(GtkCellRenderer* cell, \
+GdkEvent* event, GtkWidget* widget, gchar* path, GdkRectangle* background_area, GdkRectangle* cell_area, \
+GtkCellRendererState flags)"
+  s7_pointer _p;
+  s7_pointer cell, event, widget, path, background_area, cell_area, flags;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_start_editing", 1, cell, "GtkCellRenderer*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(event, GdkEvent__sym)) && (event != lg_false)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_start_editing", 2, event, "GdkEvent*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_start_editing", 3, widget, "GtkWidget*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(path)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_start_editing", 4, path, "gchar*");
+  background_area = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(background_area, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_start_editing", 5, background_area, "GdkRectangle*");
+  cell_area = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_area, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_start_editing", 6, cell_area, "GdkRectangle*");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_start_editing", 7, flags, "GtkCellRendererState");
+  return(s7_make_type_with_c_pointer(sc, GtkCellEditable__sym, gtk_cell_renderer_start_editing(s7_c_pointer(cell), s7_c_pointer(event), s7_c_pointer(widget), s7_string(path), s7_c_pointer(background_area), s7_c_pointer(cell_area), s7_integer(flags))));
+}
+
+static s7_pointer lg_gtk_cell_renderer_set_fixed_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_set_fixed_size "void gtk_cell_renderer_set_fixed_size(GtkCellRenderer* cell, \
+gint width, gint height)"
+  s7_pointer _p;
+  s7_pointer cell, width, height;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_set_fixed_size", 1, cell, "GtkCellRenderer*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_set_fixed_size", 2, width, "gint");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_set_fixed_size", 3, height, "gint");
+  gtk_cell_renderer_set_fixed_size(s7_c_pointer(cell), s7_integer(width), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_renderer_get_fixed_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_get_fixed_size "void gtk_cell_renderer_get_fixed_size(GtkCellRenderer* cell, \
+gint* [width], gint* [height])"
+  s7_pointer _p;
+  s7_pointer cell;
+  gint ref_width;
+  gint ref_height;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_fixed_size", 1, cell, "GtkCellRenderer*");
+  gtk_cell_renderer_get_fixed_size(s7_c_pointer(cell), &ref_width, &ref_height);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_width), s7_make_integer(sc, ref_height)));
+}
+
+static s7_pointer lg_gtk_cell_renderer_pixbuf_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_pixbuf_new "GtkCellRenderer* gtk_cell_renderer_pixbuf_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkCellRenderer__sym, gtk_cell_renderer_pixbuf_new()));
+}
+
+static s7_pointer lg_gtk_cell_renderer_text_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_text_new "GtkCellRenderer* gtk_cell_renderer_text_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkCellRenderer__sym, gtk_cell_renderer_text_new()));
+}
+
+static s7_pointer lg_gtk_cell_renderer_text_set_fixed_height_from_font(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_text_set_fixed_height_from_font "void gtk_cell_renderer_text_set_fixed_height_from_font(GtkCellRendererText* renderer, \
+gint number_of_rows)"
+  s7_pointer _p;
+  s7_pointer renderer, number_of_rows;
+  _p = args;
+  renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(renderer, GtkCellRendererText__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_text_set_fixed_height_from_font", 1, renderer, "GtkCellRendererText*");
+  number_of_rows = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(number_of_rows)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_text_set_fixed_height_from_font", 2, number_of_rows, "gint");
+  gtk_cell_renderer_text_set_fixed_height_from_font(s7_c_pointer(renderer), s7_integer(number_of_rows));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_renderer_toggle_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_toggle_new "GtkCellRenderer* gtk_cell_renderer_toggle_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkCellRenderer__sym, gtk_cell_renderer_toggle_new()));
+}
+
+static s7_pointer lg_gtk_cell_renderer_toggle_get_radio(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_toggle_get_radio "gboolean gtk_cell_renderer_toggle_get_radio(GtkCellRendererToggle* toggle)"
+  s7_pointer toggle;
+  toggle = s7_car(args);
+  if (!s7_is_c_pointer_of_type(toggle, GtkCellRendererToggle__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_toggle_get_radio", 1, toggle, "GtkCellRendererToggle*");
+  return(s7_make_boolean(sc, gtk_cell_renderer_toggle_get_radio(s7_c_pointer(toggle))));
+}
+
+static s7_pointer lg_gtk_cell_renderer_toggle_set_radio(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_toggle_set_radio "void gtk_cell_renderer_toggle_set_radio(GtkCellRendererToggle* toggle, \
+gboolean radio)"
+  s7_pointer _p;
+  s7_pointer toggle, radio;
+  _p = args;
+  toggle = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(toggle, GtkCellRendererToggle__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_toggle_set_radio", 1, toggle, "GtkCellRendererToggle*");
+  radio = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(radio)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_toggle_set_radio", 2, radio, "gboolean");
+  gtk_cell_renderer_toggle_set_radio(s7_c_pointer(toggle), lg_boolean(radio));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_renderer_toggle_get_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_toggle_get_active "gboolean gtk_cell_renderer_toggle_get_active(GtkCellRendererToggle* toggle)"
+  s7_pointer toggle;
+  toggle = s7_car(args);
+  if (!s7_is_c_pointer_of_type(toggle, GtkCellRendererToggle__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_toggle_get_active", 1, toggle, "GtkCellRendererToggle*");
+  return(s7_make_boolean(sc, gtk_cell_renderer_toggle_get_active(s7_c_pointer(toggle))));
+}
+
+static s7_pointer lg_gtk_cell_renderer_toggle_set_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_toggle_set_active "void gtk_cell_renderer_toggle_set_active(GtkCellRendererToggle* toggle, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer toggle, setting;
+  _p = args;
+  toggle = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(toggle, GtkCellRendererToggle__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_toggle_set_active", 1, toggle, "GtkCellRendererToggle*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_toggle_set_active", 2, setting, "gboolean");
+  gtk_cell_renderer_toggle_set_active(s7_c_pointer(toggle), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_check_button_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_button_new "GtkWidget* gtk_check_button_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_check_button_new()));
+}
+
+static s7_pointer lg_gtk_check_button_new_with_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_button_new_with_label "GtkWidget* gtk_check_button_new_with_label(gchar* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_check_button_new_with_label", 1, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_check_button_new_with_label(s7_string(label))));
+}
+
+static s7_pointer lg_gtk_check_button_new_with_mnemonic(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_button_new_with_mnemonic "GtkWidget* gtk_check_button_new_with_mnemonic(gchar* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_check_button_new_with_mnemonic", 1, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_check_button_new_with_mnemonic(s7_string(label))));
+}
+
+static s7_pointer lg_gtk_check_menu_item_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_menu_item_new "GtkWidget* gtk_check_menu_item_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_check_menu_item_new()));
+}
+
+static s7_pointer lg_gtk_check_menu_item_new_with_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_menu_item_new_with_label "GtkWidget* gtk_check_menu_item_new_with_label(gchar* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_check_menu_item_new_with_label", 1, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_check_menu_item_new_with_label(s7_string(label))));
+}
+
+static s7_pointer lg_gtk_check_menu_item_new_with_mnemonic(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_menu_item_new_with_mnemonic "GtkWidget* gtk_check_menu_item_new_with_mnemonic(gchar* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_check_menu_item_new_with_mnemonic", 1, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_check_menu_item_new_with_mnemonic(s7_string(label))));
+}
+
+static s7_pointer lg_gtk_check_menu_item_set_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_menu_item_set_active "void gtk_check_menu_item_set_active(GtkCheckMenuItem* check_menu_item, \
+gboolean is_active)"
+  s7_pointer _p;
+  s7_pointer check_menu_item, is_active;
+  _p = args;
+  check_menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(check_menu_item, GtkCheckMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_check_menu_item_set_active", 1, check_menu_item, "GtkCheckMenuItem*");
+  is_active = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(is_active)) s7_wrong_type_arg_error(sc, "gtk_check_menu_item_set_active", 2, is_active, "gboolean");
+  gtk_check_menu_item_set_active(s7_c_pointer(check_menu_item), lg_boolean(is_active));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_check_menu_item_get_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_menu_item_get_active "gboolean gtk_check_menu_item_get_active(GtkCheckMenuItem* check_menu_item)"
+  s7_pointer check_menu_item;
+  check_menu_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(check_menu_item, GtkCheckMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_check_menu_item_get_active", 1, check_menu_item, "GtkCheckMenuItem*");
+  return(s7_make_boolean(sc, gtk_check_menu_item_get_active(s7_c_pointer(check_menu_item))));
+}
+
+static s7_pointer lg_gtk_check_menu_item_toggled(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_menu_item_toggled "void gtk_check_menu_item_toggled(GtkCheckMenuItem* check_menu_item)"
+  s7_pointer check_menu_item;
+  check_menu_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(check_menu_item, GtkCheckMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_check_menu_item_toggled", 1, check_menu_item, "GtkCheckMenuItem*");
+  gtk_check_menu_item_toggled(s7_c_pointer(check_menu_item));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_check_menu_item_set_inconsistent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_menu_item_set_inconsistent "void gtk_check_menu_item_set_inconsistent(GtkCheckMenuItem* check_menu_item, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer check_menu_item, setting;
+  _p = args;
+  check_menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(check_menu_item, GtkCheckMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_check_menu_item_set_inconsistent", 1, check_menu_item, "GtkCheckMenuItem*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_check_menu_item_set_inconsistent", 2, setting, "gboolean");
+  gtk_check_menu_item_set_inconsistent(s7_c_pointer(check_menu_item), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_check_menu_item_get_inconsistent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_menu_item_get_inconsistent "gboolean gtk_check_menu_item_get_inconsistent(GtkCheckMenuItem* check_menu_item)"
+  s7_pointer check_menu_item;
+  check_menu_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(check_menu_item, GtkCheckMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_check_menu_item_get_inconsistent", 1, check_menu_item, "GtkCheckMenuItem*");
+  return(s7_make_boolean(sc, gtk_check_menu_item_get_inconsistent(s7_c_pointer(check_menu_item))));
+}
+
+static s7_pointer lg_gtk_clipboard_get(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_get "GtkClipboard* gtk_clipboard_get(GdkAtom selection)"
+  s7_pointer selection;
+  selection = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_get", 1, selection, "GdkAtom");
+  return(s7_make_type_with_c_pointer(sc, GtkClipboard__sym, gtk_clipboard_get(s7_c_pointer(selection))));
+}
+
+static s7_pointer lg_gtk_clipboard_set_with_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_set_with_data "gboolean gtk_clipboard_set_with_data(GtkClipboard* clipboard, \
+GtkTargetEntry* targets, guint n_targets, GtkClipboardGetFunc func, GtkClipboardClearFunc clear_func, \
+lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer clipboard, targets, n_targets, func, clear_func, func_info;
+  _p = args;
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_set_with_data", 1, clipboard, "GtkClipboard*");
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GtkTargetEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_set_with_data", 2, targets, "GtkTargetEntry*");
+  n_targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_targets)) s7_wrong_type_arg_error(sc, "gtk_clipboard_set_with_data", 3, n_targets, "guint");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkClipboardGetFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_set_with_data", 4, func, "GtkClipboardGetFunc");
+  clear_func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clear_func, GtkClipboardClearFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_set_with_data", 5, clear_func, "GtkClipboardClearFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_clipboard_set_with_data", 6, func_info, "lambda_data");
+  {
+    s7_pointer result;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, clear_func);
+    result = s7_make_boolean(sc, gtk_clipboard_set_with_data(s7_c_pointer(clipboard), s7_c_pointer(targets), s7_integer(n_targets), s7_c_pointer(func), s7_c_pointer(clear_func), (gpointer)lg_ptr));
+    return(result);
+   }
+}
+
+static s7_pointer lg_gtk_clipboard_get_owner(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_get_owner "GObject* gtk_clipboard_get_owner(GtkClipboard* clipboard)"
+  s7_pointer clipboard;
+  clipboard = s7_car(args);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_get_owner", 1, clipboard, "GtkClipboard*");
+  return(s7_make_type_with_c_pointer(sc, GObject__sym, gtk_clipboard_get_owner(s7_c_pointer(clipboard))));
+}
+
+static s7_pointer lg_gtk_clipboard_clear(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_clear "void gtk_clipboard_clear(GtkClipboard* clipboard)"
+  s7_pointer clipboard;
+  clipboard = s7_car(args);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_clear", 1, clipboard, "GtkClipboard*");
+  gtk_clipboard_clear(s7_c_pointer(clipboard));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_clipboard_set_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_set_text "void gtk_clipboard_set_text(GtkClipboard* clipboard, gchar* text, \
+gint len)"
+  s7_pointer _p;
+  s7_pointer clipboard, text, len;
+  _p = args;
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_set_text", 1, clipboard, "GtkClipboard*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_clipboard_set_text", 2, text, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "gtk_clipboard_set_text", 3, len, "gint");
+  gtk_clipboard_set_text(s7_c_pointer(clipboard), s7_string(text), s7_integer(len));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_clipboard_request_contents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_request_contents "void gtk_clipboard_request_contents(GtkClipboard* clipboard, \
+GdkAtom target, GtkClipboardReceivedFunc func, lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer clipboard, target, func, func_info;
+  _p = args;
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_contents", 1, clipboard, "GtkClipboard*");
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_contents", 2, target, "GdkAtom");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkClipboardReceivedFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_contents", 3, func, "GtkClipboardReceivedFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_contents", 4, func_info, "lambda_data");
+  {
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    gtk_clipboard_request_contents(s7_c_pointer(clipboard), s7_c_pointer(target), s7_c_pointer(func), (gpointer)lg_ptr);
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_clipboard_request_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_request_text "void gtk_clipboard_request_text(GtkClipboard* clipboard, GtkClipboardTextReceivedFunc func, \
+lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer clipboard, func, func_info;
+  _p = args;
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_text", 1, clipboard, "GtkClipboard*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkClipboardTextReceivedFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_text", 2, func, "GtkClipboardTextReceivedFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_text", 3, func_info, "lambda_data");
+  {
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    gtk_clipboard_request_text(s7_c_pointer(clipboard), s7_c_pointer(func), (gpointer)lg_ptr);
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_clipboard_wait_for_contents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_wait_for_contents "GtkSelectionData* gtk_clipboard_wait_for_contents(GtkClipboard* clipboard, \
+GdkAtom target)"
+  s7_pointer _p;
+  s7_pointer clipboard, target;
+  _p = args;
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_for_contents", 1, clipboard, "GtkClipboard*");
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_for_contents", 2, target, "GdkAtom");
+  return(s7_make_type_with_c_pointer(sc, GtkSelectionData__sym, gtk_clipboard_wait_for_contents(s7_c_pointer(clipboard), s7_c_pointer(target))));
+}
+
+static s7_pointer lg_gtk_clipboard_wait_for_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_wait_for_text "gchar* gtk_clipboard_wait_for_text(GtkClipboard* clipboard)"
+  s7_pointer clipboard;
+  clipboard = s7_car(args);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_for_text", 1, clipboard, "GtkClipboard*");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_clipboard_wait_for_text(s7_c_pointer(clipboard));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_clipboard_wait_is_text_available(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_wait_is_text_available "gboolean gtk_clipboard_wait_is_text_available(GtkClipboard* clipboard)"
+  s7_pointer clipboard;
+  clipboard = s7_car(args);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_is_text_available", 1, clipboard, "GtkClipboard*");
+  return(s7_make_boolean(sc, gtk_clipboard_wait_is_text_available(s7_c_pointer(clipboard))));
+}
+
+static s7_pointer lg_gtk_container_add(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_container_add "void gtk_container_add(GtkContainer* container, GtkWidget* widget)"
+  s7_pointer _p;
+  s7_pointer container, widget;
+  _p = args;
+  container = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(container, GtkContainer__sym)) s7_wrong_type_arg_error(sc, "gtk_container_add", 1, container, "GtkContainer*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_container_add", 2, widget, "GtkWidget*");
+  gtk_container_add(s7_c_pointer(container), s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_container_remove(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_container_remove "void gtk_container_remove(GtkContainer* container, GtkWidget* widget)"
+  s7_pointer _p;
+  s7_pointer container, widget;
+  _p = args;
+  container = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(container, GtkContainer__sym)) s7_wrong_type_arg_error(sc, "gtk_container_remove", 1, container, "GtkContainer*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_container_remove", 2, widget, "GtkWidget*");
+  gtk_container_remove(s7_c_pointer(container), s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_container_check_resize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_container_check_resize "void gtk_container_check_resize(GtkContainer* container)"
+  s7_pointer container;
+  container = s7_car(args);
+  if (!s7_is_c_pointer_of_type(container, GtkContainer__sym)) s7_wrong_type_arg_error(sc, "gtk_container_check_resize", 1, container, "GtkContainer*");
+  gtk_container_check_resize(s7_c_pointer(container));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_container_foreach(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_container_foreach "void gtk_container_foreach(GtkContainer* container, GtkCallback func, \
+lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer container, func, func_info;
+  _p = args;
+  container = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(container, GtkContainer__sym)) s7_wrong_type_arg_error(sc, "gtk_container_foreach", 1, container, "GtkContainer*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkCallback_sym)) s7_wrong_type_arg_error(sc, "gtk_container_foreach", 2, func, "GtkCallback");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_container_foreach", 3, func_info, "lambda_data");
+  {
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    gtk_container_foreach(s7_c_pointer(container), s7_c_pointer(func), (gpointer)lg_ptr);
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_container_get_children(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_container_get_children "GList* gtk_container_get_children(GtkContainer* container)"
+  s7_pointer container;
+  container = s7_car(args);
+  if (!s7_is_c_pointer_of_type(container, GtkContainer__sym)) s7_wrong_type_arg_error(sc, "gtk_container_get_children", 1, container, "GtkContainer*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_container_get_children(s7_c_pointer(container))));
+}
+
+static s7_pointer lg_gtk_dialog_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_dialog_new "GtkWidget* gtk_dialog_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_dialog_new()));
+}
+
+static s7_pointer lg_gtk_dialog_add_action_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_dialog_add_action_widget "void gtk_dialog_add_action_widget(GtkDialog* dialog, GtkWidget* child, \
+gint response_id)"
+  s7_pointer _p;
+  s7_pointer dialog, child, response_id;
+  _p = args;
+  dialog = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dialog, GtkDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_dialog_add_action_widget", 1, dialog, "GtkDialog*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_dialog_add_action_widget", 2, child, "GtkWidget*");
+  response_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(response_id)) s7_wrong_type_arg_error(sc, "gtk_dialog_add_action_widget", 3, response_id, "gint");
+  gtk_dialog_add_action_widget(s7_c_pointer(dialog), s7_c_pointer(child), s7_integer(response_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_dialog_add_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_dialog_add_button "GtkWidget* gtk_dialog_add_button(GtkDialog* dialog, gchar* button_text, \
+gint response_id)"
+  s7_pointer _p;
+  s7_pointer dialog, button_text, response_id;
+  _p = args;
+  dialog = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dialog, GtkDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_dialog_add_button", 1, dialog, "GtkDialog*");
+  button_text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(button_text)) s7_wrong_type_arg_error(sc, "gtk_dialog_add_button", 2, button_text, "gchar*");
+  response_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(response_id)) s7_wrong_type_arg_error(sc, "gtk_dialog_add_button", 3, response_id, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_dialog_add_button(s7_c_pointer(dialog), s7_string(button_text), s7_integer(response_id))));
+}
+
+static s7_pointer lg_gtk_dialog_add_buttons(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_dialog_add_buttons "void gtk_dialog_add_buttons(GtkDialog* dialog, etc buttons)"
+  s7_pointer _p;
+  s7_pointer dialog, buttons;
+  _p = args;
+  dialog = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dialog, GtkDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_dialog_add_buttons", 1, dialog, "GtkDialog*");
+  buttons = s7_car(_p); _p = s7_cdr(_p);
+  if (!lg_is_list(buttons)) s7_wrong_type_arg_error(sc, "gtk_dialog_add_buttons", 2, buttons, "etc");
+  {
+    int etc_len = 0;
+    GtkDialog* p_arg0;
+    if (s7_is_list(sc, buttons)) etc_len = s7_list_length(sc, buttons);
+    if (etc_len < 2) s7_out_of_range_error(sc, "gtk_dialog_add_buttons", 1, buttons, "... list must have at least 2 entries");
+    if (etc_len > 10) s7_out_of_range_error(sc, "gtk_dialog_add_buttons", 1, buttons, "... list too long (max len: 10)");
+    if ((etc_len % 2) != 0) s7_out_of_range_error(sc, "gtk_dialog_add_buttons", 1, buttons, "... list len must be multiple of 2");
+    p_arg0 = (GtkDialog*)s7_c_pointer(dialog);
+    switch (etc_len)
+      {
+        case 2: gtk_dialog_add_buttons(p_arg0, s7_string(s7_list_ref(sc, buttons, 0)), s7_integer(s7_list_ref(sc, buttons, 1)), NULL); break;
+        case 4: gtk_dialog_add_buttons(p_arg0, s7_string(s7_list_ref(sc, buttons, 0)), s7_integer(s7_list_ref(sc, buttons, 1)), s7_string(s7_list_ref(sc, buttons, 2)), s7_integer(s7_list_ref(sc, buttons, 3)), NULL); break;
+        case 6: gtk_dialog_add_buttons(p_arg0, s7_string(s7_list_ref(sc, buttons, 0)), s7_integer(s7_list_ref(sc, buttons, 1)), s7_string(s7_list_ref(sc, buttons, 2)), s7_integer(s7_list_ref(sc, buttons, 3)), s7_string(s7_list_ref(sc, buttons, 4)), s7_integer(s7_list_ref(sc, buttons, 5)), NULL); break;
+        case 8: gtk_dialog_add_buttons(p_arg0, s7_string(s7_list_ref(sc, buttons, 0)), s7_integer(s7_list_ref(sc, buttons, 1)), s7_string(s7_list_ref(sc, buttons, 2)), s7_integer(s7_list_ref(sc, buttons, 3)), s7_string(s7_list_ref(sc, buttons, 4)), s7_integer(s7_list_ref(sc, buttons, 5)), s7_string(s7_list_ref(sc, buttons, 6)), s7_integer(s7_list_ref(sc, buttons, 7)), NULL); break;
+        case 10: gtk_dialog_add_buttons(p_arg0, s7_string(s7_list_ref(sc, buttons, 0)), s7_integer(s7_list_ref(sc, buttons, 1)), s7_string(s7_list_ref(sc, buttons, 2)), s7_integer(s7_list_ref(sc, buttons, 3)), s7_string(s7_list_ref(sc, buttons, 4)), s7_integer(s7_list_ref(sc, buttons, 5)), s7_string(s7_list_ref(sc, buttons, 6)), s7_integer(s7_list_ref(sc, buttons, 7)), s7_string(s7_list_ref(sc, buttons, 8)), s7_integer(s7_list_ref(sc, buttons, 9)), NULL); break;
+      }
+    return(lg_false);
+  }
+}
+
+static s7_pointer lg_gtk_dialog_set_response_sensitive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_dialog_set_response_sensitive "void gtk_dialog_set_response_sensitive(GtkDialog* dialog, \
+gint response_id, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer dialog, response_id, setting;
+  _p = args;
+  dialog = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dialog, GtkDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_dialog_set_response_sensitive", 1, dialog, "GtkDialog*");
+  response_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(response_id)) s7_wrong_type_arg_error(sc, "gtk_dialog_set_response_sensitive", 2, response_id, "gint");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_dialog_set_response_sensitive", 3, setting, "gboolean");
+  gtk_dialog_set_response_sensitive(s7_c_pointer(dialog), s7_integer(response_id), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_dialog_set_default_response(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_dialog_set_default_response "void gtk_dialog_set_default_response(GtkDialog* dialog, \
+gint response_id)"
+  s7_pointer _p;
+  s7_pointer dialog, response_id;
+  _p = args;
+  dialog = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dialog, GtkDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_dialog_set_default_response", 1, dialog, "GtkDialog*");
+  response_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(response_id)) s7_wrong_type_arg_error(sc, "gtk_dialog_set_default_response", 2, response_id, "gint");
+  gtk_dialog_set_default_response(s7_c_pointer(dialog), s7_integer(response_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_dialog_response(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_dialog_response "void gtk_dialog_response(GtkDialog* dialog, gint response_id)"
+  s7_pointer _p;
+  s7_pointer dialog, response_id;
+  _p = args;
+  dialog = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dialog, GtkDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_dialog_response", 1, dialog, "GtkDialog*");
+  response_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(response_id)) s7_wrong_type_arg_error(sc, "gtk_dialog_response", 2, response_id, "gint");
+  gtk_dialog_response(s7_c_pointer(dialog), s7_integer(response_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_dialog_run(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_dialog_run "gint gtk_dialog_run(GtkDialog* dialog)"
+  s7_pointer dialog;
+  dialog = s7_car(args);
+  if (!s7_is_c_pointer_of_type(dialog, GtkDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_dialog_run", 1, dialog, "GtkDialog*");
+  return(s7_make_integer(sc, gtk_dialog_run(s7_c_pointer(dialog))));
+}
+
+static s7_pointer lg_gtk_drag_get_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_get_data "void gtk_drag_get_data(GtkWidget* widget, GdkDragContext* context, GdkAtom target, \
+guint32 time)"
+  s7_pointer _p;
+  s7_pointer widget, context, target, time;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_get_data", 1, widget, "GtkWidget*");
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_get_data", 2, context, "GdkDragContext*");
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_drag_get_data", 3, target, "GdkAtom");
+  time = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(time)) s7_wrong_type_arg_error(sc, "gtk_drag_get_data", 4, time, "guint32");
+  gtk_drag_get_data(s7_c_pointer(widget), s7_c_pointer(context), s7_c_pointer(target), s7_integer(time));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_finish(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_finish "void gtk_drag_finish(GdkDragContext* context, gboolean success, gboolean del, \
+guint32 time)"
+  s7_pointer _p;
+  s7_pointer context, success, del, time;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_finish", 1, context, "GdkDragContext*");
+  success = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(success)) s7_wrong_type_arg_error(sc, "gtk_drag_finish", 2, success, "gboolean");
+  del = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(del)) s7_wrong_type_arg_error(sc, "gtk_drag_finish", 3, del, "gboolean");
+  time = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(time)) s7_wrong_type_arg_error(sc, "gtk_drag_finish", 4, time, "guint32");
+  gtk_drag_finish(s7_c_pointer(context), lg_boolean(success), lg_boolean(del), s7_integer(time));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_get_source_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_get_source_widget "GtkWidget* gtk_drag_get_source_widget(GdkDragContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_get_source_widget", 1, context, "GdkDragContext*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_drag_get_source_widget(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gtk_drag_highlight(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_highlight "void gtk_drag_highlight(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_highlight", 1, widget, "GtkWidget*");
+  gtk_drag_highlight(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_unhighlight(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_unhighlight "void gtk_drag_unhighlight(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_unhighlight", 1, widget, "GtkWidget*");
+  gtk_drag_unhighlight(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_dest_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_dest_set "void gtk_drag_dest_set(GtkWidget* widget, GtkDestDefaults flags, GtkTargetEntry* targets, \
+gint n_targets, GdkDragAction actions)"
+  s7_pointer _p;
+  s7_pointer widget, flags, targets, n_targets, actions;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_set", 1, widget, "GtkWidget*");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_set", 2, flags, "GtkDestDefaults");
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GtkTargetEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_set", 3, targets, "GtkTargetEntry*");
+  n_targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_targets)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_set", 4, n_targets, "gint");
+  actions = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(actions)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_set", 5, actions, "GdkDragAction");
+  gtk_drag_dest_set(s7_c_pointer(widget), s7_integer(flags), s7_c_pointer(targets), s7_integer(n_targets), s7_integer(actions));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_dest_unset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_dest_unset "void gtk_drag_dest_unset(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_unset", 1, widget, "GtkWidget*");
+  gtk_drag_dest_unset(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_dest_find_target(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_dest_find_target "GdkAtom gtk_drag_dest_find_target(GtkWidget* widget, GdkDragContext* context, \
+GtkTargetList* target_list)"
+  s7_pointer _p;
+  s7_pointer widget, context, target_list;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_find_target", 1, widget, "GtkWidget*");
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_find_target", 2, context, "GdkDragContext*");
+  target_list = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(target_list, GtkTargetList__sym)) && (target_list != lg_false)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_find_target", 3, target_list, "GtkTargetList*");
+  return(s7_make_type_with_c_pointer(sc, GdkAtom_sym, gtk_drag_dest_find_target(s7_c_pointer(widget), s7_c_pointer(context), s7_c_pointer(target_list))));
+}
+
+static s7_pointer lg_gtk_drag_dest_get_target_list(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_dest_get_target_list "GtkTargetList* gtk_drag_dest_get_target_list(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_get_target_list", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkTargetList__sym, gtk_drag_dest_get_target_list(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_drag_dest_set_target_list(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_dest_set_target_list "void gtk_drag_dest_set_target_list(GtkWidget* widget, GtkTargetList* target_list)"
+  s7_pointer _p;
+  s7_pointer widget, target_list;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_set_target_list", 1, widget, "GtkWidget*");
+  target_list = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(target_list, GtkTargetList__sym)) && (target_list != lg_false)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_set_target_list", 2, target_list, "GtkTargetList*");
+  gtk_drag_dest_set_target_list(s7_c_pointer(widget), s7_c_pointer(target_list));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_source_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_source_set "void gtk_drag_source_set(GtkWidget* widget, GdkModifierType start_button_mask, \
+GtkTargetEntry* targets, gint n_targets, GdkDragAction actions)"
+  s7_pointer _p;
+  s7_pointer widget, start_button_mask, targets, n_targets, actions;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_source_set", 1, widget, "GtkWidget*");
+  start_button_mask = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(start_button_mask)) s7_wrong_type_arg_error(sc, "gtk_drag_source_set", 2, start_button_mask, "GdkModifierType");
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GtkTargetEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_source_set", 3, targets, "GtkTargetEntry*");
+  n_targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_targets)) s7_wrong_type_arg_error(sc, "gtk_drag_source_set", 4, n_targets, "gint");
+  actions = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(actions)) s7_wrong_type_arg_error(sc, "gtk_drag_source_set", 5, actions, "GdkDragAction");
+  gtk_drag_source_set(s7_c_pointer(widget), s7_integer(start_button_mask), s7_c_pointer(targets), s7_integer(n_targets), s7_integer(actions));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_source_unset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_source_unset "void gtk_drag_source_unset(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_source_unset", 1, widget, "GtkWidget*");
+  gtk_drag_source_unset(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_source_set_icon_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_source_set_icon_pixbuf "void gtk_drag_source_set_icon_pixbuf(GtkWidget* widget, \
+GdkPixbuf* pixbuf)"
+  s7_pointer _p;
+  s7_pointer widget, pixbuf;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_source_set_icon_pixbuf", 1, widget, "GtkWidget*");
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_source_set_icon_pixbuf", 2, pixbuf, "GdkPixbuf*");
+  gtk_drag_source_set_icon_pixbuf(s7_c_pointer(widget), s7_c_pointer(pixbuf));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_set_icon_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_set_icon_widget "void gtk_drag_set_icon_widget(GdkDragContext* context, GtkWidget* widget, \
+gint hot_x, gint hot_y)"
+  s7_pointer _p;
+  s7_pointer context, widget, hot_x, hot_y;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_widget", 1, context, "GdkDragContext*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_widget", 2, widget, "GtkWidget*");
+  hot_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hot_x)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_widget", 3, hot_x, "gint");
+  hot_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hot_y)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_widget", 4, hot_y, "gint");
+  gtk_drag_set_icon_widget(s7_c_pointer(context), s7_c_pointer(widget), s7_integer(hot_x), s7_integer(hot_y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_set_icon_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_set_icon_pixbuf "void gtk_drag_set_icon_pixbuf(GdkDragContext* context, GdkPixbuf* pixbuf, \
+gint hot_x, gint hot_y)"
+  s7_pointer _p;
+  s7_pointer context, pixbuf, hot_x, hot_y;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_pixbuf", 1, context, "GdkDragContext*");
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_pixbuf", 2, pixbuf, "GdkPixbuf*");
+  hot_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hot_x)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_pixbuf", 3, hot_x, "gint");
+  hot_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hot_y)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_pixbuf", 4, hot_y, "gint");
+  gtk_drag_set_icon_pixbuf(s7_c_pointer(context), s7_c_pointer(pixbuf), s7_integer(hot_x), s7_integer(hot_y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_set_icon_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_set_icon_default "void gtk_drag_set_icon_default(GdkDragContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_default", 1, context, "GdkDragContext*");
+  gtk_drag_set_icon_default(s7_c_pointer(context));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_check_threshold(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_check_threshold "gboolean gtk_drag_check_threshold(GtkWidget* widget, gint start_x, \
+gint start_y, gint current_x, gint current_y)"
+  s7_pointer _p;
+  s7_pointer widget, start_x, start_y, current_x, current_y;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_check_threshold", 1, widget, "GtkWidget*");
+  start_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(start_x)) s7_wrong_type_arg_error(sc, "gtk_drag_check_threshold", 2, start_x, "gint");
+  start_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(start_y)) s7_wrong_type_arg_error(sc, "gtk_drag_check_threshold", 3, start_y, "gint");
+  current_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(current_x)) s7_wrong_type_arg_error(sc, "gtk_drag_check_threshold", 4, current_x, "gint");
+  current_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(current_y)) s7_wrong_type_arg_error(sc, "gtk_drag_check_threshold", 5, current_y, "gint");
+  return(s7_make_boolean(sc, gtk_drag_check_threshold(s7_c_pointer(widget), s7_integer(start_x), s7_integer(start_y), s7_integer(current_x), s7_integer(current_y))));
+}
+
+static s7_pointer lg_gtk_drawing_area_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drawing_area_new "GtkWidget* gtk_drawing_area_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_drawing_area_new()));
+}
+
+static s7_pointer lg_gtk_editable_select_region(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_editable_select_region "void gtk_editable_select_region(GtkEditable* editable, gint start, \
+gint end)"
+  s7_pointer _p;
+  s7_pointer editable, start, end;
+  _p = args;
+  editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(editable, GtkEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_editable_select_region", 1, editable, "GtkEditable*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(start)) s7_wrong_type_arg_error(sc, "gtk_editable_select_region", 2, start, "gint");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(end)) s7_wrong_type_arg_error(sc, "gtk_editable_select_region", 3, end, "gint");
+  gtk_editable_select_region(s7_c_pointer(editable), s7_integer(start), s7_integer(end));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_editable_get_selection_bounds(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_editable_get_selection_bounds "gboolean gtk_editable_get_selection_bounds(GtkEditable* editable, \
+gint* [start], gint* [end])"
+  s7_pointer _p;
+  s7_pointer editable;
+  gint ref_start;
+  gint ref_end;
+  _p = args;
+  editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(editable, GtkEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_editable_get_selection_bounds", 1, editable, "GtkEditable*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_editable_get_selection_bounds(s7_c_pointer(editable), &ref_start, &ref_end));
+      return(s7_list(sc, 3, result, s7_make_integer(sc, ref_start), s7_make_integer(sc, ref_end)));
+   }
+}
+
+static s7_pointer lg_gtk_editable_insert_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_editable_insert_text "void gtk_editable_insert_text(GtkEditable* editable, gchar* new_text, \
+gint new_text_length, gint* [position])"
+  s7_pointer _p;
+  s7_pointer editable, new_text, new_text_length;
+  gint ref_position;
+  _p = args;
+  editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(editable, GtkEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_editable_insert_text", 1, editable, "GtkEditable*");
+  new_text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(new_text)) s7_wrong_type_arg_error(sc, "gtk_editable_insert_text", 2, new_text, "gchar*");
+  new_text_length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(new_text_length)) s7_wrong_type_arg_error(sc, "gtk_editable_insert_text", 3, new_text_length, "gint");
+  gtk_editable_insert_text(s7_c_pointer(editable), s7_string(new_text), s7_integer(new_text_length), &ref_position);
+    return(s7_list(sc, 1, s7_make_integer(sc, ref_position)));
+}
+
+static s7_pointer lg_gtk_editable_delete_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_editable_delete_text "void gtk_editable_delete_text(GtkEditable* editable, gint start_pos, \
+gint end_pos)"
+  s7_pointer _p;
+  s7_pointer editable, start_pos, end_pos;
+  _p = args;
+  editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(editable, GtkEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_editable_delete_text", 1, editable, "GtkEditable*");
+  start_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(start_pos)) s7_wrong_type_arg_error(sc, "gtk_editable_delete_text", 2, start_pos, "gint");
+  end_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(end_pos)) s7_wrong_type_arg_error(sc, "gtk_editable_delete_text", 3, end_pos, "gint");
+  gtk_editable_delete_text(s7_c_pointer(editable), s7_integer(start_pos), s7_integer(end_pos));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_editable_get_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_editable_get_chars "gchar* gtk_editable_get_chars(GtkEditable* editable, gint start_pos, \
+gint end_pos)"
+  s7_pointer _p;
+  s7_pointer editable, start_pos, end_pos;
+  _p = args;
+  editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(editable, GtkEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_editable_get_chars", 1, editable, "GtkEditable*");
+  start_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(start_pos)) s7_wrong_type_arg_error(sc, "gtk_editable_get_chars", 2, start_pos, "gint");
+  end_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(end_pos)) s7_wrong_type_arg_error(sc, "gtk_editable_get_chars", 3, end_pos, "gint");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_editable_get_chars(s7_c_pointer(editable), s7_integer(start_pos), s7_integer(end_pos));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_editable_cut_clipboard(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_editable_cut_clipboard "void gtk_editable_cut_clipboard(GtkEditable* editable)"
+  s7_pointer editable;
+  editable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(editable, GtkEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_editable_cut_clipboard", 1, editable, "GtkEditable*");
+  gtk_editable_cut_clipboard(s7_c_pointer(editable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_editable_copy_clipboard(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_editable_copy_clipboard "void gtk_editable_copy_clipboard(GtkEditable* editable)"
+  s7_pointer editable;
+  editable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(editable, GtkEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_editable_copy_clipboard", 1, editable, "GtkEditable*");
+  gtk_editable_copy_clipboard(s7_c_pointer(editable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_editable_paste_clipboard(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_editable_paste_clipboard "void gtk_editable_paste_clipboard(GtkEditable* editable)"
+  s7_pointer editable;
+  editable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(editable, GtkEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_editable_paste_clipboard", 1, editable, "GtkEditable*");
+  gtk_editable_paste_clipboard(s7_c_pointer(editable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_editable_delete_selection(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_editable_delete_selection "void gtk_editable_delete_selection(GtkEditable* editable)"
+  s7_pointer editable;
+  editable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(editable, GtkEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_editable_delete_selection", 1, editable, "GtkEditable*");
+  gtk_editable_delete_selection(s7_c_pointer(editable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_editable_set_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_editable_set_position "void gtk_editable_set_position(GtkEditable* editable, gint position)"
+  s7_pointer _p;
+  s7_pointer editable, position;
+  _p = args;
+  editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(editable, GtkEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_editable_set_position", 1, editable, "GtkEditable*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_editable_set_position", 2, position, "gint");
+  gtk_editable_set_position(s7_c_pointer(editable), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_editable_get_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_editable_get_position "gint gtk_editable_get_position(GtkEditable* editable)"
+  s7_pointer editable;
+  editable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(editable, GtkEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_editable_get_position", 1, editable, "GtkEditable*");
+  return(s7_make_integer(sc, gtk_editable_get_position(s7_c_pointer(editable))));
+}
+
+static s7_pointer lg_gtk_editable_set_editable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_editable_set_editable "void gtk_editable_set_editable(GtkEditable* editable, gboolean is_editable)"
+  s7_pointer _p;
+  s7_pointer editable, is_editable;
+  _p = args;
+  editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(editable, GtkEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_editable_set_editable", 1, editable, "GtkEditable*");
+  is_editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(is_editable)) s7_wrong_type_arg_error(sc, "gtk_editable_set_editable", 2, is_editable, "gboolean");
+  gtk_editable_set_editable(s7_c_pointer(editable), lg_boolean(is_editable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_editable_get_editable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_editable_get_editable "gboolean gtk_editable_get_editable(GtkEditable* editable)"
+  s7_pointer editable;
+  editable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(editable, GtkEditable__sym)) s7_wrong_type_arg_error(sc, "gtk_editable_get_editable", 1, editable, "GtkEditable*");
+  return(s7_make_boolean(sc, gtk_editable_get_editable(s7_c_pointer(editable))));
+}
+
+static s7_pointer lg_gtk_entry_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_new "GtkWidget* gtk_entry_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_entry_new()));
+}
+
+static s7_pointer lg_gtk_entry_set_visibility(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_visibility "void gtk_entry_set_visibility(GtkEntry* entry, gboolean visible)"
+  s7_pointer _p;
+  s7_pointer entry, visible;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_visibility", 1, entry, "GtkEntry*");
+  visible = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(visible)) s7_wrong_type_arg_error(sc, "gtk_entry_set_visibility", 2, visible, "gboolean");
+  gtk_entry_set_visibility(s7_c_pointer(entry), lg_boolean(visible));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_visibility(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_visibility "gboolean gtk_entry_get_visibility(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_visibility", 1, entry, "GtkEntry*");
+  return(s7_make_boolean(sc, gtk_entry_get_visibility(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_set_invisible_char(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_invisible_char "void gtk_entry_set_invisible_char(GtkEntry* entry, gunichar ch)"
+  s7_pointer _p;
+  s7_pointer entry, ch;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_invisible_char", 1, entry, "GtkEntry*");
+  ch = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(ch)) s7_wrong_type_arg_error(sc, "gtk_entry_set_invisible_char", 2, ch, "gunichar");
+  gtk_entry_set_invisible_char(s7_c_pointer(entry), s7_integer(ch));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_invisible_char(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_invisible_char "gunichar gtk_entry_get_invisible_char(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_invisible_char", 1, entry, "GtkEntry*");
+  return(s7_make_integer(sc, gtk_entry_get_invisible_char(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_set_has_frame(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_has_frame "void gtk_entry_set_has_frame(GtkEntry* entry, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer entry, setting;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_has_frame", 1, entry, "GtkEntry*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_entry_set_has_frame", 2, setting, "gboolean");
+  gtk_entry_set_has_frame(s7_c_pointer(entry), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_has_frame(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_has_frame "gboolean gtk_entry_get_has_frame(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_has_frame", 1, entry, "GtkEntry*");
+  return(s7_make_boolean(sc, gtk_entry_get_has_frame(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_set_max_length(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_max_length "void gtk_entry_set_max_length(GtkEntry* entry, gint max)"
+  s7_pointer _p;
+  s7_pointer entry, max;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_max_length", 1, entry, "GtkEntry*");
+  max = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(max)) s7_wrong_type_arg_error(sc, "gtk_entry_set_max_length", 2, max, "gint");
+  gtk_entry_set_max_length(s7_c_pointer(entry), s7_integer(max));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_max_length(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_max_length "gint gtk_entry_get_max_length(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_max_length", 1, entry, "GtkEntry*");
+  return(s7_make_integer(sc, gtk_entry_get_max_length(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_set_activates_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_activates_default "void gtk_entry_set_activates_default(GtkEntry* entry, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer entry, setting;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_activates_default", 1, entry, "GtkEntry*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_entry_set_activates_default", 2, setting, "gboolean");
+  gtk_entry_set_activates_default(s7_c_pointer(entry), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_activates_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_activates_default "gboolean gtk_entry_get_activates_default(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_activates_default", 1, entry, "GtkEntry*");
+  return(s7_make_boolean(sc, gtk_entry_get_activates_default(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_set_width_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_width_chars "void gtk_entry_set_width_chars(GtkEntry* entry, gint n_chars)"
+  s7_pointer _p;
+  s7_pointer entry, n_chars;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_width_chars", 1, entry, "GtkEntry*");
+  n_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_chars)) s7_wrong_type_arg_error(sc, "gtk_entry_set_width_chars", 2, n_chars, "gint");
+  gtk_entry_set_width_chars(s7_c_pointer(entry), s7_integer(n_chars));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_width_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_width_chars "gint gtk_entry_get_width_chars(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_width_chars", 1, entry, "GtkEntry*");
+  return(s7_make_integer(sc, gtk_entry_get_width_chars(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_set_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_text "void gtk_entry_set_text(GtkEntry* entry, gchar* text)"
+  s7_pointer _p;
+  s7_pointer entry, text;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_text", 1, entry, "GtkEntry*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_entry_set_text", 2, text, "gchar*");
+  gtk_entry_set_text(s7_c_pointer(entry), s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_text "gchar* gtk_entry_get_text(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_text", 1, entry, "GtkEntry*");
+  return(s7_make_string(sc, gtk_entry_get_text(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_get_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_layout "PangoLayout* gtk_entry_get_layout(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_layout", 1, entry, "GtkEntry*");
+  return(s7_make_type_with_c_pointer(sc, PangoLayout__sym, gtk_entry_get_layout(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_get_layout_offsets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_layout_offsets "void gtk_entry_get_layout_offsets(GtkEntry* entry, gint* [x], \
+gint* [y])"
+  s7_pointer _p;
+  s7_pointer entry;
+  gint ref_x;
+  gint ref_y;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_layout_offsets", 1, entry, "GtkEntry*");
+  gtk_entry_get_layout_offsets(s7_c_pointer(entry), &ref_x, &ref_y);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_x), s7_make_integer(sc, ref_y)));
+}
+
+static s7_pointer lg_gtk_event_box_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_event_box_new "GtkWidget* gtk_event_box_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_event_box_new()));
+}
+
+static s7_pointer lg_gtk_fixed_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_fixed_new "GtkWidget* gtk_fixed_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_fixed_new()));
+}
+
+static s7_pointer lg_gtk_fixed_put(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_fixed_put "void gtk_fixed_put(GtkFixed* fixed, GtkWidget* widget, gint x, gint y)"
+  s7_pointer _p;
+  s7_pointer fixed, widget, x, y;
+  _p = args;
+  fixed = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(fixed, GtkFixed__sym)) s7_wrong_type_arg_error(sc, "gtk_fixed_put", 1, fixed, "GtkFixed*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_fixed_put", 2, widget, "GtkWidget*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_fixed_put", 3, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_fixed_put", 4, y, "gint");
+  gtk_fixed_put(s7_c_pointer(fixed), s7_c_pointer(widget), s7_integer(x), s7_integer(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_fixed_move(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_fixed_move "void gtk_fixed_move(GtkFixed* fixed, GtkWidget* widget, gint x, gint y)"
+  s7_pointer _p;
+  s7_pointer fixed, widget, x, y;
+  _p = args;
+  fixed = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(fixed, GtkFixed__sym)) s7_wrong_type_arg_error(sc, "gtk_fixed_move", 1, fixed, "GtkFixed*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_fixed_move", 2, widget, "GtkWidget*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_fixed_move", 3, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_fixed_move", 4, y, "gint");
+  gtk_fixed_move(s7_c_pointer(fixed), s7_c_pointer(widget), s7_integer(x), s7_integer(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_frame_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_frame_new "GtkWidget* gtk_frame_new(gchar* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_frame_new", 1, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_frame_new(s7_string(label))));
+}
+
+static s7_pointer lg_gtk_frame_set_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_frame_set_label "void gtk_frame_set_label(GtkFrame* frame, gchar* label)"
+  s7_pointer _p;
+  s7_pointer frame, label;
+  _p = args;
+  frame = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(frame, GtkFrame__sym)) s7_wrong_type_arg_error(sc, "gtk_frame_set_label", 1, frame, "GtkFrame*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_frame_set_label", 2, label, "gchar*");
+  gtk_frame_set_label(s7_c_pointer(frame), s7_string(label));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_frame_get_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_frame_get_label "gchar* gtk_frame_get_label(GtkFrame* frame)"
+  s7_pointer frame;
+  frame = s7_car(args);
+  if (!s7_is_c_pointer_of_type(frame, GtkFrame__sym)) s7_wrong_type_arg_error(sc, "gtk_frame_get_label", 1, frame, "GtkFrame*");
+  return(s7_make_string(sc, gtk_frame_get_label(s7_c_pointer(frame))));
+}
+
+static s7_pointer lg_gtk_frame_set_label_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_frame_set_label_widget "void gtk_frame_set_label_widget(GtkFrame* frame, GtkWidget* label_widget)"
+  s7_pointer _p;
+  s7_pointer frame, label_widget;
+  _p = args;
+  frame = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(frame, GtkFrame__sym)) s7_wrong_type_arg_error(sc, "gtk_frame_set_label_widget", 1, frame, "GtkFrame*");
+  label_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_frame_set_label_widget", 2, label_widget, "GtkWidget*");
+  gtk_frame_set_label_widget(s7_c_pointer(frame), s7_c_pointer(label_widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_frame_get_label_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_frame_get_label_widget "GtkWidget* gtk_frame_get_label_widget(GtkFrame* frame)"
+  s7_pointer frame;
+  frame = s7_car(args);
+  if (!s7_is_c_pointer_of_type(frame, GtkFrame__sym)) s7_wrong_type_arg_error(sc, "gtk_frame_get_label_widget", 1, frame, "GtkFrame*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_frame_get_label_widget(s7_c_pointer(frame))));
+}
+
+static s7_pointer lg_gtk_frame_set_label_align(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_frame_set_label_align "void gtk_frame_set_label_align(GtkFrame* frame, gfloat xalign, \
+gfloat yalign)"
+  s7_pointer _p;
+  s7_pointer frame, xalign, yalign;
+  _p = args;
+  frame = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(frame, GtkFrame__sym)) s7_wrong_type_arg_error(sc, "gtk_frame_set_label_align", 1, frame, "GtkFrame*");
+  xalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xalign)) s7_wrong_type_arg_error(sc, "gtk_frame_set_label_align", 2, xalign, "gfloat");
+  yalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(yalign)) s7_wrong_type_arg_error(sc, "gtk_frame_set_label_align", 3, yalign, "gfloat");
+  gtk_frame_set_label_align(s7_c_pointer(frame), s7_real(xalign), s7_real(yalign));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_frame_get_label_align(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_frame_get_label_align "void gtk_frame_get_label_align(GtkFrame* frame, gfloat* [xalign], \
+gfloat* [yalign])"
+  s7_pointer _p;
+  s7_pointer frame;
+  gfloat ref_xalign;
+  gfloat ref_yalign;
+  _p = args;
+  frame = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(frame, GtkFrame__sym)) s7_wrong_type_arg_error(sc, "gtk_frame_get_label_align", 1, frame, "GtkFrame*");
+  gtk_frame_get_label_align(s7_c_pointer(frame), &ref_xalign, &ref_yalign);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_xalign), s7_make_real(sc, ref_yalign)));
+}
+
+static s7_pointer lg_gtk_frame_set_shadow_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_frame_set_shadow_type "void gtk_frame_set_shadow_type(GtkFrame* frame, GtkShadowType type)"
+  s7_pointer _p;
+  s7_pointer frame, type;
+  _p = args;
+  frame = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(frame, GtkFrame__sym)) s7_wrong_type_arg_error(sc, "gtk_frame_set_shadow_type", 1, frame, "GtkFrame*");
+  type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(type)) s7_wrong_type_arg_error(sc, "gtk_frame_set_shadow_type", 2, type, "GtkShadowType");
+  gtk_frame_set_shadow_type(s7_c_pointer(frame), s7_integer(type));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_frame_get_shadow_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_frame_get_shadow_type "GtkShadowType gtk_frame_get_shadow_type(GtkFrame* frame)"
+  s7_pointer frame;
+  frame = s7_car(args);
+  if (!s7_is_c_pointer_of_type(frame, GtkFrame__sym)) s7_wrong_type_arg_error(sc, "gtk_frame_get_shadow_type", 1, frame, "GtkFrame*");
+  return(s7_make_integer(sc, gtk_frame_get_shadow_type(s7_c_pointer(frame))));
+}
+
+static s7_pointer lg_gtk_image_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_new "GtkWidget* gtk_image_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_image_new()));
+}
+
+static s7_pointer lg_gtk_image_new_from_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_new_from_file "GtkWidget* gtk_image_new_from_file(gchar* filename)"
+  s7_pointer filename;
+  filename = s7_car(args);
+  if (!s7_is_string(filename)) s7_wrong_type_arg_error(sc, "gtk_image_new_from_file", 1, filename, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_image_new_from_file(s7_string(filename))));
+}
+
+static s7_pointer lg_gtk_image_new_from_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_new_from_pixbuf "GtkWidget* gtk_image_new_from_pixbuf(GdkPixbuf* pixbuf)"
+  s7_pointer pixbuf;
+  pixbuf = s7_car(args);
+  if ((!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) && (pixbuf != lg_false)) s7_wrong_type_arg_error(sc, "gtk_image_new_from_pixbuf", 1, pixbuf, "GdkPixbuf*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_image_new_from_pixbuf(s7_c_pointer(pixbuf))));
+}
+
+static s7_pointer lg_gtk_image_new_from_animation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_new_from_animation "GtkWidget* gtk_image_new_from_animation(GdkPixbufAnimation* animation)"
+  s7_pointer animation;
+  animation = s7_car(args);
+  if (!s7_is_c_pointer_of_type(animation, GdkPixbufAnimation__sym)) s7_wrong_type_arg_error(sc, "gtk_image_new_from_animation", 1, animation, "GdkPixbufAnimation*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_image_new_from_animation(s7_c_pointer(animation))));
+}
+
+static s7_pointer lg_gtk_image_set_from_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_set_from_file "void gtk_image_set_from_file(GtkImage* image, gchar* filename)"
+  s7_pointer _p;
+  s7_pointer image, filename;
+  _p = args;
+  image = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(image, GtkImage__sym)) s7_wrong_type_arg_error(sc, "gtk_image_set_from_file", 1, image, "GtkImage*");
+  filename = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(filename)) s7_wrong_type_arg_error(sc, "gtk_image_set_from_file", 2, filename, "gchar*");
+  gtk_image_set_from_file(s7_c_pointer(image), s7_string(filename));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_image_set_from_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_set_from_pixbuf "void gtk_image_set_from_pixbuf(GtkImage* image, GdkPixbuf* pixbuf)"
+  s7_pointer _p;
+  s7_pointer image, pixbuf;
+  _p = args;
+  image = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(image, GtkImage__sym)) s7_wrong_type_arg_error(sc, "gtk_image_set_from_pixbuf", 1, image, "GtkImage*");
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) && (pixbuf != lg_false)) s7_wrong_type_arg_error(sc, "gtk_image_set_from_pixbuf", 2, pixbuf, "GdkPixbuf*");
+  gtk_image_set_from_pixbuf(s7_c_pointer(image), s7_c_pointer(pixbuf));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_image_set_from_animation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_set_from_animation "void gtk_image_set_from_animation(GtkImage* image, GdkPixbufAnimation* animation)"
+  s7_pointer _p;
+  s7_pointer image, animation;
+  _p = args;
+  image = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(image, GtkImage__sym)) s7_wrong_type_arg_error(sc, "gtk_image_set_from_animation", 1, image, "GtkImage*");
+  animation = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(animation, GdkPixbufAnimation__sym)) && (animation != lg_false)) s7_wrong_type_arg_error(sc, "gtk_image_set_from_animation", 2, animation, "GdkPixbufAnimation*");
+  gtk_image_set_from_animation(s7_c_pointer(image), s7_c_pointer(animation));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_image_get_storage_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_get_storage_type "GtkImageType gtk_image_get_storage_type(GtkImage* image)"
+  s7_pointer image;
+  image = s7_car(args);
+  if (!s7_is_c_pointer_of_type(image, GtkImage__sym)) s7_wrong_type_arg_error(sc, "gtk_image_get_storage_type", 1, image, "GtkImage*");
+  return(s7_make_integer(sc, gtk_image_get_storage_type(s7_c_pointer(image))));
+}
+
+static s7_pointer lg_gtk_image_get_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_get_pixbuf "GdkPixbuf* gtk_image_get_pixbuf(GtkImage* image)"
+  s7_pointer image;
+  image = s7_car(args);
+  if (!s7_is_c_pointer_of_type(image, GtkImage__sym)) s7_wrong_type_arg_error(sc, "gtk_image_get_pixbuf", 1, image, "GtkImage*");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gtk_image_get_pixbuf(s7_c_pointer(image))));
+}
+
+static s7_pointer lg_gtk_image_get_animation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_get_animation "GdkPixbufAnimation* gtk_image_get_animation(GtkImage* image)"
+  s7_pointer image;
+  image = s7_car(args);
+  if (!s7_is_c_pointer_of_type(image, GtkImage__sym)) s7_wrong_type_arg_error(sc, "gtk_image_get_animation", 1, image, "GtkImage*");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbufAnimation__sym, gtk_image_get_animation(s7_c_pointer(image))));
+}
+
+static s7_pointer lg_gtk_im_context_get_preedit_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_im_context_get_preedit_string "void gtk_im_context_get_preedit_string(GtkIMContext* context, \
+gchar** [str], PangoAttrList** [attrs], gint* [cursor_pos])"
+  s7_pointer _p;
+  s7_pointer context;
+  gchar* ref_str = NULL;
+  PangoAttrList* ref_attrs = NULL;
+  gint ref_cursor_pos;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkIMContext__sym)) s7_wrong_type_arg_error(sc, "gtk_im_context_get_preedit_string", 1, context, "GtkIMContext*");
+  gtk_im_context_get_preedit_string(s7_c_pointer(context), &ref_str, &ref_attrs, &ref_cursor_pos);
+    return(s7_list(sc, 3, s7_make_string(sc, ref_str), s7_make_c_pointer(sc, ref_attrs), s7_make_integer(sc, ref_cursor_pos)));
+}
+
+static s7_pointer lg_gtk_im_context_filter_keypress(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_im_context_filter_keypress "gboolean gtk_im_context_filter_keypress(GtkIMContext* context, \
+GdkEventKey* event)"
+  s7_pointer _p;
+  s7_pointer context, event;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkIMContext__sym)) s7_wrong_type_arg_error(sc, "gtk_im_context_filter_keypress", 1, context, "GtkIMContext*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEventKey__sym)) s7_wrong_type_arg_error(sc, "gtk_im_context_filter_keypress", 2, event, "GdkEventKey*");
+  return(s7_make_boolean(sc, gtk_im_context_filter_keypress(s7_c_pointer(context), s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gtk_im_context_focus_in(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_im_context_focus_in "void gtk_im_context_focus_in(GtkIMContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GtkIMContext__sym)) s7_wrong_type_arg_error(sc, "gtk_im_context_focus_in", 1, context, "GtkIMContext*");
+  gtk_im_context_focus_in(s7_c_pointer(context));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_im_context_focus_out(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_im_context_focus_out "void gtk_im_context_focus_out(GtkIMContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GtkIMContext__sym)) s7_wrong_type_arg_error(sc, "gtk_im_context_focus_out", 1, context, "GtkIMContext*");
+  gtk_im_context_focus_out(s7_c_pointer(context));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_im_context_reset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_im_context_reset "void gtk_im_context_reset(GtkIMContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GtkIMContext__sym)) s7_wrong_type_arg_error(sc, "gtk_im_context_reset", 1, context, "GtkIMContext*");
+  gtk_im_context_reset(s7_c_pointer(context));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_im_context_set_cursor_location(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_im_context_set_cursor_location "void gtk_im_context_set_cursor_location(GtkIMContext* context, \
+GdkRectangle* area)"
+  s7_pointer _p;
+  s7_pointer context, area;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkIMContext__sym)) s7_wrong_type_arg_error(sc, "gtk_im_context_set_cursor_location", 1, context, "GtkIMContext*");
+  area = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(area, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_im_context_set_cursor_location", 2, area, "GdkRectangle*");
+  gtk_im_context_set_cursor_location(s7_c_pointer(context), s7_c_pointer(area));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_im_context_set_use_preedit(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_im_context_set_use_preedit "void gtk_im_context_set_use_preedit(GtkIMContext* context, \
+gboolean use_preedit)"
+  s7_pointer _p;
+  s7_pointer context, use_preedit;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkIMContext__sym)) s7_wrong_type_arg_error(sc, "gtk_im_context_set_use_preedit", 1, context, "GtkIMContext*");
+  use_preedit = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_preedit)) s7_wrong_type_arg_error(sc, "gtk_im_context_set_use_preedit", 2, use_preedit, "gboolean");
+  gtk_im_context_set_use_preedit(s7_c_pointer(context), lg_boolean(use_preedit));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_im_context_set_surrounding(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_im_context_set_surrounding "void gtk_im_context_set_surrounding(GtkIMContext* context, \
+gchar* text, gint len, gint cursor_index)"
+  s7_pointer _p;
+  s7_pointer context, text, len, cursor_index;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkIMContext__sym)) s7_wrong_type_arg_error(sc, "gtk_im_context_set_surrounding", 1, context, "GtkIMContext*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_im_context_set_surrounding", 2, text, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "gtk_im_context_set_surrounding", 3, len, "gint");
+  cursor_index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(cursor_index)) s7_wrong_type_arg_error(sc, "gtk_im_context_set_surrounding", 4, cursor_index, "gint");
+  gtk_im_context_set_surrounding(s7_c_pointer(context), s7_string(text), s7_integer(len), s7_integer(cursor_index));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_im_context_get_surrounding(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_im_context_get_surrounding "gboolean gtk_im_context_get_surrounding(GtkIMContext* context, \
+gchar** [text], gint* [cursor_index])"
+  s7_pointer _p;
+  s7_pointer context;
+  gchar* ref_text = NULL;
+  gint ref_cursor_index;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkIMContext__sym)) s7_wrong_type_arg_error(sc, "gtk_im_context_get_surrounding", 1, context, "GtkIMContext*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_im_context_get_surrounding(s7_c_pointer(context), &ref_text, &ref_cursor_index));
+      return(s7_list(sc, 3, result, s7_make_string(sc, ref_text), s7_make_integer(sc, ref_cursor_index)));
+   }
+}
+
+static s7_pointer lg_gtk_im_context_delete_surrounding(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_im_context_delete_surrounding "gboolean gtk_im_context_delete_surrounding(GtkIMContext* context, \
+gint offset, gint n_chars)"
+  s7_pointer _p;
+  s7_pointer context, offset, n_chars;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkIMContext__sym)) s7_wrong_type_arg_error(sc, "gtk_im_context_delete_surrounding", 1, context, "GtkIMContext*");
+  offset = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(offset)) s7_wrong_type_arg_error(sc, "gtk_im_context_delete_surrounding", 2, offset, "gint");
+  n_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_chars)) s7_wrong_type_arg_error(sc, "gtk_im_context_delete_surrounding", 3, n_chars, "gint");
+  return(s7_make_boolean(sc, gtk_im_context_delete_surrounding(s7_c_pointer(context), s7_integer(offset), s7_integer(n_chars))));
+}
+
+static s7_pointer lg_gtk_im_context_simple_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_im_context_simple_new "GtkIMContext* gtk_im_context_simple_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkIMContext__sym, gtk_im_context_simple_new()));
+}
+
+static s7_pointer lg_gtk_im_context_simple_add_table(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_im_context_simple_add_table "void gtk_im_context_simple_add_table(GtkIMContextSimple* context_simple, \
+guint16* data, gint max_seq_len, gint n_seqs)"
+  s7_pointer _p;
+  s7_pointer context_simple, data, max_seq_len, n_seqs;
+  _p = args;
+  context_simple = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context_simple, GtkIMContextSimple__sym)) s7_wrong_type_arg_error(sc, "gtk_im_context_simple_add_table", 1, context_simple, "GtkIMContextSimple*");
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, guint16__sym)) s7_wrong_type_arg_error(sc, "gtk_im_context_simple_add_table", 2, data, "guint16*");
+  max_seq_len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(max_seq_len)) s7_wrong_type_arg_error(sc, "gtk_im_context_simple_add_table", 3, max_seq_len, "gint");
+  n_seqs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_seqs)) s7_wrong_type_arg_error(sc, "gtk_im_context_simple_add_table", 4, n_seqs, "gint");
+  gtk_im_context_simple_add_table(s7_c_pointer(context_simple), s7_c_pointer(data), s7_integer(max_seq_len), s7_integer(n_seqs));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_invisible_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_invisible_new "GtkWidget* gtk_invisible_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_invisible_new()));
+}
+
+static s7_pointer lg_gtk_label_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_new "GtkWidget* gtk_label_new(char* str)"
+  s7_pointer str;
+  str = s7_car(args);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "gtk_label_new", 1, str, "char*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_label_new((char*)s7_string(str))));
+}
+
+static s7_pointer lg_gtk_label_new_with_mnemonic(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_new_with_mnemonic "GtkWidget* gtk_label_new_with_mnemonic(char* str)"
+  s7_pointer str;
+  str = s7_car(args);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "gtk_label_new_with_mnemonic", 1, str, "char*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_label_new_with_mnemonic((char*)s7_string(str))));
+}
+
+static s7_pointer lg_gtk_label_set_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_text "void gtk_label_set_text(GtkLabel* label, char* str)"
+  s7_pointer _p;
+  s7_pointer label, str;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_text", 1, label, "GtkLabel*");
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "gtk_label_set_text", 2, str, "char*");
+  gtk_label_set_text(s7_c_pointer(label), (char*)s7_string(str));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_text "gchar* gtk_label_get_text(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_text", 1, label, "GtkLabel*");
+  return(s7_make_string(sc, gtk_label_get_text(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_label_set_attributes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_attributes "void gtk_label_set_attributes(GtkLabel* label, PangoAttrList* attrs)"
+  s7_pointer _p;
+  s7_pointer label, attrs;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_attributes", 1, label, "GtkLabel*");
+  attrs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(attrs, PangoAttrList__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_attributes", 2, attrs, "PangoAttrList*");
+  gtk_label_set_attributes(s7_c_pointer(label), s7_c_pointer(attrs));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_attributes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_attributes "PangoAttrList* gtk_label_get_attributes(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_attributes", 1, label, "GtkLabel*");
+  return(s7_make_type_with_c_pointer(sc, PangoAttrList__sym, gtk_label_get_attributes(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_label_set_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_label "void gtk_label_set_label(GtkLabel* label, gchar* str)"
+  s7_pointer _p;
+  s7_pointer label, str;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_label", 1, label, "GtkLabel*");
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "gtk_label_set_label", 2, str, "gchar*");
+  gtk_label_set_label(s7_c_pointer(label), s7_string(str));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_label "gchar* gtk_label_get_label(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_label", 1, label, "GtkLabel*");
+  return(s7_make_string(sc, gtk_label_get_label(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_label_set_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_markup "void gtk_label_set_markup(GtkLabel* label, gchar* str)"
+  s7_pointer _p;
+  s7_pointer label, str;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_markup", 1, label, "GtkLabel*");
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "gtk_label_set_markup", 2, str, "gchar*");
+  gtk_label_set_markup(s7_c_pointer(label), s7_string(str));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_set_use_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_use_markup "void gtk_label_set_use_markup(GtkLabel* label, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer label, setting;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_use_markup", 1, label, "GtkLabel*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_label_set_use_markup", 2, setting, "gboolean");
+  gtk_label_set_use_markup(s7_c_pointer(label), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_use_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_use_markup "gboolean gtk_label_get_use_markup(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_use_markup", 1, label, "GtkLabel*");
+  return(s7_make_boolean(sc, gtk_label_get_use_markup(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_label_set_use_underline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_use_underline "void gtk_label_set_use_underline(GtkLabel* label, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer label, setting;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_use_underline", 1, label, "GtkLabel*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_label_set_use_underline", 2, setting, "gboolean");
+  gtk_label_set_use_underline(s7_c_pointer(label), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_use_underline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_use_underline "gboolean gtk_label_get_use_underline(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_use_underline", 1, label, "GtkLabel*");
+  return(s7_make_boolean(sc, gtk_label_get_use_underline(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_label_set_markup_with_mnemonic(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_markup_with_mnemonic "void gtk_label_set_markup_with_mnemonic(GtkLabel* label, \
+gchar* str)"
+  s7_pointer _p;
+  s7_pointer label, str;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_markup_with_mnemonic", 1, label, "GtkLabel*");
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "gtk_label_set_markup_with_mnemonic", 2, str, "gchar*");
+  gtk_label_set_markup_with_mnemonic(s7_c_pointer(label), s7_string(str));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_mnemonic_keyval(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_mnemonic_keyval "guint gtk_label_get_mnemonic_keyval(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_mnemonic_keyval", 1, label, "GtkLabel*");
+  return(s7_make_integer(sc, gtk_label_get_mnemonic_keyval(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_label_set_mnemonic_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_mnemonic_widget "void gtk_label_set_mnemonic_widget(GtkLabel* label, GtkWidget* widget)"
+  s7_pointer _p;
+  s7_pointer label, widget;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_mnemonic_widget", 1, label, "GtkLabel*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_mnemonic_widget", 2, widget, "GtkWidget*");
+  gtk_label_set_mnemonic_widget(s7_c_pointer(label), s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_mnemonic_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_mnemonic_widget "GtkWidget* gtk_label_get_mnemonic_widget(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_mnemonic_widget", 1, label, "GtkLabel*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_label_get_mnemonic_widget(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_label_set_text_with_mnemonic(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_text_with_mnemonic "void gtk_label_set_text_with_mnemonic(GtkLabel* label, \
+gchar* str)"
+  s7_pointer _p;
+  s7_pointer label, str;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_text_with_mnemonic", 1, label, "GtkLabel*");
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "gtk_label_set_text_with_mnemonic", 2, str, "gchar*");
+  gtk_label_set_text_with_mnemonic(s7_c_pointer(label), s7_string(str));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_set_justify(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_justify "void gtk_label_set_justify(GtkLabel* label, GtkJustification jtype)"
+  s7_pointer _p;
+  s7_pointer label, jtype;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_justify", 1, label, "GtkLabel*");
+  jtype = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(jtype)) s7_wrong_type_arg_error(sc, "gtk_label_set_justify", 2, jtype, "GtkJustification");
+  gtk_label_set_justify(s7_c_pointer(label), s7_integer(jtype));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_justify(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_justify "GtkJustification gtk_label_get_justify(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_justify", 1, label, "GtkLabel*");
+  return(s7_make_integer(sc, gtk_label_get_justify(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_label_set_pattern(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_pattern "void gtk_label_set_pattern(GtkLabel* label, gchar* pattern)"
+  s7_pointer _p;
+  s7_pointer label, pattern;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_pattern", 1, label, "GtkLabel*");
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(pattern)) s7_wrong_type_arg_error(sc, "gtk_label_set_pattern", 2, pattern, "gchar*");
+  gtk_label_set_pattern(s7_c_pointer(label), s7_string(pattern));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_set_line_wrap(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_line_wrap "void gtk_label_set_line_wrap(GtkLabel* label, gboolean wrap)"
+  s7_pointer _p;
+  s7_pointer label, wrap;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_line_wrap", 1, label, "GtkLabel*");
+  wrap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(wrap)) s7_wrong_type_arg_error(sc, "gtk_label_set_line_wrap", 2, wrap, "gboolean");
+  gtk_label_set_line_wrap(s7_c_pointer(label), lg_boolean(wrap));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_line_wrap(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_line_wrap "gboolean gtk_label_get_line_wrap(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_line_wrap", 1, label, "GtkLabel*");
+  return(s7_make_boolean(sc, gtk_label_get_line_wrap(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_label_set_selectable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_selectable "void gtk_label_set_selectable(GtkLabel* label, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer label, setting;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_selectable", 1, label, "GtkLabel*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_label_set_selectable", 2, setting, "gboolean");
+  gtk_label_set_selectable(s7_c_pointer(label), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_selectable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_selectable "gboolean gtk_label_get_selectable(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_selectable", 1, label, "GtkLabel*");
+  return(s7_make_boolean(sc, gtk_label_get_selectable(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_label_select_region(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_select_region "void gtk_label_select_region(GtkLabel* label, gint start_offset, \
+gint end_offset)"
+  s7_pointer _p;
+  s7_pointer label, start_offset, end_offset;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_select_region", 1, label, "GtkLabel*");
+  start_offset = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(start_offset)) s7_wrong_type_arg_error(sc, "gtk_label_select_region", 2, start_offset, "gint");
+  end_offset = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(end_offset)) s7_wrong_type_arg_error(sc, "gtk_label_select_region", 3, end_offset, "gint");
+  gtk_label_select_region(s7_c_pointer(label), s7_integer(start_offset), s7_integer(end_offset));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_selection_bounds(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_selection_bounds "gboolean gtk_label_get_selection_bounds(GtkLabel* label, \
+gint* [start], gint* [end])"
+  s7_pointer _p;
+  s7_pointer label;
+  gint ref_start;
+  gint ref_end;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_selection_bounds", 1, label, "GtkLabel*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_label_get_selection_bounds(s7_c_pointer(label), &ref_start, &ref_end));
+      return(s7_list(sc, 3, result, s7_make_integer(sc, ref_start), s7_make_integer(sc, ref_end)));
+   }
+}
+
+static s7_pointer lg_gtk_label_get_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_layout "PangoLayout* gtk_label_get_layout(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_layout", 1, label, "GtkLabel*");
+  return(s7_make_type_with_c_pointer(sc, PangoLayout__sym, gtk_label_get_layout(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_label_get_layout_offsets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_layout_offsets "void gtk_label_get_layout_offsets(GtkLabel* label, gint* [x], \
+gint* [y])"
+  s7_pointer _p;
+  s7_pointer label;
+  gint ref_x;
+  gint ref_y;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_layout_offsets", 1, label, "GtkLabel*");
+  gtk_label_get_layout_offsets(s7_c_pointer(label), &ref_x, &ref_y);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_x), s7_make_integer(sc, ref_y)));
+}
+
+static s7_pointer lg_gtk_layout_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_layout_new "GtkWidget* gtk_layout_new(GtkAdjustment* hadjustment, GtkAdjustment* vadjustment)"
+  s7_pointer _p;
+  s7_pointer hadjustment, vadjustment;
+  _p = args;
+  hadjustment = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(hadjustment, GtkAdjustment__sym)) && (hadjustment != lg_false)) s7_wrong_type_arg_error(sc, "gtk_layout_new", 1, hadjustment, "GtkAdjustment*");
+  vadjustment = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(vadjustment, GtkAdjustment__sym)) && (vadjustment != lg_false)) s7_wrong_type_arg_error(sc, "gtk_layout_new", 2, vadjustment, "GtkAdjustment*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_layout_new(s7_c_pointer(hadjustment), s7_c_pointer(vadjustment))));
+}
+
+static s7_pointer lg_gtk_layout_put(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_layout_put "void gtk_layout_put(GtkLayout* layout, GtkWidget* child_widget, gint x, gint y)"
+  s7_pointer _p;
+  s7_pointer layout, child_widget, x, y;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, GtkLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_layout_put", 1, layout, "GtkLayout*");
+  child_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_layout_put", 2, child_widget, "GtkWidget*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_layout_put", 3, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_layout_put", 4, y, "gint");
+  gtk_layout_put(s7_c_pointer(layout), s7_c_pointer(child_widget), s7_integer(x), s7_integer(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_layout_move(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_layout_move "void gtk_layout_move(GtkLayout* layout, GtkWidget* child_widget, gint x, \
+gint y)"
+  s7_pointer _p;
+  s7_pointer layout, child_widget, x, y;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, GtkLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_layout_move", 1, layout, "GtkLayout*");
+  child_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_layout_move", 2, child_widget, "GtkWidget*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_layout_move", 3, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_layout_move", 4, y, "gint");
+  gtk_layout_move(s7_c_pointer(layout), s7_c_pointer(child_widget), s7_integer(x), s7_integer(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_layout_set_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_layout_set_size "void gtk_layout_set_size(GtkLayout* layout, guint width, guint height)"
+  s7_pointer _p;
+  s7_pointer layout, width, height;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, GtkLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_layout_set_size", 1, layout, "GtkLayout*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gtk_layout_set_size", 2, width, "guint");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gtk_layout_set_size", 3, height, "guint");
+  gtk_layout_set_size(s7_c_pointer(layout), s7_integer(width), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_layout_get_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_layout_get_size "void gtk_layout_get_size(GtkLayout* layout, guint* [width], guint* [height])"
+  s7_pointer _p;
+  s7_pointer layout;
+  guint ref_width;
+  guint ref_height;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, GtkLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_layout_get_size", 1, layout, "GtkLayout*");
+  gtk_layout_get_size(s7_c_pointer(layout), &ref_width, &ref_height);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_width), s7_make_integer(sc, ref_height)));
+}
+
+static s7_pointer lg_gtk_list_store_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_new "GtkListStore* gtk_list_store_new(gint n_columns, etc types)"
+  s7_pointer _p;
+  s7_pointer n_columns, types;
+  _p = args;
+  n_columns = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_columns)) s7_wrong_type_arg_error(sc, "gtk_list_store_new", 1, n_columns, "gint");
+  types = s7_car(_p); _p = s7_cdr(_p);
+  if (!lg_is_list(types)) s7_wrong_type_arg_error(sc, "gtk_list_store_new", 2, types, "etc");
+  {
+    int etc_len = 0;
+    GtkListStore* result = NULL;
+    gint p_arg0;
+    if (s7_is_list(sc, types)) etc_len = s7_list_length(sc, types);
+    if (etc_len < 1) s7_out_of_range_error(sc, "gtk_list_store_new", 1, types, "... list must have at least 1 entry");
+    if (etc_len > 6) s7_out_of_range_error(sc, "gtk_list_store_new", 1, types, "... list too long (max len: 6)");
+    p_arg0 = (gint)s7_integer(n_columns);
+    switch (etc_len)
+      {
+        case 1: result = gtk_list_store_new(p_arg0, s7_c_pointer(s7_list_ref(sc, types, 0))); break;
+        case 2: result = gtk_list_store_new(p_arg0, s7_c_pointer(s7_list_ref(sc, types, 0)), s7_c_pointer(s7_list_ref(sc, types, 1))); break;
+        case 3: result = gtk_list_store_new(p_arg0, s7_c_pointer(s7_list_ref(sc, types, 0)), s7_c_pointer(s7_list_ref(sc, types, 1)), s7_c_pointer(s7_list_ref(sc, types, 2))); break;
+        case 4: result = gtk_list_store_new(p_arg0, s7_c_pointer(s7_list_ref(sc, types, 0)), s7_c_pointer(s7_list_ref(sc, types, 1)), s7_c_pointer(s7_list_ref(sc, types, 2)), s7_c_pointer(s7_list_ref(sc, types, 3))); break;
+        case 5: result = gtk_list_store_new(p_arg0, s7_c_pointer(s7_list_ref(sc, types, 0)), s7_c_pointer(s7_list_ref(sc, types, 1)), s7_c_pointer(s7_list_ref(sc, types, 2)), s7_c_pointer(s7_list_ref(sc, types, 3)), s7_c_pointer(s7_list_ref(sc, types, 4))); break;
+        case 6: result = gtk_list_store_new(p_arg0, s7_c_pointer(s7_list_ref(sc, types, 0)), s7_c_pointer(s7_list_ref(sc, types, 1)), s7_c_pointer(s7_list_ref(sc, types, 2)), s7_c_pointer(s7_list_ref(sc, types, 3)), s7_c_pointer(s7_list_ref(sc, types, 4)), s7_c_pointer(s7_list_ref(sc, types, 5))); break;
+      }
+    return(s7_make_c_pointer(sc, result));
+  }
+}
+
+static s7_pointer lg_gtk_list_store_newv(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_newv "GtkListStore* gtk_list_store_newv(gint n_columns, GType* types)"
+  s7_pointer _p;
+  s7_pointer n_columns, types;
+  _p = args;
+  n_columns = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_columns)) s7_wrong_type_arg_error(sc, "gtk_list_store_newv", 1, n_columns, "gint");
+  types = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(types, GType__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_newv", 2, types, "GType*");
+  return(s7_make_type_with_c_pointer(sc, GtkListStore__sym, gtk_list_store_newv(s7_integer(n_columns), s7_c_pointer(types))));
+}
+
+static s7_pointer lg_gtk_list_store_set_column_types(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_set_column_types "void gtk_list_store_set_column_types(GtkListStore* list_store, \
+gint n_columns, GType* types)"
+  s7_pointer _p;
+  s7_pointer list_store, n_columns, types;
+  _p = args;
+  list_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_set_column_types", 1, list_store, "GtkListStore*");
+  n_columns = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_columns)) s7_wrong_type_arg_error(sc, "gtk_list_store_set_column_types", 2, n_columns, "gint");
+  types = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(types, GType__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_set_column_types", 3, types, "GType*");
+  gtk_list_store_set_column_types(s7_c_pointer(list_store), s7_integer(n_columns), s7_c_pointer(types));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_store_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_set "void gtk_list_store_set(GtkListStore* list_store, GtkTreeIter* iter, \
+etc values)"
+  s7_pointer _p;
+  s7_pointer list_store, iter, values;
+  _p = args;
+  list_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_set", 1, list_store, "GtkListStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_set", 2, iter, "GtkTreeIter*");
+  values = s7_car(_p); _p = s7_cdr(_p);
+  if (!lg_is_list(values)) s7_wrong_type_arg_error(sc, "gtk_list_store_set", 3, values, "etc");
+  {
+    int etc_len = 0;
+    GtkListStore* p_arg0;
+    GtkTreeIter* p_arg1;
+    if (s7_is_list(sc, values)) etc_len = s7_list_length(sc, values);
+    if (etc_len < 2) s7_out_of_range_error(sc, "gtk_list_store_set", 2, values, "... list must have at least 2 entries");
+    if (etc_len > 10) s7_out_of_range_error(sc, "gtk_list_store_set", 2, values, "... list too long (max len: 10)");
+    if ((etc_len % 2) != 0) s7_out_of_range_error(sc, "gtk_list_store_set", 2, values, "... list len must be multiple of 2");
+    p_arg0 = (GtkListStore*)s7_c_pointer(list_store);
+    p_arg1 = (GtkTreeIter*)s7_c_pointer(iter);
+    switch (etc_len)
+      {
+        case 2: gtk_list_store_set(p_arg0, p_arg1, s7_integer(s7_list_ref(sc, values, 0)), s7_string(s7_list_ref(sc, values, 1)), -1); break;
+        case 4: gtk_list_store_set(p_arg0, p_arg1, s7_integer(s7_list_ref(sc, values, 0)), s7_string(s7_list_ref(sc, values, 1)), s7_integer(s7_list_ref(sc, values, 2)), s7_string(s7_list_ref(sc, values, 3)), -1); break;
+        case 6: gtk_list_store_set(p_arg0, p_arg1, s7_integer(s7_list_ref(sc, values, 0)), s7_string(s7_list_ref(sc, values, 1)), s7_integer(s7_list_ref(sc, values, 2)), s7_string(s7_list_ref(sc, values, 3)), s7_integer(s7_list_ref(sc, values, 4)), s7_string(s7_list_ref(sc, values, 5)), -1); break;
+        case 8: gtk_list_store_set(p_arg0, p_arg1, s7_integer(s7_list_ref(sc, values, 0)), s7_string(s7_list_ref(sc, values, 1)), s7_integer(s7_list_ref(sc, values, 2)), s7_string(s7_list_ref(sc, values, 3)), s7_integer(s7_list_ref(sc, values, 4)), s7_string(s7_list_ref(sc, values, 5)), s7_integer(s7_list_ref(sc, values, 6)), s7_string(s7_list_ref(sc, values, 7)), -1); break;
+        case 10: gtk_list_store_set(p_arg0, p_arg1, s7_integer(s7_list_ref(sc, values, 0)), s7_string(s7_list_ref(sc, values, 1)), s7_integer(s7_list_ref(sc, values, 2)), s7_string(s7_list_ref(sc, values, 3)), s7_integer(s7_list_ref(sc, values, 4)), s7_string(s7_list_ref(sc, values, 5)), s7_integer(s7_list_ref(sc, values, 6)), s7_string(s7_list_ref(sc, values, 7)), s7_integer(s7_list_ref(sc, values, 8)), s7_string(s7_list_ref(sc, values, 9)), -1); break;
+      }
+    return(lg_false);
+  }
+}
+
+static s7_pointer lg_gtk_list_store_insert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_insert "void gtk_list_store_insert(GtkListStore* list_store, GtkTreeIter* iter, \
+gint position)"
+  s7_pointer _p;
+  s7_pointer list_store, iter, position;
+  _p = args;
+  list_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert", 1, list_store, "GtkListStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert", 2, iter, "GtkTreeIter*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert", 3, position, "gint");
+  gtk_list_store_insert(s7_c_pointer(list_store), s7_c_pointer(iter), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_store_insert_before(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_insert_before "void gtk_list_store_insert_before(GtkListStore* list_store, \
+GtkTreeIter* iter, GtkTreeIter* sibling)"
+  s7_pointer _p;
+  s7_pointer list_store, iter, sibling;
+  _p = args;
+  list_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_before", 1, list_store, "GtkListStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_before", 2, iter, "GtkTreeIter*");
+  sibling = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(sibling, GtkTreeIter__sym)) && (sibling != lg_false)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_before", 3, sibling, "GtkTreeIter*");
+  gtk_list_store_insert_before(s7_c_pointer(list_store), s7_c_pointer(iter), s7_c_pointer(sibling));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_store_insert_after(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_insert_after "void gtk_list_store_insert_after(GtkListStore* list_store, GtkTreeIter* iter, \
+GtkTreeIter* sibling)"
+  s7_pointer _p;
+  s7_pointer list_store, iter, sibling;
+  _p = args;
+  list_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_after", 1, list_store, "GtkListStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_after", 2, iter, "GtkTreeIter*");
+  sibling = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(sibling, GtkTreeIter__sym)) && (sibling != lg_false)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_after", 3, sibling, "GtkTreeIter*");
+  gtk_list_store_insert_after(s7_c_pointer(list_store), s7_c_pointer(iter), s7_c_pointer(sibling));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_store_prepend(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_prepend "void gtk_list_store_prepend(GtkListStore* list_store, GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer list_store, iter;
+  _p = args;
+  list_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_prepend", 1, list_store, "GtkListStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_prepend", 2, iter, "GtkTreeIter*");
+  gtk_list_store_prepend(s7_c_pointer(list_store), s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_store_append(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_append "void gtk_list_store_append(GtkListStore* list_store, GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer list_store, iter;
+  _p = args;
+  list_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_append", 1, list_store, "GtkListStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_append", 2, iter, "GtkTreeIter*");
+  gtk_list_store_append(s7_c_pointer(list_store), s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_store_clear(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_clear "void gtk_list_store_clear(GtkListStore* list_store)"
+  s7_pointer list_store;
+  list_store = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list_store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_clear", 1, list_store, "GtkListStore*");
+  gtk_list_store_clear(s7_c_pointer(list_store));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_check_version(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_version "gchar* gtk_check_version(guint required_major, guint required_minor, guint required_micro)"
+  s7_pointer _p;
+  s7_pointer required_major, required_minor, required_micro;
+  _p = args;
+  required_major = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(required_major)) s7_wrong_type_arg_error(sc, "gtk_check_version", 1, required_major, "guint");
+  required_minor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(required_minor)) s7_wrong_type_arg_error(sc, "gtk_check_version", 2, required_minor, "guint");
+  required_micro = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(required_micro)) s7_wrong_type_arg_error(sc, "gtk_check_version", 3, required_micro, "guint");
+    return(s7_make_string(sc, (gchar*)gtk_check_version(s7_integer(required_major), s7_integer(required_minor), s7_integer(required_micro))));
+}
+
+static s7_pointer lg_gtk_disable_setlocale(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_disable_setlocale "void gtk_disable_setlocale( void)"
+  gtk_disable_setlocale();
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_get_default_language(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_get_default_language "PangoLanguage* gtk_get_default_language( void)"
+  return(s7_make_type_with_c_pointer(sc, PangoLanguage__sym, gtk_get_default_language()));
+}
+
+static s7_pointer lg_gtk_events_pending(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_events_pending "gint gtk_events_pending( void)"
+  return(s7_make_integer(sc, gtk_events_pending()));
+}
+
+static s7_pointer lg_gtk_main_do_event(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_main_do_event "void gtk_main_do_event(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gtk_main_do_event", 1, event, "GdkEvent*");
+  gtk_main_do_event(s7_c_pointer(event));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_main(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_main "void gtk_main( void)"
+  gtk_main();
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_main_level(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_main_level "guint gtk_main_level( void)"
+  return(s7_make_integer(sc, gtk_main_level()));
+}
+
+static s7_pointer lg_gtk_main_quit(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_main_quit "void gtk_main_quit( void)"
+  gtk_main_quit();
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_main_iteration(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_main_iteration "gboolean gtk_main_iteration( void)"
+  return(s7_make_boolean(sc, gtk_main_iteration()));
+}
+
+static s7_pointer lg_gtk_main_iteration_do(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_main_iteration_do "gboolean gtk_main_iteration_do(gboolean blocking)"
+  s7_pointer blocking;
+  blocking = s7_car(args);
+  if (!s7_is_boolean(blocking)) s7_wrong_type_arg_error(sc, "gtk_main_iteration_do", 1, blocking, "gboolean");
+  return(s7_make_boolean(sc, gtk_main_iteration_do(lg_boolean(blocking))));
+}
+
+static s7_pointer lg_gtk_true(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_true "gboolean gtk_true( void)"
+  return(s7_make_boolean(sc, gtk_true()));
+}
+
+static s7_pointer lg_gtk_false(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_false "gboolean gtk_false( void)"
+  return(s7_make_boolean(sc, gtk_false()));
+}
+
+static s7_pointer lg_gtk_grab_add(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grab_add "void gtk_grab_add(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_grab_add", 1, widget, "GtkWidget*");
+  gtk_grab_add(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_grab_get_current(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grab_get_current "GtkWidget* gtk_grab_get_current( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_grab_get_current()));
+}
+
+static s7_pointer lg_gtk_grab_remove(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grab_remove "void gtk_grab_remove(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_grab_remove", 1, widget, "GtkWidget*");
+  gtk_grab_remove(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_get_current_event(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_get_current_event "GdkEvent* gtk_get_current_event( void)"
+  return(s7_make_type_with_c_pointer(sc, GdkEvent__sym, gtk_get_current_event()));
+}
+
+static s7_pointer lg_gtk_get_current_event_time(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_get_current_event_time "guint32 gtk_get_current_event_time( void)"
+  return(s7_make_integer(sc, gtk_get_current_event_time()));
+}
+
+static s7_pointer lg_gtk_get_current_event_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_get_current_event_state "gboolean gtk_get_current_event_state(GdkModifierType* [state])"
+  GdkModifierType ref_state;
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_get_current_event_state(&ref_state));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_state)));
+   }
+}
+
+static s7_pointer lg_gtk_get_event_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_get_event_widget "GtkWidget* gtk_get_event_widget(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if ((!s7_is_c_pointer_of_type(event, GdkEvent__sym)) && (event != lg_false)) s7_wrong_type_arg_error(sc, "gtk_get_event_widget", 1, event, "GdkEvent*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_get_event_widget(s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gtk_propagate_event(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_propagate_event "void gtk_propagate_event(GtkWidget* widget, GdkEvent* event)"
+  s7_pointer _p;
+  s7_pointer widget, event;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_propagate_event", 1, widget, "GtkWidget*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gtk_propagate_event", 2, event, "GdkEvent*");
+  gtk_propagate_event(s7_c_pointer(widget), s7_c_pointer(event));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_bar_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_bar_new "GtkWidget* gtk_menu_bar_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_menu_bar_new()));
+}
+
+static s7_pointer lg_gtk_menu_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_new "GtkWidget* gtk_menu_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_menu_new()));
+}
+
+static s7_pointer lg_gtk_menu_reposition(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_reposition "void gtk_menu_reposition(GtkMenu* menu)"
+  s7_pointer menu;
+  menu = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_reposition", 1, menu, "GtkMenu*");
+  gtk_menu_reposition(s7_c_pointer(menu));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_popdown(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_popdown "void gtk_menu_popdown(GtkMenu* menu)"
+  s7_pointer menu;
+  menu = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_popdown", 1, menu, "GtkMenu*");
+  gtk_menu_popdown(s7_c_pointer(menu));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_get_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_get_active "GtkWidget* gtk_menu_get_active(GtkMenu* menu)"
+  s7_pointer menu;
+  menu = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_get_active", 1, menu, "GtkMenu*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_menu_get_active(s7_c_pointer(menu))));
+}
+
+static s7_pointer lg_gtk_menu_set_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_set_active "void gtk_menu_set_active(GtkMenu* menu, guint index)"
+  s7_pointer _p;
+  s7_pointer menu, index;
+  _p = args;
+  menu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_set_active", 1, menu, "GtkMenu*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "gtk_menu_set_active", 2, index, "guint");
+  gtk_menu_set_active(s7_c_pointer(menu), s7_integer(index));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_set_accel_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_set_accel_group "void gtk_menu_set_accel_group(GtkMenu* menu, GtkAccelGroup* accel_group)"
+  s7_pointer _p;
+  s7_pointer menu, accel_group;
+  _p = args;
+  menu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_set_accel_group", 1, menu, "GtkMenu*");
+  accel_group = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) && (accel_group != lg_false)) s7_wrong_type_arg_error(sc, "gtk_menu_set_accel_group", 2, accel_group, "GtkAccelGroup*");
+  gtk_menu_set_accel_group(s7_c_pointer(menu), s7_c_pointer(accel_group));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_get_accel_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_get_accel_group "GtkAccelGroup* gtk_menu_get_accel_group(GtkMenu* menu)"
+  s7_pointer menu;
+  menu = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_get_accel_group", 1, menu, "GtkMenu*");
+  return(s7_make_type_with_c_pointer(sc, GtkAccelGroup__sym, gtk_menu_get_accel_group(s7_c_pointer(menu))));
+}
+
+static s7_pointer lg_gtk_menu_set_accel_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_set_accel_path "void gtk_menu_set_accel_path(GtkMenu* menu, gchar* accel_path)"
+  s7_pointer _p;
+  s7_pointer menu, accel_path;
+  _p = args;
+  menu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_set_accel_path", 1, menu, "GtkMenu*");
+  accel_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(accel_path)) s7_wrong_type_arg_error(sc, "gtk_menu_set_accel_path", 2, accel_path, "gchar*");
+  gtk_menu_set_accel_path(s7_c_pointer(menu), s7_string(accel_path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_detach(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_detach "void gtk_menu_detach(GtkMenu* menu)"
+  s7_pointer menu;
+  menu = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_detach", 1, menu, "GtkMenu*");
+  gtk_menu_detach(s7_c_pointer(menu));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_get_attach_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_get_attach_widget "GtkWidget* gtk_menu_get_attach_widget(GtkMenu* menu)"
+  s7_pointer menu;
+  menu = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_get_attach_widget", 1, menu, "GtkMenu*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_menu_get_attach_widget(s7_c_pointer(menu))));
+}
+
+static s7_pointer lg_gtk_menu_reorder_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_reorder_child "void gtk_menu_reorder_child(GtkMenu* menu, GtkWidget* child, gint position)"
+  s7_pointer _p;
+  s7_pointer menu, child, position;
+  _p = args;
+  menu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_reorder_child", 1, menu, "GtkMenu*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_reorder_child", 2, child, "GtkWidget*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_menu_reorder_child", 3, position, "gint");
+  gtk_menu_reorder_child(s7_c_pointer(menu), s7_c_pointer(child), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_set_monitor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_set_monitor "void gtk_menu_set_monitor(GtkMenu* menu, gint monitor_num)"
+  s7_pointer _p;
+  s7_pointer menu, monitor_num;
+  _p = args;
+  menu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_set_monitor", 1, menu, "GtkMenu*");
+  monitor_num = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(monitor_num)) s7_wrong_type_arg_error(sc, "gtk_menu_set_monitor", 2, monitor_num, "gint");
+  gtk_menu_set_monitor(s7_c_pointer(menu), s7_integer(monitor_num));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_item_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_new "GtkWidget* gtk_menu_item_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_menu_item_new()));
+}
+
+static s7_pointer lg_gtk_menu_item_new_with_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_new_with_label "GtkWidget* gtk_menu_item_new_with_label(gchar* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_menu_item_new_with_label", 1, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_menu_item_new_with_label(s7_string(label))));
+}
+
+static s7_pointer lg_gtk_menu_item_new_with_mnemonic(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_new_with_mnemonic "GtkWidget* gtk_menu_item_new_with_mnemonic(gchar* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_menu_item_new_with_mnemonic", 1, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_menu_item_new_with_mnemonic(s7_string(label))));
+}
+
+static s7_pointer lg_gtk_menu_item_set_submenu(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_set_submenu "void gtk_menu_item_set_submenu(GtkMenuItem* menu_item, GtkWidget* submenu)"
+  s7_pointer _p;
+  s7_pointer menu_item, submenu;
+  _p = args;
+  menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_set_submenu", 1, menu_item, "GtkMenuItem*");
+  submenu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(submenu, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_set_submenu", 2, submenu, "GtkWidget*");
+  gtk_menu_item_set_submenu(s7_c_pointer(menu_item), s7_c_pointer(submenu));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_item_get_submenu(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_get_submenu "GtkWidget* gtk_menu_item_get_submenu(GtkMenuItem* menu_item)"
+  s7_pointer menu_item;
+  menu_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_get_submenu", 1, menu_item, "GtkMenuItem*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_menu_item_get_submenu(s7_c_pointer(menu_item))));
+}
+
+static s7_pointer lg_gtk_menu_item_select(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_select "void gtk_menu_item_select(GtkMenuItem* menu_item)"
+  s7_pointer menu_item;
+  menu_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_select", 1, menu_item, "GtkMenuItem*");
+  gtk_menu_item_select(s7_c_pointer(menu_item));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_item_deselect(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_deselect "void gtk_menu_item_deselect(GtkMenuItem* menu_item)"
+  s7_pointer menu_item;
+  menu_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_deselect", 1, menu_item, "GtkMenuItem*");
+  gtk_menu_item_deselect(s7_c_pointer(menu_item));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_item_activate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_activate "void gtk_menu_item_activate(GtkMenuItem* menu_item)"
+  s7_pointer menu_item;
+  menu_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_activate", 1, menu_item, "GtkMenuItem*");
+  gtk_menu_item_activate(s7_c_pointer(menu_item));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_item_toggle_size_request(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_toggle_size_request "void gtk_menu_item_toggle_size_request(GtkMenuItem* menu_item, \
+gint* requisition)"
+  s7_pointer _p;
+  s7_pointer menu_item, requisition;
+  _p = args;
+  menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_toggle_size_request", 1, menu_item, "GtkMenuItem*");
+  requisition = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(requisition, gint__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_toggle_size_request", 2, requisition, "gint*");
+  gtk_menu_item_toggle_size_request(s7_c_pointer(menu_item), s7_c_pointer(requisition));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_item_toggle_size_allocate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_toggle_size_allocate "void gtk_menu_item_toggle_size_allocate(GtkMenuItem* menu_item, \
+gint allocation)"
+  s7_pointer _p;
+  s7_pointer menu_item, allocation;
+  _p = args;
+  menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_toggle_size_allocate", 1, menu_item, "GtkMenuItem*");
+  allocation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(allocation)) s7_wrong_type_arg_error(sc, "gtk_menu_item_toggle_size_allocate", 2, allocation, "gint");
+  gtk_menu_item_toggle_size_allocate(s7_c_pointer(menu_item), s7_integer(allocation));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_item_set_accel_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_set_accel_path "void gtk_menu_item_set_accel_path(GtkMenuItem* menu_item, gchar* accel_path)"
+  s7_pointer _p;
+  s7_pointer menu_item, accel_path;
+  _p = args;
+  menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_set_accel_path", 1, menu_item, "GtkMenuItem*");
+  accel_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(accel_path)) s7_wrong_type_arg_error(sc, "gtk_menu_item_set_accel_path", 2, accel_path, "gchar*");
+  gtk_menu_item_set_accel_path(s7_c_pointer(menu_item), s7_string(accel_path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_shell_append(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_shell_append "void gtk_menu_shell_append(GtkMenuShell* menu_shell, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer menu_shell, child;
+  _p = args;
+  menu_shell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_shell, GtkMenuShell__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_append", 1, menu_shell, "GtkMenuShell*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_append", 2, child, "GtkWidget*");
+  gtk_menu_shell_append(s7_c_pointer(menu_shell), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_shell_prepend(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_shell_prepend "void gtk_menu_shell_prepend(GtkMenuShell* menu_shell, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer menu_shell, child;
+  _p = args;
+  menu_shell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_shell, GtkMenuShell__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_prepend", 1, menu_shell, "GtkMenuShell*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_prepend", 2, child, "GtkWidget*");
+  gtk_menu_shell_prepend(s7_c_pointer(menu_shell), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_shell_insert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_shell_insert "void gtk_menu_shell_insert(GtkMenuShell* menu_shell, GtkWidget* child, \
+gint position)"
+  s7_pointer _p;
+  s7_pointer menu_shell, child, position;
+  _p = args;
+  menu_shell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_shell, GtkMenuShell__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_insert", 1, menu_shell, "GtkMenuShell*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_insert", 2, child, "GtkWidget*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_insert", 3, position, "gint");
+  gtk_menu_shell_insert(s7_c_pointer(menu_shell), s7_c_pointer(child), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_shell_deactivate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_shell_deactivate "void gtk_menu_shell_deactivate(GtkMenuShell* menu_shell)"
+  s7_pointer menu_shell;
+  menu_shell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_shell, GtkMenuShell__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_deactivate", 1, menu_shell, "GtkMenuShell*");
+  gtk_menu_shell_deactivate(s7_c_pointer(menu_shell));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_shell_select_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_shell_select_item "void gtk_menu_shell_select_item(GtkMenuShell* menu_shell, GtkWidget* menu_item)"
+  s7_pointer _p;
+  s7_pointer menu_shell, menu_item;
+  _p = args;
+  menu_shell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_shell, GtkMenuShell__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_select_item", 1, menu_shell, "GtkMenuShell*");
+  menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_select_item", 2, menu_item, "GtkWidget*");
+  gtk_menu_shell_select_item(s7_c_pointer(menu_shell), s7_c_pointer(menu_item));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_shell_deselect(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_shell_deselect "void gtk_menu_shell_deselect(GtkMenuShell* menu_shell)"
+  s7_pointer menu_shell;
+  menu_shell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_shell, GtkMenuShell__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_deselect", 1, menu_shell, "GtkMenuShell*");
+  gtk_menu_shell_deselect(s7_c_pointer(menu_shell));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_shell_activate_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_shell_activate_item "void gtk_menu_shell_activate_item(GtkMenuShell* menu_shell, \
+GtkWidget* menu_item, gboolean force_deactivate)"
+  s7_pointer _p;
+  s7_pointer menu_shell, menu_item, force_deactivate;
+  _p = args;
+  menu_shell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_shell, GtkMenuShell__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_activate_item", 1, menu_shell, "GtkMenuShell*");
+  menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_activate_item", 2, menu_item, "GtkWidget*");
+  force_deactivate = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(force_deactivate)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_activate_item", 3, force_deactivate, "gboolean");
+  gtk_menu_shell_activate_item(s7_c_pointer(menu_shell), s7_c_pointer(menu_item), lg_boolean(force_deactivate));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_new "GtkWidget* gtk_notebook_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_notebook_new()));
+}
+
+static s7_pointer lg_gtk_notebook_remove_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_remove_page "void gtk_notebook_remove_page(GtkNotebook* notebook, gint page_num)"
+  s7_pointer _p;
+  s7_pointer notebook, page_num;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_remove_page", 1, notebook, "GtkNotebook*");
+  page_num = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(page_num)) s7_wrong_type_arg_error(sc, "gtk_notebook_remove_page", 2, page_num, "gint");
+  gtk_notebook_remove_page(s7_c_pointer(notebook), s7_integer(page_num));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_get_current_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_current_page "gint gtk_notebook_get_current_page(GtkNotebook* notebook)"
+  s7_pointer notebook;
+  notebook = s7_car(args);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_current_page", 1, notebook, "GtkNotebook*");
+  return(s7_make_integer(sc, gtk_notebook_get_current_page(s7_c_pointer(notebook))));
+}
+
+static s7_pointer lg_gtk_notebook_get_nth_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_nth_page "GtkWidget* gtk_notebook_get_nth_page(GtkNotebook* notebook, gint page_num)"
+  s7_pointer _p;
+  s7_pointer notebook, page_num;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_nth_page", 1, notebook, "GtkNotebook*");
+  page_num = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(page_num)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_nth_page", 2, page_num, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_notebook_get_nth_page(s7_c_pointer(notebook), s7_integer(page_num))));
+}
+
+static s7_pointer lg_gtk_notebook_page_num(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_page_num "gint gtk_notebook_page_num(GtkNotebook* notebook, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer notebook, child;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_page_num", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_page_num", 2, child, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_notebook_page_num(s7_c_pointer(notebook), s7_c_pointer(child))));
+}
+
+static s7_pointer lg_gtk_notebook_set_current_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_set_current_page "void gtk_notebook_set_current_page(GtkNotebook* notebook, \
+gint page_num)"
+  s7_pointer _p;
+  s7_pointer notebook, page_num;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_current_page", 1, notebook, "GtkNotebook*");
+  page_num = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(page_num)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_current_page", 2, page_num, "gint");
+  gtk_notebook_set_current_page(s7_c_pointer(notebook), s7_integer(page_num));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_next_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_next_page "void gtk_notebook_next_page(GtkNotebook* notebook)"
+  s7_pointer notebook;
+  notebook = s7_car(args);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_next_page", 1, notebook, "GtkNotebook*");
+  gtk_notebook_next_page(s7_c_pointer(notebook));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_prev_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_prev_page "void gtk_notebook_prev_page(GtkNotebook* notebook)"
+  s7_pointer notebook;
+  notebook = s7_car(args);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_prev_page", 1, notebook, "GtkNotebook*");
+  gtk_notebook_prev_page(s7_c_pointer(notebook));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_set_show_border(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_set_show_border "void gtk_notebook_set_show_border(GtkNotebook* notebook, gboolean show_border)"
+  s7_pointer _p;
+  s7_pointer notebook, show_border;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_show_border", 1, notebook, "GtkNotebook*");
+  show_border = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_border)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_show_border", 2, show_border, "gboolean");
+  gtk_notebook_set_show_border(s7_c_pointer(notebook), lg_boolean(show_border));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_get_show_border(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_show_border "gboolean gtk_notebook_get_show_border(GtkNotebook* notebook)"
+  s7_pointer notebook;
+  notebook = s7_car(args);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_show_border", 1, notebook, "GtkNotebook*");
+  return(s7_make_boolean(sc, gtk_notebook_get_show_border(s7_c_pointer(notebook))));
+}
+
+static s7_pointer lg_gtk_notebook_set_show_tabs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_set_show_tabs "void gtk_notebook_set_show_tabs(GtkNotebook* notebook, gboolean show_tabs)"
+  s7_pointer _p;
+  s7_pointer notebook, show_tabs;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_show_tabs", 1, notebook, "GtkNotebook*");
+  show_tabs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_tabs)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_show_tabs", 2, show_tabs, "gboolean");
+  gtk_notebook_set_show_tabs(s7_c_pointer(notebook), lg_boolean(show_tabs));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_get_show_tabs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_show_tabs "gboolean gtk_notebook_get_show_tabs(GtkNotebook* notebook)"
+  s7_pointer notebook;
+  notebook = s7_car(args);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_show_tabs", 1, notebook, "GtkNotebook*");
+  return(s7_make_boolean(sc, gtk_notebook_get_show_tabs(s7_c_pointer(notebook))));
+}
+
+static s7_pointer lg_gtk_notebook_set_tab_pos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_set_tab_pos "void gtk_notebook_set_tab_pos(GtkNotebook* notebook, GtkPositionType pos)"
+  s7_pointer _p;
+  s7_pointer notebook, pos;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_tab_pos", 1, notebook, "GtkNotebook*");
+  pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pos)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_tab_pos", 2, pos, "GtkPositionType");
+  gtk_notebook_set_tab_pos(s7_c_pointer(notebook), s7_integer(pos));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_get_tab_pos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_tab_pos "GtkPositionType gtk_notebook_get_tab_pos(GtkNotebook* notebook)"
+  s7_pointer notebook;
+  notebook = s7_car(args);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_tab_pos", 1, notebook, "GtkNotebook*");
+  return(s7_make_integer(sc, gtk_notebook_get_tab_pos(s7_c_pointer(notebook))));
+}
+
+static s7_pointer lg_gtk_notebook_set_scrollable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_set_scrollable "void gtk_notebook_set_scrollable(GtkNotebook* notebook, gboolean scrollable)"
+  s7_pointer _p;
+  s7_pointer notebook, scrollable;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_scrollable", 1, notebook, "GtkNotebook*");
+  scrollable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(scrollable)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_scrollable", 2, scrollable, "gboolean");
+  gtk_notebook_set_scrollable(s7_c_pointer(notebook), lg_boolean(scrollable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_get_scrollable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_scrollable "gboolean gtk_notebook_get_scrollable(GtkNotebook* notebook)"
+  s7_pointer notebook;
+  notebook = s7_car(args);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_scrollable", 1, notebook, "GtkNotebook*");
+  return(s7_make_boolean(sc, gtk_notebook_get_scrollable(s7_c_pointer(notebook))));
+}
+
+static s7_pointer lg_gtk_notebook_popup_enable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_popup_enable "void gtk_notebook_popup_enable(GtkNotebook* notebook)"
+  s7_pointer notebook;
+  notebook = s7_car(args);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_popup_enable", 1, notebook, "GtkNotebook*");
+  gtk_notebook_popup_enable(s7_c_pointer(notebook));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_popup_disable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_popup_disable "void gtk_notebook_popup_disable(GtkNotebook* notebook)"
+  s7_pointer notebook;
+  notebook = s7_car(args);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_popup_disable", 1, notebook, "GtkNotebook*");
+  gtk_notebook_popup_disable(s7_c_pointer(notebook));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_get_tab_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_tab_label "GtkWidget* gtk_notebook_get_tab_label(GtkNotebook* notebook, \
+GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer notebook, child;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_tab_label", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_tab_label", 2, child, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_notebook_get_tab_label(s7_c_pointer(notebook), s7_c_pointer(child))));
+}
+
+static s7_pointer lg_gtk_notebook_set_tab_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_set_tab_label "void gtk_notebook_set_tab_label(GtkNotebook* notebook, GtkWidget* child, \
+GtkWidget* tab_label)"
+  s7_pointer _p;
+  s7_pointer notebook, child, tab_label;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_tab_label", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_tab_label", 2, child, "GtkWidget*");
+  tab_label = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tab_label, GtkWidget__sym)) && (tab_label != lg_false)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_tab_label", 3, tab_label, "GtkWidget*");
+  gtk_notebook_set_tab_label(s7_c_pointer(notebook), s7_c_pointer(child), s7_c_pointer(tab_label));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_set_tab_label_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_set_tab_label_text "void gtk_notebook_set_tab_label_text(GtkNotebook* notebook, \
+GtkWidget* child, gchar* tab_text)"
+  s7_pointer _p;
+  s7_pointer notebook, child, tab_text;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_tab_label_text", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_tab_label_text", 2, child, "GtkWidget*");
+  tab_text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(tab_text)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_tab_label_text", 3, tab_text, "gchar*");
+  gtk_notebook_set_tab_label_text(s7_c_pointer(notebook), s7_c_pointer(child), s7_string(tab_text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_get_tab_label_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_tab_label_text "gchar* gtk_notebook_get_tab_label_text(GtkNotebook* notebook, \
+GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer notebook, child;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_tab_label_text", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_tab_label_text", 2, child, "GtkWidget*");
+  return(s7_make_string(sc, gtk_notebook_get_tab_label_text(s7_c_pointer(notebook), s7_c_pointer(child))));
+}
+
+static s7_pointer lg_gtk_notebook_get_menu_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_menu_label "GtkWidget* gtk_notebook_get_menu_label(GtkNotebook* notebook, \
+GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer notebook, child;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_menu_label", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_menu_label", 2, child, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_notebook_get_menu_label(s7_c_pointer(notebook), s7_c_pointer(child))));
+}
+
+static s7_pointer lg_gtk_notebook_set_menu_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_set_menu_label "void gtk_notebook_set_menu_label(GtkNotebook* notebook, GtkWidget* child, \
+GtkWidget* menu_label)"
+  s7_pointer _p;
+  s7_pointer notebook, child, menu_label;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_menu_label", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_menu_label", 2, child, "GtkWidget*");
+  menu_label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_label, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_menu_label", 3, menu_label, "GtkWidget*");
+  gtk_notebook_set_menu_label(s7_c_pointer(notebook), s7_c_pointer(child), s7_c_pointer(menu_label));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_set_menu_label_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_set_menu_label_text "void gtk_notebook_set_menu_label_text(GtkNotebook* notebook, \
+GtkWidget* child, gchar* menu_text)"
+  s7_pointer _p;
+  s7_pointer notebook, child, menu_text;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_menu_label_text", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_menu_label_text", 2, child, "GtkWidget*");
+  menu_text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(menu_text)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_menu_label_text", 3, menu_text, "gchar*");
+  gtk_notebook_set_menu_label_text(s7_c_pointer(notebook), s7_c_pointer(child), s7_string(menu_text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_get_menu_label_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_menu_label_text "gchar* gtk_notebook_get_menu_label_text(GtkNotebook* notebook, \
+GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer notebook, child;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_menu_label_text", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_menu_label_text", 2, child, "GtkWidget*");
+  return(s7_make_string(sc, gtk_notebook_get_menu_label_text(s7_c_pointer(notebook), s7_c_pointer(child))));
+}
+
+static s7_pointer lg_gtk_notebook_reorder_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_reorder_child "void gtk_notebook_reorder_child(GtkNotebook* notebook, GtkWidget* child, \
+gint position)"
+  s7_pointer _p;
+  s7_pointer notebook, child, position;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_reorder_child", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_reorder_child", 2, child, "GtkWidget*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_notebook_reorder_child", 3, position, "gint");
+  gtk_notebook_reorder_child(s7_c_pointer(notebook), s7_c_pointer(child), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_append_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_append_page "gint gtk_notebook_append_page(GtkNotebook* notebook, GtkWidget* child, \
+GtkWidget* tab_label)"
+  s7_pointer _p;
+  s7_pointer notebook, child, tab_label;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_append_page", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_append_page", 2, child, "GtkWidget*");
+  tab_label = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tab_label, GtkWidget__sym)) && (tab_label != lg_false)) s7_wrong_type_arg_error(sc, "gtk_notebook_append_page", 3, tab_label, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_notebook_append_page(s7_c_pointer(notebook), s7_c_pointer(child), s7_c_pointer(tab_label))));
+}
+
+static s7_pointer lg_gtk_notebook_append_page_menu(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_append_page_menu "gint gtk_notebook_append_page_menu(GtkNotebook* notebook, \
+GtkWidget* child, GtkWidget* tab_label, GtkWidget* menu_label)"
+  s7_pointer _p;
+  s7_pointer notebook, child, tab_label, menu_label;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_append_page_menu", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_append_page_menu", 2, child, "GtkWidget*");
+  tab_label = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tab_label, GtkWidget__sym)) && (tab_label != lg_false)) s7_wrong_type_arg_error(sc, "gtk_notebook_append_page_menu", 3, tab_label, "GtkWidget*");
+  menu_label = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(menu_label, GtkWidget__sym)) && (menu_label != lg_false)) s7_wrong_type_arg_error(sc, "gtk_notebook_append_page_menu", 4, menu_label, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_notebook_append_page_menu(s7_c_pointer(notebook), s7_c_pointer(child), s7_c_pointer(tab_label), s7_c_pointer(menu_label))));
+}
+
+static s7_pointer lg_gtk_notebook_prepend_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_prepend_page "gint gtk_notebook_prepend_page(GtkNotebook* notebook, GtkWidget* child, \
+GtkWidget* tab_label)"
+  s7_pointer _p;
+  s7_pointer notebook, child, tab_label;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_prepend_page", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_prepend_page", 2, child, "GtkWidget*");
+  tab_label = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tab_label, GtkWidget__sym)) && (tab_label != lg_false)) s7_wrong_type_arg_error(sc, "gtk_notebook_prepend_page", 3, tab_label, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_notebook_prepend_page(s7_c_pointer(notebook), s7_c_pointer(child), s7_c_pointer(tab_label))));
+}
+
+static s7_pointer lg_gtk_notebook_prepend_page_menu(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_prepend_page_menu "gint gtk_notebook_prepend_page_menu(GtkNotebook* notebook, \
+GtkWidget* child, GtkWidget* tab_label, GtkWidget* menu_label)"
+  s7_pointer _p;
+  s7_pointer notebook, child, tab_label, menu_label;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_prepend_page_menu", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_prepend_page_menu", 2, child, "GtkWidget*");
+  tab_label = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tab_label, GtkWidget__sym)) && (tab_label != lg_false)) s7_wrong_type_arg_error(sc, "gtk_notebook_prepend_page_menu", 3, tab_label, "GtkWidget*");
+  menu_label = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(menu_label, GtkWidget__sym)) && (menu_label != lg_false)) s7_wrong_type_arg_error(sc, "gtk_notebook_prepend_page_menu", 4, menu_label, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_notebook_prepend_page_menu(s7_c_pointer(notebook), s7_c_pointer(child), s7_c_pointer(tab_label), s7_c_pointer(menu_label))));
+}
+
+static s7_pointer lg_gtk_notebook_insert_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_insert_page "gint gtk_notebook_insert_page(GtkNotebook* notebook, GtkWidget* child, \
+GtkWidget* tab_label, gint position)"
+  s7_pointer _p;
+  s7_pointer notebook, child, tab_label, position;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_insert_page", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_insert_page", 2, child, "GtkWidget*");
+  tab_label = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tab_label, GtkWidget__sym)) && (tab_label != lg_false)) s7_wrong_type_arg_error(sc, "gtk_notebook_insert_page", 3, tab_label, "GtkWidget*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_notebook_insert_page", 4, position, "gint");
+  return(s7_make_integer(sc, gtk_notebook_insert_page(s7_c_pointer(notebook), s7_c_pointer(child), s7_c_pointer(tab_label), s7_integer(position))));
+}
+
+static s7_pointer lg_gtk_notebook_insert_page_menu(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_insert_page_menu "gint gtk_notebook_insert_page_menu(GtkNotebook* notebook, \
+GtkWidget* child, GtkWidget* tab_label, GtkWidget* menu_label, gint position)"
+  s7_pointer _p;
+  s7_pointer notebook, child, tab_label, menu_label, position;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_insert_page_menu", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_insert_page_menu", 2, child, "GtkWidget*");
+  tab_label = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tab_label, GtkWidget__sym)) && (tab_label != lg_false)) s7_wrong_type_arg_error(sc, "gtk_notebook_insert_page_menu", 3, tab_label, "GtkWidget*");
+  menu_label = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(menu_label, GtkWidget__sym)) && (menu_label != lg_false)) s7_wrong_type_arg_error(sc, "gtk_notebook_insert_page_menu", 4, menu_label, "GtkWidget*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_notebook_insert_page_menu", 5, position, "gint");
+  return(s7_make_integer(sc, gtk_notebook_insert_page_menu(s7_c_pointer(notebook), s7_c_pointer(child), s7_c_pointer(tab_label), s7_c_pointer(menu_label), s7_integer(position))));
+}
+
+static s7_pointer lg_gtk_paned_add1(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_paned_add1 "void gtk_paned_add1(GtkPaned* paned, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer paned, child;
+  _p = args;
+  paned = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(paned, GtkPaned__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_add1", 1, paned, "GtkPaned*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_add1", 2, child, "GtkWidget*");
+  gtk_paned_add1(s7_c_pointer(paned), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_paned_add2(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_paned_add2 "void gtk_paned_add2(GtkPaned* paned, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer paned, child;
+  _p = args;
+  paned = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(paned, GtkPaned__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_add2", 1, paned, "GtkPaned*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_add2", 2, child, "GtkWidget*");
+  gtk_paned_add2(s7_c_pointer(paned), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_paned_pack1(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_paned_pack1 "void gtk_paned_pack1(GtkPaned* paned, GtkWidget* child, gboolean resize, \
+gboolean shrink)"
+  s7_pointer _p;
+  s7_pointer paned, child, resize, shrink;
+  _p = args;
+  paned = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(paned, GtkPaned__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_pack1", 1, paned, "GtkPaned*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_pack1", 2, child, "GtkWidget*");
+  resize = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(resize)) s7_wrong_type_arg_error(sc, "gtk_paned_pack1", 3, resize, "gboolean");
+  shrink = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(shrink)) s7_wrong_type_arg_error(sc, "gtk_paned_pack1", 4, shrink, "gboolean");
+  gtk_paned_pack1(s7_c_pointer(paned), s7_c_pointer(child), lg_boolean(resize), lg_boolean(shrink));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_paned_pack2(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_paned_pack2 "void gtk_paned_pack2(GtkPaned* paned, GtkWidget* child, gboolean resize, \
+gboolean shrink)"
+  s7_pointer _p;
+  s7_pointer paned, child, resize, shrink;
+  _p = args;
+  paned = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(paned, GtkPaned__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_pack2", 1, paned, "GtkPaned*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_pack2", 2, child, "GtkWidget*");
+  resize = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(resize)) s7_wrong_type_arg_error(sc, "gtk_paned_pack2", 3, resize, "gboolean");
+  shrink = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(shrink)) s7_wrong_type_arg_error(sc, "gtk_paned_pack2", 4, shrink, "gboolean");
+  gtk_paned_pack2(s7_c_pointer(paned), s7_c_pointer(child), lg_boolean(resize), lg_boolean(shrink));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_paned_get_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_paned_get_position "gint gtk_paned_get_position(GtkPaned* paned)"
+  s7_pointer paned;
+  paned = s7_car(args);
+  if (!s7_is_c_pointer_of_type(paned, GtkPaned__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_get_position", 1, paned, "GtkPaned*");
+  return(s7_make_integer(sc, gtk_paned_get_position(s7_c_pointer(paned))));
+}
+
+static s7_pointer lg_gtk_paned_set_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_paned_set_position "void gtk_paned_set_position(GtkPaned* paned, gint position)"
+  s7_pointer _p;
+  s7_pointer paned, position;
+  _p = args;
+  paned = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(paned, GtkPaned__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_set_position", 1, paned, "GtkPaned*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_paned_set_position", 2, position, "gint");
+  gtk_paned_set_position(s7_c_pointer(paned), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_progress_bar_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_progress_bar_new "GtkWidget* gtk_progress_bar_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_progress_bar_new()));
+}
+
+static s7_pointer lg_gtk_progress_bar_pulse(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_progress_bar_pulse "void gtk_progress_bar_pulse(GtkProgressBar* pbar)"
+  s7_pointer pbar;
+  pbar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pbar, GtkProgressBar__sym)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_pulse", 1, pbar, "GtkProgressBar*");
+  gtk_progress_bar_pulse(s7_c_pointer(pbar));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_progress_bar_set_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_progress_bar_set_text "void gtk_progress_bar_set_text(GtkProgressBar* pbar, gchar* text)"
+  s7_pointer _p;
+  s7_pointer pbar, text;
+  _p = args;
+  pbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pbar, GtkProgressBar__sym)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_set_text", 1, pbar, "GtkProgressBar*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_set_text", 2, text, "gchar*");
+  gtk_progress_bar_set_text(s7_c_pointer(pbar), s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_progress_bar_set_fraction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_progress_bar_set_fraction "void gtk_progress_bar_set_fraction(GtkProgressBar* pbar, gdouble fraction)"
+  s7_pointer _p;
+  s7_pointer pbar, fraction;
+  _p = args;
+  pbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pbar, GtkProgressBar__sym)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_set_fraction", 1, pbar, "GtkProgressBar*");
+  fraction = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(fraction)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_set_fraction", 2, fraction, "gdouble");
+  gtk_progress_bar_set_fraction(s7_c_pointer(pbar), s7_real(fraction));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_progress_bar_set_pulse_step(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_progress_bar_set_pulse_step "void gtk_progress_bar_set_pulse_step(GtkProgressBar* pbar, \
+gdouble fraction)"
+  s7_pointer _p;
+  s7_pointer pbar, fraction;
+  _p = args;
+  pbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pbar, GtkProgressBar__sym)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_set_pulse_step", 1, pbar, "GtkProgressBar*");
+  fraction = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(fraction)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_set_pulse_step", 2, fraction, "gdouble");
+  gtk_progress_bar_set_pulse_step(s7_c_pointer(pbar), s7_real(fraction));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_progress_bar_get_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_progress_bar_get_text "gchar* gtk_progress_bar_get_text(GtkProgressBar* pbar)"
+  s7_pointer pbar;
+  pbar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pbar, GtkProgressBar__sym)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_get_text", 1, pbar, "GtkProgressBar*");
+  return(s7_make_string(sc, gtk_progress_bar_get_text(s7_c_pointer(pbar))));
+}
+
+static s7_pointer lg_gtk_progress_bar_get_fraction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_progress_bar_get_fraction "gdouble gtk_progress_bar_get_fraction(GtkProgressBar* pbar)"
+  s7_pointer pbar;
+  pbar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pbar, GtkProgressBar__sym)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_get_fraction", 1, pbar, "GtkProgressBar*");
+  return(s7_make_real(sc, gtk_progress_bar_get_fraction(s7_c_pointer(pbar))));
+}
+
+static s7_pointer lg_gtk_progress_bar_get_pulse_step(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_progress_bar_get_pulse_step "gdouble gtk_progress_bar_get_pulse_step(GtkProgressBar* pbar)"
+  s7_pointer pbar;
+  pbar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pbar, GtkProgressBar__sym)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_get_pulse_step", 1, pbar, "GtkProgressBar*");
+  return(s7_make_real(sc, gtk_progress_bar_get_pulse_step(s7_c_pointer(pbar))));
+}
+
+static s7_pointer lg_gtk_radio_button_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_button_new "GtkWidget* gtk_radio_button_new(GSList* group)"
+  s7_pointer group;
+  group = s7_car(args);
+  if ((!s7_is_c_pointer_of_type(group, GSList__sym)) && (group != lg_false)) s7_wrong_type_arg_error(sc, "gtk_radio_button_new", 1, group, "GSList*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_radio_button_new(s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_radio_button_new_from_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_button_new_from_widget "GtkWidget* gtk_radio_button_new_from_widget(GtkRadioButton* group)"
+  s7_pointer group;
+  group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(group, GtkRadioButton__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_button_new_from_widget", 1, group, "GtkRadioButton*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_radio_button_new_from_widget(s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_radio_button_new_with_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_button_new_with_label "GtkWidget* gtk_radio_button_new_with_label(GSList* group, \
+gchar* label)"
+  s7_pointer _p;
+  s7_pointer group, label;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(group, GSList__sym)) && (group != lg_false)) s7_wrong_type_arg_error(sc, "gtk_radio_button_new_with_label", 1, group, "GSList*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_radio_button_new_with_label", 2, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_radio_button_new_with_label(s7_c_pointer(group), s7_string(label))));
+}
+
+static s7_pointer lg_gtk_radio_button_new_with_label_from_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_button_new_with_label_from_widget "GtkWidget* gtk_radio_button_new_with_label_from_widget(GtkRadioButton* group, \
+gchar* label)"
+  s7_pointer _p;
+  s7_pointer group, label;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkRadioButton__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_button_new_with_label_from_widget", 1, group, "GtkRadioButton*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_radio_button_new_with_label_from_widget", 2, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_radio_button_new_with_label_from_widget(s7_c_pointer(group), s7_string(label))));
+}
+
+static s7_pointer lg_gtk_radio_button_new_with_mnemonic(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_button_new_with_mnemonic "GtkWidget* gtk_radio_button_new_with_mnemonic(GSList* group, \
+gchar* label)"
+  s7_pointer _p;
+  s7_pointer group, label;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(group, GSList__sym)) && (group != lg_false)) s7_wrong_type_arg_error(sc, "gtk_radio_button_new_with_mnemonic", 1, group, "GSList*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_radio_button_new_with_mnemonic", 2, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_radio_button_new_with_mnemonic(s7_c_pointer(group), s7_string(label))));
+}
+
+static s7_pointer lg_gtk_radio_button_new_with_mnemonic_from_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_button_new_with_mnemonic_from_widget "GtkWidget* gtk_radio_button_new_with_mnemonic_from_widget(GtkRadioButton* group, \
+gchar* label)"
+  s7_pointer _p;
+  s7_pointer group, label;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkRadioButton__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_button_new_with_mnemonic_from_widget", 1, group, "GtkRadioButton*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_radio_button_new_with_mnemonic_from_widget", 2, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_radio_button_new_with_mnemonic_from_widget(s7_c_pointer(group), s7_string(label))));
+}
+
+static s7_pointer lg_gtk_radio_button_get_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_button_get_group "GSList* gtk_radio_button_get_group(GtkRadioButton* radio_button)"
+  s7_pointer radio_button;
+  radio_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(radio_button, GtkRadioButton__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_button_get_group", 1, radio_button, "GtkRadioButton*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_radio_button_get_group(s7_c_pointer(radio_button))));
+}
+
+static s7_pointer lg_gtk_radio_button_set_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_button_set_group "void gtk_radio_button_set_group(GtkRadioButton* radio_button, \
+GSList* group)"
+  s7_pointer _p;
+  s7_pointer radio_button, group;
+  _p = args;
+  radio_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(radio_button, GtkRadioButton__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_button_set_group", 1, radio_button, "GtkRadioButton*");
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(group, GSList__sym)) && (group != lg_false)) s7_wrong_type_arg_error(sc, "gtk_radio_button_set_group", 2, group, "GSList*");
+  gtk_radio_button_set_group(s7_c_pointer(radio_button), s7_c_pointer(group));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_radio_menu_item_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_menu_item_new "GtkWidget* gtk_radio_menu_item_new(GSList* group)"
+  s7_pointer group;
+  group = s7_car(args);
+  if ((!s7_is_c_pointer_of_type(group, GSList__sym)) && (group != lg_false)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_new", 1, group, "GSList*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_radio_menu_item_new(s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_radio_menu_item_new_with_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_menu_item_new_with_label "GtkWidget* gtk_radio_menu_item_new_with_label(GSList* group, \
+gchar* label)"
+  s7_pointer _p;
+  s7_pointer group, label;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(group, GSList__sym)) && (group != lg_false)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_new_with_label", 1, group, "GSList*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_new_with_label", 2, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_radio_menu_item_new_with_label(s7_c_pointer(group), s7_string(label))));
+}
+
+static s7_pointer lg_gtk_radio_menu_item_new_with_mnemonic(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_menu_item_new_with_mnemonic "GtkWidget* gtk_radio_menu_item_new_with_mnemonic(GSList* group, \
+gchar* label)"
+  s7_pointer _p;
+  s7_pointer group, label;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(group, GSList__sym)) && (group != lg_false)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_new_with_mnemonic", 1, group, "GSList*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_new_with_mnemonic", 2, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_radio_menu_item_new_with_mnemonic(s7_c_pointer(group), s7_string(label))));
+}
+
+static s7_pointer lg_gtk_radio_menu_item_get_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_menu_item_get_group "GSList* gtk_radio_menu_item_get_group(GtkRadioMenuItem* radio_menu_item)"
+  s7_pointer radio_menu_item;
+  radio_menu_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(radio_menu_item, GtkRadioMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_get_group", 1, radio_menu_item, "GtkRadioMenuItem*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_radio_menu_item_get_group(s7_c_pointer(radio_menu_item))));
+}
+
+static s7_pointer lg_gtk_radio_menu_item_set_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_menu_item_set_group "void gtk_radio_menu_item_set_group(GtkRadioMenuItem* radio_menu_item, \
+GSList* group)"
+  s7_pointer _p;
+  s7_pointer radio_menu_item, group;
+  _p = args;
+  radio_menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(radio_menu_item, GtkRadioMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_set_group", 1, radio_menu_item, "GtkRadioMenuItem*");
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(group, GSList__sym)) && (group != lg_false)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_set_group", 2, group, "GSList*");
+  gtk_radio_menu_item_set_group(s7_c_pointer(radio_menu_item), s7_c_pointer(group));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_set_adjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_set_adjustment "void gtk_range_set_adjustment(GtkRange* range, GtkAdjustment* adjustment)"
+  s7_pointer _p;
+  s7_pointer range, adjustment;
+  _p = args;
+  range = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_set_adjustment", 1, range, "GtkRange*");
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) && (adjustment != lg_false)) s7_wrong_type_arg_error(sc, "gtk_range_set_adjustment", 2, adjustment, "GtkAdjustment*");
+  gtk_range_set_adjustment(s7_c_pointer(range), s7_c_pointer(adjustment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_get_adjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_get_adjustment "GtkAdjustment* gtk_range_get_adjustment(GtkRange* range)"
+  s7_pointer range;
+  range = s7_car(args);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_get_adjustment", 1, range, "GtkRange*");
+  return(s7_make_type_with_c_pointer(sc, GtkAdjustment__sym, gtk_range_get_adjustment(s7_c_pointer(range))));
+}
+
+static s7_pointer lg_gtk_range_set_inverted(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_set_inverted "void gtk_range_set_inverted(GtkRange* range, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer range, setting;
+  _p = args;
+  range = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_set_inverted", 1, range, "GtkRange*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_range_set_inverted", 2, setting, "gboolean");
+  gtk_range_set_inverted(s7_c_pointer(range), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_get_inverted(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_get_inverted "gboolean gtk_range_get_inverted(GtkRange* range)"
+  s7_pointer range;
+  range = s7_car(args);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_get_inverted", 1, range, "GtkRange*");
+  return(s7_make_boolean(sc, gtk_range_get_inverted(s7_c_pointer(range))));
+}
+
+static s7_pointer lg_gtk_range_set_increments(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_set_increments "void gtk_range_set_increments(GtkRange* range, gdouble step, gdouble page)"
+  s7_pointer _p;
+  s7_pointer range, step, page;
+  _p = args;
+  range = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_set_increments", 1, range, "GtkRange*");
+  step = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(step)) s7_wrong_type_arg_error(sc, "gtk_range_set_increments", 2, step, "gdouble");
+  page = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(page)) s7_wrong_type_arg_error(sc, "gtk_range_set_increments", 3, page, "gdouble");
+  gtk_range_set_increments(s7_c_pointer(range), s7_real(step), s7_real(page));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_set_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_set_range "void gtk_range_set_range(GtkRange* range, gdouble min, gdouble max)"
+  s7_pointer _p;
+  s7_pointer range, min, max;
+  _p = args;
+  range = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_set_range", 1, range, "GtkRange*");
+  min = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(min)) s7_wrong_type_arg_error(sc, "gtk_range_set_range", 2, min, "gdouble");
+  max = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(max)) s7_wrong_type_arg_error(sc, "gtk_range_set_range", 3, max, "gdouble");
+  gtk_range_set_range(s7_c_pointer(range), s7_real(min), s7_real(max));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_set_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_set_value "void gtk_range_set_value(GtkRange* range, gdouble value)"
+  s7_pointer _p;
+  s7_pointer range, value;
+  _p = args;
+  range = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_set_value", 1, range, "GtkRange*");
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(value)) s7_wrong_type_arg_error(sc, "gtk_range_set_value", 2, value, "gdouble");
+  gtk_range_set_value(s7_c_pointer(range), s7_real(value));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_get_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_get_value "gdouble gtk_range_get_value(GtkRange* range)"
+  s7_pointer range;
+  range = s7_car(args);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_get_value", 1, range, "GtkRange*");
+  return(s7_make_real(sc, gtk_range_get_value(s7_c_pointer(range))));
+}
+
+static s7_pointer lg_gtk_scale_set_digits(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_set_digits "void gtk_scale_set_digits(GtkScale* scale, gint digits)"
+  s7_pointer _p;
+  s7_pointer scale, digits;
+  _p = args;
+  scale = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scale, GtkScale__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_set_digits", 1, scale, "GtkScale*");
+  digits = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(digits)) s7_wrong_type_arg_error(sc, "gtk_scale_set_digits", 2, digits, "gint");
+  gtk_scale_set_digits(s7_c_pointer(scale), s7_integer(digits));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scale_get_digits(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_get_digits "gint gtk_scale_get_digits(GtkScale* scale)"
+  s7_pointer scale;
+  scale = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scale, GtkScale__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_get_digits", 1, scale, "GtkScale*");
+  return(s7_make_integer(sc, gtk_scale_get_digits(s7_c_pointer(scale))));
+}
+
+static s7_pointer lg_gtk_scale_set_draw_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_set_draw_value "void gtk_scale_set_draw_value(GtkScale* scale, gboolean draw_value)"
+  s7_pointer _p;
+  s7_pointer scale, draw_value;
+  _p = args;
+  scale = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scale, GtkScale__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_set_draw_value", 1, scale, "GtkScale*");
+  draw_value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(draw_value)) s7_wrong_type_arg_error(sc, "gtk_scale_set_draw_value", 2, draw_value, "gboolean");
+  gtk_scale_set_draw_value(s7_c_pointer(scale), lg_boolean(draw_value));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scale_get_draw_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_get_draw_value "gboolean gtk_scale_get_draw_value(GtkScale* scale)"
+  s7_pointer scale;
+  scale = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scale, GtkScale__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_get_draw_value", 1, scale, "GtkScale*");
+  return(s7_make_boolean(sc, gtk_scale_get_draw_value(s7_c_pointer(scale))));
+}
+
+static s7_pointer lg_gtk_scale_set_value_pos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_set_value_pos "void gtk_scale_set_value_pos(GtkScale* scale, GtkPositionType pos)"
+  s7_pointer _p;
+  s7_pointer scale, pos;
+  _p = args;
+  scale = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scale, GtkScale__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_set_value_pos", 1, scale, "GtkScale*");
+  pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pos)) s7_wrong_type_arg_error(sc, "gtk_scale_set_value_pos", 2, pos, "GtkPositionType");
+  gtk_scale_set_value_pos(s7_c_pointer(scale), s7_integer(pos));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scale_get_value_pos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_get_value_pos "GtkPositionType gtk_scale_get_value_pos(GtkScale* scale)"
+  s7_pointer scale;
+  scale = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scale, GtkScale__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_get_value_pos", 1, scale, "GtkScale*");
+  return(s7_make_integer(sc, gtk_scale_get_value_pos(s7_c_pointer(scale))));
+}
+
+static s7_pointer lg_gtk_scrolled_window_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_new "GtkWidget* gtk_scrolled_window_new(GtkAdjustment* hadjustment, GtkAdjustment* vadjustment)"
+  s7_pointer _p;
+  s7_pointer hadjustment, vadjustment;
+  _p = args;
+  hadjustment = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(hadjustment, GtkAdjustment__sym)) && (hadjustment != lg_false)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_new", 1, hadjustment, "GtkAdjustment*");
+  vadjustment = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(vadjustment, GtkAdjustment__sym)) && (vadjustment != lg_false)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_new", 2, vadjustment, "GtkAdjustment*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_scrolled_window_new(s7_c_pointer(hadjustment), s7_c_pointer(vadjustment))));
+}
+
+static s7_pointer lg_gtk_scrolled_window_set_hadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_set_hadjustment "void gtk_scrolled_window_set_hadjustment(GtkScrolledWindow* scrolled_window, \
+GtkAdjustment* hadjustment)"
+  s7_pointer _p;
+  s7_pointer scrolled_window, hadjustment;
+  _p = args;
+  scrolled_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_hadjustment", 1, scrolled_window, "GtkScrolledWindow*");
+  hadjustment = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(hadjustment, GtkAdjustment__sym)) && (hadjustment != lg_false)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_hadjustment", 2, hadjustment, "GtkAdjustment*");
+  gtk_scrolled_window_set_hadjustment(s7_c_pointer(scrolled_window), s7_c_pointer(hadjustment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrolled_window_set_vadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_set_vadjustment "void gtk_scrolled_window_set_vadjustment(GtkScrolledWindow* scrolled_window, \
+GtkAdjustment* hadjustment)"
+  s7_pointer _p;
+  s7_pointer scrolled_window, hadjustment;
+  _p = args;
+  scrolled_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_vadjustment", 1, scrolled_window, "GtkScrolledWindow*");
+  hadjustment = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(hadjustment, GtkAdjustment__sym)) && (hadjustment != lg_false)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_vadjustment", 2, hadjustment, "GtkAdjustment*");
+  gtk_scrolled_window_set_vadjustment(s7_c_pointer(scrolled_window), s7_c_pointer(hadjustment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrolled_window_get_hadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_get_hadjustment "GtkAdjustment* gtk_scrolled_window_get_hadjustment(GtkScrolledWindow* scrolled_window)"
+  s7_pointer scrolled_window;
+  scrolled_window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_get_hadjustment", 1, scrolled_window, "GtkScrolledWindow*");
+  return(s7_make_type_with_c_pointer(sc, GtkAdjustment__sym, gtk_scrolled_window_get_hadjustment(s7_c_pointer(scrolled_window))));
+}
+
+static s7_pointer lg_gtk_scrolled_window_get_vadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_get_vadjustment "GtkAdjustment* gtk_scrolled_window_get_vadjustment(GtkScrolledWindow* scrolled_window)"
+  s7_pointer scrolled_window;
+  scrolled_window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_get_vadjustment", 1, scrolled_window, "GtkScrolledWindow*");
+  return(s7_make_type_with_c_pointer(sc, GtkAdjustment__sym, gtk_scrolled_window_get_vadjustment(s7_c_pointer(scrolled_window))));
+}
+
+static s7_pointer lg_gtk_scrolled_window_set_policy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_set_policy "void gtk_scrolled_window_set_policy(GtkScrolledWindow* scrolled_window, \
+GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy)"
+  s7_pointer _p;
+  s7_pointer scrolled_window, hscrollbar_policy, vscrollbar_policy;
+  _p = args;
+  scrolled_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_policy", 1, scrolled_window, "GtkScrolledWindow*");
+  hscrollbar_policy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hscrollbar_policy)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_policy", 2, hscrollbar_policy, "GtkPolicyType");
+  vscrollbar_policy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(vscrollbar_policy)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_policy", 3, vscrollbar_policy, "GtkPolicyType");
+  gtk_scrolled_window_set_policy(s7_c_pointer(scrolled_window), s7_integer(hscrollbar_policy), s7_integer(vscrollbar_policy));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrolled_window_get_policy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_get_policy "void gtk_scrolled_window_get_policy(GtkScrolledWindow* scrolled_window, \
+GtkPolicyType* [hscrollbar_policy], GtkPolicyType* [vscrollbar_policy])"
+  s7_pointer _p;
+  s7_pointer scrolled_window;
+  GtkPolicyType ref_hscrollbar_policy;
+  GtkPolicyType ref_vscrollbar_policy;
+  _p = args;
+  scrolled_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_get_policy", 1, scrolled_window, "GtkScrolledWindow*");
+  gtk_scrolled_window_get_policy(s7_c_pointer(scrolled_window), &ref_hscrollbar_policy, &ref_vscrollbar_policy);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_hscrollbar_policy), s7_make_integer(sc, ref_vscrollbar_policy)));
+}
+
+static s7_pointer lg_gtk_scrolled_window_set_placement(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_set_placement "void gtk_scrolled_window_set_placement(GtkScrolledWindow* scrolled_window, \
+GtkCornerType window_placement)"
+  s7_pointer _p;
+  s7_pointer scrolled_window, window_placement;
+  _p = args;
+  scrolled_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_placement", 1, scrolled_window, "GtkScrolledWindow*");
+  window_placement = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(window_placement)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_placement", 2, window_placement, "GtkCornerType");
+  gtk_scrolled_window_set_placement(s7_c_pointer(scrolled_window), s7_integer(window_placement));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrolled_window_get_placement(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_get_placement "GtkCornerType gtk_scrolled_window_get_placement(GtkScrolledWindow* scrolled_window)"
+  s7_pointer scrolled_window;
+  scrolled_window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_get_placement", 1, scrolled_window, "GtkScrolledWindow*");
+  return(s7_make_integer(sc, gtk_scrolled_window_get_placement(s7_c_pointer(scrolled_window))));
+}
+
+static s7_pointer lg_gtk_scrolled_window_set_shadow_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_set_shadow_type "void gtk_scrolled_window_set_shadow_type(GtkScrolledWindow* scrolled_window, \
+GtkShadowType type)"
+  s7_pointer _p;
+  s7_pointer scrolled_window, type;
+  _p = args;
+  scrolled_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_shadow_type", 1, scrolled_window, "GtkScrolledWindow*");
+  type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(type)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_shadow_type", 2, type, "GtkShadowType");
+  gtk_scrolled_window_set_shadow_type(s7_c_pointer(scrolled_window), s7_integer(type));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrolled_window_get_shadow_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_get_shadow_type "GtkShadowType gtk_scrolled_window_get_shadow_type(GtkScrolledWindow* scrolled_window)"
+  s7_pointer scrolled_window;
+  scrolled_window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_get_shadow_type", 1, scrolled_window, "GtkScrolledWindow*");
+  return(s7_make_integer(sc, gtk_scrolled_window_get_shadow_type(s7_c_pointer(scrolled_window))));
+}
+
+static s7_pointer lg_gtk_target_list_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_list_new "GtkTargetList* gtk_target_list_new(GtkTargetEntry* targets, guint ntargets)"
+  s7_pointer _p;
+  s7_pointer targets, ntargets;
+  _p = args;
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(targets, GtkTargetEntry__sym)) && (targets != lg_false)) s7_wrong_type_arg_error(sc, "gtk_target_list_new", 1, targets, "GtkTargetEntry*");
+  ntargets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(ntargets)) s7_wrong_type_arg_error(sc, "gtk_target_list_new", 2, ntargets, "guint");
+  return(s7_make_type_with_c_pointer(sc, GtkTargetList__sym, gtk_target_list_new(s7_c_pointer(targets), s7_integer(ntargets))));
+}
+
+static s7_pointer lg_gtk_target_list_unref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_list_unref "void gtk_target_list_unref(GtkTargetList* list)"
+  s7_pointer list;
+  list = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list, GtkTargetList__sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_unref", 1, list, "GtkTargetList*");
+  gtk_target_list_unref(s7_c_pointer(list));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_target_list_add(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_list_add "void gtk_target_list_add(GtkTargetList* list, GdkAtom target, guint flags, \
+guint info)"
+  s7_pointer _p;
+  s7_pointer list, target, flags, info;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, GtkTargetList__sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_add", 1, list, "GtkTargetList*");
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_add", 2, target, "GdkAtom");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_target_list_add", 3, flags, "guint");
+  info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(info)) s7_wrong_type_arg_error(sc, "gtk_target_list_add", 4, info, "guint");
+  gtk_target_list_add(s7_c_pointer(list), s7_c_pointer(target), s7_integer(flags), s7_integer(info));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_target_list_add_table(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_list_add_table "void gtk_target_list_add_table(GtkTargetList* list, GtkTargetEntry* targets, \
+guint ntargets)"
+  s7_pointer _p;
+  s7_pointer list, targets, ntargets;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, GtkTargetList__sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_add_table", 1, list, "GtkTargetList*");
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GtkTargetEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_add_table", 2, targets, "GtkTargetEntry*");
+  ntargets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(ntargets)) s7_wrong_type_arg_error(sc, "gtk_target_list_add_table", 3, ntargets, "guint");
+  gtk_target_list_add_table(s7_c_pointer(list), s7_c_pointer(targets), s7_integer(ntargets));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_target_list_remove(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_list_remove "void gtk_target_list_remove(GtkTargetList* list, GdkAtom target)"
+  s7_pointer _p;
+  s7_pointer list, target;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, GtkTargetList__sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_remove", 1, list, "GtkTargetList*");
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_remove", 2, target, "GdkAtom");
+  gtk_target_list_remove(s7_c_pointer(list), s7_c_pointer(target));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_target_list_find(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_list_find "gboolean gtk_target_list_find(GtkTargetList* list, GdkAtom target, \
+guint* [info])"
+  s7_pointer _p;
+  s7_pointer list, target;
+  guint ref_info;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, GtkTargetList__sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_find", 1, list, "GtkTargetList*");
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_find", 2, target, "GdkAtom");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_target_list_find(s7_c_pointer(list), s7_c_pointer(target), &ref_info));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_info)));
+   }
+}
+
+static s7_pointer lg_gtk_selection_owner_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_owner_set "gboolean gtk_selection_owner_set(GtkWidget* widget, GdkAtom selection, \
+guint32 time)"
+  s7_pointer _p;
+  s7_pointer widget, selection, time;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) && (widget != lg_false)) s7_wrong_type_arg_error(sc, "gtk_selection_owner_set", 1, widget, "GtkWidget*");
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_selection_owner_set", 2, selection, "GdkAtom");
+  time = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(time)) s7_wrong_type_arg_error(sc, "gtk_selection_owner_set", 3, time, "guint32");
+  return(s7_make_boolean(sc, gtk_selection_owner_set(s7_c_pointer(widget), s7_c_pointer(selection), s7_integer(time))));
+}
+
+static s7_pointer lg_gtk_selection_add_target(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_add_target "void gtk_selection_add_target(GtkWidget* widget, GdkAtom selection, \
+GdkAtom target, guint info)"
+  s7_pointer _p;
+  s7_pointer widget, selection, target, info;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_add_target", 1, widget, "GtkWidget*");
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_selection_add_target", 2, selection, "GdkAtom");
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_selection_add_target", 3, target, "GdkAtom");
+  info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(info)) s7_wrong_type_arg_error(sc, "gtk_selection_add_target", 4, info, "guint");
+  gtk_selection_add_target(s7_c_pointer(widget), s7_c_pointer(selection), s7_c_pointer(target), s7_integer(info));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_selection_add_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_add_targets "void gtk_selection_add_targets(GtkWidget* widget, GdkAtom selection, \
+GtkTargetEntry* targets, guint ntargets)"
+  s7_pointer _p;
+  s7_pointer widget, selection, targets, ntargets;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_add_targets", 1, widget, "GtkWidget*");
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_selection_add_targets", 2, selection, "GdkAtom");
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GtkTargetEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_add_targets", 3, targets, "GtkTargetEntry*");
+  ntargets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(ntargets)) s7_wrong_type_arg_error(sc, "gtk_selection_add_targets", 4, ntargets, "guint");
+  gtk_selection_add_targets(s7_c_pointer(widget), s7_c_pointer(selection), s7_c_pointer(targets), s7_integer(ntargets));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_selection_clear_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_clear_targets "void gtk_selection_clear_targets(GtkWidget* widget, GdkAtom selection)"
+  s7_pointer _p;
+  s7_pointer widget, selection;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_clear_targets", 1, widget, "GtkWidget*");
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_selection_clear_targets", 2, selection, "GdkAtom");
+  gtk_selection_clear_targets(s7_c_pointer(widget), s7_c_pointer(selection));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_selection_convert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_convert "gboolean gtk_selection_convert(GtkWidget* widget, GdkAtom selection, \
+GdkAtom target, guint32 time)"
+  s7_pointer _p;
+  s7_pointer widget, selection, target, time;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_convert", 1, widget, "GtkWidget*");
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_selection_convert", 2, selection, "GdkAtom");
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_selection_convert", 3, target, "GdkAtom");
+  time = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(time)) s7_wrong_type_arg_error(sc, "gtk_selection_convert", 4, time, "guint32");
+  return(s7_make_boolean(sc, gtk_selection_convert(s7_c_pointer(widget), s7_c_pointer(selection), s7_c_pointer(target), s7_integer(time))));
+}
+
+static s7_pointer lg_gtk_selection_data_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_set "void gtk_selection_data_set(GtkSelectionData* selection_data, GdkAtom type, \
+gint format, guchar* data, gint length)"
+  s7_pointer _p;
+  s7_pointer selection_data, type, format, data, length;
+  _p = args;
+  selection_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_set", 1, selection_data, "GtkSelectionData*");
+  type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(type, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_set", 2, type, "GdkAtom");
+  format = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(format)) s7_wrong_type_arg_error(sc, "gtk_selection_data_set", 3, format, "gint");
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, guchar__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_set", 4, data, "guchar*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "gtk_selection_data_set", 5, length, "gint");
+  gtk_selection_data_set(s7_c_pointer(selection_data), s7_c_pointer(type), s7_integer(format), s7_c_pointer(data), s7_integer(length));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_selection_data_set_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_set_text "gboolean gtk_selection_data_set_text(GtkSelectionData* selection_data, \
+gchar* str, gint len)"
+  s7_pointer _p;
+  s7_pointer selection_data, str, len;
+  _p = args;
+  selection_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_set_text", 1, selection_data, "GtkSelectionData*");
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "gtk_selection_data_set_text", 2, str, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "gtk_selection_data_set_text", 3, len, "gint");
+  return(s7_make_boolean(sc, gtk_selection_data_set_text(s7_c_pointer(selection_data), s7_string(str), s7_integer(len))));
+}
+
+static s7_pointer lg_gtk_selection_data_get_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_get_text "guchar* gtk_selection_data_get_text(GtkSelectionData* selection_data)"
+  s7_pointer selection_data;
+  selection_data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_get_text", 1, selection_data, "GtkSelectionData*");
+  {
+    guchar* result;
+    s7_pointer rtn;
+    result = gtk_selection_data_get_text(s7_c_pointer(selection_data));
+    rtn = s7_make_c_pointer(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_selection_data_get_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_get_targets "gboolean gtk_selection_data_get_targets(GtkSelectionData* selection_data, \
+GdkAtom** [targets], gint* [n_atoms])"
+  s7_pointer _p;
+  s7_pointer selection_data;
+  GdkAtom* ref_targets = NULL;
+  gint ref_n_atoms;
+  _p = args;
+  selection_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_get_targets", 1, selection_data, "GtkSelectionData*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_selection_data_get_targets(s7_c_pointer(selection_data), &ref_targets, &ref_n_atoms));
+      return(s7_list(sc, 3, result, s7_make_c_pointer(sc, ref_targets), s7_make_integer(sc, ref_n_atoms)));
+   }
+}
+
+static s7_pointer lg_gtk_selection_data_targets_include_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_targets_include_text "gboolean gtk_selection_data_targets_include_text(GtkSelectionData* selection_data)"
+  s7_pointer selection_data;
+  selection_data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_targets_include_text", 1, selection_data, "GtkSelectionData*");
+  return(s7_make_boolean(sc, gtk_selection_data_targets_include_text(s7_c_pointer(selection_data))));
+}
+
+static s7_pointer lg_gtk_selection_remove_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_remove_all "void gtk_selection_remove_all(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_remove_all", 1, widget, "GtkWidget*");
+  gtk_selection_remove_all(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_selection_data_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_copy "GtkSelectionData* gtk_selection_data_copy(GtkSelectionData* data)"
+  s7_pointer data;
+  data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_copy", 1, data, "GtkSelectionData*");
+  return(s7_make_type_with_c_pointer(sc, GtkSelectionData__sym, gtk_selection_data_copy(s7_c_pointer(data))));
+}
+
+static s7_pointer lg_gtk_selection_data_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_free "void gtk_selection_data_free(GtkSelectionData* data)"
+  s7_pointer data;
+  data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_free", 1, data, "GtkSelectionData*");
+  gtk_selection_data_free(s7_c_pointer(data));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_separator_menu_item_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_separator_menu_item_new "GtkWidget* gtk_separator_menu_item_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_separator_menu_item_new()));
+}
+
+static s7_pointer lg_gtk_settings_get_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_settings_get_default "GtkSettings* gtk_settings_get_default( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkSettings__sym, gtk_settings_get_default()));
+}
+
+static s7_pointer lg_gtk_size_group_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_size_group_new "GtkSizeGroup* gtk_size_group_new(GtkSizeGroupMode mode)"
+  s7_pointer mode;
+  mode = s7_car(args);
+  if (!s7_is_integer(mode)) s7_wrong_type_arg_error(sc, "gtk_size_group_new", 1, mode, "GtkSizeGroupMode");
+  return(s7_make_type_with_c_pointer(sc, GtkSizeGroup__sym, gtk_size_group_new(s7_integer(mode))));
+}
+
+static s7_pointer lg_gtk_size_group_set_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_size_group_set_mode "void gtk_size_group_set_mode(GtkSizeGroup* size_group, GtkSizeGroupMode mode)"
+  s7_pointer _p;
+  s7_pointer size_group, mode;
+  _p = args;
+  size_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(size_group, GtkSizeGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_size_group_set_mode", 1, size_group, "GtkSizeGroup*");
+  mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mode)) s7_wrong_type_arg_error(sc, "gtk_size_group_set_mode", 2, mode, "GtkSizeGroupMode");
+  gtk_size_group_set_mode(s7_c_pointer(size_group), s7_integer(mode));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_size_group_get_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_size_group_get_mode "GtkSizeGroupMode gtk_size_group_get_mode(GtkSizeGroup* size_group)"
+  s7_pointer size_group;
+  size_group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(size_group, GtkSizeGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_size_group_get_mode", 1, size_group, "GtkSizeGroup*");
+  return(s7_make_integer(sc, gtk_size_group_get_mode(s7_c_pointer(size_group))));
+}
+
+static s7_pointer lg_gtk_size_group_add_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_size_group_add_widget "void gtk_size_group_add_widget(GtkSizeGroup* size_group, GtkWidget* widget)"
+  s7_pointer _p;
+  s7_pointer size_group, widget;
+  _p = args;
+  size_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(size_group, GtkSizeGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_size_group_add_widget", 1, size_group, "GtkSizeGroup*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_size_group_add_widget", 2, widget, "GtkWidget*");
+  gtk_size_group_add_widget(s7_c_pointer(size_group), s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_size_group_remove_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_size_group_remove_widget "void gtk_size_group_remove_widget(GtkSizeGroup* size_group, \
+GtkWidget* widget)"
+  s7_pointer _p;
+  s7_pointer size_group, widget;
+  _p = args;
+  size_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(size_group, GtkSizeGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_size_group_remove_widget", 1, size_group, "GtkSizeGroup*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_size_group_remove_widget", 2, widget, "GtkWidget*");
+  gtk_size_group_remove_widget(s7_c_pointer(size_group), s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_spin_button_configure(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_configure "void gtk_spin_button_configure(GtkSpinButton* spin_button, GtkAdjustment* adjustment, \
+gdouble climb_rate, guint digits)"
+  s7_pointer _p;
+  s7_pointer spin_button, adjustment, climb_rate, digits;
+  _p = args;
+  spin_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_configure", 1, spin_button, "GtkSpinButton*");
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) && (adjustment != lg_false)) s7_wrong_type_arg_error(sc, "gtk_spin_button_configure", 2, adjustment, "GtkAdjustment*");
+  climb_rate = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(climb_rate)) s7_wrong_type_arg_error(sc, "gtk_spin_button_configure", 3, climb_rate, "gdouble");
+  digits = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(digits)) s7_wrong_type_arg_error(sc, "gtk_spin_button_configure", 4, digits, "guint");
+  gtk_spin_button_configure(s7_c_pointer(spin_button), s7_c_pointer(adjustment), s7_real(climb_rate), s7_integer(digits));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_spin_button_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_new "GtkWidget* gtk_spin_button_new(GtkAdjustment* adjustment, gdouble climb_rate, \
+guint digits)"
+  s7_pointer _p;
+  s7_pointer adjustment, climb_rate, digits;
+  _p = args;
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) && (adjustment != lg_false)) s7_wrong_type_arg_error(sc, "gtk_spin_button_new", 1, adjustment, "GtkAdjustment*");
+  climb_rate = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(climb_rate)) s7_wrong_type_arg_error(sc, "gtk_spin_button_new", 2, climb_rate, "gdouble");
+  digits = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(digits)) s7_wrong_type_arg_error(sc, "gtk_spin_button_new", 3, digits, "guint");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_spin_button_new(s7_c_pointer(adjustment), s7_real(climb_rate), s7_integer(digits))));
+}
+
+static s7_pointer lg_gtk_spin_button_new_with_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_new_with_range "GtkWidget* gtk_spin_button_new_with_range(gdouble min, gdouble max, \
+gdouble step)"
+  s7_pointer _p;
+  s7_pointer min, max, step;
+  _p = args;
+  min = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(min)) s7_wrong_type_arg_error(sc, "gtk_spin_button_new_with_range", 1, min, "gdouble");
+  max = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(max)) s7_wrong_type_arg_error(sc, "gtk_spin_button_new_with_range", 2, max, "gdouble");
+  step = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(step)) s7_wrong_type_arg_error(sc, "gtk_spin_button_new_with_range", 3, step, "gdouble");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_spin_button_new_with_range(s7_real(min), s7_real(max), s7_real(step))));
+}
+
+static s7_pointer lg_gtk_spin_button_set_adjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_set_adjustment "void gtk_spin_button_set_adjustment(GtkSpinButton* spin_button, \
+GtkAdjustment* adjustment)"
+  s7_pointer _p;
+  s7_pointer spin_button, adjustment;
+  _p = args;
+  spin_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_adjustment", 1, spin_button, "GtkSpinButton*");
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) && (adjustment != lg_false)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_adjustment", 2, adjustment, "GtkAdjustment*");
+  gtk_spin_button_set_adjustment(s7_c_pointer(spin_button), s7_c_pointer(adjustment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_spin_button_get_adjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_get_adjustment "GtkAdjustment* gtk_spin_button_get_adjustment(GtkSpinButton* spin_button)"
+  s7_pointer spin_button;
+  spin_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_get_adjustment", 1, spin_button, "GtkSpinButton*");
+  return(s7_make_type_with_c_pointer(sc, GtkAdjustment__sym, gtk_spin_button_get_adjustment(s7_c_pointer(spin_button))));
+}
+
+static s7_pointer lg_gtk_spin_button_set_digits(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_set_digits "void gtk_spin_button_set_digits(GtkSpinButton* spin_button, guint digits)"
+  s7_pointer _p;
+  s7_pointer spin_button, digits;
+  _p = args;
+  spin_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_digits", 1, spin_button, "GtkSpinButton*");
+  digits = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(digits)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_digits", 2, digits, "guint");
+  gtk_spin_button_set_digits(s7_c_pointer(spin_button), s7_integer(digits));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_spin_button_get_digits(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_get_digits "guint gtk_spin_button_get_digits(GtkSpinButton* spin_button)"
+  s7_pointer spin_button;
+  spin_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_get_digits", 1, spin_button, "GtkSpinButton*");
+  return(s7_make_integer(sc, gtk_spin_button_get_digits(s7_c_pointer(spin_button))));
+}
+
+static s7_pointer lg_gtk_spin_button_set_increments(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_set_increments "void gtk_spin_button_set_increments(GtkSpinButton* spin_button, \
+gdouble step, gdouble page)"
+  s7_pointer _p;
+  s7_pointer spin_button, step, page;
+  _p = args;
+  spin_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_increments", 1, spin_button, "GtkSpinButton*");
+  step = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(step)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_increments", 2, step, "gdouble");
+  page = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(page)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_increments", 3, page, "gdouble");
+  gtk_spin_button_set_increments(s7_c_pointer(spin_button), s7_real(step), s7_real(page));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_spin_button_get_increments(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_get_increments "void gtk_spin_button_get_increments(GtkSpinButton* spin_button, \
+gdouble* [step], gdouble* [page])"
+  s7_pointer _p;
+  s7_pointer spin_button;
+  gdouble ref_step;
+  gdouble ref_page;
+  _p = args;
+  spin_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_get_increments", 1, spin_button, "GtkSpinButton*");
+  gtk_spin_button_get_increments(s7_c_pointer(spin_button), &ref_step, &ref_page);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_step), s7_make_real(sc, ref_page)));
+}
+
+static s7_pointer lg_gtk_spin_button_set_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_set_range "void gtk_spin_button_set_range(GtkSpinButton* spin_button, gdouble min, \
+gdouble max)"
+  s7_pointer _p;
+  s7_pointer spin_button, min, max;
+  _p = args;
+  spin_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_range", 1, spin_button, "GtkSpinButton*");
+  min = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(min)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_range", 2, min, "gdouble");
+  max = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(max)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_range", 3, max, "gdouble");
+  gtk_spin_button_set_range(s7_c_pointer(spin_button), s7_real(min), s7_real(max));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_spin_button_get_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_get_range "void gtk_spin_button_get_range(GtkSpinButton* spin_button, gdouble* [min], \
+gdouble* [max])"
+  s7_pointer _p;
+  s7_pointer spin_button;
+  gdouble ref_min;
+  gdouble ref_max;
+  _p = args;
+  spin_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_get_range", 1, spin_button, "GtkSpinButton*");
+  gtk_spin_button_get_range(s7_c_pointer(spin_button), &ref_min, &ref_max);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_min), s7_make_real(sc, ref_max)));
+}
+
+static s7_pointer lg_gtk_spin_button_get_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_get_value "gdouble gtk_spin_button_get_value(GtkSpinButton* spin_button)"
+  s7_pointer spin_button;
+  spin_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_get_value", 1, spin_button, "GtkSpinButton*");
+  return(s7_make_real(sc, gtk_spin_button_get_value(s7_c_pointer(spin_button))));
+}
+
+static s7_pointer lg_gtk_spin_button_get_value_as_int(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_get_value_as_int "gint gtk_spin_button_get_value_as_int(GtkSpinButton* spin_button)"
+  s7_pointer spin_button;
+  spin_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_get_value_as_int", 1, spin_button, "GtkSpinButton*");
+  return(s7_make_integer(sc, gtk_spin_button_get_value_as_int(s7_c_pointer(spin_button))));
+}
+
+static s7_pointer lg_gtk_spin_button_set_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_set_value "void gtk_spin_button_set_value(GtkSpinButton* spin_button, gdouble value)"
+  s7_pointer _p;
+  s7_pointer spin_button, value;
+  _p = args;
+  spin_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_value", 1, spin_button, "GtkSpinButton*");
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(value)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_value", 2, value, "gdouble");
+  gtk_spin_button_set_value(s7_c_pointer(spin_button), s7_real(value));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_spin_button_set_update_policy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_set_update_policy "void gtk_spin_button_set_update_policy(GtkSpinButton* spin_button, \
+GtkSpinButtonUpdatePolicy policy)"
+  s7_pointer _p;
+  s7_pointer spin_button, policy;
+  _p = args;
+  spin_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_update_policy", 1, spin_button, "GtkSpinButton*");
+  policy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(policy)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_update_policy", 2, policy, "GtkSpinButtonUpdatePolicy");
+  gtk_spin_button_set_update_policy(s7_c_pointer(spin_button), s7_integer(policy));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_spin_button_get_update_policy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_get_update_policy "GtkSpinButtonUpdatePolicy gtk_spin_button_get_update_policy(GtkSpinButton* spin_button)"
+  s7_pointer spin_button;
+  spin_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_get_update_policy", 1, spin_button, "GtkSpinButton*");
+  return(s7_make_integer(sc, gtk_spin_button_get_update_policy(s7_c_pointer(spin_button))));
+}
+
+static s7_pointer lg_gtk_spin_button_set_numeric(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_set_numeric "void gtk_spin_button_set_numeric(GtkSpinButton* spin_button, \
+gboolean numeric)"
+  s7_pointer _p;
+  s7_pointer spin_button, numeric;
+  _p = args;
+  spin_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_numeric", 1, spin_button, "GtkSpinButton*");
+  numeric = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(numeric)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_numeric", 2, numeric, "gboolean");
+  gtk_spin_button_set_numeric(s7_c_pointer(spin_button), lg_boolean(numeric));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_spin_button_get_numeric(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_get_numeric "gboolean gtk_spin_button_get_numeric(GtkSpinButton* spin_button)"
+  s7_pointer spin_button;
+  spin_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_get_numeric", 1, spin_button, "GtkSpinButton*");
+  return(s7_make_boolean(sc, gtk_spin_button_get_numeric(s7_c_pointer(spin_button))));
+}
+
+static s7_pointer lg_gtk_spin_button_spin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_spin "void gtk_spin_button_spin(GtkSpinButton* spin_button, GtkSpinType direction, \
+gdouble increment)"
+  s7_pointer _p;
+  s7_pointer spin_button, direction, increment;
+  _p = args;
+  spin_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_spin", 1, spin_button, "GtkSpinButton*");
+  direction = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(direction)) s7_wrong_type_arg_error(sc, "gtk_spin_button_spin", 2, direction, "GtkSpinType");
+  increment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(increment)) s7_wrong_type_arg_error(sc, "gtk_spin_button_spin", 3, increment, "gdouble");
+  gtk_spin_button_spin(s7_c_pointer(spin_button), s7_integer(direction), s7_real(increment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_spin_button_set_wrap(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_set_wrap "void gtk_spin_button_set_wrap(GtkSpinButton* spin_button, gboolean wrap)"
+  s7_pointer _p;
+  s7_pointer spin_button, wrap;
+  _p = args;
+  spin_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_wrap", 1, spin_button, "GtkSpinButton*");
+  wrap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(wrap)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_wrap", 2, wrap, "gboolean");
+  gtk_spin_button_set_wrap(s7_c_pointer(spin_button), lg_boolean(wrap));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_spin_button_get_wrap(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_get_wrap "gboolean gtk_spin_button_get_wrap(GtkSpinButton* spin_button)"
+  s7_pointer spin_button;
+  spin_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_get_wrap", 1, spin_button, "GtkSpinButton*");
+  return(s7_make_boolean(sc, gtk_spin_button_get_wrap(s7_c_pointer(spin_button))));
+}
+
+static s7_pointer lg_gtk_spin_button_set_snap_to_ticks(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_set_snap_to_ticks "void gtk_spin_button_set_snap_to_ticks(GtkSpinButton* spin_button, \
+gboolean snap_to_ticks)"
+  s7_pointer _p;
+  s7_pointer spin_button, snap_to_ticks;
+  _p = args;
+  spin_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_snap_to_ticks", 1, spin_button, "GtkSpinButton*");
+  snap_to_ticks = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(snap_to_ticks)) s7_wrong_type_arg_error(sc, "gtk_spin_button_set_snap_to_ticks", 2, snap_to_ticks, "gboolean");
+  gtk_spin_button_set_snap_to_ticks(s7_c_pointer(spin_button), lg_boolean(snap_to_ticks));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_spin_button_get_snap_to_ticks(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_get_snap_to_ticks "gboolean gtk_spin_button_get_snap_to_ticks(GtkSpinButton* spin_button)"
+  s7_pointer spin_button;
+  spin_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_get_snap_to_ticks", 1, spin_button, "GtkSpinButton*");
+  return(s7_make_boolean(sc, gtk_spin_button_get_snap_to_ticks(s7_c_pointer(spin_button))));
+}
+
+static s7_pointer lg_gtk_spin_button_update(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spin_button_update "void gtk_spin_button_update(GtkSpinButton* spin_button)"
+  s7_pointer spin_button;
+  spin_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(spin_button, GtkSpinButton__sym)) s7_wrong_type_arg_error(sc, "gtk_spin_button_update", 1, spin_button, "GtkSpinButton*");
+  gtk_spin_button_update(s7_c_pointer(spin_button));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_statusbar_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_statusbar_new "GtkWidget* gtk_statusbar_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_statusbar_new()));
+}
+
+static s7_pointer lg_gtk_statusbar_get_context_id(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_statusbar_get_context_id "guint gtk_statusbar_get_context_id(GtkStatusbar* statusbar, \
+gchar* context_description)"
+  s7_pointer _p;
+  s7_pointer statusbar, context_description;
+  _p = args;
+  statusbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(statusbar, GtkStatusbar__sym)) s7_wrong_type_arg_error(sc, "gtk_statusbar_get_context_id", 1, statusbar, "GtkStatusbar*");
+  context_description = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(context_description)) s7_wrong_type_arg_error(sc, "gtk_statusbar_get_context_id", 2, context_description, "gchar*");
+  return(s7_make_integer(sc, gtk_statusbar_get_context_id(s7_c_pointer(statusbar), s7_string(context_description))));
+}
+
+static s7_pointer lg_gtk_statusbar_push(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_statusbar_push "guint gtk_statusbar_push(GtkStatusbar* statusbar, guint context_id, gchar* text)"
+  s7_pointer _p;
+  s7_pointer statusbar, context_id, text;
+  _p = args;
+  statusbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(statusbar, GtkStatusbar__sym)) s7_wrong_type_arg_error(sc, "gtk_statusbar_push", 1, statusbar, "GtkStatusbar*");
+  context_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(context_id)) s7_wrong_type_arg_error(sc, "gtk_statusbar_push", 2, context_id, "guint");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_statusbar_push", 3, text, "gchar*");
+  return(s7_make_integer(sc, gtk_statusbar_push(s7_c_pointer(statusbar), s7_integer(context_id), s7_string(text))));
+}
+
+static s7_pointer lg_gtk_statusbar_pop(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_statusbar_pop "void gtk_statusbar_pop(GtkStatusbar* statusbar, guint context_id)"
+  s7_pointer _p;
+  s7_pointer statusbar, context_id;
+  _p = args;
+  statusbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(statusbar, GtkStatusbar__sym)) s7_wrong_type_arg_error(sc, "gtk_statusbar_pop", 1, statusbar, "GtkStatusbar*");
+  context_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(context_id)) s7_wrong_type_arg_error(sc, "gtk_statusbar_pop", 2, context_id, "guint");
+  gtk_statusbar_pop(s7_c_pointer(statusbar), s7_integer(context_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_statusbar_remove(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_statusbar_remove "void gtk_statusbar_remove(GtkStatusbar* statusbar, guint context_id, \
+guint message_id)"
+  s7_pointer _p;
+  s7_pointer statusbar, context_id, message_id;
+  _p = args;
+  statusbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(statusbar, GtkStatusbar__sym)) s7_wrong_type_arg_error(sc, "gtk_statusbar_remove", 1, statusbar, "GtkStatusbar*");
+  context_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(context_id)) s7_wrong_type_arg_error(sc, "gtk_statusbar_remove", 2, context_id, "guint");
+  message_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(message_id)) s7_wrong_type_arg_error(sc, "gtk_statusbar_remove", 3, message_id, "guint");
+  gtk_statusbar_remove(s7_c_pointer(statusbar), s7_integer(context_id), s7_integer(message_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_new "GtkTextBuffer* gtk_text_buffer_new(GtkTextTagTable* table)"
+  s7_pointer table;
+  table = s7_car(args);
+  if ((!s7_is_c_pointer_of_type(table, GtkTextTagTable__sym)) && (table != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_new", 1, table, "GtkTextTagTable*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextBuffer__sym, gtk_text_buffer_new(s7_c_pointer(table))));
+}
+
+static s7_pointer lg_gtk_text_buffer_get_line_count(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_line_count "gint gtk_text_buffer_get_line_count(GtkTextBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_line_count", 1, buffer, "GtkTextBuffer*");
+  return(s7_make_integer(sc, gtk_text_buffer_get_line_count(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_text_buffer_get_char_count(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_char_count "gint gtk_text_buffer_get_char_count(GtkTextBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_char_count", 1, buffer, "GtkTextBuffer*");
+  return(s7_make_integer(sc, gtk_text_buffer_get_char_count(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_text_buffer_get_tag_table(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_tag_table "GtkTextTagTable* gtk_text_buffer_get_tag_table(GtkTextBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_tag_table", 1, buffer, "GtkTextBuffer*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextTagTable__sym, gtk_text_buffer_get_tag_table(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_text_buffer_set_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_set_text "void gtk_text_buffer_set_text(GtkTextBuffer* buffer, gchar* text, \
+gint len)"
+  s7_pointer _p;
+  s7_pointer buffer, text, len;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_set_text", 1, buffer, "GtkTextBuffer*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_set_text", 2, text, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_set_text", 3, len, "gint");
+  gtk_text_buffer_set_text(s7_c_pointer(buffer), s7_string(text), s7_integer(len));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_insert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_insert "void gtk_text_buffer_insert(GtkTextBuffer* buffer, GtkTextIter* iter, \
+gchar* text, gint len)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, text, len;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert", 2, iter, "GtkTextIter*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert", 3, text, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert", 4, len, "gint");
+  gtk_text_buffer_insert(s7_c_pointer(buffer), s7_c_pointer(iter), s7_string(text), s7_integer(len));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_insert_at_cursor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_insert_at_cursor "void gtk_text_buffer_insert_at_cursor(GtkTextBuffer* buffer, \
+gchar* text, gint len)"
+  s7_pointer _p;
+  s7_pointer buffer, text, len;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_at_cursor", 1, buffer, "GtkTextBuffer*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_at_cursor", 2, text, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_at_cursor", 3, len, "gint");
+  gtk_text_buffer_insert_at_cursor(s7_c_pointer(buffer), s7_string(text), s7_integer(len));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_insert_interactive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_insert_interactive "gboolean gtk_text_buffer_insert_interactive(GtkTextBuffer* buffer, \
+GtkTextIter* iter, gchar* text, gint len, gboolean default_editable)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, text, len, default_editable;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_interactive", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_interactive", 2, iter, "GtkTextIter*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_interactive", 3, text, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_interactive", 4, len, "gint");
+  default_editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(default_editable)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_interactive", 5, default_editable, "gboolean");
+  return(s7_make_boolean(sc, gtk_text_buffer_insert_interactive(s7_c_pointer(buffer), s7_c_pointer(iter), s7_string(text), s7_integer(len), lg_boolean(default_editable))));
+}
+
+static s7_pointer lg_gtk_text_buffer_insert_interactive_at_cursor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_insert_interactive_at_cursor "gboolean gtk_text_buffer_insert_interactive_at_cursor(GtkTextBuffer* buffer, \
+gchar* text, gint len, gboolean default_editable)"
+  s7_pointer _p;
+  s7_pointer buffer, text, len, default_editable;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_interactive_at_cursor", 1, buffer, "GtkTextBuffer*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_interactive_at_cursor", 2, text, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_interactive_at_cursor", 3, len, "gint");
+  default_editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(default_editable)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_interactive_at_cursor", 4, default_editable, "gboolean");
+  return(s7_make_boolean(sc, gtk_text_buffer_insert_interactive_at_cursor(s7_c_pointer(buffer), s7_string(text), s7_integer(len), lg_boolean(default_editable))));
+}
+
+static s7_pointer lg_gtk_text_buffer_insert_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_insert_range "void gtk_text_buffer_insert_range(GtkTextBuffer* buffer, GtkTextIter* iter, \
+GtkTextIter* start, GtkTextIter* end)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, start, end;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_range", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_range", 2, iter, "GtkTextIter*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_range", 3, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_range", 4, end, "GtkTextIter*");
+  gtk_text_buffer_insert_range(s7_c_pointer(buffer), s7_c_pointer(iter), s7_c_pointer(start), s7_c_pointer(end));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_insert_range_interactive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_insert_range_interactive "gboolean gtk_text_buffer_insert_range_interactive(GtkTextBuffer* buffer, \
+GtkTextIter* iter, GtkTextIter* start, GtkTextIter* end, gboolean default_editable)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, start, end, default_editable;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_range_interactive", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_range_interactive", 2, iter, "GtkTextIter*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_range_interactive", 3, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_range_interactive", 4, end, "GtkTextIter*");
+  default_editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(default_editable)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_range_interactive", 5, default_editable, "gboolean");
+  return(s7_make_boolean(sc, gtk_text_buffer_insert_range_interactive(s7_c_pointer(buffer), s7_c_pointer(iter), s7_c_pointer(start), s7_c_pointer(end), lg_boolean(default_editable))));
+}
+
+static s7_pointer lg_gtk_text_buffer_insert_with_tags(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_insert_with_tags "void gtk_text_buffer_insert_with_tags(GtkTextBuffer* buffer, \
+GtkTextIter* iter, gchar* text, gint len, etc tags)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, text, len, tags;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_with_tags", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_with_tags", 2, iter, "GtkTextIter*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_with_tags", 3, text, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_with_tags", 4, len, "gint");
+  tags = s7_car(_p); _p = s7_cdr(_p);
+  if (!lg_is_list(tags)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_with_tags", 5, tags, "etc");
+  {
+    int etc_len = 0;
+    GtkTextBuffer* p_arg0;
+    GtkTextIter* p_arg1;
+    gchar* p_arg2;
+    gint p_arg3;
+    if (s7_is_list(sc, tags)) etc_len = s7_list_length(sc, tags);
+    if (etc_len < 1) s7_out_of_range_error(sc, "gtk_text_buffer_insert_with_tags", 4, tags, "... list must have at least 1 entry");
+    if (etc_len > 6) s7_out_of_range_error(sc, "gtk_text_buffer_insert_with_tags", 4, tags, "... list too long (max len: 6)");
+    p_arg0 = (GtkTextBuffer*)s7_c_pointer(buffer);
+    p_arg1 = (GtkTextIter*)s7_c_pointer(iter);
+    p_arg2 = (gchar*)s7_string(text);
+    p_arg3 = (gint)s7_integer(len);
+    switch (etc_len)
+      {
+        case 1: gtk_text_buffer_insert_with_tags(p_arg0, p_arg1, p_arg2, p_arg3, s7_c_pointer(s7_list_ref(sc, tags, 0)), NULL); break;
+        case 2: gtk_text_buffer_insert_with_tags(p_arg0, p_arg1, p_arg2, p_arg3, s7_c_pointer(s7_list_ref(sc, tags, 0)), s7_c_pointer(s7_list_ref(sc, tags, 1)), NULL); break;
+        case 3: gtk_text_buffer_insert_with_tags(p_arg0, p_arg1, p_arg2, p_arg3, s7_c_pointer(s7_list_ref(sc, tags, 0)), s7_c_pointer(s7_list_ref(sc, tags, 1)), s7_c_pointer(s7_list_ref(sc, tags, 2)), NULL); break;
+        case 4: gtk_text_buffer_insert_with_tags(p_arg0, p_arg1, p_arg2, p_arg3, s7_c_pointer(s7_list_ref(sc, tags, 0)), s7_c_pointer(s7_list_ref(sc, tags, 1)), s7_c_pointer(s7_list_ref(sc, tags, 2)), s7_c_pointer(s7_list_ref(sc, tags, 3)), NULL); break;
+        case 5: gtk_text_buffer_insert_with_tags(p_arg0, p_arg1, p_arg2, p_arg3, s7_c_pointer(s7_list_ref(sc, tags, 0)), s7_c_pointer(s7_list_ref(sc, tags, 1)), s7_c_pointer(s7_list_ref(sc, tags, 2)), s7_c_pointer(s7_list_ref(sc, tags, 3)), s7_c_pointer(s7_list_ref(sc, tags, 4)), NULL); break;
+        case 6: gtk_text_buffer_insert_with_tags(p_arg0, p_arg1, p_arg2, p_arg3, s7_c_pointer(s7_list_ref(sc, tags, 0)), s7_c_pointer(s7_list_ref(sc, tags, 1)), s7_c_pointer(s7_list_ref(sc, tags, 2)), s7_c_pointer(s7_list_ref(sc, tags, 3)), s7_c_pointer(s7_list_ref(sc, tags, 4)), s7_c_pointer(s7_list_ref(sc, tags, 5)), NULL); break;
+      }
+    return(lg_false);
+  }
+}
+
+static s7_pointer lg_gtk_text_buffer_insert_with_tags_by_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_insert_with_tags_by_name "void gtk_text_buffer_insert_with_tags_by_name(GtkTextBuffer* buffer, \
+GtkTextIter* iter, gchar* text, gint len, etc tags)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, text, len, tags;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_with_tags_by_name", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_with_tags_by_name", 2, iter, "GtkTextIter*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_with_tags_by_name", 3, text, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_with_tags_by_name", 4, len, "gint");
+  tags = s7_car(_p); _p = s7_cdr(_p);
+  if (!lg_is_list(tags)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_with_tags_by_name", 5, tags, "etc");
+  {
+    int etc_len = 0;
+    GtkTextBuffer* p_arg0;
+    GtkTextIter* p_arg1;
+    gchar* p_arg2;
+    gint p_arg3;
+    if (s7_is_list(sc, tags)) etc_len = s7_list_length(sc, tags);
+    if (etc_len < 1) s7_out_of_range_error(sc, "gtk_text_buffer_insert_with_tags_by_name", 4, tags, "... list must have at least 1 entry");
+    if (etc_len > 6) s7_out_of_range_error(sc, "gtk_text_buffer_insert_with_tags_by_name", 4, tags, "... list too long (max len: 6)");
+    if ((etc_len % 2) != 0) s7_out_of_range_error(sc, "gtk_text_buffer_insert_with_tags_by_name", 4, tags, "... list len must be multiple of 2");
+    p_arg0 = (GtkTextBuffer*)s7_c_pointer(buffer);
+    p_arg1 = (GtkTextIter*)s7_c_pointer(iter);
+    p_arg2 = (gchar*)s7_string(text);
+    p_arg3 = (gint)s7_integer(len);
+    switch (etc_len)
+      {
+        case 1: gtk_text_buffer_insert_with_tags_by_name(p_arg0, p_arg1, p_arg2, p_arg3, s7_string(s7_list_ref(sc, tags, 0)), NULL); break;
+        case 3: gtk_text_buffer_insert_with_tags_by_name(p_arg0, p_arg1, p_arg2, p_arg3, s7_string(s7_list_ref(sc, tags, 0)), s7_integer(s7_list_ref(sc, tags, 1)), s7_string(s7_list_ref(sc, tags, 2)), NULL); break;
+        case 5: gtk_text_buffer_insert_with_tags_by_name(p_arg0, p_arg1, p_arg2, p_arg3, s7_string(s7_list_ref(sc, tags, 0)), s7_integer(s7_list_ref(sc, tags, 1)), s7_string(s7_list_ref(sc, tags, 2)), s7_integer(s7_list_ref(sc, tags, 3)), s7_string(s7_list_ref(sc, tags, 4)), NULL); break;
+      }
+    return(lg_false);
+  }
+}
+
+static s7_pointer lg_gtk_text_buffer_delete(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_delete "void gtk_text_buffer_delete(GtkTextBuffer* buffer, GtkTextIter* start, \
+GtkTextIter* end)"
+  s7_pointer _p;
+  s7_pointer buffer, start, end;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_delete", 1, buffer, "GtkTextBuffer*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_delete", 2, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_delete", 3, end, "GtkTextIter*");
+  gtk_text_buffer_delete(s7_c_pointer(buffer), s7_c_pointer(start), s7_c_pointer(end));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_delete_interactive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_delete_interactive "gboolean gtk_text_buffer_delete_interactive(GtkTextBuffer* buffer, \
+GtkTextIter* start_iter, GtkTextIter* end_iter, gboolean default_editable)"
+  s7_pointer _p;
+  s7_pointer buffer, start_iter, end_iter, default_editable;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_delete_interactive", 1, buffer, "GtkTextBuffer*");
+  start_iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start_iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_delete_interactive", 2, start_iter, "GtkTextIter*");
+  end_iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end_iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_delete_interactive", 3, end_iter, "GtkTextIter*");
+  default_editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(default_editable)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_delete_interactive", 4, default_editable, "gboolean");
+  return(s7_make_boolean(sc, gtk_text_buffer_delete_interactive(s7_c_pointer(buffer), s7_c_pointer(start_iter), s7_c_pointer(end_iter), lg_boolean(default_editable))));
+}
+
+static s7_pointer lg_gtk_text_buffer_get_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_text "gchar* gtk_text_buffer_get_text(GtkTextBuffer* buffer, GtkTextIter* start, \
+GtkTextIter* end, gboolean include_hidden_chars)"
+  s7_pointer _p;
+  s7_pointer buffer, start, end, include_hidden_chars;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_text", 1, buffer, "GtkTextBuffer*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_text", 2, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_text", 3, end, "GtkTextIter*");
+  include_hidden_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(include_hidden_chars)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_text", 4, include_hidden_chars, "gboolean");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_text_buffer_get_text(s7_c_pointer(buffer), s7_c_pointer(start), s7_c_pointer(end), lg_boolean(include_hidden_chars));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_text_buffer_get_slice(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_slice "gchar* gtk_text_buffer_get_slice(GtkTextBuffer* buffer, GtkTextIter* start, \
+GtkTextIter* end, gboolean include_hidden_chars)"
+  s7_pointer _p;
+  s7_pointer buffer, start, end, include_hidden_chars;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_slice", 1, buffer, "GtkTextBuffer*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_slice", 2, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_slice", 3, end, "GtkTextIter*");
+  include_hidden_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(include_hidden_chars)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_slice", 4, include_hidden_chars, "gboolean");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_text_buffer_get_slice(s7_c_pointer(buffer), s7_c_pointer(start), s7_c_pointer(end), lg_boolean(include_hidden_chars));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_text_buffer_insert_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_insert_pixbuf "void gtk_text_buffer_insert_pixbuf(GtkTextBuffer* buffer, \
+GtkTextIter* iter, GdkPixbuf* pixbuf)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, pixbuf;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_pixbuf", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_pixbuf", 2, iter, "GtkTextIter*");
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_pixbuf", 3, pixbuf, "GdkPixbuf*");
+  gtk_text_buffer_insert_pixbuf(s7_c_pointer(buffer), s7_c_pointer(iter), s7_c_pointer(pixbuf));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_insert_child_anchor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_insert_child_anchor "void gtk_text_buffer_insert_child_anchor(GtkTextBuffer* buffer, \
+GtkTextIter* iter, GtkTextChildAnchor* anchor)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, anchor;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_child_anchor", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_child_anchor", 2, iter, "GtkTextIter*");
+  anchor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(anchor, GtkTextChildAnchor__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_child_anchor", 3, anchor, "GtkTextChildAnchor*");
+  gtk_text_buffer_insert_child_anchor(s7_c_pointer(buffer), s7_c_pointer(iter), s7_c_pointer(anchor));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_create_child_anchor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_create_child_anchor "GtkTextChildAnchor* gtk_text_buffer_create_child_anchor(GtkTextBuffer* buffer, \
+GtkTextIter* iter)"
+  s7_pointer _p;
+  s7_pointer buffer, iter;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_create_child_anchor", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_create_child_anchor", 2, iter, "GtkTextIter*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextChildAnchor__sym, gtk_text_buffer_create_child_anchor(s7_c_pointer(buffer), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_buffer_create_mark(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_create_mark "GtkTextMark* gtk_text_buffer_create_mark(GtkTextBuffer* buffer, \
+gchar* mark_name, GtkTextIter* where, gboolean left_gravity)"
+  s7_pointer _p;
+  s7_pointer buffer, mark_name, where, left_gravity;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_create_mark", 1, buffer, "GtkTextBuffer*");
+  mark_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(mark_name)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_create_mark", 2, mark_name, "gchar*");
+  where = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(where, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_create_mark", 3, where, "GtkTextIter*");
+  left_gravity = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(left_gravity)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_create_mark", 4, left_gravity, "gboolean");
+  return(s7_make_type_with_c_pointer(sc, GtkTextMark__sym, gtk_text_buffer_create_mark(s7_c_pointer(buffer), s7_string(mark_name), s7_c_pointer(where), lg_boolean(left_gravity))));
+}
+
+static s7_pointer lg_gtk_text_buffer_move_mark(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_move_mark "void gtk_text_buffer_move_mark(GtkTextBuffer* buffer, GtkTextMark* mark, \
+GtkTextIter* where)"
+  s7_pointer _p;
+  s7_pointer buffer, mark, where;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_move_mark", 1, buffer, "GtkTextBuffer*");
+  mark = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(mark, GtkTextMark__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_move_mark", 2, mark, "GtkTextMark*");
+  where = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(where, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_move_mark", 3, where, "GtkTextIter*");
+  gtk_text_buffer_move_mark(s7_c_pointer(buffer), s7_c_pointer(mark), s7_c_pointer(where));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_delete_mark(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_delete_mark "void gtk_text_buffer_delete_mark(GtkTextBuffer* buffer, GtkTextMark* mark)"
+  s7_pointer _p;
+  s7_pointer buffer, mark;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_delete_mark", 1, buffer, "GtkTextBuffer*");
+  mark = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(mark, GtkTextMark__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_delete_mark", 2, mark, "GtkTextMark*");
+  gtk_text_buffer_delete_mark(s7_c_pointer(buffer), s7_c_pointer(mark));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_get_mark(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_mark "GtkTextMark* gtk_text_buffer_get_mark(GtkTextBuffer* buffer, gchar* name)"
+  s7_pointer _p;
+  s7_pointer buffer, name;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_mark", 1, buffer, "GtkTextBuffer*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_mark", 2, name, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextMark__sym, gtk_text_buffer_get_mark(s7_c_pointer(buffer), s7_string(name))));
+}
+
+static s7_pointer lg_gtk_text_buffer_move_mark_by_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_move_mark_by_name "void gtk_text_buffer_move_mark_by_name(GtkTextBuffer* buffer, \
+gchar* name, GtkTextIter* where)"
+  s7_pointer _p;
+  s7_pointer buffer, name, where;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_move_mark_by_name", 1, buffer, "GtkTextBuffer*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_move_mark_by_name", 2, name, "gchar*");
+  where = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(where, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_move_mark_by_name", 3, where, "GtkTextIter*");
+  gtk_text_buffer_move_mark_by_name(s7_c_pointer(buffer), s7_string(name), s7_c_pointer(where));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_delete_mark_by_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_delete_mark_by_name "void gtk_text_buffer_delete_mark_by_name(GtkTextBuffer* buffer, \
+gchar* name)"
+  s7_pointer _p;
+  s7_pointer buffer, name;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_delete_mark_by_name", 1, buffer, "GtkTextBuffer*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_delete_mark_by_name", 2, name, "gchar*");
+  gtk_text_buffer_delete_mark_by_name(s7_c_pointer(buffer), s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_get_insert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_insert "GtkTextMark* gtk_text_buffer_get_insert(GtkTextBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_insert", 1, buffer, "GtkTextBuffer*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextMark__sym, gtk_text_buffer_get_insert(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_text_buffer_get_selection_bound(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_selection_bound "GtkTextMark* gtk_text_buffer_get_selection_bound(GtkTextBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_selection_bound", 1, buffer, "GtkTextBuffer*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextMark__sym, gtk_text_buffer_get_selection_bound(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_text_buffer_place_cursor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_place_cursor "void gtk_text_buffer_place_cursor(GtkTextBuffer* buffer, GtkTextIter* where)"
+  s7_pointer _p;
+  s7_pointer buffer, where;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_place_cursor", 1, buffer, "GtkTextBuffer*");
+  where = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(where, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_place_cursor", 2, where, "GtkTextIter*");
+  gtk_text_buffer_place_cursor(s7_c_pointer(buffer), s7_c_pointer(where));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_apply_tag(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_apply_tag "void gtk_text_buffer_apply_tag(GtkTextBuffer* buffer, GtkTextTag* tag, \
+GtkTextIter* start, GtkTextIter* end)"
+  s7_pointer _p;
+  s7_pointer buffer, tag, start, end;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_apply_tag", 1, buffer, "GtkTextBuffer*");
+  tag = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tag, GtkTextTag__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_apply_tag", 2, tag, "GtkTextTag*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_apply_tag", 3, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_apply_tag", 4, end, "GtkTextIter*");
+  gtk_text_buffer_apply_tag(s7_c_pointer(buffer), s7_c_pointer(tag), s7_c_pointer(start), s7_c_pointer(end));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_remove_tag(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_remove_tag "void gtk_text_buffer_remove_tag(GtkTextBuffer* buffer, GtkTextTag* tag, \
+GtkTextIter* start, GtkTextIter* end)"
+  s7_pointer _p;
+  s7_pointer buffer, tag, start, end;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_remove_tag", 1, buffer, "GtkTextBuffer*");
+  tag = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tag, GtkTextTag__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_remove_tag", 2, tag, "GtkTextTag*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_remove_tag", 3, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_remove_tag", 4, end, "GtkTextIter*");
+  gtk_text_buffer_remove_tag(s7_c_pointer(buffer), s7_c_pointer(tag), s7_c_pointer(start), s7_c_pointer(end));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_apply_tag_by_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_apply_tag_by_name "void gtk_text_buffer_apply_tag_by_name(GtkTextBuffer* buffer, \
+gchar* name, GtkTextIter* start, GtkTextIter* end)"
+  s7_pointer _p;
+  s7_pointer buffer, name, start, end;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_apply_tag_by_name", 1, buffer, "GtkTextBuffer*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_apply_tag_by_name", 2, name, "gchar*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_apply_tag_by_name", 3, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_apply_tag_by_name", 4, end, "GtkTextIter*");
+  gtk_text_buffer_apply_tag_by_name(s7_c_pointer(buffer), s7_string(name), s7_c_pointer(start), s7_c_pointer(end));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_remove_tag_by_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_remove_tag_by_name "void gtk_text_buffer_remove_tag_by_name(GtkTextBuffer* buffer, \
+gchar* name, GtkTextIter* start, GtkTextIter* end)"
+  s7_pointer _p;
+  s7_pointer buffer, name, start, end;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_remove_tag_by_name", 1, buffer, "GtkTextBuffer*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_remove_tag_by_name", 2, name, "gchar*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_remove_tag_by_name", 3, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_remove_tag_by_name", 4, end, "GtkTextIter*");
+  gtk_text_buffer_remove_tag_by_name(s7_c_pointer(buffer), s7_string(name), s7_c_pointer(start), s7_c_pointer(end));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_remove_all_tags(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_remove_all_tags "void gtk_text_buffer_remove_all_tags(GtkTextBuffer* buffer, \
+GtkTextIter* start, GtkTextIter* end)"
+  s7_pointer _p;
+  s7_pointer buffer, start, end;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_remove_all_tags", 1, buffer, "GtkTextBuffer*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_remove_all_tags", 2, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_remove_all_tags", 3, end, "GtkTextIter*");
+  gtk_text_buffer_remove_all_tags(s7_c_pointer(buffer), s7_c_pointer(start), s7_c_pointer(end));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_create_tag(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_create_tag "GtkTextTag* gtk_text_buffer_create_tag(GtkTextBuffer* buffer, \
+gchar* tag_name, etc tags)"
+  s7_pointer _p;
+  s7_pointer buffer, tag_name, tags;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_create_tag", 1, buffer, "GtkTextBuffer*");
+  tag_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(tag_name)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_create_tag", 2, tag_name, "gchar*");
+  tags = s7_car(_p); _p = s7_cdr(_p);
+  if ((!lg_is_list(tags)) && (tags != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_create_tag", 3, tags, "etc");
+  {
+    int etc_len = 0;
+    GtkTextTag* result = NULL;
+    GtkTextBuffer* p_arg0;
+    gchar* p_arg1;
+    if (s7_is_list(sc, tags)) etc_len = s7_list_length(sc, tags);
+    if (etc_len > 6) s7_out_of_range_error(sc, "gtk_text_buffer_create_tag", 2, tags, "... list too long (max len: 6)");
+    if ((etc_len % 2) != 0) s7_out_of_range_error(sc, "gtk_text_buffer_create_tag", 2, tags, "... list len must be multiple of 2");
+    p_arg0 = (GtkTextBuffer*)s7_c_pointer(buffer);
+    p_arg1 = (gchar*)s7_string(tag_name);
+    switch (etc_len)
+      {
+        case 0: result = gtk_text_buffer_create_tag(p_arg0, p_arg1, NULL); break;
+        case 2: result = gtk_text_buffer_create_tag(p_arg0, p_arg1, s7_string(s7_list_ref(sc, tags, 0)), s7_c_pointer(s7_list_ref(sc, tags, 1)), NULL); break;
+        case 4: result = gtk_text_buffer_create_tag(p_arg0, p_arg1, s7_string(s7_list_ref(sc, tags, 0)), s7_c_pointer(s7_list_ref(sc, tags, 1)), s7_string(s7_list_ref(sc, tags, 2)), s7_c_pointer(s7_list_ref(sc, tags, 3)), NULL); break;
+        case 6: result = gtk_text_buffer_create_tag(p_arg0, p_arg1, s7_string(s7_list_ref(sc, tags, 0)), s7_c_pointer(s7_list_ref(sc, tags, 1)), s7_string(s7_list_ref(sc, tags, 2)), s7_c_pointer(s7_list_ref(sc, tags, 3)), s7_string(s7_list_ref(sc, tags, 4)), s7_c_pointer(s7_list_ref(sc, tags, 5)), NULL); break;
+      }
+    return(s7_make_c_pointer(sc, result));
+  }
+}
+
+static s7_pointer lg_gtk_text_buffer_get_iter_at_line_offset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_iter_at_line_offset "void gtk_text_buffer_get_iter_at_line_offset(GtkTextBuffer* buffer, \
+GtkTextIter* iter, gint line_number, gint char_offset)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, line_number, char_offset;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_line_offset", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_line_offset", 2, iter, "GtkTextIter*");
+  line_number = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(line_number)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_line_offset", 3, line_number, "gint");
+  char_offset = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(char_offset)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_line_offset", 4, char_offset, "gint");
+  gtk_text_buffer_get_iter_at_line_offset(s7_c_pointer(buffer), s7_c_pointer(iter), s7_integer(line_number), s7_integer(char_offset));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_get_iter_at_line_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_iter_at_line_index "void gtk_text_buffer_get_iter_at_line_index(GtkTextBuffer* buffer, \
+GtkTextIter* iter, gint line_number, gint byte_index)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, line_number, byte_index;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_line_index", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_line_index", 2, iter, "GtkTextIter*");
+  line_number = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(line_number)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_line_index", 3, line_number, "gint");
+  byte_index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(byte_index)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_line_index", 4, byte_index, "gint");
+  gtk_text_buffer_get_iter_at_line_index(s7_c_pointer(buffer), s7_c_pointer(iter), s7_integer(line_number), s7_integer(byte_index));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_get_iter_at_offset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_iter_at_offset "void gtk_text_buffer_get_iter_at_offset(GtkTextBuffer* buffer, \
+GtkTextIter* iter, gint char_offset)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, char_offset;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_offset", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_offset", 2, iter, "GtkTextIter*");
+  char_offset = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(char_offset)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_offset", 3, char_offset, "gint");
+  gtk_text_buffer_get_iter_at_offset(s7_c_pointer(buffer), s7_c_pointer(iter), s7_integer(char_offset));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_get_iter_at_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_iter_at_line "void gtk_text_buffer_get_iter_at_line(GtkTextBuffer* buffer, \
+GtkTextIter* iter, gint line_number)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, line_number;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_line", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_line", 2, iter, "GtkTextIter*");
+  line_number = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(line_number)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_line", 3, line_number, "gint");
+  gtk_text_buffer_get_iter_at_line(s7_c_pointer(buffer), s7_c_pointer(iter), s7_integer(line_number));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_get_start_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_start_iter "void gtk_text_buffer_get_start_iter(GtkTextBuffer* buffer, \
+GtkTextIter* iter)"
+  s7_pointer _p;
+  s7_pointer buffer, iter;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_start_iter", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_start_iter", 2, iter, "GtkTextIter*");
+  gtk_text_buffer_get_start_iter(s7_c_pointer(buffer), s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_get_end_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_end_iter "void gtk_text_buffer_get_end_iter(GtkTextBuffer* buffer, GtkTextIter* iter)"
+  s7_pointer _p;
+  s7_pointer buffer, iter;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_end_iter", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_end_iter", 2, iter, "GtkTextIter*");
+  gtk_text_buffer_get_end_iter(s7_c_pointer(buffer), s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_get_bounds(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_bounds "void gtk_text_buffer_get_bounds(GtkTextBuffer* buffer, GtkTextIter* start, \
+GtkTextIter* end)"
+  s7_pointer _p;
+  s7_pointer buffer, start, end;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_bounds", 1, buffer, "GtkTextBuffer*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_bounds", 2, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_bounds", 3, end, "GtkTextIter*");
+  gtk_text_buffer_get_bounds(s7_c_pointer(buffer), s7_c_pointer(start), s7_c_pointer(end));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_get_iter_at_mark(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_iter_at_mark "void gtk_text_buffer_get_iter_at_mark(GtkTextBuffer* buffer, \
+GtkTextIter* iter, GtkTextMark* mark)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, mark;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_mark", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_mark", 2, iter, "GtkTextIter*");
+  mark = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(mark, GtkTextMark__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_mark", 3, mark, "GtkTextMark*");
+  gtk_text_buffer_get_iter_at_mark(s7_c_pointer(buffer), s7_c_pointer(iter), s7_c_pointer(mark));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_get_iter_at_child_anchor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_iter_at_child_anchor "void gtk_text_buffer_get_iter_at_child_anchor(GtkTextBuffer* buffer, \
+GtkTextIter* iter, GtkTextChildAnchor* anchor)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, anchor;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_child_anchor", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_child_anchor", 2, iter, "GtkTextIter*");
+  anchor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(anchor, GtkTextChildAnchor__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_iter_at_child_anchor", 3, anchor, "GtkTextChildAnchor*");
+  gtk_text_buffer_get_iter_at_child_anchor(s7_c_pointer(buffer), s7_c_pointer(iter), s7_c_pointer(anchor));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_get_modified(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_modified "gboolean gtk_text_buffer_get_modified(GtkTextBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_modified", 1, buffer, "GtkTextBuffer*");
+  return(s7_make_boolean(sc, gtk_text_buffer_get_modified(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_text_buffer_set_modified(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_set_modified "void gtk_text_buffer_set_modified(GtkTextBuffer* buffer, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer buffer, setting;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_set_modified", 1, buffer, "GtkTextBuffer*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_set_modified", 2, setting, "gboolean");
+  gtk_text_buffer_set_modified(s7_c_pointer(buffer), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_add_selection_clipboard(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_add_selection_clipboard "void gtk_text_buffer_add_selection_clipboard(GtkTextBuffer* buffer, \
+GtkClipboard* clipboard)"
+  s7_pointer _p;
+  s7_pointer buffer, clipboard;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_add_selection_clipboard", 1, buffer, "GtkTextBuffer*");
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_add_selection_clipboard", 2, clipboard, "GtkClipboard*");
+  gtk_text_buffer_add_selection_clipboard(s7_c_pointer(buffer), s7_c_pointer(clipboard));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_remove_selection_clipboard(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_remove_selection_clipboard "void gtk_text_buffer_remove_selection_clipboard(GtkTextBuffer* buffer, \
+GtkClipboard* clipboard)"
+  s7_pointer _p;
+  s7_pointer buffer, clipboard;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_remove_selection_clipboard", 1, buffer, "GtkTextBuffer*");
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_remove_selection_clipboard", 2, clipboard, "GtkClipboard*");
+  gtk_text_buffer_remove_selection_clipboard(s7_c_pointer(buffer), s7_c_pointer(clipboard));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_cut_clipboard(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_cut_clipboard "void gtk_text_buffer_cut_clipboard(GtkTextBuffer* buffer, \
+GtkClipboard* clipboard, gboolean default_editable)"
+  s7_pointer _p;
+  s7_pointer buffer, clipboard, default_editable;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_cut_clipboard", 1, buffer, "GtkTextBuffer*");
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_cut_clipboard", 2, clipboard, "GtkClipboard*");
+  default_editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(default_editable)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_cut_clipboard", 3, default_editable, "gboolean");
+  gtk_text_buffer_cut_clipboard(s7_c_pointer(buffer), s7_c_pointer(clipboard), lg_boolean(default_editable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_copy_clipboard(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_copy_clipboard "void gtk_text_buffer_copy_clipboard(GtkTextBuffer* buffer, \
+GtkClipboard* clipboard)"
+  s7_pointer _p;
+  s7_pointer buffer, clipboard;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_copy_clipboard", 1, buffer, "GtkTextBuffer*");
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_copy_clipboard", 2, clipboard, "GtkClipboard*");
+  gtk_text_buffer_copy_clipboard(s7_c_pointer(buffer), s7_c_pointer(clipboard));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_paste_clipboard(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_paste_clipboard "void gtk_text_buffer_paste_clipboard(GtkTextBuffer* buffer, \
+GtkClipboard* clipboard, GtkTextIter* override_location, gboolean default_editable)"
+  s7_pointer _p;
+  s7_pointer buffer, clipboard, override_location, default_editable;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_paste_clipboard", 1, buffer, "GtkTextBuffer*");
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_paste_clipboard", 2, clipboard, "GtkClipboard*");
+  override_location = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(override_location, GtkTextIter__sym)) && (override_location != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_paste_clipboard", 3, override_location, "GtkTextIter*");
+  default_editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(default_editable)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_paste_clipboard", 4, default_editable, "gboolean");
+  gtk_text_buffer_paste_clipboard(s7_c_pointer(buffer), s7_c_pointer(clipboard), s7_c_pointer(override_location), lg_boolean(default_editable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_get_selection_bounds(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_selection_bounds "gboolean gtk_text_buffer_get_selection_bounds(GtkTextBuffer* buffer, \
+GtkTextIter* start, GtkTextIter* end)"
+  s7_pointer _p;
+  s7_pointer buffer, start, end;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_selection_bounds", 1, buffer, "GtkTextBuffer*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_selection_bounds", 2, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_selection_bounds", 3, end, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_buffer_get_selection_bounds(s7_c_pointer(buffer), s7_c_pointer(start), s7_c_pointer(end))));
+}
+
+static s7_pointer lg_gtk_text_buffer_delete_selection(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_delete_selection "gboolean gtk_text_buffer_delete_selection(GtkTextBuffer* buffer, \
+gboolean interactive, gboolean default_editable)"
+  s7_pointer _p;
+  s7_pointer buffer, interactive, default_editable;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_delete_selection", 1, buffer, "GtkTextBuffer*");
+  interactive = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(interactive)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_delete_selection", 2, interactive, "gboolean");
+  default_editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(default_editable)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_delete_selection", 3, default_editable, "gboolean");
+  return(s7_make_boolean(sc, gtk_text_buffer_delete_selection(s7_c_pointer(buffer), lg_boolean(interactive), lg_boolean(default_editable))));
+}
+
+static s7_pointer lg_gtk_text_buffer_begin_user_action(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_begin_user_action "void gtk_text_buffer_begin_user_action(GtkTextBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_begin_user_action", 1, buffer, "GtkTextBuffer*");
+  gtk_text_buffer_begin_user_action(s7_c_pointer(buffer));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_end_user_action(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_end_user_action "void gtk_text_buffer_end_user_action(GtkTextBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_end_user_action", 1, buffer, "GtkTextBuffer*");
+  gtk_text_buffer_end_user_action(s7_c_pointer(buffer));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_child_anchor_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_child_anchor_new "GtkTextChildAnchor* gtk_text_child_anchor_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkTextChildAnchor__sym, gtk_text_child_anchor_new()));
+}
+
+static s7_pointer lg_gtk_text_child_anchor_get_widgets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_child_anchor_get_widgets "GList* gtk_text_child_anchor_get_widgets(GtkTextChildAnchor* anchor)"
+  s7_pointer anchor;
+  anchor = s7_car(args);
+  if (!s7_is_c_pointer_of_type(anchor, GtkTextChildAnchor__sym)) s7_wrong_type_arg_error(sc, "gtk_text_child_anchor_get_widgets", 1, anchor, "GtkTextChildAnchor*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_text_child_anchor_get_widgets(s7_c_pointer(anchor))));
+}
+
+static s7_pointer lg_gtk_text_child_anchor_get_deleted(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_child_anchor_get_deleted "gboolean gtk_text_child_anchor_get_deleted(GtkTextChildAnchor* anchor)"
+  s7_pointer anchor;
+  anchor = s7_car(args);
+  if (!s7_is_c_pointer_of_type(anchor, GtkTextChildAnchor__sym)) s7_wrong_type_arg_error(sc, "gtk_text_child_anchor_get_deleted", 1, anchor, "GtkTextChildAnchor*");
+  return(s7_make_boolean(sc, gtk_text_child_anchor_get_deleted(s7_c_pointer(anchor))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_buffer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_buffer "GtkTextBuffer* gtk_text_iter_get_buffer(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_buffer", 1, iter, "GtkTextIter*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextBuffer__sym, gtk_text_iter_get_buffer(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_copy "GtkTextIter* gtk_text_iter_copy(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_copy", 1, iter, "GtkTextIter*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextIter__sym, gtk_text_iter_copy(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_free "void gtk_text_iter_free(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_free", 1, iter, "GtkTextIter*");
+  gtk_text_iter_free(s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_iter_get_offset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_offset "gint gtk_text_iter_get_offset(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_offset", 1, iter, "GtkTextIter*");
+  return(s7_make_integer(sc, gtk_text_iter_get_offset(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_line "gint gtk_text_iter_get_line(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_line", 1, iter, "GtkTextIter*");
+  return(s7_make_integer(sc, gtk_text_iter_get_line(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_line_offset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_line_offset "gint gtk_text_iter_get_line_offset(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_line_offset", 1, iter, "GtkTextIter*");
+  return(s7_make_integer(sc, gtk_text_iter_get_line_offset(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_line_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_line_index "gint gtk_text_iter_get_line_index(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_line_index", 1, iter, "GtkTextIter*");
+  return(s7_make_integer(sc, gtk_text_iter_get_line_index(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_visible_line_offset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_visible_line_offset "gint gtk_text_iter_get_visible_line_offset(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_visible_line_offset", 1, iter, "GtkTextIter*");
+  return(s7_make_integer(sc, gtk_text_iter_get_visible_line_offset(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_visible_line_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_visible_line_index "gint gtk_text_iter_get_visible_line_index(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_visible_line_index", 1, iter, "GtkTextIter*");
+  return(s7_make_integer(sc, gtk_text_iter_get_visible_line_index(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_char(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_char "gunichar gtk_text_iter_get_char(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_char", 1, iter, "GtkTextIter*");
+  return(s7_make_integer(sc, gtk_text_iter_get_char(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_slice(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_slice "gchar* gtk_text_iter_get_slice(GtkTextIter* start, GtkTextIter* end)"
+  s7_pointer _p;
+  s7_pointer start, end;
+  _p = args;
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_slice", 1, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_slice", 2, end, "GtkTextIter*");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_text_iter_get_slice(s7_c_pointer(start), s7_c_pointer(end));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_text_iter_get_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_text "gchar* gtk_text_iter_get_text(GtkTextIter* start, GtkTextIter* end)"
+  s7_pointer _p;
+  s7_pointer start, end;
+  _p = args;
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_text", 1, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_text", 2, end, "GtkTextIter*");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_text_iter_get_text(s7_c_pointer(start), s7_c_pointer(end));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_text_iter_get_visible_slice(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_visible_slice "gchar* gtk_text_iter_get_visible_slice(GtkTextIter* start, \
+GtkTextIter* end)"
+  s7_pointer _p;
+  s7_pointer start, end;
+  _p = args;
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_visible_slice", 1, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_visible_slice", 2, end, "GtkTextIter*");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_text_iter_get_visible_slice(s7_c_pointer(start), s7_c_pointer(end));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_text_iter_get_visible_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_visible_text "gchar* gtk_text_iter_get_visible_text(GtkTextIter* start, \
+GtkTextIter* end)"
+  s7_pointer _p;
+  s7_pointer start, end;
+  _p = args;
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_visible_text", 1, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_visible_text", 2, end, "GtkTextIter*");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_text_iter_get_visible_text(s7_c_pointer(start), s7_c_pointer(end));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_text_iter_get_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_pixbuf "GdkPixbuf* gtk_text_iter_get_pixbuf(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_pixbuf", 1, iter, "GtkTextIter*");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gtk_text_iter_get_pixbuf(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_marks(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_marks "GSList* gtk_text_iter_get_marks(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_marks", 1, iter, "GtkTextIter*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_text_iter_get_marks(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_child_anchor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_child_anchor "GtkTextChildAnchor* gtk_text_iter_get_child_anchor(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_child_anchor", 1, iter, "GtkTextIter*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextChildAnchor__sym, gtk_text_iter_get_child_anchor(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_toggled_tags(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_toggled_tags "GSList* gtk_text_iter_get_toggled_tags(GtkTextIter* iter, \
+gboolean toggled_on)"
+  s7_pointer _p;
+  s7_pointer iter, toggled_on;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_toggled_tags", 1, iter, "GtkTextIter*");
+  toggled_on = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(toggled_on)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_toggled_tags", 2, toggled_on, "gboolean");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_text_iter_get_toggled_tags(s7_c_pointer(iter), lg_boolean(toggled_on))));
+}
+
+static s7_pointer lg_gtk_text_iter_ends_tag(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_ends_tag "gboolean gtk_text_iter_ends_tag(GtkTextIter* iter, GtkTextTag* tag)"
+  s7_pointer _p;
+  s7_pointer iter, tag;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_ends_tag", 1, iter, "GtkTextIter*");
+  tag = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tag, GtkTextTag__sym)) && (tag != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_iter_ends_tag", 2, tag, "GtkTextTag*");
+  return(s7_make_boolean(sc, gtk_text_iter_ends_tag(s7_c_pointer(iter), s7_c_pointer(tag))));
+}
+
+static s7_pointer lg_gtk_text_iter_toggles_tag(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_toggles_tag "gboolean gtk_text_iter_toggles_tag(GtkTextIter* iter, GtkTextTag* tag)"
+  s7_pointer _p;
+  s7_pointer iter, tag;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_toggles_tag", 1, iter, "GtkTextIter*");
+  tag = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tag, GtkTextTag__sym)) && (tag != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_iter_toggles_tag", 2, tag, "GtkTextTag*");
+  return(s7_make_boolean(sc, gtk_text_iter_toggles_tag(s7_c_pointer(iter), s7_c_pointer(tag))));
+}
+
+static s7_pointer lg_gtk_text_iter_has_tag(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_has_tag "gboolean gtk_text_iter_has_tag(GtkTextIter* iter, GtkTextTag* tag)"
+  s7_pointer _p;
+  s7_pointer iter, tag;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_has_tag", 1, iter, "GtkTextIter*");
+  tag = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tag, GtkTextTag__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_has_tag", 2, tag, "GtkTextTag*");
+  return(s7_make_boolean(sc, gtk_text_iter_has_tag(s7_c_pointer(iter), s7_c_pointer(tag))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_tags(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_tags "GSList* gtk_text_iter_get_tags(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_tags", 1, iter, "GtkTextIter*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_text_iter_get_tags(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_editable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_editable "gboolean gtk_text_iter_editable(GtkTextIter* iter, gboolean default_setting)"
+  s7_pointer _p;
+  s7_pointer iter, default_setting;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_editable", 1, iter, "GtkTextIter*");
+  default_setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(default_setting)) s7_wrong_type_arg_error(sc, "gtk_text_iter_editable", 2, default_setting, "gboolean");
+  return(s7_make_boolean(sc, gtk_text_iter_editable(s7_c_pointer(iter), lg_boolean(default_setting))));
+}
+
+static s7_pointer lg_gtk_text_iter_can_insert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_can_insert "gboolean gtk_text_iter_can_insert(GtkTextIter* iter, gboolean default_editability)"
+  s7_pointer _p;
+  s7_pointer iter, default_editability;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_can_insert", 1, iter, "GtkTextIter*");
+  default_editability = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(default_editability)) s7_wrong_type_arg_error(sc, "gtk_text_iter_can_insert", 2, default_editability, "gboolean");
+  return(s7_make_boolean(sc, gtk_text_iter_can_insert(s7_c_pointer(iter), lg_boolean(default_editability))));
+}
+
+static s7_pointer lg_gtk_text_iter_starts_word(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_starts_word "gboolean gtk_text_iter_starts_word(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_starts_word", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_starts_word(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_ends_word(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_ends_word "gboolean gtk_text_iter_ends_word(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_ends_word", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_ends_word(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_inside_word(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_inside_word "gboolean gtk_text_iter_inside_word(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_inside_word", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_inside_word(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_starts_sentence(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_starts_sentence "gboolean gtk_text_iter_starts_sentence(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_starts_sentence", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_starts_sentence(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_ends_sentence(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_ends_sentence "gboolean gtk_text_iter_ends_sentence(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_ends_sentence", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_ends_sentence(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_inside_sentence(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_inside_sentence "gboolean gtk_text_iter_inside_sentence(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_inside_sentence", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_inside_sentence(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_starts_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_starts_line "gboolean gtk_text_iter_starts_line(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_starts_line", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_starts_line(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_ends_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_ends_line "gboolean gtk_text_iter_ends_line(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_ends_line", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_ends_line(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_is_cursor_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_is_cursor_position "gboolean gtk_text_iter_is_cursor_position(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_is_cursor_position", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_is_cursor_position(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_chars_in_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_chars_in_line "gint gtk_text_iter_get_chars_in_line(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_chars_in_line", 1, iter, "GtkTextIter*");
+  return(s7_make_integer(sc, gtk_text_iter_get_chars_in_line(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_bytes_in_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_bytes_in_line "gint gtk_text_iter_get_bytes_in_line(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_bytes_in_line", 1, iter, "GtkTextIter*");
+  return(s7_make_integer(sc, gtk_text_iter_get_bytes_in_line(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_get_language(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_get_language "PangoLanguage* gtk_text_iter_get_language(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_get_language", 1, iter, "GtkTextIter*");
+  return(s7_make_type_with_c_pointer(sc, PangoLanguage__sym, gtk_text_iter_get_language(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_is_end(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_is_end "gboolean gtk_text_iter_is_end(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_is_end", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_is_end(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_is_start(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_is_start "gboolean gtk_text_iter_is_start(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_is_start", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_is_start(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_forward_char(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_char "gboolean gtk_text_iter_forward_char(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_char", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_char(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_backward_char(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_char "gboolean gtk_text_iter_backward_char(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_char", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_backward_char(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_forward_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_chars "gboolean gtk_text_iter_forward_chars(GtkTextIter* iter, gint count)"
+  s7_pointer _p;
+  s7_pointer iter, count;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_chars", 1, iter, "GtkTextIter*");
+  count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(count)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_chars", 2, count, "gint");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_chars(s7_c_pointer(iter), s7_integer(count))));
+}
+
+static s7_pointer lg_gtk_text_iter_backward_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_chars "gboolean gtk_text_iter_backward_chars(GtkTextIter* iter, gint count)"
+  s7_pointer _p;
+  s7_pointer iter, count;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_chars", 1, iter, "GtkTextIter*");
+  count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(count)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_chars", 2, count, "gint");
+  return(s7_make_boolean(sc, gtk_text_iter_backward_chars(s7_c_pointer(iter), s7_integer(count))));
+}
+
+static s7_pointer lg_gtk_text_iter_forward_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_line "gboolean gtk_text_iter_forward_line(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_line", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_line(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_backward_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_line "gboolean gtk_text_iter_backward_line(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_line", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_backward_line(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_forward_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_lines "gboolean gtk_text_iter_forward_lines(GtkTextIter* iter, gint count)"
+  s7_pointer _p;
+  s7_pointer iter, count;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_lines", 1, iter, "GtkTextIter*");
+  count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(count)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_lines", 2, count, "gint");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_lines(s7_c_pointer(iter), s7_integer(count))));
+}
+
+static s7_pointer lg_gtk_text_iter_backward_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_lines "gboolean gtk_text_iter_backward_lines(GtkTextIter* iter, gint count)"
+  s7_pointer _p;
+  s7_pointer iter, count;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_lines", 1, iter, "GtkTextIter*");
+  count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(count)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_lines", 2, count, "gint");
+  return(s7_make_boolean(sc, gtk_text_iter_backward_lines(s7_c_pointer(iter), s7_integer(count))));
+}
+
+static s7_pointer lg_gtk_text_iter_forward_word_end(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_word_end "gboolean gtk_text_iter_forward_word_end(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_word_end", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_word_end(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_backward_word_start(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_word_start "gboolean gtk_text_iter_backward_word_start(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_word_start", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_backward_word_start(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_forward_word_ends(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_word_ends "gboolean gtk_text_iter_forward_word_ends(GtkTextIter* iter, \
+gint count)"
+  s7_pointer _p;
+  s7_pointer iter, count;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_word_ends", 1, iter, "GtkTextIter*");
+  count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(count)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_word_ends", 2, count, "gint");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_word_ends(s7_c_pointer(iter), s7_integer(count))));
+}
+
+static s7_pointer lg_gtk_text_iter_backward_word_starts(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_word_starts "gboolean gtk_text_iter_backward_word_starts(GtkTextIter* iter, \
+gint count)"
+  s7_pointer _p;
+  s7_pointer iter, count;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_word_starts", 1, iter, "GtkTextIter*");
+  count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(count)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_word_starts", 2, count, "gint");
+  return(s7_make_boolean(sc, gtk_text_iter_backward_word_starts(s7_c_pointer(iter), s7_integer(count))));
+}
+
+static s7_pointer lg_gtk_text_iter_forward_sentence_end(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_sentence_end "gboolean gtk_text_iter_forward_sentence_end(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_sentence_end", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_sentence_end(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_backward_sentence_start(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_sentence_start "gboolean gtk_text_iter_backward_sentence_start(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_sentence_start", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_backward_sentence_start(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_forward_sentence_ends(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_sentence_ends "gboolean gtk_text_iter_forward_sentence_ends(GtkTextIter* iter, \
+gint count)"
+  s7_pointer _p;
+  s7_pointer iter, count;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_sentence_ends", 1, iter, "GtkTextIter*");
+  count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(count)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_sentence_ends", 2, count, "gint");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_sentence_ends(s7_c_pointer(iter), s7_integer(count))));
+}
+
+static s7_pointer lg_gtk_text_iter_backward_sentence_starts(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_sentence_starts "gboolean gtk_text_iter_backward_sentence_starts(GtkTextIter* iter, \
+gint count)"
+  s7_pointer _p;
+  s7_pointer iter, count;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_sentence_starts", 1, iter, "GtkTextIter*");
+  count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(count)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_sentence_starts", 2, count, "gint");
+  return(s7_make_boolean(sc, gtk_text_iter_backward_sentence_starts(s7_c_pointer(iter), s7_integer(count))));
+}
+
+static s7_pointer lg_gtk_text_iter_forward_cursor_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_cursor_position "gboolean gtk_text_iter_forward_cursor_position(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_cursor_position", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_cursor_position(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_backward_cursor_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_cursor_position "gboolean gtk_text_iter_backward_cursor_position(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_cursor_position", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_backward_cursor_position(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_forward_cursor_positions(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_cursor_positions "gboolean gtk_text_iter_forward_cursor_positions(GtkTextIter* iter, \
+gint count)"
+  s7_pointer _p;
+  s7_pointer iter, count;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_cursor_positions", 1, iter, "GtkTextIter*");
+  count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(count)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_cursor_positions", 2, count, "gint");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_cursor_positions(s7_c_pointer(iter), s7_integer(count))));
+}
+
+static s7_pointer lg_gtk_text_iter_backward_cursor_positions(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_cursor_positions "gboolean gtk_text_iter_backward_cursor_positions(GtkTextIter* iter, \
+gint count)"
+  s7_pointer _p;
+  s7_pointer iter, count;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_cursor_positions", 1, iter, "GtkTextIter*");
+  count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(count)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_cursor_positions", 2, count, "gint");
+  return(s7_make_boolean(sc, gtk_text_iter_backward_cursor_positions(s7_c_pointer(iter), s7_integer(count))));
+}
+
+static s7_pointer lg_gtk_text_iter_set_offset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_set_offset "void gtk_text_iter_set_offset(GtkTextIter* iter, gint char_offset)"
+  s7_pointer _p;
+  s7_pointer iter, char_offset;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_set_offset", 1, iter, "GtkTextIter*");
+  char_offset = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(char_offset)) s7_wrong_type_arg_error(sc, "gtk_text_iter_set_offset", 2, char_offset, "gint");
+  gtk_text_iter_set_offset(s7_c_pointer(iter), s7_integer(char_offset));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_iter_set_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_set_line "void gtk_text_iter_set_line(GtkTextIter* iter, gint line_number)"
+  s7_pointer _p;
+  s7_pointer iter, line_number;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_set_line", 1, iter, "GtkTextIter*");
+  line_number = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(line_number)) s7_wrong_type_arg_error(sc, "gtk_text_iter_set_line", 2, line_number, "gint");
+  gtk_text_iter_set_line(s7_c_pointer(iter), s7_integer(line_number));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_iter_set_line_offset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_set_line_offset "void gtk_text_iter_set_line_offset(GtkTextIter* iter, gint char_on_line)"
+  s7_pointer _p;
+  s7_pointer iter, char_on_line;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_set_line_offset", 1, iter, "GtkTextIter*");
+  char_on_line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(char_on_line)) s7_wrong_type_arg_error(sc, "gtk_text_iter_set_line_offset", 2, char_on_line, "gint");
+  gtk_text_iter_set_line_offset(s7_c_pointer(iter), s7_integer(char_on_line));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_iter_set_line_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_set_line_index "void gtk_text_iter_set_line_index(GtkTextIter* iter, gint byte_on_line)"
+  s7_pointer _p;
+  s7_pointer iter, byte_on_line;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_set_line_index", 1, iter, "GtkTextIter*");
+  byte_on_line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(byte_on_line)) s7_wrong_type_arg_error(sc, "gtk_text_iter_set_line_index", 2, byte_on_line, "gint");
+  gtk_text_iter_set_line_index(s7_c_pointer(iter), s7_integer(byte_on_line));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_iter_forward_to_end(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_to_end "void gtk_text_iter_forward_to_end(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_to_end", 1, iter, "GtkTextIter*");
+  gtk_text_iter_forward_to_end(s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_iter_forward_to_line_end(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_to_line_end "gboolean gtk_text_iter_forward_to_line_end(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_to_line_end", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_to_line_end(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_set_visible_line_offset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_set_visible_line_offset "void gtk_text_iter_set_visible_line_offset(GtkTextIter* iter, \
+gint char_on_line)"
+  s7_pointer _p;
+  s7_pointer iter, char_on_line;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_set_visible_line_offset", 1, iter, "GtkTextIter*");
+  char_on_line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(char_on_line)) s7_wrong_type_arg_error(sc, "gtk_text_iter_set_visible_line_offset", 2, char_on_line, "gint");
+  gtk_text_iter_set_visible_line_offset(s7_c_pointer(iter), s7_integer(char_on_line));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_iter_set_visible_line_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_set_visible_line_index "void gtk_text_iter_set_visible_line_index(GtkTextIter* iter, \
+gint byte_on_line)"
+  s7_pointer _p;
+  s7_pointer iter, byte_on_line;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_set_visible_line_index", 1, iter, "GtkTextIter*");
+  byte_on_line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(byte_on_line)) s7_wrong_type_arg_error(sc, "gtk_text_iter_set_visible_line_index", 2, byte_on_line, "gint");
+  gtk_text_iter_set_visible_line_index(s7_c_pointer(iter), s7_integer(byte_on_line));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_iter_forward_to_tag_toggle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_to_tag_toggle "gboolean gtk_text_iter_forward_to_tag_toggle(GtkTextIter* iter, \
+GtkTextTag* tag)"
+  s7_pointer _p;
+  s7_pointer iter, tag;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_to_tag_toggle", 1, iter, "GtkTextIter*");
+  tag = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tag, GtkTextTag__sym)) && (tag != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_to_tag_toggle", 2, tag, "GtkTextTag*");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_to_tag_toggle(s7_c_pointer(iter), s7_c_pointer(tag))));
+}
+
+static s7_pointer lg_gtk_text_iter_backward_to_tag_toggle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_to_tag_toggle "gboolean gtk_text_iter_backward_to_tag_toggle(GtkTextIter* iter, \
+GtkTextTag* tag)"
+  s7_pointer _p;
+  s7_pointer iter, tag;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_to_tag_toggle", 1, iter, "GtkTextIter*");
+  tag = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tag, GtkTextTag__sym)) && (tag != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_to_tag_toggle", 2, tag, "GtkTextTag*");
+  return(s7_make_boolean(sc, gtk_text_iter_backward_to_tag_toggle(s7_c_pointer(iter), s7_c_pointer(tag))));
+}
+
+static s7_pointer lg_gtk_text_iter_forward_find_char(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_find_char "gboolean gtk_text_iter_forward_find_char(GtkTextIter* iter, \
+GtkTextCharPredicate pred, lambda_data func_info, GtkTextIter* limit)"
+  s7_pointer _p;
+  s7_pointer iter, pred, func_info, limit;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_find_char", 1, iter, "GtkTextIter*");
+  pred = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pred, GtkTextCharPredicate_sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_find_char", 2, pred, "GtkTextCharPredicate");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_find_char", 3, func_info, "lambda_data");
+  limit = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(limit, GtkTextIter__sym)) && (limit != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_find_char", 4, limit, "GtkTextIter*");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, lg_false, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    result = s7_make_boolean(sc, gtk_text_iter_forward_find_char(s7_c_pointer(iter), s7_c_pointer(pred), (gpointer)lg_ptr, s7_c_pointer(limit)));
+    return(result);
+   }
+}
+
+static s7_pointer lg_gtk_text_iter_backward_find_char(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_find_char "gboolean gtk_text_iter_backward_find_char(GtkTextIter* iter, \
+GtkTextCharPredicate pred, lambda_data func_info, GtkTextIter* limit)"
+  s7_pointer _p;
+  s7_pointer iter, pred, func_info, limit;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_find_char", 1, iter, "GtkTextIter*");
+  pred = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pred, GtkTextCharPredicate_sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_find_char", 2, pred, "GtkTextCharPredicate");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_find_char", 3, func_info, "lambda_data");
+  limit = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(limit, GtkTextIter__sym)) && (limit != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_find_char", 4, limit, "GtkTextIter*");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, lg_false, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    result = s7_make_boolean(sc, gtk_text_iter_backward_find_char(s7_c_pointer(iter), s7_c_pointer(pred), (gpointer)lg_ptr, s7_c_pointer(limit)));
+    return(result);
+   }
+}
+
+static s7_pointer lg_gtk_text_iter_forward_search(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_search "gboolean gtk_text_iter_forward_search(GtkTextIter* iter, gchar* str, \
+GtkTextSearchFlags flags, GtkTextIter* match_start, GtkTextIter* match_end, GtkTextIter* limit)"
+  s7_pointer _p;
+  s7_pointer iter, str, flags, match_start, match_end, limit;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_search", 1, iter, "GtkTextIter*");
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_search", 2, str, "gchar*");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_search", 3, flags, "GtkTextSearchFlags");
+  match_start = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(match_start, GtkTextIter__sym)) && (match_start != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_search", 4, match_start, "GtkTextIter*");
+  match_end = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(match_end, GtkTextIter__sym)) && (match_end != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_search", 5, match_end, "GtkTextIter*");
+  limit = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(limit, GtkTextIter__sym)) && (limit != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_search", 6, limit, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_search(s7_c_pointer(iter), s7_string(str), s7_integer(flags), s7_c_pointer(match_start), s7_c_pointer(match_end), s7_c_pointer(limit))));
+}
+
+static s7_pointer lg_gtk_text_iter_backward_search(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_search "gboolean gtk_text_iter_backward_search(GtkTextIter* iter, \
+gchar* str, GtkTextSearchFlags flags, GtkTextIter* match_start, GtkTextIter* match_end, GtkTextIter* limit)"
+  s7_pointer _p;
+  s7_pointer iter, str, flags, match_start, match_end, limit;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_search", 1, iter, "GtkTextIter*");
+  str = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_search", 2, str, "gchar*");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_search", 3, flags, "GtkTextSearchFlags");
+  match_start = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(match_start, GtkTextIter__sym)) && (match_start != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_search", 4, match_start, "GtkTextIter*");
+  match_end = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(match_end, GtkTextIter__sym)) && (match_end != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_search", 5, match_end, "GtkTextIter*");
+  limit = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(limit, GtkTextIter__sym)) && (limit != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_search", 6, limit, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_backward_search(s7_c_pointer(iter), s7_string(str), s7_integer(flags), s7_c_pointer(match_start), s7_c_pointer(match_end), s7_c_pointer(limit))));
+}
+
+static s7_pointer lg_gtk_text_iter_equal(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_equal "gboolean gtk_text_iter_equal(GtkTextIter* lhs, GtkTextIter* rhs)"
+  s7_pointer _p;
+  s7_pointer lhs, rhs;
+  _p = args;
+  lhs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(lhs, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_equal", 1, lhs, "GtkTextIter*");
+  rhs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rhs, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_equal", 2, rhs, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_equal(s7_c_pointer(lhs), s7_c_pointer(rhs))));
+}
+
+static s7_pointer lg_gtk_text_iter_compare(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_compare "gint gtk_text_iter_compare(GtkTextIter* lhs, GtkTextIter* rhs)"
+  s7_pointer _p;
+  s7_pointer lhs, rhs;
+  _p = args;
+  lhs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(lhs, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_compare", 1, lhs, "GtkTextIter*");
+  rhs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rhs, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_compare", 2, rhs, "GtkTextIter*");
+  return(s7_make_integer(sc, gtk_text_iter_compare(s7_c_pointer(lhs), s7_c_pointer(rhs))));
+}
+
+static s7_pointer lg_gtk_text_iter_in_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_in_range "gboolean gtk_text_iter_in_range(GtkTextIter* iter, GtkTextIter* start, \
+GtkTextIter* end)"
+  s7_pointer _p;
+  s7_pointer iter, start, end;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_in_range", 1, iter, "GtkTextIter*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_in_range", 2, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_in_range", 3, end, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_in_range(s7_c_pointer(iter), s7_c_pointer(start), s7_c_pointer(end))));
+}
+
+static s7_pointer lg_gtk_text_iter_order(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_order "void gtk_text_iter_order(GtkTextIter* first, GtkTextIter* second)"
+  s7_pointer _p;
+  s7_pointer first, second;
+  _p = args;
+  first = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(first, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_order", 1, first, "GtkTextIter*");
+  second = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(second, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_order", 2, second, "GtkTextIter*");
+  gtk_text_iter_order(s7_c_pointer(first), s7_c_pointer(second));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_mark_set_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_mark_set_visible "void gtk_text_mark_set_visible(GtkTextMark* mark, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer mark, setting;
+  _p = args;
+  mark = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(mark, GtkTextMark__sym)) s7_wrong_type_arg_error(sc, "gtk_text_mark_set_visible", 1, mark, "GtkTextMark*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_text_mark_set_visible", 2, setting, "gboolean");
+  gtk_text_mark_set_visible(s7_c_pointer(mark), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_mark_get_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_mark_get_visible "gboolean gtk_text_mark_get_visible(GtkTextMark* mark)"
+  s7_pointer mark;
+  mark = s7_car(args);
+  if (!s7_is_c_pointer_of_type(mark, GtkTextMark__sym)) s7_wrong_type_arg_error(sc, "gtk_text_mark_get_visible", 1, mark, "GtkTextMark*");
+  return(s7_make_boolean(sc, gtk_text_mark_get_visible(s7_c_pointer(mark))));
+}
+
+static s7_pointer lg_gtk_text_mark_get_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_mark_get_name "char* gtk_text_mark_get_name(GtkTextMark* mark)"
+  s7_pointer mark;
+  mark = s7_car(args);
+  if (!s7_is_c_pointer_of_type(mark, GtkTextMark__sym)) s7_wrong_type_arg_error(sc, "gtk_text_mark_get_name", 1, mark, "GtkTextMark*");
+  return(s7_make_string(sc, gtk_text_mark_get_name(s7_c_pointer(mark))));
+}
+
+static s7_pointer lg_gtk_text_mark_get_deleted(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_mark_get_deleted "gboolean gtk_text_mark_get_deleted(GtkTextMark* mark)"
+  s7_pointer mark;
+  mark = s7_car(args);
+  if (!s7_is_c_pointer_of_type(mark, GtkTextMark__sym)) s7_wrong_type_arg_error(sc, "gtk_text_mark_get_deleted", 1, mark, "GtkTextMark*");
+  return(s7_make_boolean(sc, gtk_text_mark_get_deleted(s7_c_pointer(mark))));
+}
+
+static s7_pointer lg_gtk_text_mark_get_buffer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_mark_get_buffer "GtkTextBuffer* gtk_text_mark_get_buffer(GtkTextMark* mark)"
+  s7_pointer mark;
+  mark = s7_car(args);
+  if (!s7_is_c_pointer_of_type(mark, GtkTextMark__sym)) s7_wrong_type_arg_error(sc, "gtk_text_mark_get_buffer", 1, mark, "GtkTextMark*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextBuffer__sym, gtk_text_mark_get_buffer(s7_c_pointer(mark))));
+}
+
+static s7_pointer lg_gtk_text_mark_get_left_gravity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_mark_get_left_gravity "gboolean gtk_text_mark_get_left_gravity(GtkTextMark* mark)"
+  s7_pointer mark;
+  mark = s7_car(args);
+  if (!s7_is_c_pointer_of_type(mark, GtkTextMark__sym)) s7_wrong_type_arg_error(sc, "gtk_text_mark_get_left_gravity", 1, mark, "GtkTextMark*");
+  return(s7_make_boolean(sc, gtk_text_mark_get_left_gravity(s7_c_pointer(mark))));
+}
+
+static s7_pointer lg_gtk_text_tag_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_tag_new "GtkTextTag* gtk_text_tag_new(gchar* name)"
+  s7_pointer name;
+  name = s7_car(args);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_text_tag_new", 1, name, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextTag__sym, gtk_text_tag_new(s7_string(name))));
+}
+
+static s7_pointer lg_gtk_text_tag_get_priority(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_tag_get_priority "gint gtk_text_tag_get_priority(GtkTextTag* tag)"
+  s7_pointer tag;
+  tag = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tag, GtkTextTag__sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_get_priority", 1, tag, "GtkTextTag*");
+  return(s7_make_integer(sc, gtk_text_tag_get_priority(s7_c_pointer(tag))));
+}
+
+static s7_pointer lg_gtk_text_tag_set_priority(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_tag_set_priority "void gtk_text_tag_set_priority(GtkTextTag* tag, gint priority)"
+  s7_pointer _p;
+  s7_pointer tag, priority;
+  _p = args;
+  tag = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tag, GtkTextTag__sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_set_priority", 1, tag, "GtkTextTag*");
+  priority = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(priority)) s7_wrong_type_arg_error(sc, "gtk_text_tag_set_priority", 2, priority, "gint");
+  gtk_text_tag_set_priority(s7_c_pointer(tag), s7_integer(priority));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_tag_event(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_tag_event "gboolean gtk_text_tag_event(GtkTextTag* tag, GObject* event_object, GdkEvent* event, \
+GtkTextIter* iter)"
+  s7_pointer _p;
+  s7_pointer tag, event_object, event, iter;
+  _p = args;
+  tag = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tag, GtkTextTag__sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_event", 1, tag, "GtkTextTag*");
+  event_object = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event_object, GObject__sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_event", 2, event_object, "GObject*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_event", 3, event, "GdkEvent*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_event", 4, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_tag_event(s7_c_pointer(tag), s7_c_pointer(event_object), s7_c_pointer(event), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_attributes_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_attributes_new "GtkTextAttributes* gtk_text_attributes_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkTextAttributes__sym, gtk_text_attributes_new()));
+}
+
+static s7_pointer lg_gtk_text_attributes_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_attributes_copy "GtkTextAttributes* gtk_text_attributes_copy(GtkTextAttributes* src)"
+  s7_pointer src;
+  src = s7_car(args);
+  if (!s7_is_c_pointer_of_type(src, GtkTextAttributes__sym)) s7_wrong_type_arg_error(sc, "gtk_text_attributes_copy", 1, src, "GtkTextAttributes*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextAttributes__sym, gtk_text_attributes_copy(s7_c_pointer(src))));
+}
+
+static s7_pointer lg_gtk_text_attributes_copy_values(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_attributes_copy_values "void gtk_text_attributes_copy_values(GtkTextAttributes* src, \
+GtkTextAttributes* dest)"
+  s7_pointer _p;
+  s7_pointer src, dest;
+  _p = args;
+  src = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(src, GtkTextAttributes__sym)) s7_wrong_type_arg_error(sc, "gtk_text_attributes_copy_values", 1, src, "GtkTextAttributes*");
+  dest = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dest, GtkTextAttributes__sym)) s7_wrong_type_arg_error(sc, "gtk_text_attributes_copy_values", 2, dest, "GtkTextAttributes*");
+  gtk_text_attributes_copy_values(s7_c_pointer(src), s7_c_pointer(dest));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_attributes_unref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_attributes_unref "void gtk_text_attributes_unref(GtkTextAttributes* values)"
+  s7_pointer values;
+  values = s7_car(args);
+  if (!s7_is_c_pointer_of_type(values, GtkTextAttributes__sym)) s7_wrong_type_arg_error(sc, "gtk_text_attributes_unref", 1, values, "GtkTextAttributes*");
+  gtk_text_attributes_unref(s7_c_pointer(values));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_tag_table_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_tag_table_new "GtkTextTagTable* gtk_text_tag_table_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkTextTagTable__sym, gtk_text_tag_table_new()));
+}
+
+static s7_pointer lg_gtk_text_tag_table_add(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_tag_table_add "void gtk_text_tag_table_add(GtkTextTagTable* table, GtkTextTag* tag)"
+  s7_pointer _p;
+  s7_pointer table, tag;
+  _p = args;
+  table = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(table, GtkTextTagTable__sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_table_add", 1, table, "GtkTextTagTable*");
+  tag = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tag, GtkTextTag__sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_table_add", 2, tag, "GtkTextTag*");
+  gtk_text_tag_table_add(s7_c_pointer(table), s7_c_pointer(tag));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_tag_table_remove(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_tag_table_remove "void gtk_text_tag_table_remove(GtkTextTagTable* table, GtkTextTag* tag)"
+  s7_pointer _p;
+  s7_pointer table, tag;
+  _p = args;
+  table = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(table, GtkTextTagTable__sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_table_remove", 1, table, "GtkTextTagTable*");
+  tag = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tag, GtkTextTag__sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_table_remove", 2, tag, "GtkTextTag*");
+  gtk_text_tag_table_remove(s7_c_pointer(table), s7_c_pointer(tag));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_tag_table_lookup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_tag_table_lookup "GtkTextTag* gtk_text_tag_table_lookup(GtkTextTagTable* table, \
+gchar* name)"
+  s7_pointer _p;
+  s7_pointer table, name;
+  _p = args;
+  table = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(table, GtkTextTagTable__sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_table_lookup", 1, table, "GtkTextTagTable*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_text_tag_table_lookup", 2, name, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextTag__sym, gtk_text_tag_table_lookup(s7_c_pointer(table), s7_string(name))));
+}
+
+static s7_pointer lg_gtk_text_tag_table_foreach(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_tag_table_foreach "void gtk_text_tag_table_foreach(GtkTextTagTable* table, GtkTextTagTableForeach func, \
+lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer table, func, func_info;
+  _p = args;
+  table = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(table, GtkTextTagTable__sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_table_foreach", 1, table, "GtkTextTagTable*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkTextTagTableForeach_sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_table_foreach", 2, func, "GtkTextTagTableForeach");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_tag_table_foreach", 3, func_info, "lambda_data");
+  {
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    gtk_text_tag_table_foreach(s7_c_pointer(table), s7_c_pointer(func), (gpointer)lg_ptr);
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_text_tag_table_get_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_tag_table_get_size "gint gtk_text_tag_table_get_size(GtkTextTagTable* table)"
+  s7_pointer table;
+  table = s7_car(args);
+  if (!s7_is_c_pointer_of_type(table, GtkTextTagTable__sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_table_get_size", 1, table, "GtkTextTagTable*");
+  return(s7_make_integer(sc, gtk_text_tag_table_get_size(s7_c_pointer(table))));
+}
+
+static s7_pointer lg_gtk_text_view_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_new "GtkWidget* gtk_text_view_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_text_view_new()));
+}
+
+static s7_pointer lg_gtk_text_view_new_with_buffer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_new_with_buffer "GtkWidget* gtk_text_view_new_with_buffer(GtkTextBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_new_with_buffer", 1, buffer, "GtkTextBuffer*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_text_view_new_with_buffer(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_text_view_set_buffer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_buffer "void gtk_text_view_set_buffer(GtkTextView* text_view, GtkTextBuffer* buffer)"
+  s7_pointer _p;
+  s7_pointer text_view, buffer;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_buffer", 1, text_view, "GtkTextView*");
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_buffer", 2, buffer, "GtkTextBuffer*");
+  gtk_text_view_set_buffer(s7_c_pointer(text_view), s7_c_pointer(buffer));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_buffer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_buffer "GtkTextBuffer* gtk_text_view_get_buffer(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_buffer", 1, text_view, "GtkTextView*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextBuffer__sym, gtk_text_view_get_buffer(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_scroll_to_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_scroll_to_iter "gboolean gtk_text_view_scroll_to_iter(GtkTextView* text_view, \
+GtkTextIter* iter, gdouble within_margin, gboolean use_align, gdouble xalign, gdouble yalign)"
+  s7_pointer _p;
+  s7_pointer text_view, iter, within_margin, use_align, xalign, yalign;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_scroll_to_iter", 1, text_view, "GtkTextView*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_scroll_to_iter", 2, iter, "GtkTextIter*");
+  within_margin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(within_margin)) s7_wrong_type_arg_error(sc, "gtk_text_view_scroll_to_iter", 3, within_margin, "gdouble");
+  use_align = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_align)) s7_wrong_type_arg_error(sc, "gtk_text_view_scroll_to_iter", 4, use_align, "gboolean");
+  xalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xalign)) s7_wrong_type_arg_error(sc, "gtk_text_view_scroll_to_iter", 5, xalign, "gdouble");
+  yalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(yalign)) s7_wrong_type_arg_error(sc, "gtk_text_view_scroll_to_iter", 6, yalign, "gdouble");
+  return(s7_make_boolean(sc, gtk_text_view_scroll_to_iter(s7_c_pointer(text_view), s7_c_pointer(iter), s7_real(within_margin), lg_boolean(use_align), s7_real(xalign), s7_real(yalign))));
+}
+
+static s7_pointer lg_gtk_text_view_scroll_to_mark(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_scroll_to_mark "void gtk_text_view_scroll_to_mark(GtkTextView* text_view, GtkTextMark* mark, \
+gdouble within_margin, gboolean use_align, gdouble xalign, gdouble yalign)"
+  s7_pointer _p;
+  s7_pointer text_view, mark, within_margin, use_align, xalign, yalign;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_scroll_to_mark", 1, text_view, "GtkTextView*");
+  mark = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(mark, GtkTextMark__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_scroll_to_mark", 2, mark, "GtkTextMark*");
+  within_margin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(within_margin)) s7_wrong_type_arg_error(sc, "gtk_text_view_scroll_to_mark", 3, within_margin, "gdouble");
+  use_align = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_align)) s7_wrong_type_arg_error(sc, "gtk_text_view_scroll_to_mark", 4, use_align, "gboolean");
+  xalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xalign)) s7_wrong_type_arg_error(sc, "gtk_text_view_scroll_to_mark", 5, xalign, "gdouble");
+  yalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(yalign)) s7_wrong_type_arg_error(sc, "gtk_text_view_scroll_to_mark", 6, yalign, "gdouble");
+  gtk_text_view_scroll_to_mark(s7_c_pointer(text_view), s7_c_pointer(mark), s7_real(within_margin), lg_boolean(use_align), s7_real(xalign), s7_real(yalign));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_scroll_mark_onscreen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_scroll_mark_onscreen "void gtk_text_view_scroll_mark_onscreen(GtkTextView* text_view, \
+GtkTextMark* mark)"
+  s7_pointer _p;
+  s7_pointer text_view, mark;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_scroll_mark_onscreen", 1, text_view, "GtkTextView*");
+  mark = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(mark, GtkTextMark__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_scroll_mark_onscreen", 2, mark, "GtkTextMark*");
+  gtk_text_view_scroll_mark_onscreen(s7_c_pointer(text_view), s7_c_pointer(mark));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_move_mark_onscreen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_move_mark_onscreen "gboolean gtk_text_view_move_mark_onscreen(GtkTextView* text_view, \
+GtkTextMark* mark)"
+  s7_pointer _p;
+  s7_pointer text_view, mark;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_move_mark_onscreen", 1, text_view, "GtkTextView*");
+  mark = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(mark, GtkTextMark__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_move_mark_onscreen", 2, mark, "GtkTextMark*");
+  return(s7_make_boolean(sc, gtk_text_view_move_mark_onscreen(s7_c_pointer(text_view), s7_c_pointer(mark))));
+}
+
+static s7_pointer lg_gtk_text_view_place_cursor_onscreen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_place_cursor_onscreen "gboolean gtk_text_view_place_cursor_onscreen(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_place_cursor_onscreen", 1, text_view, "GtkTextView*");
+  return(s7_make_boolean(sc, gtk_text_view_place_cursor_onscreen(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_get_visible_rect(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_visible_rect "void gtk_text_view_get_visible_rect(GtkTextView* text_view, \
+GdkRectangle* visible_rect)"
+  s7_pointer _p;
+  s7_pointer text_view, visible_rect;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_visible_rect", 1, text_view, "GtkTextView*");
+  visible_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(visible_rect, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_visible_rect", 2, visible_rect, "GdkRectangle*");
+  gtk_text_view_get_visible_rect(s7_c_pointer(text_view), s7_c_pointer(visible_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_set_cursor_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_cursor_visible "void gtk_text_view_set_cursor_visible(GtkTextView* text_view, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer text_view, setting;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_cursor_visible", 1, text_view, "GtkTextView*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_cursor_visible", 2, setting, "gboolean");
+  gtk_text_view_set_cursor_visible(s7_c_pointer(text_view), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_cursor_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_cursor_visible "gboolean gtk_text_view_get_cursor_visible(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_cursor_visible", 1, text_view, "GtkTextView*");
+  return(s7_make_boolean(sc, gtk_text_view_get_cursor_visible(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_get_iter_location(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_iter_location "void gtk_text_view_get_iter_location(GtkTextView* text_view, \
+GtkTextIter* iter, GdkRectangle* location)"
+  s7_pointer _p;
+  s7_pointer text_view, iter, location;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_iter_location", 1, text_view, "GtkTextView*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_iter_location", 2, iter, "GtkTextIter*");
+  location = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(location, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_iter_location", 3, location, "GdkRectangle*");
+  gtk_text_view_get_iter_location(s7_c_pointer(text_view), s7_c_pointer(iter), s7_c_pointer(location));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_line_yrange(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_line_yrange "void gtk_text_view_get_line_yrange(GtkTextView* text_view, \
+GtkTextIter* iter, gint* [y], gint* [height])"
+  s7_pointer _p;
+  s7_pointer text_view, iter;
+  gint ref_y;
+  gint ref_height;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_line_yrange", 1, text_view, "GtkTextView*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_line_yrange", 2, iter, "GtkTextIter*");
+  gtk_text_view_get_line_yrange(s7_c_pointer(text_view), s7_c_pointer(iter), &ref_y, &ref_height);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_y), s7_make_integer(sc, ref_height)));
+}
+
+static s7_pointer lg_gtk_text_view_get_line_at_y(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_line_at_y "void gtk_text_view_get_line_at_y(GtkTextView* text_view, GtkTextIter* target_iter, \
+gint y, gint* [line_top])"
+  s7_pointer _p;
+  s7_pointer text_view, target_iter, y;
+  gint ref_line_top;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_line_at_y", 1, text_view, "GtkTextView*");
+  target_iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target_iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_line_at_y", 2, target_iter, "GtkTextIter*");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_line_at_y", 3, y, "gint");
+  gtk_text_view_get_line_at_y(s7_c_pointer(text_view), s7_c_pointer(target_iter), s7_integer(y), &ref_line_top);
+    return(s7_list(sc, 1, s7_make_integer(sc, ref_line_top)));
+}
+
+static s7_pointer lg_gtk_text_view_buffer_to_window_coords(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_buffer_to_window_coords "void gtk_text_view_buffer_to_window_coords(GtkTextView* text_view, \
+GtkTextWindowType win, gint buffer_x, gint buffer_y, gint* [window_x], gint* [window_y])"
+  s7_pointer _p;
+  s7_pointer text_view, win, buffer_x, buffer_y;
+  gint ref_window_x;
+  gint ref_window_y;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_buffer_to_window_coords", 1, text_view, "GtkTextView*");
+  win = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(win)) s7_wrong_type_arg_error(sc, "gtk_text_view_buffer_to_window_coords", 2, win, "GtkTextWindowType");
+  buffer_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(buffer_x)) s7_wrong_type_arg_error(sc, "gtk_text_view_buffer_to_window_coords", 3, buffer_x, "gint");
+  buffer_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(buffer_y)) s7_wrong_type_arg_error(sc, "gtk_text_view_buffer_to_window_coords", 4, buffer_y, "gint");
+  gtk_text_view_buffer_to_window_coords(s7_c_pointer(text_view), s7_integer(win), s7_integer(buffer_x), s7_integer(buffer_y), &ref_window_x, &ref_window_y);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_window_x), s7_make_integer(sc, ref_window_y)));
+}
+
+static s7_pointer lg_gtk_text_view_window_to_buffer_coords(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_window_to_buffer_coords "void gtk_text_view_window_to_buffer_coords(GtkTextView* text_view, \
+GtkTextWindowType win, gint window_x, gint window_y, gint* [buffer_x], gint* [buffer_y])"
+  s7_pointer _p;
+  s7_pointer text_view, win, window_x, window_y;
+  gint ref_buffer_x;
+  gint ref_buffer_y;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_window_to_buffer_coords", 1, text_view, "GtkTextView*");
+  win = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(win)) s7_wrong_type_arg_error(sc, "gtk_text_view_window_to_buffer_coords", 2, win, "GtkTextWindowType");
+  window_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(window_x)) s7_wrong_type_arg_error(sc, "gtk_text_view_window_to_buffer_coords", 3, window_x, "gint");
+  window_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(window_y)) s7_wrong_type_arg_error(sc, "gtk_text_view_window_to_buffer_coords", 4, window_y, "gint");
+  gtk_text_view_window_to_buffer_coords(s7_c_pointer(text_view), s7_integer(win), s7_integer(window_x), s7_integer(window_y), &ref_buffer_x, &ref_buffer_y);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_buffer_x), s7_make_integer(sc, ref_buffer_y)));
+}
+
+static s7_pointer lg_gtk_text_view_get_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_window "GdkWindow* gtk_text_view_get_window(GtkTextView* text_view, GtkTextWindowType win)"
+  s7_pointer _p;
+  s7_pointer text_view, win;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_window", 1, text_view, "GtkTextView*");
+  win = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(win)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_window", 2, win, "GtkTextWindowType");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gtk_text_view_get_window(s7_c_pointer(text_view), s7_integer(win))));
+}
+
+static s7_pointer lg_gtk_text_view_get_window_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_window_type "GtkTextWindowType gtk_text_view_get_window_type(GtkTextView* text_view, \
+GdkWindow* window)"
+  s7_pointer _p;
+  s7_pointer text_view, window;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_window_type", 1, text_view, "GtkTextView*");
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_window_type", 2, window, "GdkWindow*");
+  return(s7_make_integer(sc, gtk_text_view_get_window_type(s7_c_pointer(text_view), s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_text_view_set_border_window_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_border_window_size "void gtk_text_view_set_border_window_size(GtkTextView* text_view, \
+GtkTextWindowType type, gint size)"
+  s7_pointer _p;
+  s7_pointer text_view, type, size;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_border_window_size", 1, text_view, "GtkTextView*");
+  type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(type)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_border_window_size", 2, type, "GtkTextWindowType");
+  size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(size)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_border_window_size", 3, size, "gint");
+  gtk_text_view_set_border_window_size(s7_c_pointer(text_view), s7_integer(type), s7_integer(size));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_border_window_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_border_window_size "gint gtk_text_view_get_border_window_size(GtkTextView* text_view, \
+GtkTextWindowType type)"
+  s7_pointer _p;
+  s7_pointer text_view, type;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_border_window_size", 1, text_view, "GtkTextView*");
+  type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(type)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_border_window_size", 2, type, "GtkTextWindowType");
+  return(s7_make_integer(sc, gtk_text_view_get_border_window_size(s7_c_pointer(text_view), s7_integer(type))));
+}
+
+static s7_pointer lg_gtk_text_view_forward_display_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_forward_display_line "gboolean gtk_text_view_forward_display_line(GtkTextView* text_view, \
+GtkTextIter* iter)"
+  s7_pointer _p;
+  s7_pointer text_view, iter;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_forward_display_line", 1, text_view, "GtkTextView*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_forward_display_line", 2, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_view_forward_display_line(s7_c_pointer(text_view), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_view_backward_display_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_backward_display_line "gboolean gtk_text_view_backward_display_line(GtkTextView* text_view, \
+GtkTextIter* iter)"
+  s7_pointer _p;
+  s7_pointer text_view, iter;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_backward_display_line", 1, text_view, "GtkTextView*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_backward_display_line", 2, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_view_backward_display_line(s7_c_pointer(text_view), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_view_forward_display_line_end(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_forward_display_line_end "gboolean gtk_text_view_forward_display_line_end(GtkTextView* text_view, \
+GtkTextIter* iter)"
+  s7_pointer _p;
+  s7_pointer text_view, iter;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_forward_display_line_end", 1, text_view, "GtkTextView*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_forward_display_line_end", 2, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_view_forward_display_line_end(s7_c_pointer(text_view), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_view_backward_display_line_start(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_backward_display_line_start "gboolean gtk_text_view_backward_display_line_start(GtkTextView* text_view, \
+GtkTextIter* iter)"
+  s7_pointer _p;
+  s7_pointer text_view, iter;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_backward_display_line_start", 1, text_view, "GtkTextView*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_backward_display_line_start", 2, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_view_backward_display_line_start(s7_c_pointer(text_view), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_view_starts_display_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_starts_display_line "gboolean gtk_text_view_starts_display_line(GtkTextView* text_view, \
+GtkTextIter* iter)"
+  s7_pointer _p;
+  s7_pointer text_view, iter;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_starts_display_line", 1, text_view, "GtkTextView*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_starts_display_line", 2, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_view_starts_display_line(s7_c_pointer(text_view), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_view_move_visually(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_move_visually "gboolean gtk_text_view_move_visually(GtkTextView* text_view, \
+GtkTextIter* iter, gint count)"
+  s7_pointer _p;
+  s7_pointer text_view, iter, count;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_move_visually", 1, text_view, "GtkTextView*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_move_visually", 2, iter, "GtkTextIter*");
+  count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(count)) s7_wrong_type_arg_error(sc, "gtk_text_view_move_visually", 3, count, "gint");
+  return(s7_make_boolean(sc, gtk_text_view_move_visually(s7_c_pointer(text_view), s7_c_pointer(iter), s7_integer(count))));
+}
+
+static s7_pointer lg_gtk_text_view_add_child_at_anchor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_add_child_at_anchor "void gtk_text_view_add_child_at_anchor(GtkTextView* text_view, \
+GtkWidget* child, GtkTextChildAnchor* anchor)"
+  s7_pointer _p;
+  s7_pointer text_view, child, anchor;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_add_child_at_anchor", 1, text_view, "GtkTextView*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_add_child_at_anchor", 2, child, "GtkWidget*");
+  anchor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(anchor, GtkTextChildAnchor__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_add_child_at_anchor", 3, anchor, "GtkTextChildAnchor*");
+  gtk_text_view_add_child_at_anchor(s7_c_pointer(text_view), s7_c_pointer(child), s7_c_pointer(anchor));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_add_child_in_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_add_child_in_window "void gtk_text_view_add_child_in_window(GtkTextView* text_view, \
+GtkWidget* child, GtkTextWindowType which_window, gint xpos, gint ypos)"
+  s7_pointer _p;
+  s7_pointer text_view, child, which_window, xpos, ypos;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_add_child_in_window", 1, text_view, "GtkTextView*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_add_child_in_window", 2, child, "GtkWidget*");
+  which_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(which_window)) s7_wrong_type_arg_error(sc, "gtk_text_view_add_child_in_window", 3, which_window, "GtkTextWindowType");
+  xpos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(xpos)) s7_wrong_type_arg_error(sc, "gtk_text_view_add_child_in_window", 4, xpos, "gint");
+  ypos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(ypos)) s7_wrong_type_arg_error(sc, "gtk_text_view_add_child_in_window", 5, ypos, "gint");
+  gtk_text_view_add_child_in_window(s7_c_pointer(text_view), s7_c_pointer(child), s7_integer(which_window), s7_integer(xpos), s7_integer(ypos));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_move_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_move_child "void gtk_text_view_move_child(GtkTextView* text_view, GtkWidget* child, \
+gint xpos, gint ypos)"
+  s7_pointer _p;
+  s7_pointer text_view, child, xpos, ypos;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_move_child", 1, text_view, "GtkTextView*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_move_child", 2, child, "GtkWidget*");
+  xpos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(xpos)) s7_wrong_type_arg_error(sc, "gtk_text_view_move_child", 3, xpos, "gint");
+  ypos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(ypos)) s7_wrong_type_arg_error(sc, "gtk_text_view_move_child", 4, ypos, "gint");
+  gtk_text_view_move_child(s7_c_pointer(text_view), s7_c_pointer(child), s7_integer(xpos), s7_integer(ypos));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_set_wrap_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_wrap_mode "void gtk_text_view_set_wrap_mode(GtkTextView* text_view, GtkWrapMode wrap_mode)"
+  s7_pointer _p;
+  s7_pointer text_view, wrap_mode;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_wrap_mode", 1, text_view, "GtkTextView*");
+  wrap_mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(wrap_mode)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_wrap_mode", 2, wrap_mode, "GtkWrapMode");
+  gtk_text_view_set_wrap_mode(s7_c_pointer(text_view), s7_integer(wrap_mode));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_wrap_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_wrap_mode "GtkWrapMode gtk_text_view_get_wrap_mode(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_wrap_mode", 1, text_view, "GtkTextView*");
+  return(s7_make_integer(sc, gtk_text_view_get_wrap_mode(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_set_editable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_editable "void gtk_text_view_set_editable(GtkTextView* text_view, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer text_view, setting;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_editable", 1, text_view, "GtkTextView*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_editable", 2, setting, "gboolean");
+  gtk_text_view_set_editable(s7_c_pointer(text_view), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_editable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_editable "gboolean gtk_text_view_get_editable(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_editable", 1, text_view, "GtkTextView*");
+  return(s7_make_boolean(sc, gtk_text_view_get_editable(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_set_pixels_above_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_pixels_above_lines "void gtk_text_view_set_pixels_above_lines(GtkTextView* text_view, \
+gint pixels_above_lines)"
+  s7_pointer _p;
+  s7_pointer text_view, pixels_above_lines;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_pixels_above_lines", 1, text_view, "GtkTextView*");
+  pixels_above_lines = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pixels_above_lines)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_pixels_above_lines", 2, pixels_above_lines, "gint");
+  gtk_text_view_set_pixels_above_lines(s7_c_pointer(text_view), s7_integer(pixels_above_lines));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_pixels_above_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_pixels_above_lines "gint gtk_text_view_get_pixels_above_lines(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_pixels_above_lines", 1, text_view, "GtkTextView*");
+  return(s7_make_integer(sc, gtk_text_view_get_pixels_above_lines(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_set_pixels_below_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_pixels_below_lines "void gtk_text_view_set_pixels_below_lines(GtkTextView* text_view, \
+gint pixels_below_lines)"
+  s7_pointer _p;
+  s7_pointer text_view, pixels_below_lines;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_pixels_below_lines", 1, text_view, "GtkTextView*");
+  pixels_below_lines = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pixels_below_lines)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_pixels_below_lines", 2, pixels_below_lines, "gint");
+  gtk_text_view_set_pixels_below_lines(s7_c_pointer(text_view), s7_integer(pixels_below_lines));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_pixels_below_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_pixels_below_lines "gint gtk_text_view_get_pixels_below_lines(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_pixels_below_lines", 1, text_view, "GtkTextView*");
+  return(s7_make_integer(sc, gtk_text_view_get_pixels_below_lines(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_set_pixels_inside_wrap(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_pixels_inside_wrap "void gtk_text_view_set_pixels_inside_wrap(GtkTextView* text_view, \
+gint pixels_inside_wrap)"
+  s7_pointer _p;
+  s7_pointer text_view, pixels_inside_wrap;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_pixels_inside_wrap", 1, text_view, "GtkTextView*");
+  pixels_inside_wrap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pixels_inside_wrap)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_pixels_inside_wrap", 2, pixels_inside_wrap, "gint");
+  gtk_text_view_set_pixels_inside_wrap(s7_c_pointer(text_view), s7_integer(pixels_inside_wrap));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_pixels_inside_wrap(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_pixels_inside_wrap "gint gtk_text_view_get_pixels_inside_wrap(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_pixels_inside_wrap", 1, text_view, "GtkTextView*");
+  return(s7_make_integer(sc, gtk_text_view_get_pixels_inside_wrap(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_set_justification(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_justification "void gtk_text_view_set_justification(GtkTextView* text_view, \
+GtkJustification justification)"
+  s7_pointer _p;
+  s7_pointer text_view, justification;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_justification", 1, text_view, "GtkTextView*");
+  justification = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(justification)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_justification", 2, justification, "GtkJustification");
+  gtk_text_view_set_justification(s7_c_pointer(text_view), s7_integer(justification));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_justification(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_justification "GtkJustification gtk_text_view_get_justification(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_justification", 1, text_view, "GtkTextView*");
+  return(s7_make_integer(sc, gtk_text_view_get_justification(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_set_left_margin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_left_margin "void gtk_text_view_set_left_margin(GtkTextView* text_view, \
+gint left_margin)"
+  s7_pointer _p;
+  s7_pointer text_view, left_margin;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_left_margin", 1, text_view, "GtkTextView*");
+  left_margin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(left_margin)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_left_margin", 2, left_margin, "gint");
+  gtk_text_view_set_left_margin(s7_c_pointer(text_view), s7_integer(left_margin));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_left_margin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_left_margin "gint gtk_text_view_get_left_margin(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_left_margin", 1, text_view, "GtkTextView*");
+  return(s7_make_integer(sc, gtk_text_view_get_left_margin(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_set_right_margin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_right_margin "void gtk_text_view_set_right_margin(GtkTextView* text_view, \
+gint right_margin)"
+  s7_pointer _p;
+  s7_pointer text_view, right_margin;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_right_margin", 1, text_view, "GtkTextView*");
+  right_margin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(right_margin)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_right_margin", 2, right_margin, "gint");
+  gtk_text_view_set_right_margin(s7_c_pointer(text_view), s7_integer(right_margin));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_right_margin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_right_margin "gint gtk_text_view_get_right_margin(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_right_margin", 1, text_view, "GtkTextView*");
+  return(s7_make_integer(sc, gtk_text_view_get_right_margin(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_set_indent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_indent "void gtk_text_view_set_indent(GtkTextView* text_view, gint indent)"
+  s7_pointer _p;
+  s7_pointer text_view, indent;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_indent", 1, text_view, "GtkTextView*");
+  indent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(indent)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_indent", 2, indent, "gint");
+  gtk_text_view_set_indent(s7_c_pointer(text_view), s7_integer(indent));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_indent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_indent "gint gtk_text_view_get_indent(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_indent", 1, text_view, "GtkTextView*");
+  return(s7_make_integer(sc, gtk_text_view_get_indent(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_set_tabs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_tabs "void gtk_text_view_set_tabs(GtkTextView* text_view, PangoTabArray* tabs)"
+  s7_pointer _p;
+  s7_pointer text_view, tabs;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_tabs", 1, text_view, "GtkTextView*");
+  tabs = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tabs, PangoTabArray__sym)) && (tabs != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_tabs", 2, tabs, "PangoTabArray*");
+  gtk_text_view_set_tabs(s7_c_pointer(text_view), s7_c_pointer(tabs));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_tabs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_tabs "PangoTabArray* gtk_text_view_get_tabs(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_tabs", 1, text_view, "GtkTextView*");
+  return(s7_make_type_with_c_pointer(sc, PangoTabArray__sym, gtk_text_view_get_tabs(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_toggle_button_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toggle_button_new "GtkWidget* gtk_toggle_button_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_toggle_button_new()));
+}
+
+static s7_pointer lg_gtk_toggle_button_new_with_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toggle_button_new_with_label "GtkWidget* gtk_toggle_button_new_with_label(gchar* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_toggle_button_new_with_label", 1, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_toggle_button_new_with_label(s7_string(label))));
+}
+
+static s7_pointer lg_gtk_toggle_button_new_with_mnemonic(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toggle_button_new_with_mnemonic "GtkWidget* gtk_toggle_button_new_with_mnemonic(gchar* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_toggle_button_new_with_mnemonic", 1, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_toggle_button_new_with_mnemonic(s7_string(label))));
+}
+
+static s7_pointer lg_gtk_toggle_button_set_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toggle_button_set_active "void gtk_toggle_button_set_active(GtkToggleButton* toggle_button, \
+gboolean is_active)"
+  s7_pointer _p;
+  s7_pointer toggle_button, is_active;
+  _p = args;
+  toggle_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(toggle_button, GtkToggleButton__sym)) s7_wrong_type_arg_error(sc, "gtk_toggle_button_set_active", 1, toggle_button, "GtkToggleButton*");
+  is_active = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(is_active)) s7_wrong_type_arg_error(sc, "gtk_toggle_button_set_active", 2, is_active, "gboolean");
+  gtk_toggle_button_set_active(s7_c_pointer(toggle_button), lg_boolean(is_active));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_toggle_button_get_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toggle_button_get_active "gboolean gtk_toggle_button_get_active(GtkToggleButton* toggle_button)"
+  s7_pointer toggle_button;
+  toggle_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(toggle_button, GtkToggleButton__sym)) s7_wrong_type_arg_error(sc, "gtk_toggle_button_get_active", 1, toggle_button, "GtkToggleButton*");
+  return(s7_make_boolean(sc, gtk_toggle_button_get_active(s7_c_pointer(toggle_button))));
+}
+
+static s7_pointer lg_gtk_toggle_button_toggled(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toggle_button_toggled "void gtk_toggle_button_toggled(GtkToggleButton* toggle_button)"
+  s7_pointer toggle_button;
+  toggle_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(toggle_button, GtkToggleButton__sym)) s7_wrong_type_arg_error(sc, "gtk_toggle_button_toggled", 1, toggle_button, "GtkToggleButton*");
+  gtk_toggle_button_toggled(s7_c_pointer(toggle_button));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_toolbar_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toolbar_new "GtkWidget* gtk_toolbar_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_toolbar_new()));
+}
+
+static s7_pointer lg_gtk_toolbar_set_style(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toolbar_set_style "void gtk_toolbar_set_style(GtkToolbar* toolbar, GtkToolbarStyle style)"
+  s7_pointer _p;
+  s7_pointer toolbar, style;
+  _p = args;
+  toolbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(toolbar, GtkToolbar__sym)) s7_wrong_type_arg_error(sc, "gtk_toolbar_set_style", 1, toolbar, "GtkToolbar*");
+  style = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(style)) s7_wrong_type_arg_error(sc, "gtk_toolbar_set_style", 2, style, "GtkToolbarStyle");
+  gtk_toolbar_set_style(s7_c_pointer(toolbar), s7_integer(style));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_toolbar_unset_style(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toolbar_unset_style "void gtk_toolbar_unset_style(GtkToolbar* toolbar)"
+  s7_pointer toolbar;
+  toolbar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(toolbar, GtkToolbar__sym)) s7_wrong_type_arg_error(sc, "gtk_toolbar_unset_style", 1, toolbar, "GtkToolbar*");
+  gtk_toolbar_unset_style(s7_c_pointer(toolbar));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_toolbar_get_style(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toolbar_get_style "GtkToolbarStyle gtk_toolbar_get_style(GtkToolbar* toolbar)"
+  s7_pointer toolbar;
+  toolbar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(toolbar, GtkToolbar__sym)) s7_wrong_type_arg_error(sc, "gtk_toolbar_get_style", 1, toolbar, "GtkToolbar*");
+  return(s7_make_integer(sc, gtk_toolbar_get_style(s7_c_pointer(toolbar))));
+}
+
+static s7_pointer lg_gtk_tree_drag_source_row_draggable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_drag_source_row_draggable "gboolean gtk_tree_drag_source_row_draggable(GtkTreeDragSource* drag_source, \
+GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer drag_source, path;
+  _p = args;
+  drag_source = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(drag_source, GtkTreeDragSource__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_drag_source_row_draggable", 1, drag_source, "GtkTreeDragSource*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_drag_source_row_draggable", 2, path, "GtkTreePath*");
+  return(s7_make_boolean(sc, gtk_tree_drag_source_row_draggable(s7_c_pointer(drag_source), s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_drag_source_drag_data_delete(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_drag_source_drag_data_delete "gboolean gtk_tree_drag_source_drag_data_delete(GtkTreeDragSource* drag_source, \
+GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer drag_source, path;
+  _p = args;
+  drag_source = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(drag_source, GtkTreeDragSource__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_drag_source_drag_data_delete", 1, drag_source, "GtkTreeDragSource*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_drag_source_drag_data_delete", 2, path, "GtkTreePath*");
+  return(s7_make_boolean(sc, gtk_tree_drag_source_drag_data_delete(s7_c_pointer(drag_source), s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_drag_source_drag_data_get(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_drag_source_drag_data_get "gboolean gtk_tree_drag_source_drag_data_get(GtkTreeDragSource* drag_source, \
+GtkTreePath* path, GtkSelectionData* selection_data)"
+  s7_pointer _p;
+  s7_pointer drag_source, path, selection_data;
+  _p = args;
+  drag_source = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(drag_source, GtkTreeDragSource__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_drag_source_drag_data_get", 1, drag_source, "GtkTreeDragSource*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_drag_source_drag_data_get", 2, path, "GtkTreePath*");
+  selection_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_drag_source_drag_data_get", 3, selection_data, "GtkSelectionData*");
+  return(s7_make_boolean(sc, gtk_tree_drag_source_drag_data_get(s7_c_pointer(drag_source), s7_c_pointer(path), s7_c_pointer(selection_data))));
+}
+
+static s7_pointer lg_gtk_tree_drag_dest_drag_data_received(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_drag_dest_drag_data_received "gboolean gtk_tree_drag_dest_drag_data_received(GtkTreeDragDest* drag_dest, \
+GtkTreePath* dest, GtkSelectionData* selection_data)"
+  s7_pointer _p;
+  s7_pointer drag_dest, dest, selection_data;
+  _p = args;
+  drag_dest = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(drag_dest, GtkTreeDragDest__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_drag_dest_drag_data_received", 1, drag_dest, "GtkTreeDragDest*");
+  dest = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dest, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_drag_dest_drag_data_received", 2, dest, "GtkTreePath*");
+  selection_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_drag_dest_drag_data_received", 3, selection_data, "GtkSelectionData*");
+  return(s7_make_boolean(sc, gtk_tree_drag_dest_drag_data_received(s7_c_pointer(drag_dest), s7_c_pointer(dest), s7_c_pointer(selection_data))));
+}
+
+static s7_pointer lg_gtk_tree_drag_dest_row_drop_possible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_drag_dest_row_drop_possible "gboolean gtk_tree_drag_dest_row_drop_possible(GtkTreeDragDest* drag_dest, \
+GtkTreePath* dest_path, GtkSelectionData* selection_data)"
+  s7_pointer _p;
+  s7_pointer drag_dest, dest_path, selection_data;
+  _p = args;
+  drag_dest = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(drag_dest, GtkTreeDragDest__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_drag_dest_row_drop_possible", 1, drag_dest, "GtkTreeDragDest*");
+  dest_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dest_path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_drag_dest_row_drop_possible", 2, dest_path, "GtkTreePath*");
+  selection_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_drag_dest_row_drop_possible", 3, selection_data, "GtkSelectionData*");
+  return(s7_make_boolean(sc, gtk_tree_drag_dest_row_drop_possible(s7_c_pointer(drag_dest), s7_c_pointer(dest_path), s7_c_pointer(selection_data))));
+}
+
+static s7_pointer lg_gtk_tree_set_row_drag_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_set_row_drag_data "gboolean gtk_tree_set_row_drag_data(GtkSelectionData* selection_data, \
+GtkTreeModel* tree_model, GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer selection_data, tree_model, path;
+  _p = args;
+  selection_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_set_row_drag_data", 1, selection_data, "GtkSelectionData*");
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_set_row_drag_data", 2, tree_model, "GtkTreeModel*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_set_row_drag_data", 3, path, "GtkTreePath*");
+  return(s7_make_boolean(sc, gtk_tree_set_row_drag_data(s7_c_pointer(selection_data), s7_c_pointer(tree_model), s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_get_row_drag_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_get_row_drag_data "gboolean gtk_tree_get_row_drag_data(GtkSelectionData* selection_data, \
+GtkTreeModel** [tree_model], GtkTreePath** [path])"
+  s7_pointer _p;
+  s7_pointer selection_data;
+  GtkTreeModel* ref_tree_model = NULL;
+  GtkTreePath* ref_path = NULL;
+  _p = args;
+  selection_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_get_row_drag_data", 1, selection_data, "GtkSelectionData*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_tree_get_row_drag_data(s7_c_pointer(selection_data), &ref_tree_model, &ref_path));
+      return(s7_list(sc, 3, result, s7_make_c_pointer(sc, ref_tree_model), s7_make_c_pointer(sc, ref_path)));
+   }
+}
+
+static s7_pointer lg_gtk_tree_path_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_new "GtkTreePath* gtk_tree_path_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkTreePath__sym, gtk_tree_path_new()));
+}
+
+static s7_pointer lg_gtk_tree_path_new_from_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_new_from_string "GtkTreePath* gtk_tree_path_new_from_string(gchar* path)"
+  s7_pointer path;
+  path = s7_car(args);
+  if (!s7_is_string(path)) s7_wrong_type_arg_error(sc, "gtk_tree_path_new_from_string", 1, path, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreePath__sym, gtk_tree_path_new_from_string(s7_string(path))));
+}
+
+static s7_pointer lg_gtk_tree_path_to_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_to_string "gchar* gtk_tree_path_to_string(GtkTreePath* path)"
+  s7_pointer path;
+  path = s7_car(args);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_to_string", 1, path, "GtkTreePath*");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_tree_path_to_string(s7_c_pointer(path));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_tree_path_new_first(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_new_first "GtkTreePath* gtk_tree_path_new_first( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkTreePath__sym, gtk_tree_path_new_first()));
+}
+
+static s7_pointer lg_gtk_tree_path_append_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_append_index "void gtk_tree_path_append_index(GtkTreePath* path, gint index)"
+  s7_pointer _p;
+  s7_pointer path, index;
+  _p = args;
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_append_index", 1, path, "GtkTreePath*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "gtk_tree_path_append_index", 2, index, "gint");
+  gtk_tree_path_append_index(s7_c_pointer(path), s7_integer(index));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_path_prepend_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_prepend_index "void gtk_tree_path_prepend_index(GtkTreePath* path, gint index)"
+  s7_pointer _p;
+  s7_pointer path, index;
+  _p = args;
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_prepend_index", 1, path, "GtkTreePath*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "gtk_tree_path_prepend_index", 2, index, "gint");
+  gtk_tree_path_prepend_index(s7_c_pointer(path), s7_integer(index));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_path_get_depth(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_get_depth "gint gtk_tree_path_get_depth(GtkTreePath* path)"
+  s7_pointer path;
+  path = s7_car(args);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_get_depth", 1, path, "GtkTreePath*");
+  return(s7_make_integer(sc, gtk_tree_path_get_depth(s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_path_get_indices(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_get_indices "gint* gtk_tree_path_get_indices(GtkTreePath* path)"
+  s7_pointer path;
+  path = s7_car(args);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_get_indices", 1, path, "GtkTreePath*");
+  return(s7_make_type_with_c_pointer(sc, gint__sym, gtk_tree_path_get_indices(s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_path_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_free "void gtk_tree_path_free(GtkTreePath* path)"
+  s7_pointer path;
+  path = s7_car(args);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_free", 1, path, "GtkTreePath*");
+  gtk_tree_path_free(s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_path_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_copy "GtkTreePath* gtk_tree_path_copy(GtkTreePath* path)"
+  s7_pointer path;
+  path = s7_car(args);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_copy", 1, path, "GtkTreePath*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreePath__sym, gtk_tree_path_copy(s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_path_compare(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_compare "gint gtk_tree_path_compare(GtkTreePath* a, GtkTreePath* b)"
+  s7_pointer _p;
+  s7_pointer a, b;
+  _p = args;
+  a = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(a, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_compare", 1, a, "GtkTreePath*");
+  b = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(b, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_compare", 2, b, "GtkTreePath*");
+  return(s7_make_integer(sc, gtk_tree_path_compare(s7_c_pointer(a), s7_c_pointer(b))));
+}
+
+static s7_pointer lg_gtk_tree_path_next(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_next "void gtk_tree_path_next(GtkTreePath* path)"
+  s7_pointer path;
+  path = s7_car(args);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_next", 1, path, "GtkTreePath*");
+  gtk_tree_path_next(s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_path_prev(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_prev "gboolean gtk_tree_path_prev(GtkTreePath* path)"
+  s7_pointer path;
+  path = s7_car(args);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_prev", 1, path, "GtkTreePath*");
+  return(s7_make_boolean(sc, gtk_tree_path_prev(s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_path_up(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_up "gboolean gtk_tree_path_up(GtkTreePath* path)"
+  s7_pointer path;
+  path = s7_car(args);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_up", 1, path, "GtkTreePath*");
+  return(s7_make_boolean(sc, gtk_tree_path_up(s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_path_down(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_down "void gtk_tree_path_down(GtkTreePath* path)"
+  s7_pointer path;
+  path = s7_car(args);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_down", 1, path, "GtkTreePath*");
+  gtk_tree_path_down(s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_path_is_ancestor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_is_ancestor "gboolean gtk_tree_path_is_ancestor(GtkTreePath* path, GtkTreePath* descendant)"
+  s7_pointer _p;
+  s7_pointer path, descendant;
+  _p = args;
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_is_ancestor", 1, path, "GtkTreePath*");
+  descendant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(descendant, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_is_ancestor", 2, descendant, "GtkTreePath*");
+  return(s7_make_boolean(sc, gtk_tree_path_is_ancestor(s7_c_pointer(path), s7_c_pointer(descendant))));
+}
+
+static s7_pointer lg_gtk_tree_path_is_descendant(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_path_is_descendant "gboolean gtk_tree_path_is_descendant(GtkTreePath* path, GtkTreePath* ancestor)"
+  s7_pointer _p;
+  s7_pointer path, ancestor;
+  _p = args;
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_is_descendant", 1, path, "GtkTreePath*");
+  ancestor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ancestor, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_path_is_descendant", 2, ancestor, "GtkTreePath*");
+  return(s7_make_boolean(sc, gtk_tree_path_is_descendant(s7_c_pointer(path), s7_c_pointer(ancestor))));
+}
+
+static s7_pointer lg_gtk_tree_row_reference_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_row_reference_new "GtkTreeRowReference* gtk_tree_row_reference_new(GtkTreeModel* model, \
+GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer model, path;
+  _p = args;
+  model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_new", 1, model, "GtkTreeModel*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_new", 2, path, "GtkTreePath*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeRowReference__sym, gtk_tree_row_reference_new(s7_c_pointer(model), s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_row_reference_new_proxy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_row_reference_new_proxy "GtkTreeRowReference* gtk_tree_row_reference_new_proxy(GObject* proxy, \
+GtkTreeModel* model, GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer proxy, model, path;
+  _p = args;
+  proxy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(proxy, GObject__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_new_proxy", 1, proxy, "GObject*");
+  model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_new_proxy", 2, model, "GtkTreeModel*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_new_proxy", 3, path, "GtkTreePath*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeRowReference__sym, gtk_tree_row_reference_new_proxy(s7_c_pointer(proxy), s7_c_pointer(model), s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_row_reference_get_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_row_reference_get_path "GtkTreePath* gtk_tree_row_reference_get_path(GtkTreeRowReference* reference)"
+  s7_pointer reference;
+  reference = s7_car(args);
+  if (!s7_is_c_pointer_of_type(reference, GtkTreeRowReference__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_get_path", 1, reference, "GtkTreeRowReference*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreePath__sym, gtk_tree_row_reference_get_path(s7_c_pointer(reference))));
+}
+
+static s7_pointer lg_gtk_tree_row_reference_valid(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_row_reference_valid "gboolean gtk_tree_row_reference_valid(GtkTreeRowReference* reference)"
+  s7_pointer reference;
+  reference = s7_car(args);
+  if (!s7_is_c_pointer_of_type(reference, GtkTreeRowReference__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_valid", 1, reference, "GtkTreeRowReference*");
+  return(s7_make_boolean(sc, gtk_tree_row_reference_valid(s7_c_pointer(reference))));
+}
+
+static s7_pointer lg_gtk_tree_row_reference_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_row_reference_free "void gtk_tree_row_reference_free(GtkTreeRowReference* reference)"
+  s7_pointer reference;
+  reference = s7_car(args);
+  if (!s7_is_c_pointer_of_type(reference, GtkTreeRowReference__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_free", 1, reference, "GtkTreeRowReference*");
+  gtk_tree_row_reference_free(s7_c_pointer(reference));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_row_reference_inserted(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_row_reference_inserted "void gtk_tree_row_reference_inserted(GObject* proxy, GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer proxy, path;
+  _p = args;
+  proxy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(proxy, GObject__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_inserted", 1, proxy, "GObject*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_inserted", 2, path, "GtkTreePath*");
+  gtk_tree_row_reference_inserted(s7_c_pointer(proxy), s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_row_reference_deleted(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_row_reference_deleted "void gtk_tree_row_reference_deleted(GObject* proxy, GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer proxy, path;
+  _p = args;
+  proxy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(proxy, GObject__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_deleted", 1, proxy, "GObject*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_deleted", 2, path, "GtkTreePath*");
+  gtk_tree_row_reference_deleted(s7_c_pointer(proxy), s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_row_reference_reordered(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_row_reference_reordered "void gtk_tree_row_reference_reordered(GObject* proxy, GtkTreePath* path, \
+GtkTreeIter* iter, gint* new_order)"
+  s7_pointer _p;
+  s7_pointer proxy, path, iter, new_order;
+  _p = args;
+  proxy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(proxy, GObject__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_reordered", 1, proxy, "GObject*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_reordered", 2, path, "GtkTreePath*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_reordered", 3, iter, "GtkTreeIter*");
+  new_order = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(new_order, gint__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_reordered", 4, new_order, "gint*");
+  gtk_tree_row_reference_reordered(s7_c_pointer(proxy), s7_c_pointer(path), s7_c_pointer(iter), s7_c_pointer(new_order));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_iter_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_iter_copy "GtkTreeIter* gtk_tree_iter_copy(GtkTreeIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_iter_copy", 1, iter, "GtkTreeIter*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeIter__sym, gtk_tree_iter_copy(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_tree_iter_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_iter_free "void gtk_tree_iter_free(GtkTreeIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_iter_free", 1, iter, "GtkTreeIter*");
+  gtk_tree_iter_free(s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_model_get_flags(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_get_flags "GtkTreeModelFlags gtk_tree_model_get_flags(GtkTreeModel* tree_model)"
+  s7_pointer tree_model;
+  tree_model = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_flags", 1, tree_model, "GtkTreeModel*");
+  return(s7_make_integer(sc, gtk_tree_model_get_flags(s7_c_pointer(tree_model))));
+}
+
+static s7_pointer lg_gtk_tree_model_get_n_columns(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_get_n_columns "gint gtk_tree_model_get_n_columns(GtkTreeModel* tree_model)"
+  s7_pointer tree_model;
+  tree_model = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_n_columns", 1, tree_model, "GtkTreeModel*");
+  return(s7_make_integer(sc, gtk_tree_model_get_n_columns(s7_c_pointer(tree_model))));
+}
+
+static s7_pointer lg_gtk_tree_model_get_column_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_get_column_type "GType gtk_tree_model_get_column_type(GtkTreeModel* tree_model, \
+gint index)"
+  s7_pointer _p;
+  s7_pointer tree_model, index;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_column_type", 1, tree_model, "GtkTreeModel*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_column_type", 2, index, "gint");
+  return(s7_make_integer(sc, gtk_tree_model_get_column_type(s7_c_pointer(tree_model), s7_integer(index))));
+}
+
+static s7_pointer lg_gtk_tree_model_get_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_get_iter "gboolean gtk_tree_model_get_iter(GtkTreeModel* tree_model, GtkTreeIter* iter, \
+GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer tree_model, iter, path;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_iter", 1, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_iter", 2, iter, "GtkTreeIter*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_iter", 3, path, "GtkTreePath*");
+  return(s7_make_boolean(sc, gtk_tree_model_get_iter(s7_c_pointer(tree_model), s7_c_pointer(iter), s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_model_get_iter_from_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_get_iter_from_string "gboolean gtk_tree_model_get_iter_from_string(GtkTreeModel* tree_model, \
+GtkTreeIter* iter, gchar* path_string)"
+  s7_pointer _p;
+  s7_pointer tree_model, iter, path_string;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_iter_from_string", 1, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_iter_from_string", 2, iter, "GtkTreeIter*");
+  path_string = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(path_string)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_iter_from_string", 3, path_string, "gchar*");
+  return(s7_make_boolean(sc, gtk_tree_model_get_iter_from_string(s7_c_pointer(tree_model), s7_c_pointer(iter), s7_string(path_string))));
+}
+
+static s7_pointer lg_gtk_tree_model_get_iter_first(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_get_iter_first "gboolean gtk_tree_model_get_iter_first(GtkTreeModel* tree_model, \
+GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_model, iter;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_iter_first", 1, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_iter_first", 2, iter, "GtkTreeIter*");
+  return(s7_make_boolean(sc, gtk_tree_model_get_iter_first(s7_c_pointer(tree_model), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_tree_model_get_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_get_path "GtkTreePath* gtk_tree_model_get_path(GtkTreeModel* tree_model, GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_model, iter;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_path", 1, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_path", 2, iter, "GtkTreeIter*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreePath__sym, gtk_tree_model_get_path(s7_c_pointer(tree_model), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_tree_model_iter_next(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_iter_next "gboolean gtk_tree_model_iter_next(GtkTreeModel* tree_model, GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_model, iter;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_next", 1, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_next", 2, iter, "GtkTreeIter*");
+  return(s7_make_boolean(sc, gtk_tree_model_iter_next(s7_c_pointer(tree_model), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_tree_model_iter_children(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_iter_children "gboolean gtk_tree_model_iter_children(GtkTreeModel* tree_model, \
+GtkTreeIter* iter, GtkTreeIter* parent)"
+  s7_pointer _p;
+  s7_pointer tree_model, iter, parent;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_children", 1, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_children", 2, iter, "GtkTreeIter*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(parent, GtkTreeIter__sym)) && (parent != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_children", 3, parent, "GtkTreeIter*");
+  return(s7_make_boolean(sc, gtk_tree_model_iter_children(s7_c_pointer(tree_model), s7_c_pointer(iter), s7_c_pointer(parent))));
+}
+
+static s7_pointer lg_gtk_tree_model_iter_has_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_iter_has_child "gboolean gtk_tree_model_iter_has_child(GtkTreeModel* tree_model, \
+GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_model, iter;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_has_child", 1, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_has_child", 2, iter, "GtkTreeIter*");
+  return(s7_make_boolean(sc, gtk_tree_model_iter_has_child(s7_c_pointer(tree_model), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_tree_model_iter_n_children(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_iter_n_children "gint gtk_tree_model_iter_n_children(GtkTreeModel* tree_model, \
+GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_model, iter;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_n_children", 1, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) && (iter != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_n_children", 2, iter, "GtkTreeIter*");
+  return(s7_make_integer(sc, gtk_tree_model_iter_n_children(s7_c_pointer(tree_model), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_tree_model_iter_nth_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_iter_nth_child "gboolean gtk_tree_model_iter_nth_child(GtkTreeModel* tree_model, \
+GtkTreeIter* iter, GtkTreeIter* parent, gint n)"
+  s7_pointer _p;
+  s7_pointer tree_model, iter, parent, n;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_nth_child", 1, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_nth_child", 2, iter, "GtkTreeIter*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(parent, GtkTreeIter__sym)) && (parent != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_nth_child", 3, parent, "GtkTreeIter*");
+  n = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_nth_child", 4, n, "gint");
+  return(s7_make_boolean(sc, gtk_tree_model_iter_nth_child(s7_c_pointer(tree_model), s7_c_pointer(iter), s7_c_pointer(parent), s7_integer(n))));
+}
+
+static s7_pointer lg_gtk_tree_model_iter_parent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_iter_parent "gboolean gtk_tree_model_iter_parent(GtkTreeModel* tree_model, \
+GtkTreeIter* iter, GtkTreeIter* child)"
+  s7_pointer _p;
+  s7_pointer tree_model, iter, child;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_parent", 1, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_parent", 2, iter, "GtkTreeIter*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_parent", 3, child, "GtkTreeIter*");
+  return(s7_make_boolean(sc, gtk_tree_model_iter_parent(s7_c_pointer(tree_model), s7_c_pointer(iter), s7_c_pointer(child))));
+}
+
+static s7_pointer lg_gtk_tree_model_ref_node(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_ref_node "void gtk_tree_model_ref_node(GtkTreeModel* tree_model, GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_model, iter;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_ref_node", 1, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_ref_node", 2, iter, "GtkTreeIter*");
+  gtk_tree_model_ref_node(s7_c_pointer(tree_model), s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_model_unref_node(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_unref_node "void gtk_tree_model_unref_node(GtkTreeModel* tree_model, GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_model, iter;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_unref_node", 1, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_unref_node", 2, iter, "GtkTreeIter*");
+  gtk_tree_model_unref_node(s7_c_pointer(tree_model), s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_model_foreach(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_foreach "void gtk_tree_model_foreach(GtkTreeModel* model, GtkTreeModelForeachFunc func, \
+lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer model, func, func_info;
+  _p = args;
+  model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_foreach", 1, model, "GtkTreeModel*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkTreeModelForeachFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_foreach", 2, func, "GtkTreeModelForeachFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_model_foreach", 3, func_info, "lambda_data");
+  {
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    gtk_tree_model_foreach(s7_c_pointer(model), s7_c_pointer(func), (gpointer)lg_ptr);
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_tree_model_row_changed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_row_changed "void gtk_tree_model_row_changed(GtkTreeModel* tree_model, GtkTreePath* path, \
+GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_model, path, iter;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_row_changed", 1, tree_model, "GtkTreeModel*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_row_changed", 2, path, "GtkTreePath*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_row_changed", 3, iter, "GtkTreeIter*");
+  gtk_tree_model_row_changed(s7_c_pointer(tree_model), s7_c_pointer(path), s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_model_row_inserted(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_row_inserted "void gtk_tree_model_row_inserted(GtkTreeModel* tree_model, GtkTreePath* path, \
+GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_model, path, iter;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_row_inserted", 1, tree_model, "GtkTreeModel*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_row_inserted", 2, path, "GtkTreePath*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_row_inserted", 3, iter, "GtkTreeIter*");
+  gtk_tree_model_row_inserted(s7_c_pointer(tree_model), s7_c_pointer(path), s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_model_row_has_child_toggled(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_row_has_child_toggled "void gtk_tree_model_row_has_child_toggled(GtkTreeModel* tree_model, \
+GtkTreePath* path, GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_model, path, iter;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_row_has_child_toggled", 1, tree_model, "GtkTreeModel*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_row_has_child_toggled", 2, path, "GtkTreePath*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_row_has_child_toggled", 3, iter, "GtkTreeIter*");
+  gtk_tree_model_row_has_child_toggled(s7_c_pointer(tree_model), s7_c_pointer(path), s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_model_row_deleted(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_row_deleted "void gtk_tree_model_row_deleted(GtkTreeModel* tree_model, GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer tree_model, path;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_row_deleted", 1, tree_model, "GtkTreeModel*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_row_deleted", 2, path, "GtkTreePath*");
+  gtk_tree_model_row_deleted(s7_c_pointer(tree_model), s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_model_rows_reordered(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_rows_reordered "void gtk_tree_model_rows_reordered(GtkTreeModel* tree_model, \
+GtkTreePath* path, GtkTreeIter* iter, gint* new_order)"
+  s7_pointer _p;
+  s7_pointer tree_model, path, iter, new_order;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_rows_reordered", 1, tree_model, "GtkTreeModel*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_rows_reordered", 2, path, "GtkTreePath*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_rows_reordered", 3, iter, "GtkTreeIter*");
+  new_order = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(new_order, gint__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_rows_reordered", 4, new_order, "gint*");
+  gtk_tree_model_rows_reordered(s7_c_pointer(tree_model), s7_c_pointer(path), s7_c_pointer(iter), s7_c_pointer(new_order));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_model_sort_new_with_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_sort_new_with_model "GtkTreeModel* gtk_tree_model_sort_new_with_model(GtkTreeModel* child_model)"
+  s7_pointer child_model;
+  child_model = s7_car(args);
+  if (!s7_is_c_pointer_of_type(child_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_new_with_model", 1, child_model, "GtkTreeModel*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeModel__sym, gtk_tree_model_sort_new_with_model(s7_c_pointer(child_model))));
+}
+
+static s7_pointer lg_gtk_tree_model_sort_get_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_sort_get_model "GtkTreeModel* gtk_tree_model_sort_get_model(GtkTreeModelSort* tree_model)"
+  s7_pointer tree_model;
+  tree_model = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModelSort__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_get_model", 1, tree_model, "GtkTreeModelSort*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeModel__sym, gtk_tree_model_sort_get_model(s7_c_pointer(tree_model))));
+}
+
+static s7_pointer lg_gtk_tree_model_sort_convert_child_path_to_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_sort_convert_child_path_to_path "GtkTreePath* gtk_tree_model_sort_convert_child_path_to_path(GtkTreeModelSort* tree_model_sort, \
+GtkTreePath* child_path)"
+  s7_pointer _p;
+  s7_pointer tree_model_sort, child_path;
+  _p = args;
+  tree_model_sort = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model_sort, GtkTreeModelSort__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_convert_child_path_to_path", 1, tree_model_sort, "GtkTreeModelSort*");
+  child_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child_path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_convert_child_path_to_path", 2, child_path, "GtkTreePath*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreePath__sym, gtk_tree_model_sort_convert_child_path_to_path(s7_c_pointer(tree_model_sort), s7_c_pointer(child_path))));
+}
+
+static s7_pointer lg_gtk_tree_model_sort_convert_child_iter_to_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_sort_convert_child_iter_to_iter "void gtk_tree_model_sort_convert_child_iter_to_iter(GtkTreeModelSort* tree_model_sort, \
+GtkTreeIter* sort_iter, GtkTreeIter* child_iter)"
+  s7_pointer _p;
+  s7_pointer tree_model_sort, sort_iter, child_iter;
+  _p = args;
+  tree_model_sort = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model_sort, GtkTreeModelSort__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_convert_child_iter_to_iter", 1, tree_model_sort, "GtkTreeModelSort*");
+  sort_iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sort_iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_convert_child_iter_to_iter", 2, sort_iter, "GtkTreeIter*");
+  child_iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child_iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_convert_child_iter_to_iter", 3, child_iter, "GtkTreeIter*");
+  gtk_tree_model_sort_convert_child_iter_to_iter(s7_c_pointer(tree_model_sort), s7_c_pointer(sort_iter), s7_c_pointer(child_iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_model_sort_convert_path_to_child_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_sort_convert_path_to_child_path "GtkTreePath* gtk_tree_model_sort_convert_path_to_child_path(GtkTreeModelSort* tree_model_sort, \
+GtkTreePath* sorted_path)"
+  s7_pointer _p;
+  s7_pointer tree_model_sort, sorted_path;
+  _p = args;
+  tree_model_sort = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model_sort, GtkTreeModelSort__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_convert_path_to_child_path", 1, tree_model_sort, "GtkTreeModelSort*");
+  sorted_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sorted_path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_convert_path_to_child_path", 2, sorted_path, "GtkTreePath*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreePath__sym, gtk_tree_model_sort_convert_path_to_child_path(s7_c_pointer(tree_model_sort), s7_c_pointer(sorted_path))));
+}
+
+static s7_pointer lg_gtk_tree_model_sort_convert_iter_to_child_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_sort_convert_iter_to_child_iter "void gtk_tree_model_sort_convert_iter_to_child_iter(GtkTreeModelSort* tree_model_sort, \
+GtkTreeIter* child_iter, GtkTreeIter* sorted_iter)"
+  s7_pointer _p;
+  s7_pointer tree_model_sort, child_iter, sorted_iter;
+  _p = args;
+  tree_model_sort = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model_sort, GtkTreeModelSort__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_convert_iter_to_child_iter", 1, tree_model_sort, "GtkTreeModelSort*");
+  child_iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child_iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_convert_iter_to_child_iter", 2, child_iter, "GtkTreeIter*");
+  sorted_iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sorted_iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_convert_iter_to_child_iter", 3, sorted_iter, "GtkTreeIter*");
+  gtk_tree_model_sort_convert_iter_to_child_iter(s7_c_pointer(tree_model_sort), s7_c_pointer(child_iter), s7_c_pointer(sorted_iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_model_sort_reset_default_sort_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_sort_reset_default_sort_func "void gtk_tree_model_sort_reset_default_sort_func(GtkTreeModelSort* tree_model_sort)"
+  s7_pointer tree_model_sort;
+  tree_model_sort = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_model_sort, GtkTreeModelSort__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_reset_default_sort_func", 1, tree_model_sort, "GtkTreeModelSort*");
+  gtk_tree_model_sort_reset_default_sort_func(s7_c_pointer(tree_model_sort));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_model_sort_clear_cache(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_sort_clear_cache "void gtk_tree_model_sort_clear_cache(GtkTreeModelSort* tree_model_sort)"
+  s7_pointer tree_model_sort;
+  tree_model_sort = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_model_sort, GtkTreeModelSort__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_clear_cache", 1, tree_model_sort, "GtkTreeModelSort*");
+  gtk_tree_model_sort_clear_cache(s7_c_pointer(tree_model_sort));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_selection_set_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_set_mode "void gtk_tree_selection_set_mode(GtkTreeSelection* selection, \
+GtkSelectionMode type)"
+  s7_pointer _p;
+  s7_pointer selection, type;
+  _p = args;
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_set_mode", 1, selection, "GtkTreeSelection*");
+  type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(type)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_set_mode", 2, type, "GtkSelectionMode");
+  gtk_tree_selection_set_mode(s7_c_pointer(selection), s7_integer(type));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_selection_get_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_get_mode "GtkSelectionMode gtk_tree_selection_get_mode(GtkTreeSelection* selection)"
+  s7_pointer selection;
+  selection = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_get_mode", 1, selection, "GtkTreeSelection*");
+  return(s7_make_integer(sc, gtk_tree_selection_get_mode(s7_c_pointer(selection))));
+}
+
+static s7_pointer lg_gtk_tree_selection_set_select_function(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_set_select_function "void gtk_tree_selection_set_select_function(GtkTreeSelection* selection, \
+GtkTreeSelectionFunc func, lambda_data func_info, GtkDestroyNotify destroy)"
+  s7_pointer _p;
+  s7_pointer selection, func, func_info, destroy;
+  _p = args;
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_set_select_function", 1, selection, "GtkTreeSelection*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkTreeSelectionFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_set_select_function", 2, func, "GtkTreeSelectionFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_set_select_function", 3, func_info, "lambda_data");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_set_select_function", 4, destroy, "GtkDestroyNotify");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 3, destroy);
+    gtk_tree_selection_set_select_function(s7_c_pointer(selection), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(destroy));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_tree_selection_get_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_get_user_data "gpointer gtk_tree_selection_get_user_data(GtkTreeSelection* selection)"
+  s7_pointer selection;
+  selection = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_get_user_data", 1, selection, "GtkTreeSelection*");
+  return(s7_make_type_with_c_pointer(sc, gpointer_sym, gtk_tree_selection_get_user_data(s7_c_pointer(selection))));
+}
+
+static s7_pointer lg_gtk_tree_selection_get_tree_view(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_get_tree_view "GtkTreeView* gtk_tree_selection_get_tree_view(GtkTreeSelection* selection)"
+  s7_pointer selection;
+  selection = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_get_tree_view", 1, selection, "GtkTreeSelection*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeView__sym, gtk_tree_selection_get_tree_view(s7_c_pointer(selection))));
+}
+
+static s7_pointer lg_gtk_tree_selection_get_selected(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_get_selected "gboolean gtk_tree_selection_get_selected(GtkTreeSelection* selection, \
+GtkTreeModel** model, GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer selection, model, iter;
+  _p = args;
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_get_selected", 1, selection, "GtkTreeSelection*");
+  model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(model, GtkTreeModel___sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_get_selected", 2, model, "GtkTreeModel**");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_get_selected", 3, iter, "GtkTreeIter*");
+  return(s7_make_boolean(sc, gtk_tree_selection_get_selected(s7_c_pointer(selection), s7_c_pointer(model), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_tree_selection_selected_foreach(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_selected_foreach "void gtk_tree_selection_selected_foreach(GtkTreeSelection* selection, \
+GtkTreeSelectionForeachFunc func, lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer selection, func, func_info;
+  _p = args;
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_selected_foreach", 1, selection, "GtkTreeSelection*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkTreeSelectionForeachFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_selected_foreach", 2, func, "GtkTreeSelectionForeachFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_selected_foreach", 3, func_info, "lambda_data");
+  {
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    gtk_tree_selection_selected_foreach(s7_c_pointer(selection), s7_c_pointer(func), (gpointer)lg_ptr);
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_tree_selection_select_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_select_path "void gtk_tree_selection_select_path(GtkTreeSelection* selection, \
+GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer selection, path;
+  _p = args;
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_select_path", 1, selection, "GtkTreeSelection*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_select_path", 2, path, "GtkTreePath*");
+  gtk_tree_selection_select_path(s7_c_pointer(selection), s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_selection_unselect_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_unselect_path "void gtk_tree_selection_unselect_path(GtkTreeSelection* selection, \
+GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer selection, path;
+  _p = args;
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_unselect_path", 1, selection, "GtkTreeSelection*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_unselect_path", 2, path, "GtkTreePath*");
+  gtk_tree_selection_unselect_path(s7_c_pointer(selection), s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_selection_select_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_select_iter "void gtk_tree_selection_select_iter(GtkTreeSelection* selection, \
+GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer selection, iter;
+  _p = args;
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_select_iter", 1, selection, "GtkTreeSelection*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_select_iter", 2, iter, "GtkTreeIter*");
+  gtk_tree_selection_select_iter(s7_c_pointer(selection), s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_selection_unselect_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_unselect_iter "void gtk_tree_selection_unselect_iter(GtkTreeSelection* selection, \
+GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer selection, iter;
+  _p = args;
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_unselect_iter", 1, selection, "GtkTreeSelection*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_unselect_iter", 2, iter, "GtkTreeIter*");
+  gtk_tree_selection_unselect_iter(s7_c_pointer(selection), s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_selection_path_is_selected(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_path_is_selected "gboolean gtk_tree_selection_path_is_selected(GtkTreeSelection* selection, \
+GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer selection, path;
+  _p = args;
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_path_is_selected", 1, selection, "GtkTreeSelection*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_path_is_selected", 2, path, "GtkTreePath*");
+  return(s7_make_boolean(sc, gtk_tree_selection_path_is_selected(s7_c_pointer(selection), s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_selection_iter_is_selected(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_iter_is_selected "gboolean gtk_tree_selection_iter_is_selected(GtkTreeSelection* selection, \
+GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer selection, iter;
+  _p = args;
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_iter_is_selected", 1, selection, "GtkTreeSelection*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_iter_is_selected", 2, iter, "GtkTreeIter*");
+  return(s7_make_boolean(sc, gtk_tree_selection_iter_is_selected(s7_c_pointer(selection), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_tree_selection_select_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_select_all "void gtk_tree_selection_select_all(GtkTreeSelection* selection)"
+  s7_pointer selection;
+  selection = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_select_all", 1, selection, "GtkTreeSelection*");
+  gtk_tree_selection_select_all(s7_c_pointer(selection));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_selection_unselect_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_unselect_all "void gtk_tree_selection_unselect_all(GtkTreeSelection* selection)"
+  s7_pointer selection;
+  selection = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_unselect_all", 1, selection, "GtkTreeSelection*");
+  gtk_tree_selection_unselect_all(s7_c_pointer(selection));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_selection_select_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_select_range "void gtk_tree_selection_select_range(GtkTreeSelection* selection, \
+GtkTreePath* start_path, GtkTreePath* end_path)"
+  s7_pointer _p;
+  s7_pointer selection, start_path, end_path;
+  _p = args;
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_select_range", 1, selection, "GtkTreeSelection*");
+  start_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start_path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_select_range", 2, start_path, "GtkTreePath*");
+  end_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end_path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_select_range", 3, end_path, "GtkTreePath*");
+  gtk_tree_selection_select_range(s7_c_pointer(selection), s7_c_pointer(start_path), s7_c_pointer(end_path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_sortable_sort_column_changed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_sortable_sort_column_changed "void gtk_tree_sortable_sort_column_changed(GtkTreeSortable* sortable)"
+  s7_pointer sortable;
+  sortable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(sortable, GtkTreeSortable__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_sort_column_changed", 1, sortable, "GtkTreeSortable*");
+  gtk_tree_sortable_sort_column_changed(s7_c_pointer(sortable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_sortable_get_sort_column_id(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_sortable_get_sort_column_id "gboolean gtk_tree_sortable_get_sort_column_id(GtkTreeSortable* sortable, \
+gint* [sort_column_id], GtkSortType* [order])"
+  s7_pointer _p;
+  s7_pointer sortable;
+  gint ref_sort_column_id;
+  GtkSortType ref_order;
+  _p = args;
+  sortable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sortable, GtkTreeSortable__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_get_sort_column_id", 1, sortable, "GtkTreeSortable*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_tree_sortable_get_sort_column_id(s7_c_pointer(sortable), &ref_sort_column_id, &ref_order));
+      return(s7_list(sc, 3, result, s7_make_integer(sc, ref_sort_column_id), s7_make_integer(sc, ref_order)));
+   }
+}
+
+static s7_pointer lg_gtk_tree_sortable_set_sort_column_id(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_sortable_set_sort_column_id "void gtk_tree_sortable_set_sort_column_id(GtkTreeSortable* sortable, \
+gint sort_column_id, GtkSortType order)"
+  s7_pointer _p;
+  s7_pointer sortable, sort_column_id, order;
+  _p = args;
+  sortable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sortable, GtkTreeSortable__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_set_sort_column_id", 1, sortable, "GtkTreeSortable*");
+  sort_column_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(sort_column_id)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_set_sort_column_id", 2, sort_column_id, "gint");
+  order = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(order)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_set_sort_column_id", 3, order, "GtkSortType");
+  gtk_tree_sortable_set_sort_column_id(s7_c_pointer(sortable), s7_integer(sort_column_id), s7_integer(order));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_sortable_set_sort_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_sortable_set_sort_func "void gtk_tree_sortable_set_sort_func(GtkTreeSortable* sortable, \
+gint sort_column_id, GtkTreeIterCompareFunc func, lambda_data func_info, GtkDestroyNotify destroy)"
+  s7_pointer _p;
+  s7_pointer sortable, sort_column_id, func, func_info, destroy;
+  _p = args;
+  sortable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sortable, GtkTreeSortable__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_set_sort_func", 1, sortable, "GtkTreeSortable*");
+  sort_column_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(sort_column_id)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_set_sort_func", 2, sort_column_id, "gint");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkTreeIterCompareFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_set_sort_func", 3, func, "GtkTreeIterCompareFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_set_sort_func", 4, func_info, "lambda_data");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_set_sort_func", 5, destroy, "GtkDestroyNotify");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 3, destroy);
+    gtk_tree_sortable_set_sort_func(s7_c_pointer(sortable), s7_integer(sort_column_id), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(destroy));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_tree_sortable_set_default_sort_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_sortable_set_default_sort_func "void gtk_tree_sortable_set_default_sort_func(GtkTreeSortable* sortable, \
+GtkTreeIterCompareFunc func, lambda_data func_info, GtkDestroyNotify destroy)"
+  s7_pointer _p;
+  s7_pointer sortable, func, func_info, destroy;
+  _p = args;
+  sortable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sortable, GtkTreeSortable__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_set_default_sort_func", 1, sortable, "GtkTreeSortable*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkTreeIterCompareFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_set_default_sort_func", 2, func, "GtkTreeIterCompareFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_set_default_sort_func", 3, func_info, "lambda_data");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_set_default_sort_func", 4, destroy, "GtkDestroyNotify");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 3, destroy);
+    gtk_tree_sortable_set_default_sort_func(s7_c_pointer(sortable), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(destroy));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_tree_sortable_has_default_sort_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_sortable_has_default_sort_func "gboolean gtk_tree_sortable_has_default_sort_func(GtkTreeSortable* sortable)"
+  s7_pointer sortable;
+  sortable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(sortable, GtkTreeSortable__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_sortable_has_default_sort_func", 1, sortable, "GtkTreeSortable*");
+  return(s7_make_boolean(sc, gtk_tree_sortable_has_default_sort_func(s7_c_pointer(sortable))));
+}
+
+static s7_pointer lg_gtk_tree_store_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_new "GtkTreeStore* gtk_tree_store_new(gint n_columns, etc types)"
+  s7_pointer _p;
+  s7_pointer n_columns, types;
+  _p = args;
+  n_columns = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_columns)) s7_wrong_type_arg_error(sc, "gtk_tree_store_new", 1, n_columns, "gint");
+  types = s7_car(_p); _p = s7_cdr(_p);
+  if (!lg_is_list(types)) s7_wrong_type_arg_error(sc, "gtk_tree_store_new", 2, types, "etc");
+  {
+    int etc_len = 0;
+    GtkTreeStore* result = NULL;
+    gint p_arg0;
+    if (s7_is_list(sc, types)) etc_len = s7_list_length(sc, types);
+    if (etc_len < 1) s7_out_of_range_error(sc, "gtk_tree_store_new", 1, types, "... list must have at least 1 entry");
+    if (etc_len > 6) s7_out_of_range_error(sc, "gtk_tree_store_new", 1, types, "... list too long (max len: 6)");
+    p_arg0 = (gint)s7_integer(n_columns);
+    switch (etc_len)
+      {
+        case 1: result = gtk_tree_store_new(p_arg0, s7_c_pointer(s7_list_ref(sc, types, 0))); break;
+        case 2: result = gtk_tree_store_new(p_arg0, s7_c_pointer(s7_list_ref(sc, types, 0)), s7_c_pointer(s7_list_ref(sc, types, 1))); break;
+        case 3: result = gtk_tree_store_new(p_arg0, s7_c_pointer(s7_list_ref(sc, types, 0)), s7_c_pointer(s7_list_ref(sc, types, 1)), s7_c_pointer(s7_list_ref(sc, types, 2))); break;
+        case 4: result = gtk_tree_store_new(p_arg0, s7_c_pointer(s7_list_ref(sc, types, 0)), s7_c_pointer(s7_list_ref(sc, types, 1)), s7_c_pointer(s7_list_ref(sc, types, 2)), s7_c_pointer(s7_list_ref(sc, types, 3))); break;
+        case 5: result = gtk_tree_store_new(p_arg0, s7_c_pointer(s7_list_ref(sc, types, 0)), s7_c_pointer(s7_list_ref(sc, types, 1)), s7_c_pointer(s7_list_ref(sc, types, 2)), s7_c_pointer(s7_list_ref(sc, types, 3)), s7_c_pointer(s7_list_ref(sc, types, 4))); break;
+        case 6: result = gtk_tree_store_new(p_arg0, s7_c_pointer(s7_list_ref(sc, types, 0)), s7_c_pointer(s7_list_ref(sc, types, 1)), s7_c_pointer(s7_list_ref(sc, types, 2)), s7_c_pointer(s7_list_ref(sc, types, 3)), s7_c_pointer(s7_list_ref(sc, types, 4)), s7_c_pointer(s7_list_ref(sc, types, 5))); break;
+      }
+    return(s7_make_c_pointer(sc, result));
+  }
+}
+
+static s7_pointer lg_gtk_tree_store_newv(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_newv "GtkTreeStore* gtk_tree_store_newv(gint n_columns, GType* types)"
+  s7_pointer _p;
+  s7_pointer n_columns, types;
+  _p = args;
+  n_columns = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_columns)) s7_wrong_type_arg_error(sc, "gtk_tree_store_newv", 1, n_columns, "gint");
+  types = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(types, GType__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_newv", 2, types, "GType*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeStore__sym, gtk_tree_store_newv(s7_integer(n_columns), s7_c_pointer(types))));
+}
+
+static s7_pointer lg_gtk_tree_store_set_column_types(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_set_column_types "void gtk_tree_store_set_column_types(GtkTreeStore* tree_store, \
+gint n_columns, GType* types)"
+  s7_pointer _p;
+  s7_pointer tree_store, n_columns, types;
+  _p = args;
+  tree_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_store, GtkTreeStore__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_set_column_types", 1, tree_store, "GtkTreeStore*");
+  n_columns = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_columns)) s7_wrong_type_arg_error(sc, "gtk_tree_store_set_column_types", 2, n_columns, "gint");
+  types = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(types, GType__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_set_column_types", 3, types, "GType*");
+  gtk_tree_store_set_column_types(s7_c_pointer(tree_store), s7_integer(n_columns), s7_c_pointer(types));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_store_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_set "void gtk_tree_store_set(GtkTreeStore* tree_store, GtkTreeIter* iter, \
+etc values)"
+  s7_pointer _p;
+  s7_pointer tree_store, iter, values;
+  _p = args;
+  tree_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_store, GtkTreeStore__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_set", 1, tree_store, "GtkTreeStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_set", 2, iter, "GtkTreeIter*");
+  values = s7_car(_p); _p = s7_cdr(_p);
+  if (!lg_is_list(values)) s7_wrong_type_arg_error(sc, "gtk_tree_store_set", 3, values, "etc");
+  {
+    int etc_len = 0;
+    GtkTreeStore* p_arg0;
+    GtkTreeIter* p_arg1;
+    if (s7_is_list(sc, values)) etc_len = s7_list_length(sc, values);
+    if (etc_len < 2) s7_out_of_range_error(sc, "gtk_tree_store_set", 2, values, "... list must have at least 2 entries");
+    if (etc_len > 10) s7_out_of_range_error(sc, "gtk_tree_store_set", 2, values, "... list too long (max len: 10)");
+    if ((etc_len % 2) != 0) s7_out_of_range_error(sc, "gtk_tree_store_set", 2, values, "... list len must be multiple of 2");
+    p_arg0 = (GtkTreeStore*)s7_c_pointer(tree_store);
+    p_arg1 = (GtkTreeIter*)s7_c_pointer(iter);
+    switch (etc_len)
+      {
+        case 2: gtk_tree_store_set(p_arg0, p_arg1, s7_integer(s7_list_ref(sc, values, 0)), s7_string(s7_list_ref(sc, values, 1)), -1); break;
+        case 4: gtk_tree_store_set(p_arg0, p_arg1, s7_integer(s7_list_ref(sc, values, 0)), s7_string(s7_list_ref(sc, values, 1)), s7_integer(s7_list_ref(sc, values, 2)), s7_string(s7_list_ref(sc, values, 3)), -1); break;
+        case 6: gtk_tree_store_set(p_arg0, p_arg1, s7_integer(s7_list_ref(sc, values, 0)), s7_string(s7_list_ref(sc, values, 1)), s7_integer(s7_list_ref(sc, values, 2)), s7_string(s7_list_ref(sc, values, 3)), s7_integer(s7_list_ref(sc, values, 4)), s7_string(s7_list_ref(sc, values, 5)), -1); break;
+        case 8: gtk_tree_store_set(p_arg0, p_arg1, s7_integer(s7_list_ref(sc, values, 0)), s7_string(s7_list_ref(sc, values, 1)), s7_integer(s7_list_ref(sc, values, 2)), s7_string(s7_list_ref(sc, values, 3)), s7_integer(s7_list_ref(sc, values, 4)), s7_string(s7_list_ref(sc, values, 5)), s7_integer(s7_list_ref(sc, values, 6)), s7_string(s7_list_ref(sc, values, 7)), -1); break;
+        case 10: gtk_tree_store_set(p_arg0, p_arg1, s7_integer(s7_list_ref(sc, values, 0)), s7_string(s7_list_ref(sc, values, 1)), s7_integer(s7_list_ref(sc, values, 2)), s7_string(s7_list_ref(sc, values, 3)), s7_integer(s7_list_ref(sc, values, 4)), s7_string(s7_list_ref(sc, values, 5)), s7_integer(s7_list_ref(sc, values, 6)), s7_string(s7_list_ref(sc, values, 7)), s7_integer(s7_list_ref(sc, values, 8)), s7_string(s7_list_ref(sc, values, 9)), -1); break;
+      }
+    return(lg_false);
+  }
+}
+
+static s7_pointer lg_gtk_tree_store_remove(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_remove "void gtk_tree_store_remove(GtkTreeStore* tree_store, GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_store, iter;
+  _p = args;
+  tree_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_store, GtkTreeStore__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_remove", 1, tree_store, "GtkTreeStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_remove", 2, iter, "GtkTreeIter*");
+  gtk_tree_store_remove(s7_c_pointer(tree_store), s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_store_insert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_insert "void gtk_tree_store_insert(GtkTreeStore* tree_store, GtkTreeIter* iter, \
+GtkTreeIter* parent, gint position)"
+  s7_pointer _p;
+  s7_pointer tree_store, iter, parent, position;
+  _p = args;
+  tree_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_store, GtkTreeStore__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_insert", 1, tree_store, "GtkTreeStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_insert", 2, iter, "GtkTreeIter*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(parent, GtkTreeIter__sym)) && (parent != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_store_insert", 3, parent, "GtkTreeIter*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_tree_store_insert", 4, position, "gint");
+  gtk_tree_store_insert(s7_c_pointer(tree_store), s7_c_pointer(iter), s7_c_pointer(parent), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_store_insert_before(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_insert_before "void gtk_tree_store_insert_before(GtkTreeStore* tree_store, \
+GtkTreeIter* iter, GtkTreeIter* parent, GtkTreeIter* sibling)"
+  s7_pointer _p;
+  s7_pointer tree_store, iter, parent, sibling;
+  _p = args;
+  tree_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_store, GtkTreeStore__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_insert_before", 1, tree_store, "GtkTreeStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_insert_before", 2, iter, "GtkTreeIter*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(parent, GtkTreeIter__sym)) && (parent != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_store_insert_before", 3, parent, "GtkTreeIter*");
+  sibling = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(sibling, GtkTreeIter__sym)) && (sibling != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_store_insert_before", 4, sibling, "GtkTreeIter*");
+  gtk_tree_store_insert_before(s7_c_pointer(tree_store), s7_c_pointer(iter), s7_c_pointer(parent), s7_c_pointer(sibling));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_store_insert_after(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_insert_after "void gtk_tree_store_insert_after(GtkTreeStore* tree_store, GtkTreeIter* iter, \
+GtkTreeIter* parent, GtkTreeIter* sibling)"
+  s7_pointer _p;
+  s7_pointer tree_store, iter, parent, sibling;
+  _p = args;
+  tree_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_store, GtkTreeStore__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_insert_after", 1, tree_store, "GtkTreeStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_insert_after", 2, iter, "GtkTreeIter*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(parent, GtkTreeIter__sym)) && (parent != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_store_insert_after", 3, parent, "GtkTreeIter*");
+  sibling = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(sibling, GtkTreeIter__sym)) && (sibling != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_store_insert_after", 4, sibling, "GtkTreeIter*");
+  gtk_tree_store_insert_after(s7_c_pointer(tree_store), s7_c_pointer(iter), s7_c_pointer(parent), s7_c_pointer(sibling));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_store_prepend(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_prepend "void gtk_tree_store_prepend(GtkTreeStore* tree_store, GtkTreeIter* iter, \
+GtkTreeIter* parent)"
+  s7_pointer _p;
+  s7_pointer tree_store, iter, parent;
+  _p = args;
+  tree_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_store, GtkTreeStore__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_prepend", 1, tree_store, "GtkTreeStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_prepend", 2, iter, "GtkTreeIter*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(parent, GtkTreeIter__sym)) && (parent != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_store_prepend", 3, parent, "GtkTreeIter*");
+  gtk_tree_store_prepend(s7_c_pointer(tree_store), s7_c_pointer(iter), s7_c_pointer(parent));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_store_append(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_append "void gtk_tree_store_append(GtkTreeStore* tree_store, GtkTreeIter* iter, \
+GtkTreeIter* parent)"
+  s7_pointer _p;
+  s7_pointer tree_store, iter, parent;
+  _p = args;
+  tree_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_store, GtkTreeStore__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_append", 1, tree_store, "GtkTreeStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_append", 2, iter, "GtkTreeIter*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(parent, GtkTreeIter__sym)) && (parent != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_store_append", 3, parent, "GtkTreeIter*");
+  gtk_tree_store_append(s7_c_pointer(tree_store), s7_c_pointer(iter), s7_c_pointer(parent));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_store_is_ancestor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_is_ancestor "gboolean gtk_tree_store_is_ancestor(GtkTreeStore* tree_store, \
+GtkTreeIter* iter, GtkTreeIter* descendant)"
+  s7_pointer _p;
+  s7_pointer tree_store, iter, descendant;
+  _p = args;
+  tree_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_store, GtkTreeStore__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_is_ancestor", 1, tree_store, "GtkTreeStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_is_ancestor", 2, iter, "GtkTreeIter*");
+  descendant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(descendant, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_is_ancestor", 3, descendant, "GtkTreeIter*");
+  return(s7_make_boolean(sc, gtk_tree_store_is_ancestor(s7_c_pointer(tree_store), s7_c_pointer(iter), s7_c_pointer(descendant))));
+}
+
+static s7_pointer lg_gtk_tree_store_iter_depth(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_iter_depth "gint gtk_tree_store_iter_depth(GtkTreeStore* tree_store, GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_store, iter;
+  _p = args;
+  tree_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_store, GtkTreeStore__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_iter_depth", 1, tree_store, "GtkTreeStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_iter_depth", 2, iter, "GtkTreeIter*");
+  return(s7_make_integer(sc, gtk_tree_store_iter_depth(s7_c_pointer(tree_store), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_tree_store_clear(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_clear "void gtk_tree_store_clear(GtkTreeStore* tree_store)"
+  s7_pointer tree_store;
+  tree_store = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_store, GtkTreeStore__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_clear", 1, tree_store, "GtkTreeStore*");
+  gtk_tree_store_clear(s7_c_pointer(tree_store));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_new "GtkTreeViewColumn* gtk_tree_view_column_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkTreeViewColumn__sym, gtk_tree_view_column_new()));
+}
+
+static s7_pointer lg_gtk_tree_view_column_new_with_attributes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_new_with_attributes "GtkTreeViewColumn* gtk_tree_view_column_new_with_attributes(gchar* title, \
+GtkCellRenderer* cell, etc attributes)"
+  s7_pointer _p;
+  s7_pointer title, cell, attributes;
+  _p = args;
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_new_with_attributes", 1, title, "gchar*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_new_with_attributes", 2, cell, "GtkCellRenderer*");
+  attributes = s7_car(_p); _p = s7_cdr(_p);
+  if (!lg_is_list(attributes)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_new_with_attributes", 3, attributes, "etc");
+  {
+    int etc_len = 0;
+    GtkTreeViewColumn* result = NULL;
+    gchar* p_arg0;
+    GtkCellRenderer* p_arg1;
+    if (s7_is_list(sc, attributes)) etc_len = s7_list_length(sc, attributes);
+    if (etc_len < 2) s7_out_of_range_error(sc, "gtk_tree_view_column_new_with_attributes", 2, attributes, "... list must have at least 2 entries");
+    if (etc_len > 10) s7_out_of_range_error(sc, "gtk_tree_view_column_new_with_attributes", 2, attributes, "... list too long (max len: 10)");
+    if ((etc_len % 2) != 0) s7_out_of_range_error(sc, "gtk_tree_view_column_new_with_attributes", 2, attributes, "... list len must be multiple of 2");
+    p_arg0 = (gchar*)s7_string(title);
+    p_arg1 = (GtkCellRenderer*)s7_c_pointer(cell);
+    switch (etc_len)
+      {
+        case 2: result = gtk_tree_view_column_new_with_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), NULL); break;
+        case 4: result = gtk_tree_view_column_new_with_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), NULL); break;
+        case 6: result = gtk_tree_view_column_new_with_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), s7_string(s7_list_ref(sc, attributes, 4)), s7_integer(s7_list_ref(sc, attributes, 5)), NULL); break;
+        case 8: result = gtk_tree_view_column_new_with_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), s7_string(s7_list_ref(sc, attributes, 4)), s7_integer(s7_list_ref(sc, attributes, 5)), s7_string(s7_list_ref(sc, attributes, 6)), s7_integer(s7_list_ref(sc, attributes, 7)), NULL); break;
+        case 10: result = gtk_tree_view_column_new_with_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), s7_string(s7_list_ref(sc, attributes, 4)), s7_integer(s7_list_ref(sc, attributes, 5)), s7_string(s7_list_ref(sc, attributes, 6)), s7_integer(s7_list_ref(sc, attributes, 7)), s7_string(s7_list_ref(sc, attributes, 8)), s7_integer(s7_list_ref(sc, attributes, 9)), NULL); break;
+      }
+    return(s7_make_c_pointer(sc, result));
+  }
+}
+
+static s7_pointer lg_gtk_tree_view_column_pack_start(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_pack_start "void gtk_tree_view_column_pack_start(GtkTreeViewColumn* tree_column, \
+GtkCellRenderer* cell, gboolean expand)"
+  s7_pointer _p;
+  s7_pointer tree_column, cell, expand;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_pack_start", 1, tree_column, "GtkTreeViewColumn*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_pack_start", 2, cell, "GtkCellRenderer*");
+  expand = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(expand)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_pack_start", 3, expand, "gboolean");
+  gtk_tree_view_column_pack_start(s7_c_pointer(tree_column), s7_c_pointer(cell), lg_boolean(expand));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_pack_end(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_pack_end "void gtk_tree_view_column_pack_end(GtkTreeViewColumn* tree_column, \
+GtkCellRenderer* cell, gboolean expand)"
+  s7_pointer _p;
+  s7_pointer tree_column, cell, expand;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_pack_end", 1, tree_column, "GtkTreeViewColumn*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_pack_end", 2, cell, "GtkCellRenderer*");
+  expand = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(expand)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_pack_end", 3, expand, "gboolean");
+  gtk_tree_view_column_pack_end(s7_c_pointer(tree_column), s7_c_pointer(cell), lg_boolean(expand));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_clear(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_clear "void gtk_tree_view_column_clear(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_clear", 1, tree_column, "GtkTreeViewColumn*");
+  gtk_tree_view_column_clear(s7_c_pointer(tree_column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_add_attribute(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_add_attribute "void gtk_tree_view_column_add_attribute(GtkTreeViewColumn* tree_column, \
+GtkCellRenderer* cell_renderer, gchar* attribute, gint column)"
+  s7_pointer _p;
+  s7_pointer tree_column, cell_renderer, attribute, column;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_add_attribute", 1, tree_column, "GtkTreeViewColumn*");
+  cell_renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_renderer, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_add_attribute", 2, cell_renderer, "GtkCellRenderer*");
+  attribute = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(attribute)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_add_attribute", 3, attribute, "gchar*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(column)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_add_attribute", 4, column, "gint");
+  gtk_tree_view_column_add_attribute(s7_c_pointer(tree_column), s7_c_pointer(cell_renderer), s7_string(attribute), s7_integer(column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_attributes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_attributes "void gtk_tree_view_column_set_attributes(GtkTreeViewColumn* tree_column, \
+GtkCellRenderer* cell_renderer, etc attributes)"
+  s7_pointer _p;
+  s7_pointer tree_column, cell_renderer, attributes;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_attributes", 1, tree_column, "GtkTreeViewColumn*");
+  cell_renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_renderer, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_attributes", 2, cell_renderer, "GtkCellRenderer*");
+  attributes = s7_car(_p); _p = s7_cdr(_p);
+  if (!lg_is_list(attributes)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_attributes", 3, attributes, "etc");
+  {
+    int etc_len = 0;
+    GtkTreeViewColumn* p_arg0;
+    GtkCellRenderer* p_arg1;
+    if (s7_is_list(sc, attributes)) etc_len = s7_list_length(sc, attributes);
+    if (etc_len < 2) s7_out_of_range_error(sc, "gtk_tree_view_column_set_attributes", 2, attributes, "... list must have at least 2 entries");
+    if (etc_len > 10) s7_out_of_range_error(sc, "gtk_tree_view_column_set_attributes", 2, attributes, "... list too long (max len: 10)");
+    if ((etc_len % 2) != 0) s7_out_of_range_error(sc, "gtk_tree_view_column_set_attributes", 2, attributes, "... list len must be multiple of 2");
+    p_arg0 = (GtkTreeViewColumn*)s7_c_pointer(tree_column);
+    p_arg1 = (GtkCellRenderer*)s7_c_pointer(cell_renderer);
+    switch (etc_len)
+      {
+        case 2: gtk_tree_view_column_set_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), NULL); break;
+        case 4: gtk_tree_view_column_set_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), NULL); break;
+        case 6: gtk_tree_view_column_set_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), s7_string(s7_list_ref(sc, attributes, 4)), s7_integer(s7_list_ref(sc, attributes, 5)), NULL); break;
+        case 8: gtk_tree_view_column_set_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), s7_string(s7_list_ref(sc, attributes, 4)), s7_integer(s7_list_ref(sc, attributes, 5)), s7_string(s7_list_ref(sc, attributes, 6)), s7_integer(s7_list_ref(sc, attributes, 7)), NULL); break;
+        case 10: gtk_tree_view_column_set_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), s7_string(s7_list_ref(sc, attributes, 4)), s7_integer(s7_list_ref(sc, attributes, 5)), s7_string(s7_list_ref(sc, attributes, 6)), s7_integer(s7_list_ref(sc, attributes, 7)), s7_string(s7_list_ref(sc, attributes, 8)), s7_integer(s7_list_ref(sc, attributes, 9)), NULL); break;
+      }
+    return(lg_false);
+  }
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_cell_data_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_cell_data_func "void gtk_tree_view_column_set_cell_data_func(GtkTreeViewColumn* tree_column, \
+GtkCellRenderer* cell_renderer, GtkTreeCellDataFunc func, lambda_data func_info, GtkDestroyNotify destroy)"
+  s7_pointer _p;
+  s7_pointer tree_column, cell_renderer, func, func_info, destroy;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_cell_data_func", 1, tree_column, "GtkTreeViewColumn*");
+  cell_renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_renderer, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_cell_data_func", 2, cell_renderer, "GtkCellRenderer*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkTreeCellDataFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_cell_data_func", 3, func, "GtkTreeCellDataFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_cell_data_func", 4, func_info, "lambda_data");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_cell_data_func", 5, destroy, "GtkDestroyNotify");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 3, destroy);
+    gtk_tree_view_column_set_cell_data_func(s7_c_pointer(tree_column), s7_c_pointer(cell_renderer), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(destroy));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_tree_view_column_clear_attributes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_clear_attributes "void gtk_tree_view_column_clear_attributes(GtkTreeViewColumn* tree_column, \
+GtkCellRenderer* cell_renderer)"
+  s7_pointer _p;
+  s7_pointer tree_column, cell_renderer;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_clear_attributes", 1, tree_column, "GtkTreeViewColumn*");
+  cell_renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_renderer, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_clear_attributes", 2, cell_renderer, "GtkCellRenderer*");
+  gtk_tree_view_column_clear_attributes(s7_c_pointer(tree_column), s7_c_pointer(cell_renderer));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_spacing "void gtk_tree_view_column_set_spacing(GtkTreeViewColumn* tree_column, \
+gint spacing)"
+  s7_pointer _p;
+  s7_pointer tree_column, spacing;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_spacing", 1, tree_column, "GtkTreeViewColumn*");
+  spacing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(spacing)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_spacing", 2, spacing, "gint");
+  gtk_tree_view_column_set_spacing(s7_c_pointer(tree_column), s7_integer(spacing));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_spacing "gint gtk_tree_view_column_get_spacing(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_spacing", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_integer(sc, gtk_tree_view_column_get_spacing(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_visible "void gtk_tree_view_column_set_visible(GtkTreeViewColumn* tree_column, \
+gboolean visible)"
+  s7_pointer _p;
+  s7_pointer tree_column, visible;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_visible", 1, tree_column, "GtkTreeViewColumn*");
+  visible = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(visible)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_visible", 2, visible, "gboolean");
+  gtk_tree_view_column_set_visible(s7_c_pointer(tree_column), lg_boolean(visible));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_visible "gboolean gtk_tree_view_column_get_visible(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_visible", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_boolean(sc, gtk_tree_view_column_get_visible(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_resizable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_resizable "void gtk_tree_view_column_set_resizable(GtkTreeViewColumn* tree_column, \
+gboolean resizable)"
+  s7_pointer _p;
+  s7_pointer tree_column, resizable;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_resizable", 1, tree_column, "GtkTreeViewColumn*");
+  resizable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(resizable)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_resizable", 2, resizable, "gboolean");
+  gtk_tree_view_column_set_resizable(s7_c_pointer(tree_column), lg_boolean(resizable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_resizable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_resizable "gboolean gtk_tree_view_column_get_resizable(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_resizable", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_boolean(sc, gtk_tree_view_column_get_resizable(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_sizing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_sizing "void gtk_tree_view_column_set_sizing(GtkTreeViewColumn* tree_column, \
+GtkTreeViewColumnSizing type)"
+  s7_pointer _p;
+  s7_pointer tree_column, type;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_sizing", 1, tree_column, "GtkTreeViewColumn*");
+  type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(type)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_sizing", 2, type, "GtkTreeViewColumnSizing");
+  gtk_tree_view_column_set_sizing(s7_c_pointer(tree_column), s7_integer(type));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_sizing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_sizing "GtkTreeViewColumnSizing gtk_tree_view_column_get_sizing(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_sizing", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_integer(sc, gtk_tree_view_column_get_sizing(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_width "gint gtk_tree_view_column_get_width(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_width", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_integer(sc, gtk_tree_view_column_get_width(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_fixed_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_fixed_width "gint gtk_tree_view_column_get_fixed_width(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_fixed_width", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_integer(sc, gtk_tree_view_column_get_fixed_width(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_fixed_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_fixed_width "void gtk_tree_view_column_set_fixed_width(GtkTreeViewColumn* tree_column, \
+gint fixed_width)"
+  s7_pointer _p;
+  s7_pointer tree_column, fixed_width;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_fixed_width", 1, tree_column, "GtkTreeViewColumn*");
+  fixed_width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(fixed_width)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_fixed_width", 2, fixed_width, "gint");
+  gtk_tree_view_column_set_fixed_width(s7_c_pointer(tree_column), s7_integer(fixed_width));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_min_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_min_width "void gtk_tree_view_column_set_min_width(GtkTreeViewColumn* tree_column, \
+gint min_width)"
+  s7_pointer _p;
+  s7_pointer tree_column, min_width;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_min_width", 1, tree_column, "GtkTreeViewColumn*");
+  min_width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(min_width)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_min_width", 2, min_width, "gint");
+  gtk_tree_view_column_set_min_width(s7_c_pointer(tree_column), s7_integer(min_width));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_min_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_min_width "gint gtk_tree_view_column_get_min_width(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_min_width", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_integer(sc, gtk_tree_view_column_get_min_width(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_max_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_max_width "void gtk_tree_view_column_set_max_width(GtkTreeViewColumn* tree_column, \
+gint max_width)"
+  s7_pointer _p;
+  s7_pointer tree_column, max_width;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_max_width", 1, tree_column, "GtkTreeViewColumn*");
+  max_width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(max_width)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_max_width", 2, max_width, "gint");
+  gtk_tree_view_column_set_max_width(s7_c_pointer(tree_column), s7_integer(max_width));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_max_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_max_width "gint gtk_tree_view_column_get_max_width(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_max_width", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_integer(sc, gtk_tree_view_column_get_max_width(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_clicked(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_clicked "void gtk_tree_view_column_clicked(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_clicked", 1, tree_column, "GtkTreeViewColumn*");
+  gtk_tree_view_column_clicked(s7_c_pointer(tree_column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_title "void gtk_tree_view_column_set_title(GtkTreeViewColumn* tree_column, \
+gchar* title)"
+  s7_pointer _p;
+  s7_pointer tree_column, title;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_title", 1, tree_column, "GtkTreeViewColumn*");
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_title", 2, title, "gchar*");
+  gtk_tree_view_column_set_title(s7_c_pointer(tree_column), s7_string(title));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_title "gchar* gtk_tree_view_column_get_title(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_title", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_string(sc, gtk_tree_view_column_get_title(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_clickable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_clickable "void gtk_tree_view_column_set_clickable(GtkTreeViewColumn* tree_column, \
+gboolean clickable)"
+  s7_pointer _p;
+  s7_pointer tree_column, clickable;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_clickable", 1, tree_column, "GtkTreeViewColumn*");
+  clickable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(clickable)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_clickable", 2, clickable, "gboolean");
+  gtk_tree_view_column_set_clickable(s7_c_pointer(tree_column), lg_boolean(clickable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_clickable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_clickable "gboolean gtk_tree_view_column_get_clickable(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_clickable", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_boolean(sc, gtk_tree_view_column_get_clickable(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_widget "void gtk_tree_view_column_set_widget(GtkTreeViewColumn* tree_column, \
+GtkWidget* widget)"
+  s7_pointer _p;
+  s7_pointer tree_column, widget;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_widget", 1, tree_column, "GtkTreeViewColumn*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) && (widget != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_widget", 2, widget, "GtkWidget*");
+  gtk_tree_view_column_set_widget(s7_c_pointer(tree_column), s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_widget "GtkWidget* gtk_tree_view_column_get_widget(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_widget", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_tree_view_column_get_widget(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_alignment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_alignment "void gtk_tree_view_column_set_alignment(GtkTreeViewColumn* tree_column, \
+gfloat xalign)"
+  s7_pointer _p;
+  s7_pointer tree_column, xalign;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_alignment", 1, tree_column, "GtkTreeViewColumn*");
+  xalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xalign)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_alignment", 2, xalign, "gfloat");
+  gtk_tree_view_column_set_alignment(s7_c_pointer(tree_column), s7_real(xalign));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_alignment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_alignment "gfloat gtk_tree_view_column_get_alignment(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_alignment", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_real(sc, gtk_tree_view_column_get_alignment(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_reorderable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_reorderable "void gtk_tree_view_column_set_reorderable(GtkTreeViewColumn* tree_column, \
+gboolean reorderable)"
+  s7_pointer _p;
+  s7_pointer tree_column, reorderable;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_reorderable", 1, tree_column, "GtkTreeViewColumn*");
+  reorderable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(reorderable)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_reorderable", 2, reorderable, "gboolean");
+  gtk_tree_view_column_set_reorderable(s7_c_pointer(tree_column), lg_boolean(reorderable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_reorderable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_reorderable "gboolean gtk_tree_view_column_get_reorderable(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_reorderable", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_boolean(sc, gtk_tree_view_column_get_reorderable(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_sort_column_id(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_sort_column_id "void gtk_tree_view_column_set_sort_column_id(GtkTreeViewColumn* tree_column, \
+gint sort_column_id)"
+  s7_pointer _p;
+  s7_pointer tree_column, sort_column_id;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_sort_column_id", 1, tree_column, "GtkTreeViewColumn*");
+  sort_column_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(sort_column_id)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_sort_column_id", 2, sort_column_id, "gint");
+  gtk_tree_view_column_set_sort_column_id(s7_c_pointer(tree_column), s7_integer(sort_column_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_sort_column_id(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_sort_column_id "gint gtk_tree_view_column_get_sort_column_id(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_sort_column_id", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_integer(sc, gtk_tree_view_column_get_sort_column_id(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_sort_indicator(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_sort_indicator "void gtk_tree_view_column_set_sort_indicator(GtkTreeViewColumn* tree_column, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer tree_column, setting;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_sort_indicator", 1, tree_column, "GtkTreeViewColumn*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_sort_indicator", 2, setting, "gboolean");
+  gtk_tree_view_column_set_sort_indicator(s7_c_pointer(tree_column), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_sort_indicator(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_sort_indicator "gboolean gtk_tree_view_column_get_sort_indicator(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_sort_indicator", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_boolean(sc, gtk_tree_view_column_get_sort_indicator(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_sort_order(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_sort_order "void gtk_tree_view_column_set_sort_order(GtkTreeViewColumn* tree_column, \
+GtkSortType order)"
+  s7_pointer _p;
+  s7_pointer tree_column, order;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_sort_order", 1, tree_column, "GtkTreeViewColumn*");
+  order = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(order)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_sort_order", 2, order, "GtkSortType");
+  gtk_tree_view_column_set_sort_order(s7_c_pointer(tree_column), s7_integer(order));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_sort_order(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_sort_order "GtkSortType gtk_tree_view_column_get_sort_order(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_sort_order", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_integer(sc, gtk_tree_view_column_get_sort_order(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_cell_set_cell_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_cell_set_cell_data "void gtk_tree_view_column_cell_set_cell_data(GtkTreeViewColumn* tree_column, \
+GtkTreeModel* tree_model, GtkTreeIter* iter, gboolean is_expander, gboolean is_expanded)"
+  s7_pointer _p;
+  s7_pointer tree_column, tree_model, iter, is_expander, is_expanded;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_cell_set_cell_data", 1, tree_column, "GtkTreeViewColumn*");
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_cell_set_cell_data", 2, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_cell_set_cell_data", 3, iter, "GtkTreeIter*");
+  is_expander = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(is_expander)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_cell_set_cell_data", 4, is_expander, "gboolean");
+  is_expanded = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(is_expanded)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_cell_set_cell_data", 5, is_expanded, "gboolean");
+  gtk_tree_view_column_cell_set_cell_data(s7_c_pointer(tree_column), s7_c_pointer(tree_model), s7_c_pointer(iter), lg_boolean(is_expander), lg_boolean(is_expanded));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_cell_get_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_cell_get_size "void gtk_tree_view_column_cell_get_size(GtkTreeViewColumn* tree_column, \
+GdkRectangle* cell_area, gint* [x_offset], gint* [y_offset], gint* [width], gint* [height])"
+  s7_pointer _p;
+  s7_pointer tree_column, cell_area;
+  gint ref_x_offset;
+  gint ref_y_offset;
+  gint ref_width;
+  gint ref_height;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_cell_get_size", 1, tree_column, "GtkTreeViewColumn*");
+  cell_area = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_area, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_cell_get_size", 2, cell_area, "GdkRectangle*");
+  gtk_tree_view_column_cell_get_size(s7_c_pointer(tree_column), s7_c_pointer(cell_area), &ref_x_offset, &ref_y_offset, &ref_width, &ref_height);
+    return(s7_list(sc, 4, s7_make_integer(sc, ref_x_offset), s7_make_integer(sc, ref_y_offset), s7_make_integer(sc, ref_width), s7_make_integer(sc, ref_height)));
+}
+
+static s7_pointer lg_gtk_tree_view_column_cell_is_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_cell_is_visible "gboolean gtk_tree_view_column_cell_is_visible(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_cell_is_visible", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_boolean(sc, gtk_tree_view_column_cell_is_visible(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_cell_get_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_cell_get_position "gboolean gtk_tree_view_column_cell_get_position(GtkTreeViewColumn* tree_column, \
+GtkCellRenderer* cell_renderer, gint* [start_pos], gint* [width])"
+  s7_pointer _p;
+  s7_pointer tree_column, cell_renderer;
+  gint ref_start_pos;
+  gint ref_width;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_cell_get_position", 1, tree_column, "GtkTreeViewColumn*");
+  cell_renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_renderer, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_cell_get_position", 2, cell_renderer, "GtkCellRenderer*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_tree_view_column_cell_get_position(s7_c_pointer(tree_column), s7_c_pointer(cell_renderer), &ref_start_pos, &ref_width));
+      return(s7_list(sc, 3, result, s7_make_integer(sc, ref_start_pos), s7_make_integer(sc, ref_width)));
+   }
+}
+
+static s7_pointer lg_gtk_tree_view_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_new "GtkWidget* gtk_tree_view_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_tree_view_new()));
+}
+
+static s7_pointer lg_gtk_tree_view_new_with_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_new_with_model "GtkWidget* gtk_tree_view_new_with_model(GtkTreeModel* model)"
+  s7_pointer model;
+  model = s7_car(args);
+  if (!s7_is_c_pointer_of_type(model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_new_with_model", 1, model, "GtkTreeModel*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_tree_view_new_with_model(s7_c_pointer(model))));
+}
+
+static s7_pointer lg_gtk_tree_view_get_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_model "GtkTreeModel* gtk_tree_view_get_model(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_model", 1, tree_view, "GtkTreeView*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeModel__sym, gtk_tree_view_get_model(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_model "void gtk_tree_view_set_model(GtkTreeView* tree_view, GtkTreeModel* model)"
+  s7_pointer _p;
+  s7_pointer tree_view, model;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_model", 1, tree_view, "GtkTreeView*");
+  model = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(model, GtkTreeModel__sym)) && (model != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_model", 2, model, "GtkTreeModel*");
+  gtk_tree_view_set_model(s7_c_pointer(tree_view), s7_c_pointer(model));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_selection(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_selection "GtkTreeSelection* gtk_tree_view_get_selection(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_selection", 1, tree_view, "GtkTreeView*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeSelection__sym, gtk_tree_view_get_selection(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_get_headers_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_headers_visible "gboolean gtk_tree_view_get_headers_visible(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_headers_visible", 1, tree_view, "GtkTreeView*");
+  return(s7_make_boolean(sc, gtk_tree_view_get_headers_visible(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_headers_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_headers_visible "void gtk_tree_view_set_headers_visible(GtkTreeView* tree_view, \
+gboolean headers_visible)"
+  s7_pointer _p;
+  s7_pointer tree_view, headers_visible;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_headers_visible", 1, tree_view, "GtkTreeView*");
+  headers_visible = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(headers_visible)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_headers_visible", 2, headers_visible, "gboolean");
+  gtk_tree_view_set_headers_visible(s7_c_pointer(tree_view), lg_boolean(headers_visible));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_columns_autosize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_columns_autosize "void gtk_tree_view_columns_autosize(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_columns_autosize", 1, tree_view, "GtkTreeView*");
+  gtk_tree_view_columns_autosize(s7_c_pointer(tree_view));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_set_headers_clickable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_headers_clickable "void gtk_tree_view_set_headers_clickable(GtkTreeView* tree_view, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer tree_view, setting;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_headers_clickable", 1, tree_view, "GtkTreeView*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_headers_clickable", 2, setting, "gboolean");
+  gtk_tree_view_set_headers_clickable(s7_c_pointer(tree_view), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_append_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_append_column "gint gtk_tree_view_append_column(GtkTreeView* tree_view, GtkTreeViewColumn* column)"
+  s7_pointer _p;
+  s7_pointer tree_view, column;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_append_column", 1, tree_view, "GtkTreeView*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_append_column", 2, column, "GtkTreeViewColumn*");
+  return(s7_make_integer(sc, gtk_tree_view_append_column(s7_c_pointer(tree_view), s7_c_pointer(column))));
+}
+
+static s7_pointer lg_gtk_tree_view_remove_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_remove_column "gint gtk_tree_view_remove_column(GtkTreeView* tree_view, GtkTreeViewColumn* column)"
+  s7_pointer _p;
+  s7_pointer tree_view, column;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_remove_column", 1, tree_view, "GtkTreeView*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_remove_column", 2, column, "GtkTreeViewColumn*");
+  return(s7_make_integer(sc, gtk_tree_view_remove_column(s7_c_pointer(tree_view), s7_c_pointer(column))));
+}
+
+static s7_pointer lg_gtk_tree_view_insert_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_insert_column "gint gtk_tree_view_insert_column(GtkTreeView* tree_view, GtkTreeViewColumn* column, \
+gint position)"
+  s7_pointer _p;
+  s7_pointer tree_view, column, position;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column", 1, tree_view, "GtkTreeView*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column", 2, column, "GtkTreeViewColumn*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column", 3, position, "gint");
+  return(s7_make_integer(sc, gtk_tree_view_insert_column(s7_c_pointer(tree_view), s7_c_pointer(column), s7_integer(position))));
+}
+
+static s7_pointer lg_gtk_tree_view_insert_column_with_attributes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_insert_column_with_attributes "gint gtk_tree_view_insert_column_with_attributes(GtkTreeView* tree_view, \
+gint position, gchar* title, GtkCellRenderer* cell, etc attributes)"
+  s7_pointer _p;
+  s7_pointer tree_view, position, title, cell, attributes;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column_with_attributes", 1, tree_view, "GtkTreeView*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column_with_attributes", 2, position, "gint");
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column_with_attributes", 3, title, "gchar*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column_with_attributes", 4, cell, "GtkCellRenderer*");
+  attributes = s7_car(_p); _p = s7_cdr(_p);
+  if (!lg_is_list(attributes)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column_with_attributes", 5, attributes, "etc");
+  {
+    int etc_len = 0;
+    gint result = 0;
+    GtkTreeView* p_arg0;
+    gint p_arg1;
+    gchar* p_arg2;
+    GtkCellRenderer* p_arg3;
+    if (s7_is_list(sc, attributes)) etc_len = s7_list_length(sc, attributes);
+    if (etc_len < 2) s7_out_of_range_error(sc, "gtk_tree_view_insert_column_with_attributes", 4, attributes, "... list must have at least 2 entries");
+    if (etc_len > 10) s7_out_of_range_error(sc, "gtk_tree_view_insert_column_with_attributes", 4, attributes, "... list too long (max len: 10)");
+    if ((etc_len % 2) != 0) s7_out_of_range_error(sc, "gtk_tree_view_insert_column_with_attributes", 4, attributes, "... list len must be multiple of 2");
+    p_arg0 = (GtkTreeView*)s7_c_pointer(tree_view);
+    p_arg1 = (gint)s7_integer(position);
+    p_arg2 = (gchar*)s7_string(title);
+    p_arg3 = (GtkCellRenderer*)s7_c_pointer(cell);
+    switch (etc_len)
+      {
+        case 2: result = gtk_tree_view_insert_column_with_attributes(p_arg0, p_arg1, p_arg2, p_arg3, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), NULL); break;
+        case 4: result = gtk_tree_view_insert_column_with_attributes(p_arg0, p_arg1, p_arg2, p_arg3, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), NULL); break;
+        case 6: result = gtk_tree_view_insert_column_with_attributes(p_arg0, p_arg1, p_arg2, p_arg3, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), s7_string(s7_list_ref(sc, attributes, 4)), s7_integer(s7_list_ref(sc, attributes, 5)), NULL); break;
+        case 8: result = gtk_tree_view_insert_column_with_attributes(p_arg0, p_arg1, p_arg2, p_arg3, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), s7_string(s7_list_ref(sc, attributes, 4)), s7_integer(s7_list_ref(sc, attributes, 5)), s7_string(s7_list_ref(sc, attributes, 6)), s7_integer(s7_list_ref(sc, attributes, 7)), NULL); break;
+        case 10: result = gtk_tree_view_insert_column_with_attributes(p_arg0, p_arg1, p_arg2, p_arg3, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), s7_string(s7_list_ref(sc, attributes, 4)), s7_integer(s7_list_ref(sc, attributes, 5)), s7_string(s7_list_ref(sc, attributes, 6)), s7_integer(s7_list_ref(sc, attributes, 7)), s7_string(s7_list_ref(sc, attributes, 8)), s7_integer(s7_list_ref(sc, attributes, 9)), NULL); break;
+      }
+    return(s7_make_integer(sc, result));
+  }
+}
+
+static s7_pointer lg_gtk_tree_view_insert_column_with_data_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_insert_column_with_data_func "gint gtk_tree_view_insert_column_with_data_func(GtkTreeView* tree_view, \
+gint position, gchar* title, GtkCellRenderer* cell, GtkTreeCellDataFunc func, lambda_data func_info, \
+GtkDestroyNotify dnotify)"
+  s7_pointer _p;
+  s7_pointer tree_view, position, title, cell, func, func_info, dnotify;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column_with_data_func", 1, tree_view, "GtkTreeView*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column_with_data_func", 2, position, "gint");
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column_with_data_func", 3, title, "gchar*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column_with_data_func", 4, cell, "GtkCellRenderer*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkTreeCellDataFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column_with_data_func", 5, func, "GtkTreeCellDataFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column_with_data_func", 6, func_info, "lambda_data");
+  dnotify = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dnotify, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_insert_column_with_data_func", 7, dnotify, "GtkDestroyNotify");
+  {
+    s7_pointer result;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 3, dnotify);
+    result = s7_make_integer(sc, gtk_tree_view_insert_column_with_data_func(s7_c_pointer(tree_view), s7_integer(position), s7_string(title), s7_c_pointer(cell), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(dnotify)));
+    return(result);
+   }
+}
+
+static s7_pointer lg_gtk_tree_view_get_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_column "GtkTreeViewColumn* gtk_tree_view_get_column(GtkTreeView* tree_view, \
+gint n)"
+  s7_pointer _p;
+  s7_pointer tree_view, n;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_column", 1, tree_view, "GtkTreeView*");
+  n = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_column", 2, n, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeViewColumn__sym, gtk_tree_view_get_column(s7_c_pointer(tree_view), s7_integer(n))));
+}
+
+static s7_pointer lg_gtk_tree_view_get_columns(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_columns "GList* gtk_tree_view_get_columns(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_columns", 1, tree_view, "GtkTreeView*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_tree_view_get_columns(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_move_column_after(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_move_column_after "void gtk_tree_view_move_column_after(GtkTreeView* tree_view, \
+GtkTreeViewColumn* column, GtkTreeViewColumn* base_column)"
+  s7_pointer _p;
+  s7_pointer tree_view, column, base_column;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_move_column_after", 1, tree_view, "GtkTreeView*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_move_column_after", 2, column, "GtkTreeViewColumn*");
+  base_column = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(base_column, GtkTreeViewColumn__sym)) && (base_column != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_view_move_column_after", 3, base_column, "GtkTreeViewColumn*");
+  gtk_tree_view_move_column_after(s7_c_pointer(tree_view), s7_c_pointer(column), s7_c_pointer(base_column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_set_expander_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_expander_column "void gtk_tree_view_set_expander_column(GtkTreeView* tree_view, \
+GtkTreeViewColumn* column)"
+  s7_pointer _p;
+  s7_pointer tree_view, column;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_expander_column", 1, tree_view, "GtkTreeView*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(column, GtkTreeViewColumn__sym)) && (column != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_expander_column", 2, column, "GtkTreeViewColumn*");
+  gtk_tree_view_set_expander_column(s7_c_pointer(tree_view), s7_c_pointer(column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_expander_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_expander_column "GtkTreeViewColumn* gtk_tree_view_get_expander_column(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_expander_column", 1, tree_view, "GtkTreeView*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeViewColumn__sym, gtk_tree_view_get_expander_column(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_column_drag_function(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_column_drag_function "void gtk_tree_view_set_column_drag_function(GtkTreeView* tree_view, \
+GtkTreeViewColumnDropFunc func, lambda_data func_info, GtkDestroyNotify destroy)"
+  s7_pointer _p;
+  s7_pointer tree_view, func, func_info, destroy;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_column_drag_function", 1, tree_view, "GtkTreeView*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkTreeViewColumnDropFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_column_drag_function", 2, func, "GtkTreeViewColumnDropFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_column_drag_function", 3, func_info, "lambda_data");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_column_drag_function", 4, destroy, "GtkDestroyNotify");
+  {
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    s7_list_set(sc, lg_ptr, 3, destroy);
+    gtk_tree_view_set_column_drag_function(s7_c_pointer(tree_view), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(destroy));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_tree_view_scroll_to_point(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_scroll_to_point "void gtk_tree_view_scroll_to_point(GtkTreeView* tree_view, \
+gint tree_x, gint tree_y)"
+  s7_pointer _p;
+  s7_pointer tree_view, tree_x, tree_y;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_scroll_to_point", 1, tree_view, "GtkTreeView*");
+  tree_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(tree_x)) s7_wrong_type_arg_error(sc, "gtk_tree_view_scroll_to_point", 2, tree_x, "gint");
+  tree_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(tree_y)) s7_wrong_type_arg_error(sc, "gtk_tree_view_scroll_to_point", 3, tree_y, "gint");
+  gtk_tree_view_scroll_to_point(s7_c_pointer(tree_view), s7_integer(tree_x), s7_integer(tree_y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_scroll_to_cell(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_scroll_to_cell "void gtk_tree_view_scroll_to_cell(GtkTreeView* tree_view, GtkTreePath* path, \
+GtkTreeViewColumn* column, gboolean use_align, gfloat row_align, gfloat col_align)"
+  s7_pointer _p;
+  s7_pointer tree_view, path, column, use_align, row_align, col_align;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_scroll_to_cell", 1, tree_view, "GtkTreeView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) && (path != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_view_scroll_to_cell", 2, path, "GtkTreePath*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(column, GtkTreeViewColumn__sym)) && (column != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_view_scroll_to_cell", 3, column, "GtkTreeViewColumn*");
+  use_align = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_align)) s7_wrong_type_arg_error(sc, "gtk_tree_view_scroll_to_cell", 4, use_align, "gboolean");
+  row_align = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(row_align)) s7_wrong_type_arg_error(sc, "gtk_tree_view_scroll_to_cell", 5, row_align, "gfloat");
+  col_align = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(col_align)) s7_wrong_type_arg_error(sc, "gtk_tree_view_scroll_to_cell", 6, col_align, "gfloat");
+  gtk_tree_view_scroll_to_cell(s7_c_pointer(tree_view), s7_c_pointer(path), s7_c_pointer(column), lg_boolean(use_align), s7_real(row_align), s7_real(col_align));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_row_activated(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_row_activated "void gtk_tree_view_row_activated(GtkTreeView* tree_view, GtkTreePath* path, \
+GtkTreeViewColumn* column)"
+  s7_pointer _p;
+  s7_pointer tree_view, path, column;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_row_activated", 1, tree_view, "GtkTreeView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_row_activated", 2, path, "GtkTreePath*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_row_activated", 3, column, "GtkTreeViewColumn*");
+  gtk_tree_view_row_activated(s7_c_pointer(tree_view), s7_c_pointer(path), s7_c_pointer(column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_expand_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_expand_all "void gtk_tree_view_expand_all(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_expand_all", 1, tree_view, "GtkTreeView*");
+  gtk_tree_view_expand_all(s7_c_pointer(tree_view));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_collapse_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_collapse_all "void gtk_tree_view_collapse_all(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_collapse_all", 1, tree_view, "GtkTreeView*");
+  gtk_tree_view_collapse_all(s7_c_pointer(tree_view));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_expand_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_expand_row "gboolean gtk_tree_view_expand_row(GtkTreeView* tree_view, GtkTreePath* path, \
+gboolean open_all)"
+  s7_pointer _p;
+  s7_pointer tree_view, path, open_all;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_expand_row", 1, tree_view, "GtkTreeView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_expand_row", 2, path, "GtkTreePath*");
+  open_all = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(open_all)) s7_wrong_type_arg_error(sc, "gtk_tree_view_expand_row", 3, open_all, "gboolean");
+  return(s7_make_boolean(sc, gtk_tree_view_expand_row(s7_c_pointer(tree_view), s7_c_pointer(path), lg_boolean(open_all))));
+}
+
+static s7_pointer lg_gtk_tree_view_collapse_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_collapse_row "gboolean gtk_tree_view_collapse_row(GtkTreeView* tree_view, GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer tree_view, path;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_collapse_row", 1, tree_view, "GtkTreeView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_collapse_row", 2, path, "GtkTreePath*");
+  return(s7_make_boolean(sc, gtk_tree_view_collapse_row(s7_c_pointer(tree_view), s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_view_map_expanded_rows(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_map_expanded_rows "void gtk_tree_view_map_expanded_rows(GtkTreeView* tree_view, \
+GtkTreeViewMappingFunc func, lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer tree_view, func, func_info;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_map_expanded_rows", 1, tree_view, "GtkTreeView*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkTreeViewMappingFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_map_expanded_rows", 2, func, "GtkTreeViewMappingFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_view_map_expanded_rows", 3, func_info, "lambda_data");
+  {
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    gtk_tree_view_map_expanded_rows(s7_c_pointer(tree_view), s7_c_pointer(func), (gpointer)lg_ptr);
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_tree_view_row_expanded(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_row_expanded "gboolean gtk_tree_view_row_expanded(GtkTreeView* tree_view, GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer tree_view, path;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_row_expanded", 1, tree_view, "GtkTreeView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_row_expanded", 2, path, "GtkTreePath*");
+  return(s7_make_boolean(sc, gtk_tree_view_row_expanded(s7_c_pointer(tree_view), s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_reorderable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_reorderable "void gtk_tree_view_set_reorderable(GtkTreeView* tree_view, \
+gboolean reorderable)"
+  s7_pointer _p;
+  s7_pointer tree_view, reorderable;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_reorderable", 1, tree_view, "GtkTreeView*");
+  reorderable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(reorderable)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_reorderable", 2, reorderable, "gboolean");
+  gtk_tree_view_set_reorderable(s7_c_pointer(tree_view), lg_boolean(reorderable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_reorderable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_reorderable "gboolean gtk_tree_view_get_reorderable(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_reorderable", 1, tree_view, "GtkTreeView*");
+  return(s7_make_boolean(sc, gtk_tree_view_get_reorderable(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_cursor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_cursor "void gtk_tree_view_set_cursor(GtkTreeView* tree_view, GtkTreePath* path, \
+GtkTreeViewColumn* focus_column, gboolean start_editing)"
+  s7_pointer _p;
+  s7_pointer tree_view, path, focus_column, start_editing;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_cursor", 1, tree_view, "GtkTreeView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_cursor", 2, path, "GtkTreePath*");
+  focus_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(focus_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_cursor", 3, focus_column, "GtkTreeViewColumn*");
+  start_editing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(start_editing)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_cursor", 4, start_editing, "gboolean");
+  gtk_tree_view_set_cursor(s7_c_pointer(tree_view), s7_c_pointer(path), s7_c_pointer(focus_column), lg_boolean(start_editing));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_cursor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_cursor "void gtk_tree_view_get_cursor(GtkTreeView* tree_view, GtkTreePath** [path], \
+GtkTreeViewColumn** [focus_column])"
+  s7_pointer _p;
+  s7_pointer tree_view;
+  GtkTreePath* ref_path = NULL;
+  GtkTreeViewColumn* ref_focus_column = NULL;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_cursor", 1, tree_view, "GtkTreeView*");
+  gtk_tree_view_get_cursor(s7_c_pointer(tree_view), &ref_path, &ref_focus_column);
+    return(s7_list(sc, 2, s7_make_c_pointer(sc, ref_path), s7_make_c_pointer(sc, ref_focus_column)));
+}
+
+static s7_pointer lg_gtk_tree_view_get_path_at_pos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_path_at_pos "gboolean gtk_tree_view_get_path_at_pos(GtkTreeView* tree_view, \
+gint x, gint y, GtkTreePath** [path], GtkTreeViewColumn** [column], gint* [cell_x], gint* [cell_y])"
+  s7_pointer _p;
+  s7_pointer tree_view, x, y;
+  GtkTreePath* ref_path = NULL;
+  GtkTreeViewColumn* ref_column = NULL;
+  gint ref_cell_x;
+  gint ref_cell_y;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_path_at_pos", 1, tree_view, "GtkTreeView*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_path_at_pos", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_path_at_pos", 3, y, "gint");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_tree_view_get_path_at_pos(s7_c_pointer(tree_view), s7_integer(x), s7_integer(y), &ref_path, &ref_column, &ref_cell_x, &ref_cell_y));
+      return(s7_list(sc, 5, result, s7_make_c_pointer(sc, ref_path), s7_make_c_pointer(sc, ref_column), s7_make_integer(sc, ref_cell_x), s7_make_integer(sc, ref_cell_y)));
+   }
+}
+
+static s7_pointer lg_gtk_tree_view_get_cell_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_cell_area "void gtk_tree_view_get_cell_area(GtkTreeView* tree_view, GtkTreePath* path, \
+GtkTreeViewColumn* column, GdkRectangle* rect)"
+  s7_pointer _p;
+  s7_pointer tree_view, path, column, rect;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_cell_area", 1, tree_view, "GtkTreeView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) && (path != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_cell_area", 2, path, "GtkTreePath*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(column, GtkTreeViewColumn__sym)) && (column != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_cell_area", 3, column, "GtkTreeViewColumn*");
+  rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rect, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_cell_area", 4, rect, "GdkRectangle*");
+  gtk_tree_view_get_cell_area(s7_c_pointer(tree_view), s7_c_pointer(path), s7_c_pointer(column), s7_c_pointer(rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_background_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_background_area "void gtk_tree_view_get_background_area(GtkTreeView* tree_view, \
+GtkTreePath* path, GtkTreeViewColumn* column, GdkRectangle* rect)"
+  s7_pointer _p;
+  s7_pointer tree_view, path, column, rect;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_background_area", 1, tree_view, "GtkTreeView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) && (path != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_background_area", 2, path, "GtkTreePath*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(column, GtkTreeViewColumn__sym)) && (column != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_background_area", 3, column, "GtkTreeViewColumn*");
+  rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rect, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_background_area", 4, rect, "GdkRectangle*");
+  gtk_tree_view_get_background_area(s7_c_pointer(tree_view), s7_c_pointer(path), s7_c_pointer(column), s7_c_pointer(rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_visible_rect(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_visible_rect "void gtk_tree_view_get_visible_rect(GtkTreeView* tree_view, \
+GdkRectangle* visible_rect)"
+  s7_pointer _p;
+  s7_pointer tree_view, visible_rect;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_visible_rect", 1, tree_view, "GtkTreeView*");
+  visible_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(visible_rect, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_visible_rect", 2, visible_rect, "GdkRectangle*");
+  gtk_tree_view_get_visible_rect(s7_c_pointer(tree_view), s7_c_pointer(visible_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_enable_model_drag_source(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_enable_model_drag_source "void gtk_tree_view_enable_model_drag_source(GtkTreeView* tree_view, \
+GdkModifierType start_button_mask, GtkTargetEntry* targets, gint n_targets, GdkDragAction actions)"
+  s7_pointer _p;
+  s7_pointer tree_view, start_button_mask, targets, n_targets, actions;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_enable_model_drag_source", 1, tree_view, "GtkTreeView*");
+  start_button_mask = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(start_button_mask)) s7_wrong_type_arg_error(sc, "gtk_tree_view_enable_model_drag_source", 2, start_button_mask, "GdkModifierType");
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GtkTargetEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_enable_model_drag_source", 3, targets, "GtkTargetEntry*");
+  n_targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_targets)) s7_wrong_type_arg_error(sc, "gtk_tree_view_enable_model_drag_source", 4, n_targets, "gint");
+  actions = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(actions)) s7_wrong_type_arg_error(sc, "gtk_tree_view_enable_model_drag_source", 5, actions, "GdkDragAction");
+  gtk_tree_view_enable_model_drag_source(s7_c_pointer(tree_view), s7_integer(start_button_mask), s7_c_pointer(targets), s7_integer(n_targets), s7_integer(actions));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_enable_model_drag_dest(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_enable_model_drag_dest "void gtk_tree_view_enable_model_drag_dest(GtkTreeView* tree_view, \
+GtkTargetEntry* targets, gint n_targets, GdkDragAction actions)"
+  s7_pointer _p;
+  s7_pointer tree_view, targets, n_targets, actions;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_enable_model_drag_dest", 1, tree_view, "GtkTreeView*");
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GtkTargetEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_enable_model_drag_dest", 2, targets, "GtkTargetEntry*");
+  n_targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_targets)) s7_wrong_type_arg_error(sc, "gtk_tree_view_enable_model_drag_dest", 3, n_targets, "gint");
+  actions = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(actions)) s7_wrong_type_arg_error(sc, "gtk_tree_view_enable_model_drag_dest", 4, actions, "GdkDragAction");
+  gtk_tree_view_enable_model_drag_dest(s7_c_pointer(tree_view), s7_c_pointer(targets), s7_integer(n_targets), s7_integer(actions));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_unset_rows_drag_source(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_unset_rows_drag_source "void gtk_tree_view_unset_rows_drag_source(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_unset_rows_drag_source", 1, tree_view, "GtkTreeView*");
+  gtk_tree_view_unset_rows_drag_source(s7_c_pointer(tree_view));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_unset_rows_drag_dest(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_unset_rows_drag_dest "void gtk_tree_view_unset_rows_drag_dest(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_unset_rows_drag_dest", 1, tree_view, "GtkTreeView*");
+  gtk_tree_view_unset_rows_drag_dest(s7_c_pointer(tree_view));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_set_drag_dest_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_drag_dest_row "void gtk_tree_view_set_drag_dest_row(GtkTreeView* tree_view, \
+GtkTreePath* path, GtkTreeViewDropPosition pos)"
+  s7_pointer _p;
+  s7_pointer tree_view, path, pos;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_drag_dest_row", 1, tree_view, "GtkTreeView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_drag_dest_row", 2, path, "GtkTreePath*");
+  pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pos)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_drag_dest_row", 3, pos, "GtkTreeViewDropPosition");
+  gtk_tree_view_set_drag_dest_row(s7_c_pointer(tree_view), s7_c_pointer(path), s7_integer(pos));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_drag_dest_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_drag_dest_row "void gtk_tree_view_get_drag_dest_row(GtkTreeView* tree_view, \
+GtkTreePath** [path], GtkTreeViewDropPosition* [pos])"
+  s7_pointer _p;
+  s7_pointer tree_view;
+  GtkTreePath* ref_path = NULL;
+  GtkTreeViewDropPosition ref_pos;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_drag_dest_row", 1, tree_view, "GtkTreeView*");
+  gtk_tree_view_get_drag_dest_row(s7_c_pointer(tree_view), &ref_path, &ref_pos);
+    return(s7_list(sc, 2, s7_make_c_pointer(sc, ref_path), s7_make_integer(sc, ref_pos)));
+}
+
+static s7_pointer lg_gtk_tree_view_get_dest_row_at_pos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_dest_row_at_pos "gboolean gtk_tree_view_get_dest_row_at_pos(GtkTreeView* tree_view, \
+gint drag_x, gint drag_y, GtkTreePath** [path], GtkTreeViewDropPosition* [pos])"
+  s7_pointer _p;
+  s7_pointer tree_view, drag_x, drag_y;
+  GtkTreePath* ref_path = NULL;
+  GtkTreeViewDropPosition ref_pos;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_dest_row_at_pos", 1, tree_view, "GtkTreeView*");
+  drag_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(drag_x)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_dest_row_at_pos", 2, drag_x, "gint");
+  drag_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(drag_y)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_dest_row_at_pos", 3, drag_y, "gint");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_tree_view_get_dest_row_at_pos(s7_c_pointer(tree_view), s7_integer(drag_x), s7_integer(drag_y), &ref_path, &ref_pos));
+      return(s7_list(sc, 3, result, s7_make_c_pointer(sc, ref_path), s7_make_integer(sc, ref_pos)));
+   }
+}
+
+static s7_pointer lg_gtk_tree_view_set_enable_search(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_enable_search "void gtk_tree_view_set_enable_search(GtkTreeView* tree_view, \
+gboolean enable_search)"
+  s7_pointer _p;
+  s7_pointer tree_view, enable_search;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_enable_search", 1, tree_view, "GtkTreeView*");
+  enable_search = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(enable_search)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_enable_search", 2, enable_search, "gboolean");
+  gtk_tree_view_set_enable_search(s7_c_pointer(tree_view), lg_boolean(enable_search));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_enable_search(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_enable_search "gboolean gtk_tree_view_get_enable_search(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_enable_search", 1, tree_view, "GtkTreeView*");
+  return(s7_make_boolean(sc, gtk_tree_view_get_enable_search(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_get_search_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_search_column "gint gtk_tree_view_get_search_column(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_search_column", 1, tree_view, "GtkTreeView*");
+  return(s7_make_integer(sc, gtk_tree_view_get_search_column(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_search_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_search_column "void gtk_tree_view_set_search_column(GtkTreeView* tree_view, \
+gint column)"
+  s7_pointer _p;
+  s7_pointer tree_view, column;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_search_column", 1, tree_view, "GtkTreeView*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(column)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_search_column", 2, column, "gint");
+  gtk_tree_view_set_search_column(s7_c_pointer(tree_view), s7_integer(column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_search_equal_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_search_equal_func "GtkTreeViewSearchEqualFunc gtk_tree_view_get_search_equal_func(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_search_equal_func", 1, tree_view, "GtkTreeView*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeViewSearchEqualFunc_sym, gtk_tree_view_get_search_equal_func(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_search_equal_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_search_equal_func "void gtk_tree_view_set_search_equal_func(GtkTreeView* tree_view, \
+GtkTreeViewSearchEqualFunc func, lambda_data func_info, GtkDestroyNotify search_destroy)"
+  s7_pointer _p;
+  s7_pointer tree_view, func, func_info, search_destroy;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_search_equal_func", 1, tree_view, "GtkTreeView*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkTreeViewSearchEqualFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_search_equal_func", 2, func, "GtkTreeViewSearchEqualFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_search_equal_func", 3, func_info, "lambda_data");
+  search_destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(search_destroy, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_search_equal_func", 4, search_destroy, "GtkDestroyNotify");
+  {
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    s7_list_set(sc, lg_ptr, 3, search_destroy);
+    gtk_tree_view_set_search_equal_func(s7_c_pointer(tree_view), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(search_destroy));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_viewport_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_viewport_new "GtkWidget* gtk_viewport_new(GtkAdjustment* hadjustment, GtkAdjustment* vadjustment)"
+  s7_pointer _p;
+  s7_pointer hadjustment, vadjustment;
+  _p = args;
+  hadjustment = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(hadjustment, GtkAdjustment__sym)) && (hadjustment != lg_false)) s7_wrong_type_arg_error(sc, "gtk_viewport_new", 1, hadjustment, "GtkAdjustment*");
+  vadjustment = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(vadjustment, GtkAdjustment__sym)) && (vadjustment != lg_false)) s7_wrong_type_arg_error(sc, "gtk_viewport_new", 2, vadjustment, "GtkAdjustment*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_viewport_new(s7_c_pointer(hadjustment), s7_c_pointer(vadjustment))));
+}
+
+static s7_pointer lg_gtk_viewport_set_shadow_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_viewport_set_shadow_type "void gtk_viewport_set_shadow_type(GtkViewport* viewport, GtkShadowType type)"
+  s7_pointer _p;
+  s7_pointer viewport, type;
+  _p = args;
+  viewport = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(viewport, GtkViewport__sym)) s7_wrong_type_arg_error(sc, "gtk_viewport_set_shadow_type", 1, viewport, "GtkViewport*");
+  type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(type)) s7_wrong_type_arg_error(sc, "gtk_viewport_set_shadow_type", 2, type, "GtkShadowType");
+  gtk_viewport_set_shadow_type(s7_c_pointer(viewport), s7_integer(type));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_viewport_get_shadow_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_viewport_get_shadow_type "GtkShadowType gtk_viewport_get_shadow_type(GtkViewport* viewport)"
+  s7_pointer viewport;
+  viewport = s7_car(args);
+  if (!s7_is_c_pointer_of_type(viewport, GtkViewport__sym)) s7_wrong_type_arg_error(sc, "gtk_viewport_get_shadow_type", 1, viewport, "GtkViewport*");
+  return(s7_make_integer(sc, gtk_viewport_get_shadow_type(s7_c_pointer(viewport))));
+}
+
+static s7_pointer lg_gtk_widget_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_destroy "void gtk_widget_destroy(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_destroy", 1, widget, "GtkWidget*");
+  gtk_widget_destroy(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_destroyed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_destroyed "void gtk_widget_destroyed(GtkWidget* widget, GtkWidget** [widget_pointer])"
+  s7_pointer _p;
+  s7_pointer widget;
+  GtkWidget* ref_widget_pointer = NULL;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_destroyed", 1, widget, "GtkWidget*");
+  gtk_widget_destroyed(s7_c_pointer(widget), &ref_widget_pointer);
+    return(s7_list(sc, 1, s7_make_c_pointer(sc, ref_widget_pointer)));
+}
+
+static s7_pointer lg_gtk_widget_unparent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_unparent "void gtk_widget_unparent(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_unparent", 1, widget, "GtkWidget*");
+  gtk_widget_unparent(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_show(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_show "void gtk_widget_show(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_show", 1, widget, "GtkWidget*");
+  gtk_widget_show(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_show_now(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_show_now "void gtk_widget_show_now(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_show_now", 1, widget, "GtkWidget*");
+  gtk_widget_show_now(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_hide(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_hide "void gtk_widget_hide(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_hide", 1, widget, "GtkWidget*");
+  gtk_widget_hide(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_map(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_map "void gtk_widget_map(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_map", 1, widget, "GtkWidget*");
+  gtk_widget_map(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_unmap(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_unmap "void gtk_widget_unmap(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_unmap", 1, widget, "GtkWidget*");
+  gtk_widget_unmap(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_realize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_realize "void gtk_widget_realize(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_realize", 1, widget, "GtkWidget*");
+  gtk_widget_realize(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_unrealize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_unrealize "void gtk_widget_unrealize(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_unrealize", 1, widget, "GtkWidget*");
+  gtk_widget_unrealize(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_queue_draw(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_queue_draw "void gtk_widget_queue_draw(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_queue_draw", 1, widget, "GtkWidget*");
+  gtk_widget_queue_draw(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_queue_draw_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_queue_draw_area "void gtk_widget_queue_draw_area(GtkWidget* widget, gint x, gint y, \
+gint width, gint height)"
+  s7_pointer _p;
+  s7_pointer widget, x, y, width, height;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_queue_draw_area", 1, widget, "GtkWidget*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_widget_queue_draw_area", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_widget_queue_draw_area", 3, y, "gint");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gtk_widget_queue_draw_area", 4, width, "gint");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gtk_widget_queue_draw_area", 5, height, "gint");
+  gtk_widget_queue_draw_area(s7_c_pointer(widget), s7_integer(x), s7_integer(y), s7_integer(width), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_queue_resize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_queue_resize "void gtk_widget_queue_resize(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_queue_resize", 1, widget, "GtkWidget*");
+  gtk_widget_queue_resize(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_size_allocate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_size_allocate "void gtk_widget_size_allocate(GtkWidget* widget, GtkAllocation* allocation)"
+  s7_pointer _p;
+  s7_pointer widget, allocation;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_size_allocate", 1, widget, "GtkWidget*");
+  allocation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(allocation, GtkAllocation__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_size_allocate", 2, allocation, "GtkAllocation*");
+  gtk_widget_size_allocate(s7_c_pointer(widget), s7_c_pointer(allocation));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_add_accelerator(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_add_accelerator "void gtk_widget_add_accelerator(GtkWidget* widget, gchar* accel_signal, \
+GtkAccelGroup* accel_group, guint accel_key, GdkModifierType accel_mods, GtkAccelFlags accel_flags)"
+  s7_pointer _p;
+  s7_pointer widget, accel_signal, accel_group, accel_key, accel_mods, accel_flags;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_add_accelerator", 1, widget, "GtkWidget*");
+  accel_signal = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(accel_signal)) s7_wrong_type_arg_error(sc, "gtk_widget_add_accelerator", 2, accel_signal, "gchar*");
+  accel_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_add_accelerator", 3, accel_group, "GtkAccelGroup*");
+  accel_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_key)) s7_wrong_type_arg_error(sc, "gtk_widget_add_accelerator", 4, accel_key, "guint");
+  accel_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_mods)) s7_wrong_type_arg_error(sc, "gtk_widget_add_accelerator", 5, accel_mods, "GdkModifierType");
+  accel_flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_flags)) s7_wrong_type_arg_error(sc, "gtk_widget_add_accelerator", 6, accel_flags, "GtkAccelFlags");
+  gtk_widget_add_accelerator(s7_c_pointer(widget), s7_string(accel_signal), s7_c_pointer(accel_group), s7_integer(accel_key), s7_integer(accel_mods), s7_integer(accel_flags));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_remove_accelerator(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_remove_accelerator "gboolean gtk_widget_remove_accelerator(GtkWidget* widget, \
+GtkAccelGroup* accel_group, guint accel_key, GdkModifierType accel_mods)"
+  s7_pointer _p;
+  s7_pointer widget, accel_group, accel_key, accel_mods;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_remove_accelerator", 1, widget, "GtkWidget*");
+  accel_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_remove_accelerator", 2, accel_group, "GtkAccelGroup*");
+  accel_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_key)) s7_wrong_type_arg_error(sc, "gtk_widget_remove_accelerator", 3, accel_key, "guint");
+  accel_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_mods)) s7_wrong_type_arg_error(sc, "gtk_widget_remove_accelerator", 4, accel_mods, "GdkModifierType");
+  return(s7_make_boolean(sc, gtk_widget_remove_accelerator(s7_c_pointer(widget), s7_c_pointer(accel_group), s7_integer(accel_key), s7_integer(accel_mods))));
+}
+
+static s7_pointer lg_gtk_widget_list_accel_closures(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_list_accel_closures "GList* gtk_widget_list_accel_closures(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_list_accel_closures", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_widget_list_accel_closures(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_mnemonic_activate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_mnemonic_activate "gboolean gtk_widget_mnemonic_activate(GtkWidget* widget, gboolean group_cycling)"
+  s7_pointer _p;
+  s7_pointer widget, group_cycling;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_mnemonic_activate", 1, widget, "GtkWidget*");
+  group_cycling = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(group_cycling)) s7_wrong_type_arg_error(sc, "gtk_widget_mnemonic_activate", 2, group_cycling, "gboolean");
+  return(s7_make_boolean(sc, gtk_widget_mnemonic_activate(s7_c_pointer(widget), lg_boolean(group_cycling))));
+}
+
+static s7_pointer lg_gtk_widget_event(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_event "gboolean gtk_widget_event(GtkWidget* widget, GdkEvent* event)"
+  s7_pointer _p;
+  s7_pointer widget, event;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_event", 1, widget, "GtkWidget*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_event", 2, event, "GdkEvent*");
+  return(s7_make_boolean(sc, gtk_widget_event(s7_c_pointer(widget), s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gtk_widget_activate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_activate "gboolean gtk_widget_activate(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_activate", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_activate(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_intersect(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_intersect "gboolean gtk_widget_intersect(GtkWidget* widget, GdkRectangle* area, \
+GdkRectangle* intersection)"
+  s7_pointer _p;
+  s7_pointer widget, area, intersection;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_intersect", 1, widget, "GtkWidget*");
+  area = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(area, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_intersect", 2, area, "GdkRectangle*");
+  intersection = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(intersection, GdkRectangle__sym)) && (intersection != lg_false)) s7_wrong_type_arg_error(sc, "gtk_widget_intersect", 3, intersection, "GdkRectangle*");
+  return(s7_make_boolean(sc, gtk_widget_intersect(s7_c_pointer(widget), s7_c_pointer(area), s7_c_pointer(intersection))));
+}
+
+static s7_pointer lg_gtk_widget_freeze_child_notify(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_freeze_child_notify "void gtk_widget_freeze_child_notify(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_freeze_child_notify", 1, widget, "GtkWidget*");
+  gtk_widget_freeze_child_notify(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_child_notify(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_child_notify "void gtk_widget_child_notify(GtkWidget* widget, gchar* child_property)"
+  s7_pointer _p;
+  s7_pointer widget, child_property;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_child_notify", 1, widget, "GtkWidget*");
+  child_property = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(child_property)) s7_wrong_type_arg_error(sc, "gtk_widget_child_notify", 2, child_property, "gchar*");
+  gtk_widget_child_notify(s7_c_pointer(widget), s7_string(child_property));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_thaw_child_notify(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_thaw_child_notify "void gtk_widget_thaw_child_notify(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_thaw_child_notify", 1, widget, "GtkWidget*");
+  gtk_widget_thaw_child_notify(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_is_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_is_focus "gboolean gtk_widget_is_focus(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_is_focus", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_is_focus(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_grab_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_grab_focus "void gtk_widget_grab_focus(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_grab_focus", 1, widget, "GtkWidget*");
+  gtk_widget_grab_focus(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_grab_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_grab_default "void gtk_widget_grab_default(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_grab_default", 1, widget, "GtkWidget*");
+  gtk_widget_grab_default(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_set_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_name "void gtk_widget_set_name(GtkWidget* widget, gchar* name)"
+  s7_pointer _p;
+  s7_pointer widget, name;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_name", 1, widget, "GtkWidget*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_widget_set_name", 2, name, "gchar*");
+  gtk_widget_set_name(s7_c_pointer(widget), s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_name "gchar* gtk_widget_get_name(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_name", 1, widget, "GtkWidget*");
+  return(s7_make_string(sc, gtk_widget_get_name(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_sensitive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_sensitive "void gtk_widget_set_sensitive(GtkWidget* widget, gboolean sensitive)"
+  s7_pointer _p;
+  s7_pointer widget, sensitive;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_sensitive", 1, widget, "GtkWidget*");
+  sensitive = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(sensitive)) s7_wrong_type_arg_error(sc, "gtk_widget_set_sensitive", 2, sensitive, "gboolean");
+  gtk_widget_set_sensitive(s7_c_pointer(widget), lg_boolean(sensitive));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_set_redraw_on_allocate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_redraw_on_allocate "void gtk_widget_set_redraw_on_allocate(GtkWidget* widget, \
+gboolean redraw_on_allocate)"
+  s7_pointer _p;
+  s7_pointer widget, redraw_on_allocate;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_redraw_on_allocate", 1, widget, "GtkWidget*");
+  redraw_on_allocate = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(redraw_on_allocate)) s7_wrong_type_arg_error(sc, "gtk_widget_set_redraw_on_allocate", 2, redraw_on_allocate, "gboolean");
+  gtk_widget_set_redraw_on_allocate(s7_c_pointer(widget), lg_boolean(redraw_on_allocate));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_set_parent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_parent "void gtk_widget_set_parent(GtkWidget* widget, GtkWidget* parent)"
+  s7_pointer _p;
+  s7_pointer widget, parent;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_parent", 1, widget, "GtkWidget*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(parent, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_parent", 2, parent, "GtkWidget*");
+  gtk_widget_set_parent(s7_c_pointer(widget), s7_c_pointer(parent));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_set_parent_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_parent_window "void gtk_widget_set_parent_window(GtkWidget* widget, GdkWindow* parent_window)"
+  s7_pointer _p;
+  s7_pointer widget, parent_window;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_parent_window", 1, widget, "GtkWidget*");
+  parent_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(parent_window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_parent_window", 2, parent_window, "GdkWindow*");
+  gtk_widget_set_parent_window(s7_c_pointer(widget), s7_c_pointer(parent_window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_set_child_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_child_visible "void gtk_widget_set_child_visible(GtkWidget* widget, gboolean is_visible)"
+  s7_pointer _p;
+  s7_pointer widget, is_visible;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_child_visible", 1, widget, "GtkWidget*");
+  is_visible = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(is_visible)) s7_wrong_type_arg_error(sc, "gtk_widget_set_child_visible", 2, is_visible, "gboolean");
+  gtk_widget_set_child_visible(s7_c_pointer(widget), lg_boolean(is_visible));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_set_accel_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_accel_path "void gtk_widget_set_accel_path(GtkWidget* widget, gchar* accel_path, \
+GtkAccelGroup* accel_group)"
+  s7_pointer _p;
+  s7_pointer widget, accel_path, accel_group;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_accel_path", 1, widget, "GtkWidget*");
+  accel_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(accel_path)) s7_wrong_type_arg_error(sc, "gtk_widget_set_accel_path", 2, accel_path, "gchar*");
+  accel_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_accel_path", 3, accel_group, "GtkAccelGroup*");
+  gtk_widget_set_accel_path(s7_c_pointer(widget), s7_string(accel_path), s7_c_pointer(accel_group));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_child_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_child_visible "gboolean gtk_widget_get_child_visible(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_child_visible", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_child_visible(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_parent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_parent "GtkWidget* gtk_widget_get_parent(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_parent", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_widget_get_parent(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_parent_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_parent_window "GdkWindow* gtk_widget_get_parent_window(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_parent_window", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gtk_widget_get_parent_window(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_child_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_child_focus "gboolean gtk_widget_child_focus(GtkWidget* widget, GtkDirectionType direction)"
+  s7_pointer _p;
+  s7_pointer widget, direction;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_child_focus", 1, widget, "GtkWidget*");
+  direction = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(direction)) s7_wrong_type_arg_error(sc, "gtk_widget_child_focus", 2, direction, "GtkDirectionType");
+  return(s7_make_boolean(sc, gtk_widget_child_focus(s7_c_pointer(widget), s7_integer(direction))));
+}
+
+static s7_pointer lg_gtk_widget_set_size_request(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_size_request "void gtk_widget_set_size_request(GtkWidget* widget, gint width, \
+gint height)"
+  s7_pointer _p;
+  s7_pointer widget, width, height;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_size_request", 1, widget, "GtkWidget*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gtk_widget_set_size_request", 2, width, "gint");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gtk_widget_set_size_request", 3, height, "gint");
+  gtk_widget_set_size_request(s7_c_pointer(widget), s7_integer(width), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_size_request(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_size_request "void gtk_widget_get_size_request(GtkWidget* widget, gint* [width], \
+gint* [height])"
+  s7_pointer _p;
+  s7_pointer widget;
+  gint ref_width;
+  gint ref_height;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_size_request", 1, widget, "GtkWidget*");
+  gtk_widget_get_size_request(s7_c_pointer(widget), &ref_width, &ref_height);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_width), s7_make_integer(sc, ref_height)));
+}
+
+static s7_pointer lg_gtk_widget_get_toplevel(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_toplevel "GtkWidget* gtk_widget_get_toplevel(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_toplevel", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_widget_get_toplevel(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_ancestor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_ancestor "GtkWidget* gtk_widget_get_ancestor(GtkWidget* widget, GType widget_type)"
+  s7_pointer _p;
+  s7_pointer widget, widget_type;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_ancestor", 1, widget, "GtkWidget*");
+  widget_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(widget_type)) s7_wrong_type_arg_error(sc, "gtk_widget_get_ancestor", 2, widget_type, "GType");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_widget_get_ancestor(s7_c_pointer(widget), s7_integer(widget_type))));
+}
+
+static s7_pointer lg_gtk_widget_get_settings(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_settings "GtkSettings* gtk_widget_get_settings(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_settings", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkSettings__sym, gtk_widget_get_settings(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_accessible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_accessible "AtkObject* gtk_widget_get_accessible(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_accessible", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, AtkObject__sym, gtk_widget_get_accessible(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_is_ancestor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_is_ancestor "gboolean gtk_widget_is_ancestor(GtkWidget* widget, GtkWidget* ancestor)"
+  s7_pointer _p;
+  s7_pointer widget, ancestor;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_is_ancestor", 1, widget, "GtkWidget*");
+  ancestor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ancestor, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_is_ancestor", 2, ancestor, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_is_ancestor(s7_c_pointer(widget), s7_c_pointer(ancestor))));
+}
+
+static s7_pointer lg_gtk_widget_translate_coordinates(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_translate_coordinates "gboolean gtk_widget_translate_coordinates(GtkWidget* src_widget, \
+GtkWidget* dest_widget, gint src_x, gint src_y, gint* [dest_x], gint* [dest_y])"
+  s7_pointer _p;
+  s7_pointer src_widget, dest_widget, src_x, src_y;
+  gint ref_dest_x;
+  gint ref_dest_y;
+  _p = args;
+  src_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(src_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_translate_coordinates", 1, src_widget, "GtkWidget*");
+  dest_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dest_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_translate_coordinates", 2, dest_widget, "GtkWidget*");
+  src_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(src_x)) s7_wrong_type_arg_error(sc, "gtk_widget_translate_coordinates", 3, src_x, "gint");
+  src_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(src_y)) s7_wrong_type_arg_error(sc, "gtk_widget_translate_coordinates", 4, src_y, "gint");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_widget_translate_coordinates(s7_c_pointer(src_widget), s7_c_pointer(dest_widget), s7_integer(src_x), s7_integer(src_y), &ref_dest_x, &ref_dest_y));
+      return(s7_list(sc, 3, result, s7_make_integer(sc, ref_dest_x), s7_make_integer(sc, ref_dest_y)));
+   }
+}
+
+static s7_pointer lg_gtk_widget_hide_on_delete(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_hide_on_delete "gboolean gtk_widget_hide_on_delete(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_hide_on_delete", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_hide_on_delete(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_create_pango_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_create_pango_context "PangoContext* gtk_widget_create_pango_context(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_create_pango_context", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, PangoContext__sym, gtk_widget_create_pango_context(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_pango_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_pango_context "PangoContext* gtk_widget_get_pango_context(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_pango_context", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, PangoContext__sym, gtk_widget_get_pango_context(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_create_pango_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_create_pango_layout "PangoLayout* gtk_widget_create_pango_layout(GtkWidget* widget, \
+gchar* text)"
+  s7_pointer _p;
+  s7_pointer widget, text;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_create_pango_layout", 1, widget, "GtkWidget*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_widget_create_pango_layout", 2, text, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, PangoLayout__sym, gtk_widget_create_pango_layout(s7_c_pointer(widget), s7_string(text))));
+}
+
+static s7_pointer lg_gtk_widget_set_direction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_direction "void gtk_widget_set_direction(GtkWidget* widget, GtkTextDirection dir)"
+  s7_pointer _p;
+  s7_pointer widget, dir;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_direction", 1, widget, "GtkWidget*");
+  dir = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dir)) s7_wrong_type_arg_error(sc, "gtk_widget_set_direction", 2, dir, "GtkTextDirection");
+  gtk_widget_set_direction(s7_c_pointer(widget), s7_integer(dir));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_direction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_direction "GtkTextDirection gtk_widget_get_direction(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_direction", 1, widget, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_widget_get_direction(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_default_direction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_default_direction "void gtk_widget_set_default_direction(GtkTextDirection dir)"
+  s7_pointer dir;
+  dir = s7_car(args);
+  if (!s7_is_integer(dir)) s7_wrong_type_arg_error(sc, "gtk_widget_set_default_direction", 1, dir, "GtkTextDirection");
+  gtk_widget_set_default_direction(s7_integer(dir));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_default_direction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_default_direction "GtkTextDirection gtk_widget_get_default_direction( void)"
+  return(s7_make_integer(sc, gtk_widget_get_default_direction()));
+}
+
+static s7_pointer lg_gtk_widget_can_activate_accel(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_can_activate_accel "gboolean gtk_widget_can_activate_accel(GtkWidget* widget, \
+guint signal_id)"
+  s7_pointer _p;
+  s7_pointer widget, signal_id;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_can_activate_accel", 1, widget, "GtkWidget*");
+  signal_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(signal_id)) s7_wrong_type_arg_error(sc, "gtk_widget_can_activate_accel", 2, signal_id, "guint");
+  return(s7_make_boolean(sc, gtk_widget_can_activate_accel(s7_c_pointer(widget), s7_integer(signal_id))));
+}
+
+static s7_pointer lg_gtk_window_is_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_is_active "gboolean gtk_window_is_active(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_is_active", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_is_active(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_new "GtkWidget* gtk_window_new(GtkWindowType type)"
+  s7_pointer type;
+  type = s7_car(args);
+  if (!s7_is_integer(type)) s7_wrong_type_arg_error(sc, "gtk_window_new", 1, type, "GtkWindowType");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_window_new(s7_integer(type))));
+}
+
+static s7_pointer lg_gtk_window_set_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_title "void gtk_window_set_title(GtkWindow* window, gchar* title)"
+  s7_pointer _p;
+  s7_pointer window, title;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_title", 1, window, "GtkWindow*");
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gtk_window_set_title", 2, title, "gchar*");
+  gtk_window_set_title(s7_c_pointer(window), s7_string(title));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_set_auto_startup_notification(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_auto_startup_notification "void gtk_window_set_auto_startup_notification(gboolean setting)"
+  s7_pointer setting;
+  setting = s7_car(args);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_window_set_auto_startup_notification", 1, setting, "gboolean");
+  gtk_window_set_auto_startup_notification(lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_title "gchar* gtk_window_get_title(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_title", 1, window, "GtkWindow*");
+  return(s7_make_string(sc, gtk_window_get_title(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_role(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_role "void gtk_window_set_role(GtkWindow* window, gchar* role)"
+  s7_pointer _p;
+  s7_pointer window, role;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_role", 1, window, "GtkWindow*");
+  role = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(role)) s7_wrong_type_arg_error(sc, "gtk_window_set_role", 2, role, "gchar*");
+  gtk_window_set_role(s7_c_pointer(window), s7_string(role));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_role(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_role "gchar* gtk_window_get_role(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_role", 1, window, "GtkWindow*");
+  return(s7_make_string(sc, gtk_window_get_role(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_add_accel_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_add_accel_group "void gtk_window_add_accel_group(GtkWindow* window, GtkAccelGroup* accel_group)"
+  s7_pointer _p;
+  s7_pointer window, accel_group;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_add_accel_group", 1, window, "GtkWindow*");
+  accel_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_window_add_accel_group", 2, accel_group, "GtkAccelGroup*");
+  gtk_window_add_accel_group(s7_c_pointer(window), s7_c_pointer(accel_group));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_remove_accel_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_remove_accel_group "void gtk_window_remove_accel_group(GtkWindow* window, GtkAccelGroup* accel_group)"
+  s7_pointer _p;
+  s7_pointer window, accel_group;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_remove_accel_group", 1, window, "GtkWindow*");
+  accel_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_window_remove_accel_group", 2, accel_group, "GtkAccelGroup*");
+  gtk_window_remove_accel_group(s7_c_pointer(window), s7_c_pointer(accel_group));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_set_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_position "void gtk_window_set_position(GtkWindow* window, GtkWindowPosition position)"
+  s7_pointer _p;
+  s7_pointer window, position;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_position", 1, window, "GtkWindow*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_window_set_position", 2, position, "GtkWindowPosition");
+  gtk_window_set_position(s7_c_pointer(window), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_activate_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_activate_focus "gboolean gtk_window_activate_focus(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_activate_focus", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_activate_focus(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_focus "void gtk_window_set_focus(GtkWindow* window, GtkWidget* focus)"
+  s7_pointer _p;
+  s7_pointer window, focus;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_focus", 1, window, "GtkWindow*");
+  focus = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(focus, GtkWidget__sym)) && (focus != lg_false)) s7_wrong_type_arg_error(sc, "gtk_window_set_focus", 2, focus, "GtkWidget*");
+  gtk_window_set_focus(s7_c_pointer(window), s7_c_pointer(focus));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_focus "GtkWidget* gtk_window_get_focus(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_focus", 1, window, "GtkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_window_get_focus(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_default "void gtk_window_set_default(GtkWindow* window, GtkWidget* default_widget)"
+  s7_pointer _p;
+  s7_pointer window, default_widget;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_default", 1, window, "GtkWindow*");
+  default_widget = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(default_widget, GtkWidget__sym)) && (default_widget != lg_false)) s7_wrong_type_arg_error(sc, "gtk_window_set_default", 2, default_widget, "GtkWidget*");
+  gtk_window_set_default(s7_c_pointer(window), s7_c_pointer(default_widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_activate_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_activate_default "gboolean gtk_window_activate_default(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_activate_default", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_activate_default(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_transient_for(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_transient_for "void gtk_window_set_transient_for(GtkWindow* window, GtkWindow* parent)"
+  s7_pointer _p;
+  s7_pointer window, parent;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_transient_for", 1, window, "GtkWindow*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(parent, GtkWindow__sym)) && (parent != lg_false)) s7_wrong_type_arg_error(sc, "gtk_window_set_transient_for", 2, parent, "GtkWindow*");
+  gtk_window_set_transient_for(s7_c_pointer(window), s7_c_pointer(parent));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_transient_for(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_transient_for "GtkWindow* gtk_window_get_transient_for(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_transient_for", 1, window, "GtkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GtkWindow__sym, gtk_window_get_transient_for(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_type_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_type_hint "void gtk_window_set_type_hint(GtkWindow* window, GdkWindowTypeHint hint)"
+  s7_pointer _p;
+  s7_pointer window, hint;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_type_hint", 1, window, "GtkWindow*");
+  hint = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hint)) s7_wrong_type_arg_error(sc, "gtk_window_set_type_hint", 2, hint, "GdkWindowTypeHint");
+  gtk_window_set_type_hint(s7_c_pointer(window), s7_integer(hint));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_type_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_type_hint "GdkWindowTypeHint gtk_window_get_type_hint(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_type_hint", 1, window, "GtkWindow*");
+  return(s7_make_integer(sc, gtk_window_get_type_hint(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_destroy_with_parent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_destroy_with_parent "void gtk_window_set_destroy_with_parent(GtkWindow* window, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_destroy_with_parent", 1, window, "GtkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_window_set_destroy_with_parent", 2, setting, "gboolean");
+  gtk_window_set_destroy_with_parent(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_destroy_with_parent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_destroy_with_parent "gboolean gtk_window_get_destroy_with_parent(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_destroy_with_parent", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_get_destroy_with_parent(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_resizable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_resizable "void gtk_window_set_resizable(GtkWindow* window, gboolean resizable)"
+  s7_pointer _p;
+  s7_pointer window, resizable;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_resizable", 1, window, "GtkWindow*");
+  resizable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(resizable)) s7_wrong_type_arg_error(sc, "gtk_window_set_resizable", 2, resizable, "gboolean");
+  gtk_window_set_resizable(s7_c_pointer(window), lg_boolean(resizable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_resizable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_resizable "gboolean gtk_window_get_resizable(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_resizable", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_get_resizable(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_gravity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_gravity "void gtk_window_set_gravity(GtkWindow* window, GdkGravity gravity)"
+  s7_pointer _p;
+  s7_pointer window, gravity;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_gravity", 1, window, "GtkWindow*");
+  gravity = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(gravity)) s7_wrong_type_arg_error(sc, "gtk_window_set_gravity", 2, gravity, "GdkGravity");
+  gtk_window_set_gravity(s7_c_pointer(window), s7_integer(gravity));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_gravity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_gravity "GdkGravity gtk_window_get_gravity(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_gravity", 1, window, "GtkWindow*");
+  return(s7_make_integer(sc, gtk_window_get_gravity(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_geometry_hints(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_geometry_hints "void gtk_window_set_geometry_hints(GtkWindow* window, GtkWidget* geometry_widget, \
+GdkGeometry* geometry, GdkWindowHints geom_mask)"
+  s7_pointer _p;
+  s7_pointer window, geometry_widget, geometry, geom_mask;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_geometry_hints", 1, window, "GtkWindow*");
+  geometry_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(geometry_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_geometry_hints", 2, geometry_widget, "GtkWidget*");
+  geometry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(geometry, GdkGeometry__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_geometry_hints", 3, geometry, "GdkGeometry*");
+  geom_mask = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(geom_mask)) s7_wrong_type_arg_error(sc, "gtk_window_set_geometry_hints", 4, geom_mask, "GdkWindowHints");
+  gtk_window_set_geometry_hints(s7_c_pointer(window), s7_c_pointer(geometry_widget), s7_c_pointer(geometry), s7_integer(geom_mask));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_set_decorated(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_decorated "void gtk_window_set_decorated(GtkWindow* window, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_decorated", 1, window, "GtkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_window_set_decorated", 2, setting, "gboolean");
+  gtk_window_set_decorated(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_decorated(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_decorated "gboolean gtk_window_get_decorated(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_decorated", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_get_decorated(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_icon_list(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_icon_list "void gtk_window_set_icon_list(GtkWindow* window, GList* list)"
+  s7_pointer _p;
+  s7_pointer window, list;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_icon_list", 1, window, "GtkWindow*");
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(list, GList__sym)) && (list != lg_false)) s7_wrong_type_arg_error(sc, "gtk_window_set_icon_list", 2, list, "GList*");
+  gtk_window_set_icon_list(s7_c_pointer(window), s7_c_pointer(list));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_icon_list(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_icon_list "GList* gtk_window_get_icon_list(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_icon_list", 1, window, "GtkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_window_get_icon_list(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_icon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_icon "void gtk_window_set_icon(GtkWindow* window, GdkPixbuf* icon)"
+  s7_pointer _p;
+  s7_pointer window, icon;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_icon", 1, window, "GtkWindow*");
+  icon = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(icon, GdkPixbuf__sym)) && (icon != lg_false)) s7_wrong_type_arg_error(sc, "gtk_window_set_icon", 2, icon, "GdkPixbuf*");
+  gtk_window_set_icon(s7_c_pointer(window), s7_c_pointer(icon));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_icon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_icon "GdkPixbuf* gtk_window_get_icon(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_icon", 1, window, "GtkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gtk_window_get_icon(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_default_icon_list(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_default_icon_list "void gtk_window_set_default_icon_list(GList* list)"
+  s7_pointer list;
+  list = s7_car(args);
+  if ((!s7_is_c_pointer_of_type(list, GList__sym)) && (list != lg_false)) s7_wrong_type_arg_error(sc, "gtk_window_set_default_icon_list", 1, list, "GList*");
+  gtk_window_set_default_icon_list(s7_c_pointer(list));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_default_icon_list(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_default_icon_list "GList* gtk_window_get_default_icon_list( void)"
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_window_get_default_icon_list()));
+}
+
+static s7_pointer lg_gtk_window_set_modal(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_modal "void gtk_window_set_modal(GtkWindow* window, gboolean modal)"
+  s7_pointer _p;
+  s7_pointer window, modal;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_modal", 1, window, "GtkWindow*");
+  modal = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(modal)) s7_wrong_type_arg_error(sc, "gtk_window_set_modal", 2, modal, "gboolean");
+  gtk_window_set_modal(s7_c_pointer(window), lg_boolean(modal));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_modal(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_modal "gboolean gtk_window_get_modal(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_modal", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_get_modal(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_list_toplevels(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_list_toplevels "GList* gtk_window_list_toplevels( void)"
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_window_list_toplevels()));
+}
+
+static s7_pointer lg_gtk_window_add_mnemonic(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_add_mnemonic "void gtk_window_add_mnemonic(GtkWindow* window, guint keyval, GtkWidget* target)"
+  s7_pointer _p;
+  s7_pointer window, keyval, target;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_add_mnemonic", 1, window, "GtkWindow*");
+  keyval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gtk_window_add_mnemonic", 2, keyval, "guint");
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_window_add_mnemonic", 3, target, "GtkWidget*");
+  gtk_window_add_mnemonic(s7_c_pointer(window), s7_integer(keyval), s7_c_pointer(target));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_remove_mnemonic(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_remove_mnemonic "void gtk_window_remove_mnemonic(GtkWindow* window, guint keyval, \
+GtkWidget* target)"
+  s7_pointer _p;
+  s7_pointer window, keyval, target;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_remove_mnemonic", 1, window, "GtkWindow*");
+  keyval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gtk_window_remove_mnemonic", 2, keyval, "guint");
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_window_remove_mnemonic", 3, target, "GtkWidget*");
+  gtk_window_remove_mnemonic(s7_c_pointer(window), s7_integer(keyval), s7_c_pointer(target));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_mnemonic_activate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_mnemonic_activate "gboolean gtk_window_mnemonic_activate(GtkWindow* window, guint keyval, \
+GdkModifierType modifier)"
+  s7_pointer _p;
+  s7_pointer window, keyval, modifier;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_mnemonic_activate", 1, window, "GtkWindow*");
+  keyval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gtk_window_mnemonic_activate", 2, keyval, "guint");
+  modifier = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(modifier)) s7_wrong_type_arg_error(sc, "gtk_window_mnemonic_activate", 3, modifier, "GdkModifierType");
+  return(s7_make_boolean(sc, gtk_window_mnemonic_activate(s7_c_pointer(window), s7_integer(keyval), s7_integer(modifier))));
+}
+
+static s7_pointer lg_gtk_window_set_mnemonic_modifier(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_mnemonic_modifier "void gtk_window_set_mnemonic_modifier(GtkWindow* window, \
+GdkModifierType modifier)"
+  s7_pointer _p;
+  s7_pointer window, modifier;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_mnemonic_modifier", 1, window, "GtkWindow*");
+  modifier = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(modifier)) s7_wrong_type_arg_error(sc, "gtk_window_set_mnemonic_modifier", 2, modifier, "GdkModifierType");
+  gtk_window_set_mnemonic_modifier(s7_c_pointer(window), s7_integer(modifier));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_mnemonic_modifier(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_mnemonic_modifier "GdkModifierType gtk_window_get_mnemonic_modifier(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_mnemonic_modifier", 1, window, "GtkWindow*");
+  return(s7_make_integer(sc, gtk_window_get_mnemonic_modifier(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_present(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_present "void gtk_window_present(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_present", 1, window, "GtkWindow*");
+  gtk_window_present(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_iconify(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_iconify "void gtk_window_iconify(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_iconify", 1, window, "GtkWindow*");
+  gtk_window_iconify(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_deiconify(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_deiconify "void gtk_window_deiconify(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_deiconify", 1, window, "GtkWindow*");
+  gtk_window_deiconify(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_stick(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_stick "void gtk_window_stick(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_stick", 1, window, "GtkWindow*");
+  gtk_window_stick(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_unstick(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_unstick "void gtk_window_unstick(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_unstick", 1, window, "GtkWindow*");
+  gtk_window_unstick(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_maximize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_maximize "void gtk_window_maximize(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_maximize", 1, window, "GtkWindow*");
+  gtk_window_maximize(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_unmaximize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_unmaximize "void gtk_window_unmaximize(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_unmaximize", 1, window, "GtkWindow*");
+  gtk_window_unmaximize(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_begin_resize_drag(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_begin_resize_drag "void gtk_window_begin_resize_drag(GtkWindow* window, GdkWindowEdge edge, \
+gint button, gint root_x, gint root_y, guint32 timestamp)"
+  s7_pointer _p;
+  s7_pointer window, edge, button, root_x, root_y, timestamp;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_begin_resize_drag", 1, window, "GtkWindow*");
+  edge = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(edge)) s7_wrong_type_arg_error(sc, "gtk_window_begin_resize_drag", 2, edge, "GdkWindowEdge");
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(button)) s7_wrong_type_arg_error(sc, "gtk_window_begin_resize_drag", 3, button, "gint");
+  root_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(root_x)) s7_wrong_type_arg_error(sc, "gtk_window_begin_resize_drag", 4, root_x, "gint");
+  root_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(root_y)) s7_wrong_type_arg_error(sc, "gtk_window_begin_resize_drag", 5, root_y, "gint");
+  timestamp = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(timestamp)) s7_wrong_type_arg_error(sc, "gtk_window_begin_resize_drag", 6, timestamp, "guint32");
+  gtk_window_begin_resize_drag(s7_c_pointer(window), s7_integer(edge), s7_integer(button), s7_integer(root_x), s7_integer(root_y), s7_integer(timestamp));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_begin_move_drag(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_begin_move_drag "void gtk_window_begin_move_drag(GtkWindow* window, gint button, \
+gint root_x, gint root_y, guint32 timestamp)"
+  s7_pointer _p;
+  s7_pointer window, button, root_x, root_y, timestamp;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_begin_move_drag", 1, window, "GtkWindow*");
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(button)) s7_wrong_type_arg_error(sc, "gtk_window_begin_move_drag", 2, button, "gint");
+  root_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(root_x)) s7_wrong_type_arg_error(sc, "gtk_window_begin_move_drag", 3, root_x, "gint");
+  root_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(root_y)) s7_wrong_type_arg_error(sc, "gtk_window_begin_move_drag", 4, root_y, "gint");
+  timestamp = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(timestamp)) s7_wrong_type_arg_error(sc, "gtk_window_begin_move_drag", 5, timestamp, "guint32");
+  gtk_window_begin_move_drag(s7_c_pointer(window), s7_integer(button), s7_integer(root_x), s7_integer(root_y), s7_integer(timestamp));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_set_default_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_default_size "void gtk_window_set_default_size(GtkWindow* window, gint width, \
+gint height)"
+  s7_pointer _p;
+  s7_pointer window, width, height;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_default_size", 1, window, "GtkWindow*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gtk_window_set_default_size", 2, width, "gint");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gtk_window_set_default_size", 3, height, "gint");
+  gtk_window_set_default_size(s7_c_pointer(window), s7_integer(width), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_default_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_default_size "void gtk_window_get_default_size(GtkWindow* window, gint* [width], \
+gint* [height])"
+  s7_pointer _p;
+  s7_pointer window;
+  gint ref_width;
+  gint ref_height;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_default_size", 1, window, "GtkWindow*");
+  gtk_window_get_default_size(s7_c_pointer(window), &ref_width, &ref_height);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_width), s7_make_integer(sc, ref_height)));
+}
+
+static s7_pointer lg_gtk_window_resize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_resize "void gtk_window_resize(GtkWindow* window, gint width, gint height)"
+  s7_pointer _p;
+  s7_pointer window, width, height;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_resize", 1, window, "GtkWindow*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gtk_window_resize", 2, width, "gint");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gtk_window_resize", 3, height, "gint");
+  gtk_window_resize(s7_c_pointer(window), s7_integer(width), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_size "void gtk_window_get_size(GtkWindow* window, gint* [width], gint* [height])"
+  s7_pointer _p;
+  s7_pointer window;
+  gint ref_width;
+  gint ref_height;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_size", 1, window, "GtkWindow*");
+  gtk_window_get_size(s7_c_pointer(window), &ref_width, &ref_height);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_width), s7_make_integer(sc, ref_height)));
+}
+
+static s7_pointer lg_gtk_window_move(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_move "void gtk_window_move(GtkWindow* window, gint x, gint y)"
+  s7_pointer _p;
+  s7_pointer window, x, y;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_move", 1, window, "GtkWindow*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_window_move", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_window_move", 3, y, "gint");
+  gtk_window_move(s7_c_pointer(window), s7_integer(x), s7_integer(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_position "void gtk_window_get_position(GtkWindow* window, gint* [root_x], \
+gint* [root_y])"
+  s7_pointer _p;
+  s7_pointer window;
+  gint ref_root_x;
+  gint ref_root_y;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_position", 1, window, "GtkWindow*");
+  gtk_window_get_position(s7_c_pointer(window), &ref_root_x, &ref_root_y);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_root_x), s7_make_integer(sc, ref_root_y)));
+}
+
+static s7_pointer lg_pango_color_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_color_copy "PangoColor* pango_color_copy(PangoColor* src)"
+  s7_pointer src;
+  src = s7_car(args);
+  if (!s7_is_c_pointer_of_type(src, PangoColor__sym)) s7_wrong_type_arg_error(sc, "pango_color_copy", 1, src, "PangoColor*");
+  return(s7_make_type_with_c_pointer(sc, PangoColor__sym, pango_color_copy(s7_c_pointer(src))));
+}
+
+static s7_pointer lg_pango_color_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_color_free "void pango_color_free(PangoColor* color)"
+  s7_pointer color;
+  color = s7_car(args);
+  if (!s7_is_c_pointer_of_type(color, PangoColor__sym)) s7_wrong_type_arg_error(sc, "pango_color_free", 1, color, "PangoColor*");
+  pango_color_free(s7_c_pointer(color));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_color_parse(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_color_parse "gboolean pango_color_parse(PangoColor* color, char* spec)"
+  s7_pointer _p;
+  s7_pointer color, spec;
+  _p = args;
+  color = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(color, PangoColor__sym)) s7_wrong_type_arg_error(sc, "pango_color_parse", 1, color, "PangoColor*");
+  spec = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(spec)) s7_wrong_type_arg_error(sc, "pango_color_parse", 2, spec, "char*");
+  return(s7_make_boolean(sc, pango_color_parse(s7_c_pointer(color), (char*)s7_string(spec))));
+}
+
+static s7_pointer lg_pango_attr_type_register(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_type_register "PangoAttrType pango_attr_type_register(gchar* name)"
+  s7_pointer name;
+  name = s7_car(args);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "pango_attr_type_register", 1, name, "gchar*");
+  return(s7_make_integer(sc, pango_attr_type_register(s7_string(name))));
+}
+
+static s7_pointer lg_pango_attribute_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attribute_copy "PangoAttribute* pango_attribute_copy(PangoAttribute* attr)"
+  s7_pointer attr;
+  attr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(attr, PangoAttribute__sym)) s7_wrong_type_arg_error(sc, "pango_attribute_copy", 1, attr, "PangoAttribute*");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attribute_copy(s7_c_pointer(attr))));
+}
+
+static s7_pointer lg_pango_attribute_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attribute_destroy "void pango_attribute_destroy(PangoAttribute* attr)"
+  s7_pointer attr;
+  attr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(attr, PangoAttribute__sym)) s7_wrong_type_arg_error(sc, "pango_attribute_destroy", 1, attr, "PangoAttribute*");
+  pango_attribute_destroy(s7_c_pointer(attr));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_attribute_equal(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attribute_equal "gboolean pango_attribute_equal(PangoAttribute* attr1, PangoAttribute* attr2)"
+  s7_pointer _p;
+  s7_pointer attr1, attr2;
+  _p = args;
+  attr1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(attr1, PangoAttribute__sym)) s7_wrong_type_arg_error(sc, "pango_attribute_equal", 1, attr1, "PangoAttribute*");
+  attr2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(attr2, PangoAttribute__sym)) s7_wrong_type_arg_error(sc, "pango_attribute_equal", 2, attr2, "PangoAttribute*");
+  return(s7_make_boolean(sc, pango_attribute_equal(s7_c_pointer(attr1), s7_c_pointer(attr2))));
+}
+
+static s7_pointer lg_pango_attr_language_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_language_new "PangoAttribute* pango_attr_language_new(PangoLanguage* language)"
+  s7_pointer language;
+  language = s7_car(args);
+  if (!s7_is_c_pointer_of_type(language, PangoLanguage__sym)) s7_wrong_type_arg_error(sc, "pango_attr_language_new", 1, language, "PangoLanguage*");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_language_new(s7_c_pointer(language))));
+}
+
+static s7_pointer lg_pango_attr_family_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_family_new "PangoAttribute* pango_attr_family_new(char* family)"
+  s7_pointer family;
+  family = s7_car(args);
+  if (!s7_is_string(family)) s7_wrong_type_arg_error(sc, "pango_attr_family_new", 1, family, "char*");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_family_new((char*)s7_string(family))));
+}
+
+static s7_pointer lg_pango_attr_foreground_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_foreground_new "PangoAttribute* pango_attr_foreground_new(guint16 red, guint16 green, \
+guint16 blue)"
+  s7_pointer _p;
+  s7_pointer red, green, blue;
+  _p = args;
+  red = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(red)) s7_wrong_type_arg_error(sc, "pango_attr_foreground_new", 1, red, "guint16");
+  green = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(green)) s7_wrong_type_arg_error(sc, "pango_attr_foreground_new", 2, green, "guint16");
+  blue = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(blue)) s7_wrong_type_arg_error(sc, "pango_attr_foreground_new", 3, blue, "guint16");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_foreground_new(s7_integer(red), s7_integer(green), s7_integer(blue))));
+}
+
+static s7_pointer lg_pango_attr_background_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_background_new "PangoAttribute* pango_attr_background_new(guint16 red, guint16 green, \
+guint16 blue)"
+  s7_pointer _p;
+  s7_pointer red, green, blue;
+  _p = args;
+  red = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(red)) s7_wrong_type_arg_error(sc, "pango_attr_background_new", 1, red, "guint16");
+  green = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(green)) s7_wrong_type_arg_error(sc, "pango_attr_background_new", 2, green, "guint16");
+  blue = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(blue)) s7_wrong_type_arg_error(sc, "pango_attr_background_new", 3, blue, "guint16");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_background_new(s7_integer(red), s7_integer(green), s7_integer(blue))));
+}
+
+static s7_pointer lg_pango_attr_size_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_size_new "PangoAttribute* pango_attr_size_new(int size)"
+  s7_pointer size;
+  size = s7_car(args);
+  if (!s7_is_integer(size)) s7_wrong_type_arg_error(sc, "pango_attr_size_new", 1, size, "int");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_size_new(s7_integer(size))));
+}
+
+static s7_pointer lg_pango_attr_style_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_style_new "PangoAttribute* pango_attr_style_new(PangoStyle style)"
+  s7_pointer style;
+  style = s7_car(args);
+  if (!s7_is_integer(style)) s7_wrong_type_arg_error(sc, "pango_attr_style_new", 1, style, "PangoStyle");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_style_new(s7_integer(style))));
+}
+
+static s7_pointer lg_pango_attr_weight_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_weight_new "PangoAttribute* pango_attr_weight_new(PangoWeight weight)"
+  s7_pointer weight;
+  weight = s7_car(args);
+  if (!s7_is_integer(weight)) s7_wrong_type_arg_error(sc, "pango_attr_weight_new", 1, weight, "PangoWeight");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_weight_new(s7_integer(weight))));
+}
+
+static s7_pointer lg_pango_attr_variant_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_variant_new "PangoAttribute* pango_attr_variant_new(PangoVariant variant)"
+  s7_pointer variant;
+  variant = s7_car(args);
+  if (!s7_is_integer(variant)) s7_wrong_type_arg_error(sc, "pango_attr_variant_new", 1, variant, "PangoVariant");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_variant_new(s7_integer(variant))));
+}
+
+static s7_pointer lg_pango_attr_stretch_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_stretch_new "PangoAttribute* pango_attr_stretch_new(PangoStretch stretch)"
+  s7_pointer stretch;
+  stretch = s7_car(args);
+  if (!s7_is_integer(stretch)) s7_wrong_type_arg_error(sc, "pango_attr_stretch_new", 1, stretch, "PangoStretch");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_stretch_new(s7_integer(stretch))));
+}
+
+static s7_pointer lg_pango_attr_font_desc_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_font_desc_new "PangoAttribute* pango_attr_font_desc_new(PangoFontDescription* desc)"
+  s7_pointer desc;
+  desc = s7_car(args);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_attr_font_desc_new", 1, desc, "PangoFontDescription*");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_font_desc_new(s7_c_pointer(desc))));
+}
+
+static s7_pointer lg_pango_attr_underline_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_underline_new "PangoAttribute* pango_attr_underline_new(PangoUnderline underline)"
+  s7_pointer underline;
+  underline = s7_car(args);
+  if (!s7_is_integer(underline)) s7_wrong_type_arg_error(sc, "pango_attr_underline_new", 1, underline, "PangoUnderline");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_underline_new(s7_integer(underline))));
+}
+
+static s7_pointer lg_pango_attr_strikethrough_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_strikethrough_new "PangoAttribute* pango_attr_strikethrough_new(gboolean strikethrough)"
+  s7_pointer strikethrough;
+  strikethrough = s7_car(args);
+  if (!s7_is_boolean(strikethrough)) s7_wrong_type_arg_error(sc, "pango_attr_strikethrough_new", 1, strikethrough, "gboolean");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_strikethrough_new(lg_boolean(strikethrough))));
+}
+
+static s7_pointer lg_pango_attr_rise_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_rise_new "PangoAttribute* pango_attr_rise_new(int rise)"
+  s7_pointer rise;
+  rise = s7_car(args);
+  if (!s7_is_integer(rise)) s7_wrong_type_arg_error(sc, "pango_attr_rise_new", 1, rise, "int");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_rise_new(s7_integer(rise))));
+}
+
+static s7_pointer lg_pango_attr_shape_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_shape_new "PangoAttribute* pango_attr_shape_new(PangoRectangle* ink_rect, PangoRectangle* logical_rect)"
+  s7_pointer _p;
+  s7_pointer ink_rect, logical_rect;
+  _p = args;
+  ink_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ink_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_attr_shape_new", 1, ink_rect, "PangoRectangle*");
+  logical_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(logical_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_attr_shape_new", 2, logical_rect, "PangoRectangle*");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_shape_new(s7_c_pointer(ink_rect), s7_c_pointer(logical_rect))));
+}
+
+static s7_pointer lg_pango_attr_scale_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_scale_new "PangoAttribute* pango_attr_scale_new(double scale_factor)"
+  s7_pointer scale_factor;
+  scale_factor = s7_car(args);
+  if (!s7_is_real(scale_factor)) s7_wrong_type_arg_error(sc, "pango_attr_scale_new", 1, scale_factor, "double");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_scale_new(s7_real(scale_factor))));
+}
+
+static s7_pointer lg_pango_attr_list_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_list_new "PangoAttrList* pango_attr_list_new( void)"
+  return(s7_make_type_with_c_pointer(sc, PangoAttrList__sym, pango_attr_list_new()));
+}
+
+static s7_pointer lg_pango_attr_list_unref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_list_unref "void pango_attr_list_unref(PangoAttrList* list)"
+  s7_pointer list;
+  list = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list, PangoAttrList__sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_unref", 1, list, "PangoAttrList*");
+  pango_attr_list_unref(s7_c_pointer(list));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_attr_list_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_list_copy "PangoAttrList* pango_attr_list_copy(PangoAttrList* list)"
+  s7_pointer list;
+  list = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list, PangoAttrList__sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_copy", 1, list, "PangoAttrList*");
+  return(s7_make_type_with_c_pointer(sc, PangoAttrList__sym, pango_attr_list_copy(s7_c_pointer(list))));
+}
+
+static s7_pointer lg_pango_attr_list_insert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_list_insert "void pango_attr_list_insert(PangoAttrList* list, PangoAttribute* attr)"
+  s7_pointer _p;
+  s7_pointer list, attr;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, PangoAttrList__sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_insert", 1, list, "PangoAttrList*");
+  attr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(attr, PangoAttribute__sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_insert", 2, attr, "PangoAttribute*");
+  pango_attr_list_insert(s7_c_pointer(list), s7_c_pointer(attr));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_attr_list_insert_before(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_list_insert_before "void pango_attr_list_insert_before(PangoAttrList* list, PangoAttribute* attr)"
+  s7_pointer _p;
+  s7_pointer list, attr;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, PangoAttrList__sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_insert_before", 1, list, "PangoAttrList*");
+  attr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(attr, PangoAttribute__sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_insert_before", 2, attr, "PangoAttribute*");
+  pango_attr_list_insert_before(s7_c_pointer(list), s7_c_pointer(attr));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_attr_list_change(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_list_change "void pango_attr_list_change(PangoAttrList* list, PangoAttribute* attr)"
+  s7_pointer _p;
+  s7_pointer list, attr;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, PangoAttrList__sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_change", 1, list, "PangoAttrList*");
+  attr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(attr, PangoAttribute__sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_change", 2, attr, "PangoAttribute*");
+  pango_attr_list_change(s7_c_pointer(list), s7_c_pointer(attr));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_attr_list_splice(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_list_splice "void pango_attr_list_splice(PangoAttrList* list, PangoAttrList* other, \
+gint pos, gint len)"
+  s7_pointer _p;
+  s7_pointer list, other, pos, len;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, PangoAttrList__sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_splice", 1, list, "PangoAttrList*");
+  other = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(other, PangoAttrList__sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_splice", 2, other, "PangoAttrList*");
+  pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pos)) s7_wrong_type_arg_error(sc, "pango_attr_list_splice", 3, pos, "gint");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "pango_attr_list_splice", 4, len, "gint");
+  pango_attr_list_splice(s7_c_pointer(list), s7_c_pointer(other), s7_integer(pos), s7_integer(len));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_attr_list_get_iterator(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_list_get_iterator "PangoAttrIterator* pango_attr_list_get_iterator(PangoAttrList* list)"
+  s7_pointer list;
+  list = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list, PangoAttrList__sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_get_iterator", 1, list, "PangoAttrList*");
+  return(s7_make_type_with_c_pointer(sc, PangoAttrIterator__sym, pango_attr_list_get_iterator(s7_c_pointer(list))));
+}
+
+static s7_pointer lg_pango_attr_iterator_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_iterator_range "void pango_attr_iterator_range(PangoAttrIterator* iterator, gint* [start], \
+gint* [end])"
+  s7_pointer _p;
+  s7_pointer iterator;
+  gint ref_start;
+  gint ref_end;
+  _p = args;
+  iterator = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iterator, PangoAttrIterator__sym)) s7_wrong_type_arg_error(sc, "pango_attr_iterator_range", 1, iterator, "PangoAttrIterator*");
+  pango_attr_iterator_range(s7_c_pointer(iterator), &ref_start, &ref_end);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_start), s7_make_integer(sc, ref_end)));
+}
+
+static s7_pointer lg_pango_attr_iterator_next(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_iterator_next "gboolean pango_attr_iterator_next(PangoAttrIterator* iterator)"
+  s7_pointer iterator;
+  iterator = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iterator, PangoAttrIterator__sym)) s7_wrong_type_arg_error(sc, "pango_attr_iterator_next", 1, iterator, "PangoAttrIterator*");
+  return(s7_make_boolean(sc, pango_attr_iterator_next(s7_c_pointer(iterator))));
+}
+
+static s7_pointer lg_pango_attr_iterator_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_iterator_copy "PangoAttrIterator* pango_attr_iterator_copy(PangoAttrIterator* iterator)"
+  s7_pointer iterator;
+  iterator = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iterator, PangoAttrIterator__sym)) s7_wrong_type_arg_error(sc, "pango_attr_iterator_copy", 1, iterator, "PangoAttrIterator*");
+  return(s7_make_type_with_c_pointer(sc, PangoAttrIterator__sym, pango_attr_iterator_copy(s7_c_pointer(iterator))));
+}
+
+static s7_pointer lg_pango_attr_iterator_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_iterator_destroy "void pango_attr_iterator_destroy(PangoAttrIterator* iterator)"
+  s7_pointer iterator;
+  iterator = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iterator, PangoAttrIterator__sym)) s7_wrong_type_arg_error(sc, "pango_attr_iterator_destroy", 1, iterator, "PangoAttrIterator*");
+  pango_attr_iterator_destroy(s7_c_pointer(iterator));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_attr_iterator_get(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_iterator_get "PangoAttribute* pango_attr_iterator_get(PangoAttrIterator* iterator, \
+PangoAttrType type)"
+  s7_pointer _p;
+  s7_pointer iterator, type;
+  _p = args;
+  iterator = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iterator, PangoAttrIterator__sym)) s7_wrong_type_arg_error(sc, "pango_attr_iterator_get", 1, iterator, "PangoAttrIterator*");
+  type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(type)) s7_wrong_type_arg_error(sc, "pango_attr_iterator_get", 2, type, "PangoAttrType");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_iterator_get(s7_c_pointer(iterator), s7_integer(type))));
+}
+
+static s7_pointer lg_pango_attr_iterator_get_font(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_iterator_get_font "void pango_attr_iterator_get_font(PangoAttrIterator* iterator, \
+PangoFontDescription* desc, PangoLanguage** [language], GSList** [extra_attrs])"
+  s7_pointer _p;
+  s7_pointer iterator, desc;
+  PangoLanguage* ref_language = NULL;
+  GSList* ref_extra_attrs = NULL;
+  _p = args;
+  iterator = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iterator, PangoAttrIterator__sym)) s7_wrong_type_arg_error(sc, "pango_attr_iterator_get_font", 1, iterator, "PangoAttrIterator*");
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_attr_iterator_get_font", 2, desc, "PangoFontDescription*");
+  pango_attr_iterator_get_font(s7_c_pointer(iterator), s7_c_pointer(desc), &ref_language, &ref_extra_attrs);
+    return(s7_list(sc, 2, s7_make_c_pointer(sc, ref_language), s7_make_c_pointer(sc, ref_extra_attrs)));
+}
+
+static s7_pointer lg_pango_parse_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_parse_markup "gboolean pango_parse_markup(char* markup_text, int length, gunichar accel_marker, \
+PangoAttrList** attr_list, char** text, gunichar* accel_char, GError** [error])"
+  s7_pointer _p;
+  s7_pointer markup_text, length, accel_marker, attr_list, text, accel_char;
+  GError* ref_error = NULL;
+  _p = args;
+  markup_text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(markup_text)) s7_wrong_type_arg_error(sc, "pango_parse_markup", 1, markup_text, "char*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "pango_parse_markup", 2, length, "int");
+  accel_marker = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_marker)) s7_wrong_type_arg_error(sc, "pango_parse_markup", 3, accel_marker, "gunichar");
+  attr_list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(attr_list, PangoAttrList___sym)) s7_wrong_type_arg_error(sc, "pango_parse_markup", 4, attr_list, "PangoAttrList**");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text, char___sym)) s7_wrong_type_arg_error(sc, "pango_parse_markup", 5, text, "char**");
+  accel_char = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_char, gunichar__sym)) s7_wrong_type_arg_error(sc, "pango_parse_markup", 6, accel_char, "gunichar*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, pango_parse_markup((char*)s7_string(markup_text), s7_integer(length), s7_integer(accel_marker), s7_c_pointer(attr_list), s7_c_pointer(text), s7_c_pointer(accel_char), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_pango_break(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_break "void pango_break(gchar* text, int length, PangoAnalysis* analysis, PangoLogAttr* attrs, \
+int attrs_len)"
+  s7_pointer _p;
+  s7_pointer text, length, analysis, attrs, attrs_len;
+  _p = args;
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "pango_break", 1, text, "gchar*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "pango_break", 2, length, "int");
+  analysis = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(analysis, PangoAnalysis__sym)) s7_wrong_type_arg_error(sc, "pango_break", 3, analysis, "PangoAnalysis*");
+  attrs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(attrs, PangoLogAttr__sym)) s7_wrong_type_arg_error(sc, "pango_break", 4, attrs, "PangoLogAttr*");
+  attrs_len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(attrs_len)) s7_wrong_type_arg_error(sc, "pango_break", 5, attrs_len, "int");
+  pango_break(s7_string(text), s7_integer(length), s7_c_pointer(analysis), s7_c_pointer(attrs), s7_integer(attrs_len));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_find_paragraph_boundary(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_find_paragraph_boundary "void pango_find_paragraph_boundary(gchar* text, gint length, \
+gint* [paragraph_delimiter_index], gint* [next_paragraph_start])"
+  s7_pointer _p;
+  s7_pointer text, length;
+  gint ref_paragraph_delimiter_index;
+  gint ref_next_paragraph_start;
+  _p = args;
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "pango_find_paragraph_boundary", 1, text, "gchar*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "pango_find_paragraph_boundary", 2, length, "gint");
+  pango_find_paragraph_boundary(s7_string(text), s7_integer(length), &ref_paragraph_delimiter_index, &ref_next_paragraph_start);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_paragraph_delimiter_index), s7_make_integer(sc, ref_next_paragraph_start)));
+}
+
+static s7_pointer lg_pango_get_log_attrs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_get_log_attrs "void pango_get_log_attrs(char* text, int length, int level, PangoLanguage* language, \
+PangoLogAttr* log_attrs, int attrs_len)"
+  s7_pointer _p;
+  s7_pointer text, length, level, language, log_attrs, attrs_len;
+  _p = args;
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "pango_get_log_attrs", 1, text, "char*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "pango_get_log_attrs", 2, length, "int");
+  level = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(level)) s7_wrong_type_arg_error(sc, "pango_get_log_attrs", 3, level, "int");
+  language = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(language, PangoLanguage__sym)) s7_wrong_type_arg_error(sc, "pango_get_log_attrs", 4, language, "PangoLanguage*");
+  log_attrs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(log_attrs, PangoLogAttr__sym)) s7_wrong_type_arg_error(sc, "pango_get_log_attrs", 5, log_attrs, "PangoLogAttr*");
+  attrs_len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(attrs_len)) s7_wrong_type_arg_error(sc, "pango_get_log_attrs", 6, attrs_len, "int");
+  pango_get_log_attrs((char*)s7_string(text), s7_integer(length), s7_integer(level), s7_c_pointer(language), s7_c_pointer(log_attrs), s7_integer(attrs_len));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_context_list_families(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_context_list_families "void pango_context_list_families(PangoContext* context, PangoFontFamily*** [families], \
+int* [n_families])"
+  s7_pointer _p;
+  s7_pointer context;
+  PangoFontFamily** ref_families = NULL;
+  int ref_n_families;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_context_list_families", 1, context, "PangoContext*");
+  pango_context_list_families(s7_c_pointer(context), &ref_families, &ref_n_families);
+    return(s7_list(sc, 2, s7_make_c_pointer(sc, ref_families), s7_make_integer(sc, ref_n_families)));
+}
+
+static s7_pointer lg_pango_context_load_font(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_context_load_font "PangoFont* pango_context_load_font(PangoContext* context, PangoFontDescription* desc)"
+  s7_pointer _p;
+  s7_pointer context, desc;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_context_load_font", 1, context, "PangoContext*");
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_context_load_font", 2, desc, "PangoFontDescription*");
+  return(s7_make_type_with_c_pointer(sc, PangoFont__sym, pango_context_load_font(s7_c_pointer(context), s7_c_pointer(desc))));
+}
+
+static s7_pointer lg_pango_context_load_fontset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_context_load_fontset "PangoFontset* pango_context_load_fontset(PangoContext* context, \
+PangoFontDescription* desc, PangoLanguage* language)"
+  s7_pointer _p;
+  s7_pointer context, desc, language;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_context_load_fontset", 1, context, "PangoContext*");
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_context_load_fontset", 2, desc, "PangoFontDescription*");
+  language = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(language, PangoLanguage__sym)) s7_wrong_type_arg_error(sc, "pango_context_load_fontset", 3, language, "PangoLanguage*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontset__sym, pango_context_load_fontset(s7_c_pointer(context), s7_c_pointer(desc), s7_c_pointer(language))));
+}
+
+static s7_pointer lg_pango_context_get_metrics(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_context_get_metrics "PangoFontMetrics* pango_context_get_metrics(PangoContext* context, \
+PangoFontDescription* desc, PangoLanguage* language)"
+  s7_pointer _p;
+  s7_pointer context, desc, language;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_context_get_metrics", 1, context, "PangoContext*");
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_context_get_metrics", 2, desc, "PangoFontDescription*");
+  language = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(language, PangoLanguage__sym)) s7_wrong_type_arg_error(sc, "pango_context_get_metrics", 3, language, "PangoLanguage*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontMetrics__sym, pango_context_get_metrics(s7_c_pointer(context), s7_c_pointer(desc), s7_c_pointer(language))));
+}
+
+static s7_pointer lg_pango_context_set_font_description(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_context_set_font_description "void pango_context_set_font_description(PangoContext* context, \
+PangoFontDescription* desc)"
+  s7_pointer _p;
+  s7_pointer context, desc;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_context_set_font_description", 1, context, "PangoContext*");
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_context_set_font_description", 2, desc, "PangoFontDescription*");
+  pango_context_set_font_description(s7_c_pointer(context), s7_c_pointer(desc));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_context_get_font_description(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_context_get_font_description "PangoFontDescription* pango_context_get_font_description(PangoContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_context_get_font_description", 1, context, "PangoContext*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontDescription__sym, pango_context_get_font_description(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_pango_context_get_language(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_context_get_language "PangoLanguage* pango_context_get_language(PangoContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_context_get_language", 1, context, "PangoContext*");
+  return(s7_make_type_with_c_pointer(sc, PangoLanguage__sym, pango_context_get_language(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_pango_context_set_language(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_context_set_language "void pango_context_set_language(PangoContext* context, PangoLanguage* language)"
+  s7_pointer _p;
+  s7_pointer context, language;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_context_set_language", 1, context, "PangoContext*");
+  language = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(language, PangoLanguage__sym)) s7_wrong_type_arg_error(sc, "pango_context_set_language", 2, language, "PangoLanguage*");
+  pango_context_set_language(s7_c_pointer(context), s7_c_pointer(language));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_context_set_base_dir(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_context_set_base_dir "void pango_context_set_base_dir(PangoContext* context, PangoDirection direction)"
+  s7_pointer _p;
+  s7_pointer context, direction;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_context_set_base_dir", 1, context, "PangoContext*");
+  direction = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(direction)) s7_wrong_type_arg_error(sc, "pango_context_set_base_dir", 2, direction, "PangoDirection");
+  pango_context_set_base_dir(s7_c_pointer(context), s7_integer(direction));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_context_get_base_dir(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_context_get_base_dir "PangoDirection pango_context_get_base_dir(PangoContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_context_get_base_dir", 1, context, "PangoContext*");
+  return(s7_make_integer(sc, pango_context_get_base_dir(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_pango_itemize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_itemize "GList* pango_itemize(PangoContext* context, char* text, int start_index, int length, \
+PangoAttrList* attrs, PangoAttrIterator* cached_iter)"
+  s7_pointer _p;
+  s7_pointer context, text, start_index, length, attrs, cached_iter;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_itemize", 1, context, "PangoContext*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "pango_itemize", 2, text, "char*");
+  start_index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(start_index)) s7_wrong_type_arg_error(sc, "pango_itemize", 3, start_index, "int");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "pango_itemize", 4, length, "int");
+  attrs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(attrs, PangoAttrList__sym)) s7_wrong_type_arg_error(sc, "pango_itemize", 5, attrs, "PangoAttrList*");
+  cached_iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cached_iter, PangoAttrIterator__sym)) s7_wrong_type_arg_error(sc, "pango_itemize", 6, cached_iter, "PangoAttrIterator*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, pango_itemize(s7_c_pointer(context), (char*)s7_string(text), s7_integer(start_index), s7_integer(length), s7_c_pointer(attrs), s7_c_pointer(cached_iter))));
+}
+
+static s7_pointer lg_pango_coverage_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_coverage_new "PangoCoverage* pango_coverage_new( void)"
+  return(s7_make_type_with_c_pointer(sc, PangoCoverage__sym, pango_coverage_new()));
+}
+
+static s7_pointer lg_pango_coverage_ref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_coverage_ref "PangoCoverage* pango_coverage_ref(PangoCoverage* coverage)"
+  s7_pointer coverage;
+  coverage = s7_car(args);
+  if (!s7_is_c_pointer_of_type(coverage, PangoCoverage__sym)) s7_wrong_type_arg_error(sc, "pango_coverage_ref", 1, coverage, "PangoCoverage*");
+  return(s7_make_type_with_c_pointer(sc, PangoCoverage__sym, pango_coverage_ref(s7_c_pointer(coverage))));
+}
+
+static s7_pointer lg_pango_coverage_unref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_coverage_unref "void pango_coverage_unref(PangoCoverage* coverage)"
+  s7_pointer coverage;
+  coverage = s7_car(args);
+  if (!s7_is_c_pointer_of_type(coverage, PangoCoverage__sym)) s7_wrong_type_arg_error(sc, "pango_coverage_unref", 1, coverage, "PangoCoverage*");
+  pango_coverage_unref(s7_c_pointer(coverage));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_coverage_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_coverage_copy "PangoCoverage* pango_coverage_copy(PangoCoverage* coverage)"
+  s7_pointer coverage;
+  coverage = s7_car(args);
+  if (!s7_is_c_pointer_of_type(coverage, PangoCoverage__sym)) s7_wrong_type_arg_error(sc, "pango_coverage_copy", 1, coverage, "PangoCoverage*");
+  return(s7_make_type_with_c_pointer(sc, PangoCoverage__sym, pango_coverage_copy(s7_c_pointer(coverage))));
+}
+
+static s7_pointer lg_pango_coverage_get(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_coverage_get "PangoCoverageLevel pango_coverage_get(PangoCoverage* coverage, int index)"
+  s7_pointer _p;
+  s7_pointer coverage, index;
+  _p = args;
+  coverage = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(coverage, PangoCoverage__sym)) s7_wrong_type_arg_error(sc, "pango_coverage_get", 1, coverage, "PangoCoverage*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "pango_coverage_get", 2, index, "int");
+  return(s7_make_integer(sc, pango_coverage_get(s7_c_pointer(coverage), s7_integer(index))));
+}
+
+static s7_pointer lg_pango_coverage_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_coverage_set "void pango_coverage_set(PangoCoverage* coverage, int index, PangoCoverageLevel level)"
+  s7_pointer _p;
+  s7_pointer coverage, index, level;
+  _p = args;
+  coverage = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(coverage, PangoCoverage__sym)) s7_wrong_type_arg_error(sc, "pango_coverage_set", 1, coverage, "PangoCoverage*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "pango_coverage_set", 2, index, "int");
+  level = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(level)) s7_wrong_type_arg_error(sc, "pango_coverage_set", 3, level, "PangoCoverageLevel");
+  pango_coverage_set(s7_c_pointer(coverage), s7_integer(index), s7_integer(level));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_coverage_max(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_coverage_max "void pango_coverage_max(PangoCoverage* coverage, PangoCoverage* other)"
+  s7_pointer _p;
+  s7_pointer coverage, other;
+  _p = args;
+  coverage = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(coverage, PangoCoverage__sym)) s7_wrong_type_arg_error(sc, "pango_coverage_max", 1, coverage, "PangoCoverage*");
+  other = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(other, PangoCoverage__sym)) s7_wrong_type_arg_error(sc, "pango_coverage_max", 2, other, "PangoCoverage*");
+  pango_coverage_max(s7_c_pointer(coverage), s7_c_pointer(other));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_coverage_to_bytes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_coverage_to_bytes "void pango_coverage_to_bytes(PangoCoverage* coverage, guchar** [bytes], \
+int* [n_bytes])"
+  s7_pointer _p;
+  s7_pointer coverage;
+  guchar* ref_bytes = NULL;
+  int ref_n_bytes;
+  _p = args;
+  coverage = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(coverage, PangoCoverage__sym)) s7_wrong_type_arg_error(sc, "pango_coverage_to_bytes", 1, coverage, "PangoCoverage*");
+  pango_coverage_to_bytes(s7_c_pointer(coverage), &ref_bytes, &ref_n_bytes);
+    return(s7_list(sc, 2, s7_make_c_pointer(sc, ref_bytes), s7_make_integer(sc, ref_n_bytes)));
+}
+
+static s7_pointer lg_pango_coverage_from_bytes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_coverage_from_bytes "PangoCoverage* pango_coverage_from_bytes(guchar* bytes, int n_bytes)"
+  s7_pointer _p;
+  s7_pointer bytes, n_bytes;
+  _p = args;
+  bytes = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bytes, guchar__sym)) s7_wrong_type_arg_error(sc, "pango_coverage_from_bytes", 1, bytes, "guchar*");
+  n_bytes = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_bytes)) s7_wrong_type_arg_error(sc, "pango_coverage_from_bytes", 2, n_bytes, "int");
+  return(s7_make_type_with_c_pointer(sc, PangoCoverage__sym, pango_coverage_from_bytes(s7_c_pointer(bytes), s7_integer(n_bytes))));
+}
+
+static s7_pointer lg_pango_font_description_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_new "PangoFontDescription* pango_font_description_new( void)"
+  return(s7_make_type_with_c_pointer(sc, PangoFontDescription__sym, pango_font_description_new()));
+}
+
+static s7_pointer lg_pango_font_description_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_copy "PangoFontDescription* pango_font_description_copy(PangoFontDescription* desc)"
+  s7_pointer desc;
+  desc = s7_car(args);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_copy", 1, desc, "PangoFontDescription*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontDescription__sym, pango_font_description_copy(s7_c_pointer(desc))));
+}
+
+static s7_pointer lg_pango_font_description_copy_static(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_copy_static "PangoFontDescription* pango_font_description_copy_static(PangoFontDescription* desc)"
+  s7_pointer desc;
+  desc = s7_car(args);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_copy_static", 1, desc, "PangoFontDescription*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontDescription__sym, pango_font_description_copy_static(s7_c_pointer(desc))));
+}
+
+static s7_pointer lg_pango_font_description_hash(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_hash "guint pango_font_description_hash(PangoFontDescription* desc)"
+  s7_pointer desc;
+  desc = s7_car(args);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_hash", 1, desc, "PangoFontDescription*");
+  return(s7_make_integer(sc, pango_font_description_hash(s7_c_pointer(desc))));
+}
+
+static s7_pointer lg_pango_font_description_equal(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_equal "gboolean pango_font_description_equal(PangoFontDescription* desc1, \
+PangoFontDescription* desc2)"
+  s7_pointer _p;
+  s7_pointer desc1, desc2;
+  _p = args;
+  desc1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc1, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_equal", 1, desc1, "PangoFontDescription*");
+  desc2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc2, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_equal", 2, desc2, "PangoFontDescription*");
+  return(s7_make_boolean(sc, pango_font_description_equal(s7_c_pointer(desc1), s7_c_pointer(desc2))));
+}
+
+static s7_pointer lg_pango_font_description_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_free "void pango_font_description_free(PangoFontDescription* desc)"
+  s7_pointer desc;
+  desc = s7_car(args);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_free", 1, desc, "PangoFontDescription*");
+  pango_font_description_free(s7_c_pointer(desc));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_font_descriptions_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_descriptions_free "void pango_font_descriptions_free(PangoFontDescription** descs, \
+int n_descs)"
+  s7_pointer _p;
+  s7_pointer descs, n_descs;
+  _p = args;
+  descs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(descs, PangoFontDescription___sym)) s7_wrong_type_arg_error(sc, "pango_font_descriptions_free", 1, descs, "PangoFontDescription**");
+  n_descs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_descs)) s7_wrong_type_arg_error(sc, "pango_font_descriptions_free", 2, n_descs, "int");
+  pango_font_descriptions_free(s7_c_pointer(descs), s7_integer(n_descs));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_font_description_set_family(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_set_family "void pango_font_description_set_family(PangoFontDescription* desc, \
+char* family)"
+  s7_pointer _p;
+  s7_pointer desc, family;
+  _p = args;
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_set_family", 1, desc, "PangoFontDescription*");
+  family = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(family)) s7_wrong_type_arg_error(sc, "pango_font_description_set_family", 2, family, "char*");
+  pango_font_description_set_family(s7_c_pointer(desc), (char*)s7_string(family));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_font_description_set_family_static(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_set_family_static "void pango_font_description_set_family_static(PangoFontDescription* desc, \
+char* family)"
+  s7_pointer _p;
+  s7_pointer desc, family;
+  _p = args;
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_set_family_static", 1, desc, "PangoFontDescription*");
+  family = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(family)) s7_wrong_type_arg_error(sc, "pango_font_description_set_family_static", 2, family, "char*");
+  pango_font_description_set_family_static(s7_c_pointer(desc), (char*)s7_string(family));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_font_description_get_family(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_get_family "char* pango_font_description_get_family(PangoFontDescription* desc)"
+  s7_pointer desc;
+  desc = s7_car(args);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_get_family", 1, desc, "PangoFontDescription*");
+  return(s7_make_string(sc, pango_font_description_get_family(s7_c_pointer(desc))));
+}
+
+static s7_pointer lg_pango_font_description_set_style(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_set_style "void pango_font_description_set_style(PangoFontDescription* desc, \
+PangoStyle style)"
+  s7_pointer _p;
+  s7_pointer desc, style;
+  _p = args;
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_set_style", 1, desc, "PangoFontDescription*");
+  style = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(style)) s7_wrong_type_arg_error(sc, "pango_font_description_set_style", 2, style, "PangoStyle");
+  pango_font_description_set_style(s7_c_pointer(desc), s7_integer(style));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_font_description_get_style(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_get_style "PangoStyle pango_font_description_get_style(PangoFontDescription* desc)"
+  s7_pointer desc;
+  desc = s7_car(args);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_get_style", 1, desc, "PangoFontDescription*");
+  return(s7_make_integer(sc, pango_font_description_get_style(s7_c_pointer(desc))));
+}
+
+static s7_pointer lg_pango_font_description_set_variant(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_set_variant "void pango_font_description_set_variant(PangoFontDescription* desc, \
+PangoVariant variant)"
+  s7_pointer _p;
+  s7_pointer desc, variant;
+  _p = args;
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_set_variant", 1, desc, "PangoFontDescription*");
+  variant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(variant)) s7_wrong_type_arg_error(sc, "pango_font_description_set_variant", 2, variant, "PangoVariant");
+  pango_font_description_set_variant(s7_c_pointer(desc), s7_integer(variant));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_font_description_get_variant(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_get_variant "PangoVariant pango_font_description_get_variant(PangoFontDescription* desc)"
+  s7_pointer desc;
+  desc = s7_car(args);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_get_variant", 1, desc, "PangoFontDescription*");
+  return(s7_make_integer(sc, pango_font_description_get_variant(s7_c_pointer(desc))));
+}
+
+static s7_pointer lg_pango_font_description_set_weight(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_set_weight "void pango_font_description_set_weight(PangoFontDescription* desc, \
+PangoWeight weight)"
+  s7_pointer _p;
+  s7_pointer desc, weight;
+  _p = args;
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_set_weight", 1, desc, "PangoFontDescription*");
+  weight = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(weight)) s7_wrong_type_arg_error(sc, "pango_font_description_set_weight", 2, weight, "PangoWeight");
+  pango_font_description_set_weight(s7_c_pointer(desc), s7_integer(weight));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_font_description_get_weight(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_get_weight "PangoWeight pango_font_description_get_weight(PangoFontDescription* desc)"
+  s7_pointer desc;
+  desc = s7_car(args);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_get_weight", 1, desc, "PangoFontDescription*");
+  return(s7_make_integer(sc, pango_font_description_get_weight(s7_c_pointer(desc))));
+}
+
+static s7_pointer lg_pango_font_description_set_stretch(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_set_stretch "void pango_font_description_set_stretch(PangoFontDescription* desc, \
+PangoStretch stretch)"
+  s7_pointer _p;
+  s7_pointer desc, stretch;
+  _p = args;
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_set_stretch", 1, desc, "PangoFontDescription*");
+  stretch = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(stretch)) s7_wrong_type_arg_error(sc, "pango_font_description_set_stretch", 2, stretch, "PangoStretch");
+  pango_font_description_set_stretch(s7_c_pointer(desc), s7_integer(stretch));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_font_description_get_stretch(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_get_stretch "PangoStretch pango_font_description_get_stretch(PangoFontDescription* desc)"
+  s7_pointer desc;
+  desc = s7_car(args);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_get_stretch", 1, desc, "PangoFontDescription*");
+  return(s7_make_integer(sc, pango_font_description_get_stretch(s7_c_pointer(desc))));
+}
+
+static s7_pointer lg_pango_font_description_set_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_set_size "void pango_font_description_set_size(PangoFontDescription* desc, \
+gint size)"
+  s7_pointer _p;
+  s7_pointer desc, size;
+  _p = args;
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_set_size", 1, desc, "PangoFontDescription*");
+  size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(size)) s7_wrong_type_arg_error(sc, "pango_font_description_set_size", 2, size, "gint");
+  pango_font_description_set_size(s7_c_pointer(desc), s7_integer(size));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_font_description_get_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_get_size "gint pango_font_description_get_size(PangoFontDescription* desc)"
+  s7_pointer desc;
+  desc = s7_car(args);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_get_size", 1, desc, "PangoFontDescription*");
+  return(s7_make_integer(sc, pango_font_description_get_size(s7_c_pointer(desc))));
+}
+
+static s7_pointer lg_pango_font_description_get_set_fields(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_get_set_fields "PangoFontMask pango_font_description_get_set_fields(PangoFontDescription* desc)"
+  s7_pointer desc;
+  desc = s7_car(args);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_get_set_fields", 1, desc, "PangoFontDescription*");
+  return(s7_make_integer(sc, pango_font_description_get_set_fields(s7_c_pointer(desc))));
+}
+
+static s7_pointer lg_pango_font_description_unset_fields(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_unset_fields "void pango_font_description_unset_fields(PangoFontDescription* desc, \
+PangoFontMask to_unset)"
+  s7_pointer _p;
+  s7_pointer desc, to_unset;
+  _p = args;
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_unset_fields", 1, desc, "PangoFontDescription*");
+  to_unset = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(to_unset)) s7_wrong_type_arg_error(sc, "pango_font_description_unset_fields", 2, to_unset, "PangoFontMask");
+  pango_font_description_unset_fields(s7_c_pointer(desc), s7_integer(to_unset));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_font_description_merge(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_merge "void pango_font_description_merge(PangoFontDescription* desc, \
+PangoFontDescription* desc_to_merge, gboolean replace_existing)"
+  s7_pointer _p;
+  s7_pointer desc, desc_to_merge, replace_existing;
+  _p = args;
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_merge", 1, desc, "PangoFontDescription*");
+  desc_to_merge = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc_to_merge, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_merge", 2, desc_to_merge, "PangoFontDescription*");
+  replace_existing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(replace_existing)) s7_wrong_type_arg_error(sc, "pango_font_description_merge", 3, replace_existing, "gboolean");
+  pango_font_description_merge(s7_c_pointer(desc), s7_c_pointer(desc_to_merge), lg_boolean(replace_existing));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_font_description_merge_static(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_merge_static "void pango_font_description_merge_static(PangoFontDescription* desc, \
+PangoFontDescription* desc_to_merge, gboolean replace_existing)"
+  s7_pointer _p;
+  s7_pointer desc, desc_to_merge, replace_existing;
+  _p = args;
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_merge_static", 1, desc, "PangoFontDescription*");
+  desc_to_merge = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc_to_merge, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_merge_static", 2, desc_to_merge, "PangoFontDescription*");
+  replace_existing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(replace_existing)) s7_wrong_type_arg_error(sc, "pango_font_description_merge_static", 3, replace_existing, "gboolean");
+  pango_font_description_merge_static(s7_c_pointer(desc), s7_c_pointer(desc_to_merge), lg_boolean(replace_existing));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_font_description_better_match(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_better_match "gboolean pango_font_description_better_match(PangoFontDescription* desc, \
+PangoFontDescription* old_match, PangoFontDescription* new_match)"
+  s7_pointer _p;
+  s7_pointer desc, old_match, new_match;
+  _p = args;
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_better_match", 1, desc, "PangoFontDescription*");
+  old_match = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(old_match, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_better_match", 2, old_match, "PangoFontDescription*");
+  new_match = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(new_match, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_better_match", 3, new_match, "PangoFontDescription*");
+  return(s7_make_boolean(sc, pango_font_description_better_match(s7_c_pointer(desc), s7_c_pointer(old_match), s7_c_pointer(new_match))));
+}
+
+static s7_pointer lg_pango_font_description_from_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_from_string "PangoFontDescription* pango_font_description_from_string(char* str)"
+  s7_pointer str;
+  str = s7_car(args);
+  if (!s7_is_string(str)) s7_wrong_type_arg_error(sc, "pango_font_description_from_string", 1, str, "char*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontDescription__sym, pango_font_description_from_string((char*)s7_string(str))));
+}
+
+static s7_pointer lg_pango_font_description_to_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_to_string "char* pango_font_description_to_string(PangoFontDescription* desc)"
+  s7_pointer desc;
+  desc = s7_car(args);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_to_string", 1, desc, "PangoFontDescription*");
+  {
+    char* result;
+    s7_pointer rtn;
+    result = pango_font_description_to_string(s7_c_pointer(desc));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_pango_font_description_to_filename(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_to_filename "char* pango_font_description_to_filename(PangoFontDescription* desc)"
+  s7_pointer desc;
+  desc = s7_car(args);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_to_filename", 1, desc, "PangoFontDescription*");
+  {
+    char* result;
+    s7_pointer rtn;
+    result = pango_font_description_to_filename(s7_c_pointer(desc));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_pango_font_metrics_ref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_metrics_ref "PangoFontMetrics* pango_font_metrics_ref(PangoFontMetrics* metrics)"
+  s7_pointer metrics;
+  metrics = s7_car(args);
+  if (!s7_is_c_pointer_of_type(metrics, PangoFontMetrics__sym)) s7_wrong_type_arg_error(sc, "pango_font_metrics_ref", 1, metrics, "PangoFontMetrics*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontMetrics__sym, pango_font_metrics_ref(s7_c_pointer(metrics))));
+}
+
+static s7_pointer lg_pango_font_metrics_unref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_metrics_unref "void pango_font_metrics_unref(PangoFontMetrics* metrics)"
+  s7_pointer metrics;
+  metrics = s7_car(args);
+  if (!s7_is_c_pointer_of_type(metrics, PangoFontMetrics__sym)) s7_wrong_type_arg_error(sc, "pango_font_metrics_unref", 1, metrics, "PangoFontMetrics*");
+  pango_font_metrics_unref(s7_c_pointer(metrics));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_font_metrics_get_ascent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_metrics_get_ascent "int pango_font_metrics_get_ascent(PangoFontMetrics* metrics)"
+  s7_pointer metrics;
+  metrics = s7_car(args);
+  if (!s7_is_c_pointer_of_type(metrics, PangoFontMetrics__sym)) s7_wrong_type_arg_error(sc, "pango_font_metrics_get_ascent", 1, metrics, "PangoFontMetrics*");
+  return(s7_make_integer(sc, pango_font_metrics_get_ascent(s7_c_pointer(metrics))));
+}
+
+static s7_pointer lg_pango_font_metrics_get_descent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_metrics_get_descent "int pango_font_metrics_get_descent(PangoFontMetrics* metrics)"
+  s7_pointer metrics;
+  metrics = s7_car(args);
+  if (!s7_is_c_pointer_of_type(metrics, PangoFontMetrics__sym)) s7_wrong_type_arg_error(sc, "pango_font_metrics_get_descent", 1, metrics, "PangoFontMetrics*");
+  return(s7_make_integer(sc, pango_font_metrics_get_descent(s7_c_pointer(metrics))));
+}
+
+static s7_pointer lg_pango_font_metrics_get_approximate_char_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_metrics_get_approximate_char_width "int pango_font_metrics_get_approximate_char_width(PangoFontMetrics* metrics)"
+  s7_pointer metrics;
+  metrics = s7_car(args);
+  if (!s7_is_c_pointer_of_type(metrics, PangoFontMetrics__sym)) s7_wrong_type_arg_error(sc, "pango_font_metrics_get_approximate_char_width", 1, metrics, "PangoFontMetrics*");
+  return(s7_make_integer(sc, pango_font_metrics_get_approximate_char_width(s7_c_pointer(metrics))));
+}
+
+static s7_pointer lg_pango_font_metrics_get_approximate_digit_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_metrics_get_approximate_digit_width "int pango_font_metrics_get_approximate_digit_width(PangoFontMetrics* metrics)"
+  s7_pointer metrics;
+  metrics = s7_car(args);
+  if (!s7_is_c_pointer_of_type(metrics, PangoFontMetrics__sym)) s7_wrong_type_arg_error(sc, "pango_font_metrics_get_approximate_digit_width", 1, metrics, "PangoFontMetrics*");
+  return(s7_make_integer(sc, pango_font_metrics_get_approximate_digit_width(s7_c_pointer(metrics))));
+}
+
+static s7_pointer lg_pango_font_family_list_faces(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_family_list_faces "void pango_font_family_list_faces(PangoFontFamily* family, \
+PangoFontFace*** [faces], int* [n_faces])"
+  s7_pointer _p;
+  s7_pointer family;
+  PangoFontFace** ref_faces = NULL;
+  int ref_n_faces;
+  _p = args;
+  family = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(family, PangoFontFamily__sym)) s7_wrong_type_arg_error(sc, "pango_font_family_list_faces", 1, family, "PangoFontFamily*");
+  pango_font_family_list_faces(s7_c_pointer(family), &ref_faces, &ref_n_faces);
+    return(s7_list(sc, 2, s7_make_c_pointer(sc, ref_faces), s7_make_integer(sc, ref_n_faces)));
+}
+
+static s7_pointer lg_pango_font_family_get_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_family_get_name "char* pango_font_family_get_name(PangoFontFamily* family)"
+  s7_pointer family;
+  family = s7_car(args);
+  if (!s7_is_c_pointer_of_type(family, PangoFontFamily__sym)) s7_wrong_type_arg_error(sc, "pango_font_family_get_name", 1, family, "PangoFontFamily*");
+  return(s7_make_string(sc, pango_font_family_get_name(s7_c_pointer(family))));
+}
+
+static s7_pointer lg_pango_font_face_describe(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_face_describe "PangoFontDescription* pango_font_face_describe(PangoFontFace* face)"
+  s7_pointer face;
+  face = s7_car(args);
+  if (!s7_is_c_pointer_of_type(face, PangoFontFace__sym)) s7_wrong_type_arg_error(sc, "pango_font_face_describe", 1, face, "PangoFontFace*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontDescription__sym, pango_font_face_describe(s7_c_pointer(face))));
+}
+
+static s7_pointer lg_pango_font_face_get_face_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_face_get_face_name "char* pango_font_face_get_face_name(PangoFontFace* face)"
+  s7_pointer face;
+  face = s7_car(args);
+  if (!s7_is_c_pointer_of_type(face, PangoFontFace__sym)) s7_wrong_type_arg_error(sc, "pango_font_face_get_face_name", 1, face, "PangoFontFace*");
+  return(s7_make_string(sc, pango_font_face_get_face_name(s7_c_pointer(face))));
+}
+
+static s7_pointer lg_pango_font_describe(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_describe "PangoFontDescription* pango_font_describe(PangoFont* font)"
+  s7_pointer font;
+  font = s7_car(args);
+  if (!s7_is_c_pointer_of_type(font, PangoFont__sym)) s7_wrong_type_arg_error(sc, "pango_font_describe", 1, font, "PangoFont*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontDescription__sym, pango_font_describe(s7_c_pointer(font))));
+}
+
+static s7_pointer lg_pango_font_get_coverage(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_get_coverage "PangoCoverage* pango_font_get_coverage(PangoFont* font, PangoLanguage* language)"
+  s7_pointer _p;
+  s7_pointer font, language;
+  _p = args;
+  font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font, PangoFont__sym)) s7_wrong_type_arg_error(sc, "pango_font_get_coverage", 1, font, "PangoFont*");
+  language = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(language, PangoLanguage__sym)) s7_wrong_type_arg_error(sc, "pango_font_get_coverage", 2, language, "PangoLanguage*");
+  return(s7_make_type_with_c_pointer(sc, PangoCoverage__sym, pango_font_get_coverage(s7_c_pointer(font), s7_c_pointer(language))));
+}
+
+static s7_pointer lg_pango_font_get_metrics(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_get_metrics "PangoFontMetrics* pango_font_get_metrics(PangoFont* font, PangoLanguage* language)"
+  s7_pointer _p;
+  s7_pointer font, language;
+  _p = args;
+  font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font, PangoFont__sym)) s7_wrong_type_arg_error(sc, "pango_font_get_metrics", 1, font, "PangoFont*");
+  language = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(language, PangoLanguage__sym)) s7_wrong_type_arg_error(sc, "pango_font_get_metrics", 2, language, "PangoLanguage*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontMetrics__sym, pango_font_get_metrics(s7_c_pointer(font), s7_c_pointer(language))));
+}
+
+static s7_pointer lg_pango_font_get_glyph_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_get_glyph_extents "void pango_font_get_glyph_extents(PangoFont* font, PangoGlyph glyph, \
+PangoRectangle* ink_rect, PangoRectangle* logical_rect)"
+  s7_pointer _p;
+  s7_pointer font, glyph, ink_rect, logical_rect;
+  _p = args;
+  font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font, PangoFont__sym)) s7_wrong_type_arg_error(sc, "pango_font_get_glyph_extents", 1, font, "PangoFont*");
+  glyph = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(glyph)) s7_wrong_type_arg_error(sc, "pango_font_get_glyph_extents", 2, glyph, "PangoGlyph");
+  ink_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ink_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_font_get_glyph_extents", 3, ink_rect, "PangoRectangle*");
+  logical_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(logical_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_font_get_glyph_extents", 4, logical_rect, "PangoRectangle*");
+  pango_font_get_glyph_extents(s7_c_pointer(font), s7_integer(glyph), s7_c_pointer(ink_rect), s7_c_pointer(logical_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_font_map_load_font(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_map_load_font "PangoFont* pango_font_map_load_font(PangoFontMap* fontmap, PangoContext* context, \
+PangoFontDescription* desc)"
+  s7_pointer _p;
+  s7_pointer fontmap, context, desc;
+  _p = args;
+  fontmap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(fontmap, PangoFontMap__sym)) s7_wrong_type_arg_error(sc, "pango_font_map_load_font", 1, fontmap, "PangoFontMap*");
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_font_map_load_font", 2, context, "PangoContext*");
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_map_load_font", 3, desc, "PangoFontDescription*");
+  return(s7_make_type_with_c_pointer(sc, PangoFont__sym, pango_font_map_load_font(s7_c_pointer(fontmap), s7_c_pointer(context), s7_c_pointer(desc))));
+}
+
+static s7_pointer lg_pango_font_map_load_fontset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_map_load_fontset "PangoFontset* pango_font_map_load_fontset(PangoFontMap* fontmap, \
+PangoContext* context, PangoFontDescription* desc, PangoLanguage* language)"
+  s7_pointer _p;
+  s7_pointer fontmap, context, desc, language;
+  _p = args;
+  fontmap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(fontmap, PangoFontMap__sym)) s7_wrong_type_arg_error(sc, "pango_font_map_load_fontset", 1, fontmap, "PangoFontMap*");
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_font_map_load_fontset", 2, context, "PangoContext*");
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_map_load_fontset", 3, desc, "PangoFontDescription*");
+  language = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(language, PangoLanguage__sym)) s7_wrong_type_arg_error(sc, "pango_font_map_load_fontset", 4, language, "PangoLanguage*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontset__sym, pango_font_map_load_fontset(s7_c_pointer(fontmap), s7_c_pointer(context), s7_c_pointer(desc), s7_c_pointer(language))));
+}
+
+static s7_pointer lg_pango_font_map_list_families(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_map_list_families "void pango_font_map_list_families(PangoFontMap* fontmap, PangoFontFamily*** [families], \
+int* [n_families])"
+  s7_pointer _p;
+  s7_pointer fontmap;
+  PangoFontFamily** ref_families = NULL;
+  int ref_n_families;
+  _p = args;
+  fontmap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(fontmap, PangoFontMap__sym)) s7_wrong_type_arg_error(sc, "pango_font_map_list_families", 1, fontmap, "PangoFontMap*");
+  pango_font_map_list_families(s7_c_pointer(fontmap), &ref_families, &ref_n_families);
+    return(s7_list(sc, 2, s7_make_c_pointer(sc, ref_families), s7_make_integer(sc, ref_n_families)));
+}
+
+static s7_pointer lg_pango_glyph_string_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_glyph_string_new "PangoGlyphString* pango_glyph_string_new( void)"
+  return(s7_make_type_with_c_pointer(sc, PangoGlyphString__sym, pango_glyph_string_new()));
+}
+
+static s7_pointer lg_pango_glyph_string_set_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_glyph_string_set_size "void pango_glyph_string_set_size(PangoGlyphString* string, gint new_len)"
+  s7_pointer _p;
+  s7_pointer string, new_len;
+  _p = args;
+  string = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(string, PangoGlyphString__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_set_size", 1, string, "PangoGlyphString*");
+  new_len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(new_len)) s7_wrong_type_arg_error(sc, "pango_glyph_string_set_size", 2, new_len, "gint");
+  pango_glyph_string_set_size(s7_c_pointer(string), s7_integer(new_len));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_glyph_string_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_glyph_string_copy "PangoGlyphString* pango_glyph_string_copy(PangoGlyphString* string)"
+  s7_pointer string;
+  string = s7_car(args);
+  if (!s7_is_c_pointer_of_type(string, PangoGlyphString__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_copy", 1, string, "PangoGlyphString*");
+  return(s7_make_type_with_c_pointer(sc, PangoGlyphString__sym, pango_glyph_string_copy(s7_c_pointer(string))));
+}
+
+static s7_pointer lg_pango_glyph_string_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_glyph_string_free "void pango_glyph_string_free(PangoGlyphString* string)"
+  s7_pointer string;
+  string = s7_car(args);
+  if (!s7_is_c_pointer_of_type(string, PangoGlyphString__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_free", 1, string, "PangoGlyphString*");
+  pango_glyph_string_free(s7_c_pointer(string));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_glyph_string_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_glyph_string_extents "void pango_glyph_string_extents(PangoGlyphString* glyphs, PangoFont* font, \
+PangoRectangle* ink_rect, PangoRectangle* logical_rect)"
+  s7_pointer _p;
+  s7_pointer glyphs, font, ink_rect, logical_rect;
+  _p = args;
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, PangoGlyphString__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_extents", 1, glyphs, "PangoGlyphString*");
+  font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font, PangoFont__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_extents", 2, font, "PangoFont*");
+  ink_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ink_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_extents", 3, ink_rect, "PangoRectangle*");
+  logical_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(logical_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_extents", 4, logical_rect, "PangoRectangle*");
+  pango_glyph_string_extents(s7_c_pointer(glyphs), s7_c_pointer(font), s7_c_pointer(ink_rect), s7_c_pointer(logical_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_glyph_string_extents_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_glyph_string_extents_range "void pango_glyph_string_extents_range(PangoGlyphString* glyphs, \
+int start, int end, PangoFont* font, PangoRectangle* ink_rect, PangoRectangle* logical_rect)"
+  s7_pointer _p;
+  s7_pointer glyphs, start, end, font, ink_rect, logical_rect;
+  _p = args;
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, PangoGlyphString__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_extents_range", 1, glyphs, "PangoGlyphString*");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(start)) s7_wrong_type_arg_error(sc, "pango_glyph_string_extents_range", 2, start, "int");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(end)) s7_wrong_type_arg_error(sc, "pango_glyph_string_extents_range", 3, end, "int");
+  font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font, PangoFont__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_extents_range", 4, font, "PangoFont*");
+  ink_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ink_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_extents_range", 5, ink_rect, "PangoRectangle*");
+  logical_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(logical_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_extents_range", 6, logical_rect, "PangoRectangle*");
+  pango_glyph_string_extents_range(s7_c_pointer(glyphs), s7_integer(start), s7_integer(end), s7_c_pointer(font), s7_c_pointer(ink_rect), s7_c_pointer(logical_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_glyph_string_get_logical_widths(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_glyph_string_get_logical_widths "void pango_glyph_string_get_logical_widths(PangoGlyphString* glyphs, \
+char* text, int length, int embedding_level, int* [logical_widths])"
+  s7_pointer _p;
+  s7_pointer glyphs, text, length, embedding_level;
+  int ref_logical_widths;
+  _p = args;
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, PangoGlyphString__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_get_logical_widths", 1, glyphs, "PangoGlyphString*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "pango_glyph_string_get_logical_widths", 2, text, "char*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "pango_glyph_string_get_logical_widths", 3, length, "int");
+  embedding_level = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(embedding_level)) s7_wrong_type_arg_error(sc, "pango_glyph_string_get_logical_widths", 4, embedding_level, "int");
+  pango_glyph_string_get_logical_widths(s7_c_pointer(glyphs), (char*)s7_string(text), s7_integer(length), s7_integer(embedding_level), &ref_logical_widths);
+    return(s7_list(sc, 1, s7_make_integer(sc, ref_logical_widths)));
+}
+
+static s7_pointer lg_pango_glyph_string_index_to_x(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_glyph_string_index_to_x "void pango_glyph_string_index_to_x(PangoGlyphString* glyphs, \
+char* text, int length, PangoAnalysis* analysis, int index, gboolean trailing, int* [x_pos])"
+  s7_pointer _p;
+  s7_pointer glyphs, text, length, analysis, index, trailing;
+  int ref_x_pos;
+  _p = args;
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, PangoGlyphString__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_index_to_x", 1, glyphs, "PangoGlyphString*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "pango_glyph_string_index_to_x", 2, text, "char*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "pango_glyph_string_index_to_x", 3, length, "int");
+  analysis = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(analysis, PangoAnalysis__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_index_to_x", 4, analysis, "PangoAnalysis*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "pango_glyph_string_index_to_x", 5, index, "int");
+  trailing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(trailing)) s7_wrong_type_arg_error(sc, "pango_glyph_string_index_to_x", 6, trailing, "gboolean");
+  pango_glyph_string_index_to_x(s7_c_pointer(glyphs), (char*)s7_string(text), s7_integer(length), s7_c_pointer(analysis), s7_integer(index), lg_boolean(trailing), &ref_x_pos);
+    return(s7_list(sc, 1, s7_make_integer(sc, ref_x_pos)));
+}
+
+static s7_pointer lg_pango_glyph_string_x_to_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_glyph_string_x_to_index "void pango_glyph_string_x_to_index(PangoGlyphString* glyphs, \
+char* text, int length, PangoAnalysis* analysis, int x_pos, int* [index], int* [trailing])"
+  s7_pointer _p;
+  s7_pointer glyphs, text, length, analysis, x_pos;
+  int ref_index;
+  int ref_trailing;
+  _p = args;
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, PangoGlyphString__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_x_to_index", 1, glyphs, "PangoGlyphString*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "pango_glyph_string_x_to_index", 2, text, "char*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "pango_glyph_string_x_to_index", 3, length, "int");
+  analysis = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(analysis, PangoAnalysis__sym)) s7_wrong_type_arg_error(sc, "pango_glyph_string_x_to_index", 4, analysis, "PangoAnalysis*");
+  x_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x_pos)) s7_wrong_type_arg_error(sc, "pango_glyph_string_x_to_index", 5, x_pos, "int");
+  pango_glyph_string_x_to_index(s7_c_pointer(glyphs), (char*)s7_string(text), s7_integer(length), s7_c_pointer(analysis), s7_integer(x_pos), &ref_index, &ref_trailing);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_index), s7_make_integer(sc, ref_trailing)));
+}
+
+static s7_pointer lg_pango_shape(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_shape "void pango_shape(gchar* text, gint length, PangoAnalysis* analysis, PangoGlyphString* glyphs)"
+  s7_pointer _p;
+  s7_pointer text, length, analysis, glyphs;
+  _p = args;
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "pango_shape", 1, text, "gchar*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "pango_shape", 2, length, "gint");
+  analysis = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(analysis, PangoAnalysis__sym)) s7_wrong_type_arg_error(sc, "pango_shape", 3, analysis, "PangoAnalysis*");
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, PangoGlyphString__sym)) s7_wrong_type_arg_error(sc, "pango_shape", 4, glyphs, "PangoGlyphString*");
+  pango_shape(s7_string(text), s7_integer(length), s7_c_pointer(analysis), s7_c_pointer(glyphs));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_reorder_items(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_reorder_items "GList* pango_reorder_items(GList* logical_items)"
+  s7_pointer logical_items;
+  logical_items = s7_car(args);
+  if (!s7_is_c_pointer_of_type(logical_items, GList__sym)) s7_wrong_type_arg_error(sc, "pango_reorder_items", 1, logical_items, "GList*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, pango_reorder_items(s7_c_pointer(logical_items))));
+}
+
+static s7_pointer lg_pango_item_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_item_new "PangoItem* pango_item_new( void)"
+  return(s7_make_type_with_c_pointer(sc, PangoItem__sym, pango_item_new()));
+}
+
+static s7_pointer lg_pango_item_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_item_copy "PangoItem* pango_item_copy(PangoItem* item)"
+  s7_pointer item;
+  item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(item, PangoItem__sym)) s7_wrong_type_arg_error(sc, "pango_item_copy", 1, item, "PangoItem*");
+  return(s7_make_type_with_c_pointer(sc, PangoItem__sym, pango_item_copy(s7_c_pointer(item))));
+}
+
+static s7_pointer lg_pango_item_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_item_free "void pango_item_free(PangoItem* item)"
+  s7_pointer item;
+  item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(item, PangoItem__sym)) s7_wrong_type_arg_error(sc, "pango_item_free", 1, item, "PangoItem*");
+  pango_item_free(s7_c_pointer(item));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_item_split(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_item_split "PangoItem* pango_item_split(PangoItem* orig, int split_index, int split_offset)"
+  s7_pointer _p;
+  s7_pointer orig, split_index, split_offset;
+  _p = args;
+  orig = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(orig, PangoItem__sym)) s7_wrong_type_arg_error(sc, "pango_item_split", 1, orig, "PangoItem*");
+  split_index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(split_index)) s7_wrong_type_arg_error(sc, "pango_item_split", 2, split_index, "int");
+  split_offset = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(split_offset)) s7_wrong_type_arg_error(sc, "pango_item_split", 3, split_offset, "int");
+  return(s7_make_type_with_c_pointer(sc, PangoItem__sym, pango_item_split(s7_c_pointer(orig), s7_integer(split_index), s7_integer(split_offset))));
+}
+
+static s7_pointer lg_pango_layout_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_new "PangoLayout* pango_layout_new(PangoContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_layout_new", 1, context, "PangoContext*");
+  return(s7_make_type_with_c_pointer(sc, PangoLayout__sym, pango_layout_new(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_pango_layout_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_copy "PangoLayout* pango_layout_copy(PangoLayout* src)"
+  s7_pointer src;
+  src = s7_car(args);
+  if (!s7_is_c_pointer_of_type(src, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_copy", 1, src, "PangoLayout*");
+  return(s7_make_type_with_c_pointer(sc, PangoLayout__sym, pango_layout_copy(s7_c_pointer(src))));
+}
+
+static s7_pointer lg_pango_layout_get_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_context "PangoContext* pango_layout_get_context(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_context", 1, layout, "PangoLayout*");
+  return(s7_make_type_with_c_pointer(sc, PangoContext__sym, pango_layout_get_context(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_layout_set_attributes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_set_attributes "void pango_layout_set_attributes(PangoLayout* layout, PangoAttrList* attrs)"
+  s7_pointer _p;
+  s7_pointer layout, attrs;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_attributes", 1, layout, "PangoLayout*");
+  attrs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(attrs, PangoAttrList__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_attributes", 2, attrs, "PangoAttrList*");
+  pango_layout_set_attributes(s7_c_pointer(layout), s7_c_pointer(attrs));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_attributes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_attributes "PangoAttrList* pango_layout_get_attributes(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_attributes", 1, layout, "PangoLayout*");
+  return(s7_make_type_with_c_pointer(sc, PangoAttrList__sym, pango_layout_get_attributes(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_layout_set_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_set_text "void pango_layout_set_text(PangoLayout* layout, char* text, int length)"
+  s7_pointer _p;
+  s7_pointer layout, text, length;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_text", 1, layout, "PangoLayout*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "pango_layout_set_text", 2, text, "char*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "pango_layout_set_text", 3, length, "int");
+  pango_layout_set_text(s7_c_pointer(layout), (char*)s7_string(text), s7_integer(length));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_text "char* pango_layout_get_text(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_text", 1, layout, "PangoLayout*");
+  return(s7_make_string(sc, pango_layout_get_text(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_layout_set_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_set_markup "void pango_layout_set_markup(PangoLayout* layout, char* markup, \
+int length)"
+  s7_pointer _p;
+  s7_pointer layout, markup, length;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_markup", 1, layout, "PangoLayout*");
+  markup = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(markup)) s7_wrong_type_arg_error(sc, "pango_layout_set_markup", 2, markup, "char*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "pango_layout_set_markup", 3, length, "int");
+  pango_layout_set_markup(s7_c_pointer(layout), (char*)s7_string(markup), s7_integer(length));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_set_markup_with_accel(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_set_markup_with_accel "void pango_layout_set_markup_with_accel(PangoLayout* layout, \
+char* markup, int length, gunichar accel_marker, gunichar* accel_char)"
+  s7_pointer _p;
+  s7_pointer layout, markup, length, accel_marker, accel_char;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_markup_with_accel", 1, layout, "PangoLayout*");
+  markup = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(markup)) s7_wrong_type_arg_error(sc, "pango_layout_set_markup_with_accel", 2, markup, "char*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "pango_layout_set_markup_with_accel", 3, length, "int");
+  accel_marker = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accel_marker)) s7_wrong_type_arg_error(sc, "pango_layout_set_markup_with_accel", 4, accel_marker, "gunichar");
+  accel_char = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_char, gunichar__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_markup_with_accel", 5, accel_char, "gunichar*");
+  pango_layout_set_markup_with_accel(s7_c_pointer(layout), (char*)s7_string(markup), s7_integer(length), s7_integer(accel_marker), s7_c_pointer(accel_char));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_set_font_description(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_set_font_description "void pango_layout_set_font_description(PangoLayout* layout, \
+PangoFontDescription* desc)"
+  s7_pointer _p;
+  s7_pointer layout, desc;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_font_description", 1, layout, "PangoLayout*");
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_font_description", 2, desc, "PangoFontDescription*");
+  pango_layout_set_font_description(s7_c_pointer(layout), s7_c_pointer(desc));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_set_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_set_width "void pango_layout_set_width(PangoLayout* layout, int width)"
+  s7_pointer _p;
+  s7_pointer layout, width;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_width", 1, layout, "PangoLayout*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "pango_layout_set_width", 2, width, "int");
+  pango_layout_set_width(s7_c_pointer(layout), s7_integer(width));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_width "int pango_layout_get_width(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_width", 1, layout, "PangoLayout*");
+  return(s7_make_integer(sc, pango_layout_get_width(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_layout_set_wrap(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_set_wrap "void pango_layout_set_wrap(PangoLayout* layout, PangoWrapMode wrap)"
+  s7_pointer _p;
+  s7_pointer layout, wrap;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_wrap", 1, layout, "PangoLayout*");
+  wrap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(wrap)) s7_wrong_type_arg_error(sc, "pango_layout_set_wrap", 2, wrap, "PangoWrapMode");
+  pango_layout_set_wrap(s7_c_pointer(layout), s7_integer(wrap));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_wrap(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_wrap "PangoWrapMode pango_layout_get_wrap(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_wrap", 1, layout, "PangoLayout*");
+  return(s7_make_integer(sc, pango_layout_get_wrap(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_layout_set_indent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_set_indent "void pango_layout_set_indent(PangoLayout* layout, int indent)"
+  s7_pointer _p;
+  s7_pointer layout, indent;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_indent", 1, layout, "PangoLayout*");
+  indent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(indent)) s7_wrong_type_arg_error(sc, "pango_layout_set_indent", 2, indent, "int");
+  pango_layout_set_indent(s7_c_pointer(layout), s7_integer(indent));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_indent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_indent "int pango_layout_get_indent(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_indent", 1, layout, "PangoLayout*");
+  return(s7_make_integer(sc, pango_layout_get_indent(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_layout_set_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_set_spacing "void pango_layout_set_spacing(PangoLayout* layout, int spacing)"
+  s7_pointer _p;
+  s7_pointer layout, spacing;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_spacing", 1, layout, "PangoLayout*");
+  spacing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(spacing)) s7_wrong_type_arg_error(sc, "pango_layout_set_spacing", 2, spacing, "int");
+  pango_layout_set_spacing(s7_c_pointer(layout), s7_integer(spacing));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_spacing "int pango_layout_get_spacing(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_spacing", 1, layout, "PangoLayout*");
+  return(s7_make_integer(sc, pango_layout_get_spacing(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_layout_set_justify(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_set_justify "void pango_layout_set_justify(PangoLayout* layout, gboolean justify)"
+  s7_pointer _p;
+  s7_pointer layout, justify;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_justify", 1, layout, "PangoLayout*");
+  justify = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(justify)) s7_wrong_type_arg_error(sc, "pango_layout_set_justify", 2, justify, "gboolean");
+  pango_layout_set_justify(s7_c_pointer(layout), lg_boolean(justify));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_justify(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_justify "gboolean pango_layout_get_justify(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_justify", 1, layout, "PangoLayout*");
+  return(s7_make_boolean(sc, pango_layout_get_justify(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_layout_set_alignment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_set_alignment "void pango_layout_set_alignment(PangoLayout* layout, PangoAlignment alignment)"
+  s7_pointer _p;
+  s7_pointer layout, alignment;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_alignment", 1, layout, "PangoLayout*");
+  alignment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(alignment)) s7_wrong_type_arg_error(sc, "pango_layout_set_alignment", 2, alignment, "PangoAlignment");
+  pango_layout_set_alignment(s7_c_pointer(layout), s7_integer(alignment));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_alignment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_alignment "PangoAlignment pango_layout_get_alignment(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_alignment", 1, layout, "PangoLayout*");
+  return(s7_make_integer(sc, pango_layout_get_alignment(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_layout_set_tabs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_set_tabs "void pango_layout_set_tabs(PangoLayout* layout, PangoTabArray* tabs)"
+  s7_pointer _p;
+  s7_pointer layout, tabs;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_tabs", 1, layout, "PangoLayout*");
+  tabs = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tabs, PangoTabArray__sym)) && (tabs != lg_false)) s7_wrong_type_arg_error(sc, "pango_layout_set_tabs", 2, tabs, "PangoTabArray*");
+  pango_layout_set_tabs(s7_c_pointer(layout), s7_c_pointer(tabs));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_tabs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_tabs "PangoTabArray* pango_layout_get_tabs(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_tabs", 1, layout, "PangoLayout*");
+  return(s7_make_type_with_c_pointer(sc, PangoTabArray__sym, pango_layout_get_tabs(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_layout_set_single_paragraph_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_set_single_paragraph_mode "void pango_layout_set_single_paragraph_mode(PangoLayout* layout, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer layout, setting;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_single_paragraph_mode", 1, layout, "PangoLayout*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "pango_layout_set_single_paragraph_mode", 2, setting, "gboolean");
+  pango_layout_set_single_paragraph_mode(s7_c_pointer(layout), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_single_paragraph_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_single_paragraph_mode "gboolean pango_layout_get_single_paragraph_mode(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_single_paragraph_mode", 1, layout, "PangoLayout*");
+  return(s7_make_boolean(sc, pango_layout_get_single_paragraph_mode(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_layout_context_changed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_context_changed "void pango_layout_context_changed(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_context_changed", 1, layout, "PangoLayout*");
+  pango_layout_context_changed(s7_c_pointer(layout));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_log_attrs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_log_attrs "void pango_layout_get_log_attrs(PangoLayout* layout, PangoLogAttr** [attrs], \
+gint* [n_attrs])"
+  s7_pointer _p;
+  s7_pointer layout;
+  PangoLogAttr* ref_attrs = NULL;
+  gint ref_n_attrs;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_log_attrs", 1, layout, "PangoLayout*");
+  pango_layout_get_log_attrs(s7_c_pointer(layout), &ref_attrs, &ref_n_attrs);
+    return(s7_list(sc, 2, s7_make_c_pointer(sc, ref_attrs), s7_make_integer(sc, ref_n_attrs)));
+}
+
+static s7_pointer lg_pango_layout_index_to_pos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_index_to_pos "void pango_layout_index_to_pos(PangoLayout* layout, int index, \
+PangoRectangle* pos)"
+  s7_pointer _p;
+  s7_pointer layout, index, pos;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_index_to_pos", 1, layout, "PangoLayout*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "pango_layout_index_to_pos", 2, index, "int");
+  pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pos, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_index_to_pos", 3, pos, "PangoRectangle*");
+  pango_layout_index_to_pos(s7_c_pointer(layout), s7_integer(index), s7_c_pointer(pos));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_cursor_pos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_cursor_pos "void pango_layout_get_cursor_pos(PangoLayout* layout, int index, \
+PangoRectangle* strong_pos, PangoRectangle* weak_pos)"
+  s7_pointer _p;
+  s7_pointer layout, index, strong_pos, weak_pos;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_cursor_pos", 1, layout, "PangoLayout*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "pango_layout_get_cursor_pos", 2, index, "int");
+  strong_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(strong_pos, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_cursor_pos", 3, strong_pos, "PangoRectangle*");
+  weak_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(weak_pos, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_cursor_pos", 4, weak_pos, "PangoRectangle*");
+  pango_layout_get_cursor_pos(s7_c_pointer(layout), s7_integer(index), s7_c_pointer(strong_pos), s7_c_pointer(weak_pos));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_move_cursor_visually(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_move_cursor_visually "void pango_layout_move_cursor_visually(PangoLayout* layout, \
+gboolean strong, int old_index, int old_trailing, int direction, int* new_index, int* new_trailing)"
+  s7_pointer _p;
+  s7_pointer layout, strong, old_index, old_trailing, direction, new_index, new_trailing;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_move_cursor_visually", 1, layout, "PangoLayout*");
+  strong = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(strong)) s7_wrong_type_arg_error(sc, "pango_layout_move_cursor_visually", 2, strong, "gboolean");
+  old_index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(old_index)) s7_wrong_type_arg_error(sc, "pango_layout_move_cursor_visually", 3, old_index, "int");
+  old_trailing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(old_trailing)) s7_wrong_type_arg_error(sc, "pango_layout_move_cursor_visually", 4, old_trailing, "int");
+  direction = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(direction)) s7_wrong_type_arg_error(sc, "pango_layout_move_cursor_visually", 5, direction, "int");
+  new_index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(new_index, int__sym)) s7_wrong_type_arg_error(sc, "pango_layout_move_cursor_visually", 6, new_index, "int*");
+  new_trailing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(new_trailing, int__sym)) s7_wrong_type_arg_error(sc, "pango_layout_move_cursor_visually", 7, new_trailing, "int*");
+  pango_layout_move_cursor_visually(s7_c_pointer(layout), lg_boolean(strong), s7_integer(old_index), s7_integer(old_trailing), s7_integer(direction), s7_c_pointer(new_index), s7_c_pointer(new_trailing));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_xy_to_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_xy_to_index "gboolean pango_layout_xy_to_index(PangoLayout* layout, int x, int y, \
+int* [index], int* [trailing])"
+  s7_pointer _p;
+  s7_pointer layout, x, y;
+  int ref_index;
+  int ref_trailing;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_xy_to_index", 1, layout, "PangoLayout*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "pango_layout_xy_to_index", 2, x, "int");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "pango_layout_xy_to_index", 3, y, "int");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, pango_layout_xy_to_index(s7_c_pointer(layout), s7_integer(x), s7_integer(y), &ref_index, &ref_trailing));
+      return(s7_list(sc, 3, result, s7_make_integer(sc, ref_index), s7_make_integer(sc, ref_trailing)));
+   }
+}
+
+static s7_pointer lg_pango_layout_get_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_extents "void pango_layout_get_extents(PangoLayout* layout, PangoRectangle* ink_rect, \
+PangoRectangle* logical_rect)"
+  s7_pointer _p;
+  s7_pointer layout, ink_rect, logical_rect;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_extents", 1, layout, "PangoLayout*");
+  ink_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ink_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_extents", 2, ink_rect, "PangoRectangle*");
+  logical_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(logical_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_extents", 3, logical_rect, "PangoRectangle*");
+  pango_layout_get_extents(s7_c_pointer(layout), s7_c_pointer(ink_rect), s7_c_pointer(logical_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_pixel_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_pixel_extents "void pango_layout_get_pixel_extents(PangoLayout* layout, \
+PangoRectangle* ink_rect, PangoRectangle* logical_rect)"
+  s7_pointer _p;
+  s7_pointer layout, ink_rect, logical_rect;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_pixel_extents", 1, layout, "PangoLayout*");
+  ink_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ink_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_pixel_extents", 2, ink_rect, "PangoRectangle*");
+  logical_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(logical_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_pixel_extents", 3, logical_rect, "PangoRectangle*");
+  pango_layout_get_pixel_extents(s7_c_pointer(layout), s7_c_pointer(ink_rect), s7_c_pointer(logical_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_size "void pango_layout_get_size(PangoLayout* layout, int* [width], int* [height])"
+  s7_pointer _p;
+  s7_pointer layout;
+  int ref_width;
+  int ref_height;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_size", 1, layout, "PangoLayout*");
+  pango_layout_get_size(s7_c_pointer(layout), &ref_width, &ref_height);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_width), s7_make_integer(sc, ref_height)));
+}
+
+static s7_pointer lg_pango_layout_get_pixel_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_pixel_size "void pango_layout_get_pixel_size(PangoLayout* layout, int* [width], \
+int* [height])"
+  s7_pointer _p;
+  s7_pointer layout;
+  int ref_width;
+  int ref_height;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_pixel_size", 1, layout, "PangoLayout*");
+  pango_layout_get_pixel_size(s7_c_pointer(layout), &ref_width, &ref_height);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_width), s7_make_integer(sc, ref_height)));
+}
+
+static s7_pointer lg_pango_layout_get_line_count(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_line_count "int pango_layout_get_line_count(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_line_count", 1, layout, "PangoLayout*");
+  return(s7_make_integer(sc, pango_layout_get_line_count(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_layout_get_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_line "PangoLayoutLine* pango_layout_get_line(PangoLayout* layout, int line)"
+  s7_pointer _p;
+  s7_pointer layout, line;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_line", 1, layout, "PangoLayout*");
+  line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(line)) s7_wrong_type_arg_error(sc, "pango_layout_get_line", 2, line, "int");
+  return(s7_make_type_with_c_pointer(sc, PangoLayoutLine__sym, pango_layout_get_line(s7_c_pointer(layout), s7_integer(line))));
+}
+
+static s7_pointer lg_pango_layout_get_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_lines "GSList* pango_layout_get_lines(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_lines", 1, layout, "PangoLayout*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, pango_layout_get_lines(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_layout_line_unref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_line_unref "void pango_layout_line_unref(PangoLayoutLine* line)"
+  s7_pointer line;
+  line = s7_car(args);
+  if (!s7_is_c_pointer_of_type(line, PangoLayoutLine__sym)) s7_wrong_type_arg_error(sc, "pango_layout_line_unref", 1, line, "PangoLayoutLine*");
+  pango_layout_line_unref(s7_c_pointer(line));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_line_x_to_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_line_x_to_index "gboolean pango_layout_line_x_to_index(PangoLayoutLine* line, \
+int x_pos, int* [index], int* [trailing])"
+  s7_pointer _p;
+  s7_pointer line, x_pos;
+  int ref_index;
+  int ref_trailing;
+  _p = args;
+  line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(line, PangoLayoutLine__sym)) s7_wrong_type_arg_error(sc, "pango_layout_line_x_to_index", 1, line, "PangoLayoutLine*");
+  x_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x_pos)) s7_wrong_type_arg_error(sc, "pango_layout_line_x_to_index", 2, x_pos, "int");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, pango_layout_line_x_to_index(s7_c_pointer(line), s7_integer(x_pos), &ref_index, &ref_trailing));
+      return(s7_list(sc, 3, result, s7_make_integer(sc, ref_index), s7_make_integer(sc, ref_trailing)));
+   }
+}
+
+static s7_pointer lg_pango_layout_line_index_to_x(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_line_index_to_x "void pango_layout_line_index_to_x(PangoLayoutLine* line, int index, \
+gboolean trailing, int* [x_pos])"
+  s7_pointer _p;
+  s7_pointer line, index, trailing;
+  int ref_x_pos;
+  _p = args;
+  line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(line, PangoLayoutLine__sym)) s7_wrong_type_arg_error(sc, "pango_layout_line_index_to_x", 1, line, "PangoLayoutLine*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "pango_layout_line_index_to_x", 2, index, "int");
+  trailing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(trailing)) s7_wrong_type_arg_error(sc, "pango_layout_line_index_to_x", 3, trailing, "gboolean");
+  pango_layout_line_index_to_x(s7_c_pointer(line), s7_integer(index), lg_boolean(trailing), &ref_x_pos);
+    return(s7_list(sc, 1, s7_make_integer(sc, ref_x_pos)));
+}
+
+static s7_pointer lg_pango_layout_line_get_x_ranges(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_line_get_x_ranges "void pango_layout_line_get_x_ranges(PangoLayoutLine* line, \
+int start_index, int end_index, int** [ranges], int* [n_ranges])"
+  s7_pointer _p;
+  s7_pointer line, start_index, end_index;
+  int* ref_ranges = NULL;
+  int ref_n_ranges;
+  _p = args;
+  line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(line, PangoLayoutLine__sym)) s7_wrong_type_arg_error(sc, "pango_layout_line_get_x_ranges", 1, line, "PangoLayoutLine*");
+  start_index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(start_index)) s7_wrong_type_arg_error(sc, "pango_layout_line_get_x_ranges", 2, start_index, "int");
+  end_index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(end_index)) s7_wrong_type_arg_error(sc, "pango_layout_line_get_x_ranges", 3, end_index, "int");
+  pango_layout_line_get_x_ranges(s7_c_pointer(line), s7_integer(start_index), s7_integer(end_index), &ref_ranges, &ref_n_ranges);
+    return(s7_list(sc, 2, s7_make_c_pointer(sc, ref_ranges), s7_make_integer(sc, ref_n_ranges)));
+}
+
+static s7_pointer lg_pango_layout_line_get_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_line_get_extents "void pango_layout_line_get_extents(PangoLayoutLine* line, \
+PangoRectangle* ink_rect, PangoRectangle* logical_rect)"
+  s7_pointer _p;
+  s7_pointer line, ink_rect, logical_rect;
+  _p = args;
+  line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(line, PangoLayoutLine__sym)) s7_wrong_type_arg_error(sc, "pango_layout_line_get_extents", 1, line, "PangoLayoutLine*");
+  ink_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ink_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_line_get_extents", 2, ink_rect, "PangoRectangle*");
+  logical_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(logical_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_line_get_extents", 3, logical_rect, "PangoRectangle*");
+  pango_layout_line_get_extents(s7_c_pointer(line), s7_c_pointer(ink_rect), s7_c_pointer(logical_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_line_get_pixel_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_line_get_pixel_extents "void pango_layout_line_get_pixel_extents(PangoLayoutLine* layout_line, \
+PangoRectangle* ink_rect, PangoRectangle* logical_rect)"
+  s7_pointer _p;
+  s7_pointer layout_line, ink_rect, logical_rect;
+  _p = args;
+  layout_line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout_line, PangoLayoutLine__sym)) s7_wrong_type_arg_error(sc, "pango_layout_line_get_pixel_extents", 1, layout_line, "PangoLayoutLine*");
+  ink_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ink_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_line_get_pixel_extents", 2, ink_rect, "PangoRectangle*");
+  logical_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(logical_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_line_get_pixel_extents", 3, logical_rect, "PangoRectangle*");
+  pango_layout_line_get_pixel_extents(s7_c_pointer(layout_line), s7_c_pointer(ink_rect), s7_c_pointer(logical_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_iter "PangoLayoutIter* pango_layout_get_iter(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_iter", 1, layout, "PangoLayout*");
+  return(s7_make_type_with_c_pointer(sc, PangoLayoutIter__sym, pango_layout_get_iter(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_layout_iter_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_free "void pango_layout_iter_free(PangoLayoutIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_free", 1, iter, "PangoLayoutIter*");
+  pango_layout_iter_free(s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_iter_get_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_get_index "int pango_layout_iter_get_index(PangoLayoutIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_index", 1, iter, "PangoLayoutIter*");
+  return(s7_make_integer(sc, pango_layout_iter_get_index(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_pango_layout_iter_get_run(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_get_run "PangoLayoutRun* pango_layout_iter_get_run(PangoLayoutIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_run", 1, iter, "PangoLayoutIter*");
+  return(s7_make_type_with_c_pointer(sc, PangoLayoutRun__sym, pango_layout_iter_get_run(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_pango_layout_iter_get_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_get_line "PangoLayoutLine* pango_layout_iter_get_line(PangoLayoutIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_line", 1, iter, "PangoLayoutIter*");
+  return(s7_make_type_with_c_pointer(sc, PangoLayoutLine__sym, pango_layout_iter_get_line(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_pango_layout_iter_at_last_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_at_last_line "gboolean pango_layout_iter_at_last_line(PangoLayoutIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_at_last_line", 1, iter, "PangoLayoutIter*");
+  return(s7_make_boolean(sc, pango_layout_iter_at_last_line(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_pango_layout_iter_next_char(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_next_char "gboolean pango_layout_iter_next_char(PangoLayoutIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_next_char", 1, iter, "PangoLayoutIter*");
+  return(s7_make_boolean(sc, pango_layout_iter_next_char(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_pango_layout_iter_next_cluster(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_next_cluster "gboolean pango_layout_iter_next_cluster(PangoLayoutIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_next_cluster", 1, iter, "PangoLayoutIter*");
+  return(s7_make_boolean(sc, pango_layout_iter_next_cluster(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_pango_layout_iter_next_run(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_next_run "gboolean pango_layout_iter_next_run(PangoLayoutIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_next_run", 1, iter, "PangoLayoutIter*");
+  return(s7_make_boolean(sc, pango_layout_iter_next_run(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_pango_layout_iter_next_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_next_line "gboolean pango_layout_iter_next_line(PangoLayoutIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_next_line", 1, iter, "PangoLayoutIter*");
+  return(s7_make_boolean(sc, pango_layout_iter_next_line(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_pango_layout_iter_get_char_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_get_char_extents "void pango_layout_iter_get_char_extents(PangoLayoutIter* iter, \
+PangoRectangle* logical_rect)"
+  s7_pointer _p;
+  s7_pointer iter, logical_rect;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_char_extents", 1, iter, "PangoLayoutIter*");
+  logical_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(logical_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_char_extents", 2, logical_rect, "PangoRectangle*");
+  pango_layout_iter_get_char_extents(s7_c_pointer(iter), s7_c_pointer(logical_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_iter_get_cluster_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_get_cluster_extents "void pango_layout_iter_get_cluster_extents(PangoLayoutIter* iter, \
+PangoRectangle* ink_rect, PangoRectangle* logical_rect)"
+  s7_pointer _p;
+  s7_pointer iter, ink_rect, logical_rect;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_cluster_extents", 1, iter, "PangoLayoutIter*");
+  ink_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ink_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_cluster_extents", 2, ink_rect, "PangoRectangle*");
+  logical_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(logical_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_cluster_extents", 3, logical_rect, "PangoRectangle*");
+  pango_layout_iter_get_cluster_extents(s7_c_pointer(iter), s7_c_pointer(ink_rect), s7_c_pointer(logical_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_iter_get_run_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_get_run_extents "void pango_layout_iter_get_run_extents(PangoLayoutIter* iter, \
+PangoRectangle* ink_rect, PangoRectangle* logical_rect)"
+  s7_pointer _p;
+  s7_pointer iter, ink_rect, logical_rect;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_run_extents", 1, iter, "PangoLayoutIter*");
+  ink_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ink_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_run_extents", 2, ink_rect, "PangoRectangle*");
+  logical_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(logical_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_run_extents", 3, logical_rect, "PangoRectangle*");
+  pango_layout_iter_get_run_extents(s7_c_pointer(iter), s7_c_pointer(ink_rect), s7_c_pointer(logical_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_iter_get_line_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_get_line_extents "void pango_layout_iter_get_line_extents(PangoLayoutIter* iter, \
+PangoRectangle* ink_rect, PangoRectangle* logical_rect)"
+  s7_pointer _p;
+  s7_pointer iter, ink_rect, logical_rect;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_line_extents", 1, iter, "PangoLayoutIter*");
+  ink_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ink_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_line_extents", 2, ink_rect, "PangoRectangle*");
+  logical_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(logical_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_line_extents", 3, logical_rect, "PangoRectangle*");
+  pango_layout_iter_get_line_extents(s7_c_pointer(iter), s7_c_pointer(ink_rect), s7_c_pointer(logical_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_iter_get_line_yrange(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_get_line_yrange "void pango_layout_iter_get_line_yrange(PangoLayoutIter* iter, \
+int* [y0], int* [y1])"
+  s7_pointer _p;
+  s7_pointer iter;
+  int ref_y0;
+  int ref_y1;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_line_yrange", 1, iter, "PangoLayoutIter*");
+  pango_layout_iter_get_line_yrange(s7_c_pointer(iter), &ref_y0, &ref_y1);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_y0), s7_make_integer(sc, ref_y1)));
+}
+
+static s7_pointer lg_pango_layout_iter_get_layout_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_get_layout_extents "void pango_layout_iter_get_layout_extents(PangoLayoutIter* iter, \
+PangoRectangle* ink_rect, PangoRectangle* logical_rect)"
+  s7_pointer _p;
+  s7_pointer iter, ink_rect, logical_rect;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_layout_extents", 1, iter, "PangoLayoutIter*");
+  ink_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ink_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_layout_extents", 2, ink_rect, "PangoRectangle*");
+  logical_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(logical_rect, PangoRectangle__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_layout_extents", 3, logical_rect, "PangoRectangle*");
+  pango_layout_iter_get_layout_extents(s7_c_pointer(iter), s7_c_pointer(ink_rect), s7_c_pointer(logical_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_iter_get_baseline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_iter_get_baseline "int pango_layout_iter_get_baseline(PangoLayoutIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, PangoLayoutIter__sym)) s7_wrong_type_arg_error(sc, "pango_layout_iter_get_baseline", 1, iter, "PangoLayoutIter*");
+  return(s7_make_integer(sc, pango_layout_iter_get_baseline(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_pango_language_from_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_language_from_string "PangoLanguage* pango_language_from_string(char* language)"
+  s7_pointer language;
+  language = s7_car(args);
+  if (!s7_is_string(language)) s7_wrong_type_arg_error(sc, "pango_language_from_string", 1, language, "char*");
+  return(s7_make_type_with_c_pointer(sc, PangoLanguage__sym, pango_language_from_string((char*)s7_string(language))));
+}
+
+static s7_pointer lg_pango_language_matches(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_language_matches "gboolean pango_language_matches(PangoLanguage* language, char* range_list)"
+  s7_pointer _p;
+  s7_pointer language, range_list;
+  _p = args;
+  language = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(language, PangoLanguage__sym)) s7_wrong_type_arg_error(sc, "pango_language_matches", 1, language, "PangoLanguage*");
+  range_list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(range_list)) s7_wrong_type_arg_error(sc, "pango_language_matches", 2, range_list, "char*");
+  return(s7_make_boolean(sc, pango_language_matches(s7_c_pointer(language), (char*)s7_string(range_list))));
+}
+
+static s7_pointer lg_G_OBJECT_TYPE(s7_scheme *sc, s7_pointer args)
+{
+  #define H_G_OBJECT_TYPE "GType G_OBJECT_TYPE(GObject* object)"
+  s7_pointer object;
+  object = s7_car(args);
+  if (!s7_is_c_pointer_of_type(object, GObject__sym)) s7_wrong_type_arg_error(sc, "G_OBJECT_TYPE", 1, object, "GObject*");
+  return(s7_make_integer(sc, G_OBJECT_TYPE(s7_c_pointer(object))));
+}
+
+static s7_pointer lg_gtk_tree_model_get_string_from_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_get_string_from_iter "gchar* gtk_tree_model_get_string_from_iter(GtkTreeModel* tree_model, \
+GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_model, iter;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_string_from_iter", 1, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_get_string_from_iter", 2, iter, "GtkTreeIter*");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_tree_model_get_string_from_iter(s7_c_pointer(tree_model), s7_c_pointer(iter));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_tree_model_sort_iter_is_valid(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_sort_iter_is_valid "gboolean gtk_tree_model_sort_iter_is_valid(GtkTreeModelSort* tree_model_sort, \
+GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_model_sort, iter;
+  _p = args;
+  tree_model_sort = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model_sort, GtkTreeModelSort__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_iter_is_valid", 1, tree_model_sort, "GtkTreeModelSort*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_sort_iter_is_valid", 2, iter, "GtkTreeIter*");
+  return(s7_make_boolean(sc, gtk_tree_model_sort_iter_is_valid(s7_c_pointer(tree_model_sort), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_tree_view_expand_to_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_expand_to_path "void gtk_tree_view_expand_to_path(GtkTreeView* tree_view, GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer tree_view, path;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_expand_to_path", 1, tree_view, "GtkTreeView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_expand_to_path", 2, path, "GtkTreePath*");
+  gtk_tree_view_expand_to_path(s7_c_pointer(tree_view), s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_selection_get_selected_rows(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_get_selected_rows "GList* gtk_tree_selection_get_selected_rows(GtkTreeSelection* selection, \
+GtkTreeModel** model)"
+  s7_pointer _p;
+  s7_pointer selection, model;
+  _p = args;
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_get_selected_rows", 1, selection, "GtkTreeSelection*");
+  model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(model, GtkTreeModel___sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_get_selected_rows", 2, model, "GtkTreeModel**");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_tree_selection_get_selected_rows(s7_c_pointer(selection), s7_c_pointer(model))));
+}
+
+static s7_pointer lg_gtk_tree_selection_count_selected_rows(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_selection_count_selected_rows "int gtk_tree_selection_count_selected_rows(GtkTreeSelection* selection)"
+  s7_pointer selection;
+  selection = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection, GtkTreeSelection__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_selection_count_selected_rows", 1, selection, "GtkTreeSelection*");
+  return(s7_make_integer(sc, gtk_tree_selection_count_selected_rows(s7_c_pointer(selection))));
+}
+
+static s7_pointer lg_gtk_menu_shell_select_first(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_shell_select_first "void gtk_menu_shell_select_first(GtkMenuShell* menu_shell, gboolean search_sensitive)"
+  s7_pointer _p;
+  s7_pointer menu_shell, search_sensitive;
+  _p = args;
+  menu_shell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_shell, GtkMenuShell__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_select_first", 1, menu_shell, "GtkMenuShell*");
+  search_sensitive = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(search_sensitive)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_select_first", 2, search_sensitive, "gboolean");
+  gtk_menu_shell_select_first(s7_c_pointer(menu_shell), lg_boolean(search_sensitive));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_get_n_pages(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_n_pages "int gtk_notebook_get_n_pages(GtkNotebook* notebook)"
+  s7_pointer notebook;
+  notebook = s7_car(args);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_n_pages", 1, notebook, "GtkNotebook*");
+  return(s7_make_integer(sc, gtk_notebook_get_n_pages(s7_c_pointer(notebook))));
+}
+
+static s7_pointer lg_gtk_list_store_reorder(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_reorder "void gtk_list_store_reorder(GtkListStore* store, int* new_order)"
+  s7_pointer _p;
+  s7_pointer store, new_order;
+  _p = args;
+  store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_reorder", 1, store, "GtkListStore*");
+  new_order = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(new_order, int__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_reorder", 2, new_order, "int*");
+  gtk_list_store_reorder(s7_c_pointer(store), s7_c_pointer(new_order));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_store_swap(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_swap "void gtk_list_store_swap(GtkListStore* store, GtkTreeIter* a, GtkTreeIter* b)"
+  s7_pointer _p;
+  s7_pointer store, a, b;
+  _p = args;
+  store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_swap", 1, store, "GtkListStore*");
+  a = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(a, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_swap", 2, a, "GtkTreeIter*");
+  b = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(b, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_swap", 3, b, "GtkTreeIter*");
+  gtk_list_store_swap(s7_c_pointer(store), s7_c_pointer(a), s7_c_pointer(b));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_store_move_after(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_move_after "void gtk_list_store_move_after(GtkListStore* store, GtkTreeIter* iter, \
+GtkTreeIter* position)"
+  s7_pointer _p;
+  s7_pointer store, iter, position;
+  _p = args;
+  store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_move_after", 1, store, "GtkListStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_move_after", 2, iter, "GtkTreeIter*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(position, GtkTreeIter__sym)) && (position != lg_false)) s7_wrong_type_arg_error(sc, "gtk_list_store_move_after", 3, position, "GtkTreeIter*");
+  gtk_list_store_move_after(s7_c_pointer(store), s7_c_pointer(iter), s7_c_pointer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_store_move_before(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_move_before "void gtk_list_store_move_before(GtkListStore* store, GtkTreeIter* iter, \
+GtkTreeIter* position)"
+  s7_pointer _p;
+  s7_pointer store, iter, position;
+  _p = args;
+  store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_move_before", 1, store, "GtkListStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_move_before", 2, iter, "GtkTreeIter*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(position, GtkTreeIter__sym)) && (position != lg_false)) s7_wrong_type_arg_error(sc, "gtk_list_store_move_before", 3, position, "GtkTreeIter*");
+  gtk_list_store_move_before(s7_c_pointer(store), s7_c_pointer(iter), s7_c_pointer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_store_reorder(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_reorder "void gtk_tree_store_reorder(GtkTreeStore* tree_store, GtkTreeIter* parent, \
+int* new_order)"
+  s7_pointer _p;
+  s7_pointer tree_store, parent, new_order;
+  _p = args;
+  tree_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_store, GtkTreeStore__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_reorder", 1, tree_store, "GtkTreeStore*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(parent, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_reorder", 2, parent, "GtkTreeIter*");
+  new_order = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(new_order, int__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_reorder", 3, new_order, "int*");
+  gtk_tree_store_reorder(s7_c_pointer(tree_store), s7_c_pointer(parent), s7_c_pointer(new_order));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_store_swap(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_store_swap "void gtk_tree_store_swap(GtkTreeStore* tree_store, GtkTreeIter* a, GtkTreeIter* b)"
+  s7_pointer _p;
+  s7_pointer tree_store, a, b;
+  _p = args;
+  tree_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_store, GtkTreeStore__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_swap", 1, tree_store, "GtkTreeStore*");
+  a = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(a, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_swap", 2, a, "GtkTreeIter*");
+  b = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(b, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_store_swap", 3, b, "GtkTreeIter*");
+  gtk_tree_store_swap(s7_c_pointer(tree_store), s7_c_pointer(a), s7_c_pointer(b));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_display_open(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_open "GdkDisplay* gdk_display_open(gchar* display_name)"
+  s7_pointer display_name;
+  display_name = s7_car(args);
+  if (!s7_is_string(display_name)) s7_wrong_type_arg_error(sc, "gdk_display_open", 1, display_name, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GdkDisplay__sym, gdk_display_open(s7_string(display_name))));
+}
+
+static s7_pointer lg_gdk_display_get_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_get_name "gchar* gdk_display_get_name(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_get_name", 1, display, "GdkDisplay*");
+  return(s7_make_string(sc, gdk_display_get_name(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_display_get_default_screen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_get_default_screen "GdkScreen* gdk_display_get_default_screen(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_get_default_screen", 1, display, "GdkDisplay*");
+  return(s7_make_type_with_c_pointer(sc, GdkScreen__sym, gdk_display_get_default_screen(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_display_beep(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_beep "void gdk_display_beep(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_beep", 1, display, "GdkDisplay*");
+  gdk_display_beep(s7_c_pointer(display));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_display_sync(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_sync "void gdk_display_sync(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_sync", 1, display, "GdkDisplay*");
+  gdk_display_sync(s7_c_pointer(display));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_display_close(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_close "void gdk_display_close(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_close", 1, display, "GdkDisplay*");
+  gdk_display_close(s7_c_pointer(display));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_display_get_event(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_get_event "GdkEvent* gdk_display_get_event(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_get_event", 1, display, "GdkDisplay*");
+  return(s7_make_type_with_c_pointer(sc, GdkEvent__sym, gdk_display_get_event(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_display_peek_event(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_peek_event "GdkEvent* gdk_display_peek_event(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_peek_event", 1, display, "GdkDisplay*");
+  return(s7_make_type_with_c_pointer(sc, GdkEvent__sym, gdk_display_peek_event(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_display_put_event(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_put_event "void gdk_display_put_event(GdkDisplay* display, GdkEvent* event)"
+  s7_pointer _p;
+  s7_pointer display, event;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_put_event", 1, display, "GdkDisplay*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_display_put_event", 2, event, "GdkEvent*");
+  gdk_display_put_event(s7_c_pointer(display), s7_c_pointer(event));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_display_set_double_click_time(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_set_double_click_time "void gdk_display_set_double_click_time(GdkDisplay* display, \
+guint msec)"
+  s7_pointer _p;
+  s7_pointer display, msec;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_set_double_click_time", 1, display, "GdkDisplay*");
+  msec = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(msec)) s7_wrong_type_arg_error(sc, "gdk_display_set_double_click_time", 2, msec, "guint");
+  gdk_display_set_double_click_time(s7_c_pointer(display), s7_integer(msec));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_display_get_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_get_default "GdkDisplay* gdk_display_get_default( void)"
+  return(s7_make_type_with_c_pointer(sc, GdkDisplay__sym, gdk_display_get_default()));
+}
+
+static s7_pointer lg_gdk_screen_get_root_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_screen_get_root_window "GdkWindow* gdk_screen_get_root_window(GdkScreen* screen)"
+  s7_pointer screen;
+  screen = s7_car(args);
+  if (!s7_is_c_pointer_of_type(screen, GdkScreen__sym)) s7_wrong_type_arg_error(sc, "gdk_screen_get_root_window", 1, screen, "GdkScreen*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_screen_get_root_window(s7_c_pointer(screen))));
+}
+
+static s7_pointer lg_gdk_screen_get_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_screen_get_display "GdkDisplay* gdk_screen_get_display(GdkScreen* screen)"
+  s7_pointer screen;
+  screen = s7_car(args);
+  if (!s7_is_c_pointer_of_type(screen, GdkScreen__sym)) s7_wrong_type_arg_error(sc, "gdk_screen_get_display", 1, screen, "GdkScreen*");
+  return(s7_make_type_with_c_pointer(sc, GdkDisplay__sym, gdk_screen_get_display(s7_c_pointer(screen))));
+}
+
+static s7_pointer lg_gdk_screen_get_toplevel_windows(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_screen_get_toplevel_windows "GList* gdk_screen_get_toplevel_windows(GdkScreen* screen)"
+  s7_pointer screen;
+  screen = s7_car(args);
+  if (!s7_is_c_pointer_of_type(screen, GdkScreen__sym)) s7_wrong_type_arg_error(sc, "gdk_screen_get_toplevel_windows", 1, screen, "GdkScreen*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gdk_screen_get_toplevel_windows(s7_c_pointer(screen))));
+}
+
+static s7_pointer lg_gdk_screen_get_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_screen_get_default "GdkScreen* gdk_screen_get_default( void)"
+  return(s7_make_type_with_c_pointer(sc, GdkScreen__sym, gdk_screen_get_default()));
+}
+
+static s7_pointer lg_gtk_clipboard_get_for_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_get_for_display "GtkClipboard* gtk_clipboard_get_for_display(GdkDisplay* display, \
+GdkAtom selection)"
+  s7_pointer _p;
+  s7_pointer display, selection;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_get_for_display", 1, display, "GdkDisplay*");
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_get_for_display", 2, selection, "GdkAtom");
+  return(s7_make_type_with_c_pointer(sc, GtkClipboard__sym, gtk_clipboard_get_for_display(s7_c_pointer(display), s7_c_pointer(selection))));
+}
+
+static s7_pointer lg_gtk_clipboard_get_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_get_display "GdkDisplay* gtk_clipboard_get_display(GtkClipboard* clipboard)"
+  s7_pointer clipboard;
+  clipboard = s7_car(args);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_get_display", 1, clipboard, "GtkClipboard*");
+  return(s7_make_type_with_c_pointer(sc, GdkDisplay__sym, gtk_clipboard_get_display(s7_c_pointer(clipboard))));
+}
+
+static s7_pointer lg_gtk_widget_get_screen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_screen "GdkScreen* gtk_widget_get_screen(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_screen", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GdkScreen__sym, gtk_widget_get_screen(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_has_screen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_has_screen "gboolean gtk_widget_has_screen(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_has_screen", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_has_screen(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_display "GdkDisplay* gtk_widget_get_display(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_display", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GdkDisplay__sym, gtk_widget_get_display(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_clipboard(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_clipboard "GtkClipboard* gtk_widget_get_clipboard(GtkWidget* widget, GdkAtom selection)"
+  s7_pointer _p;
+  s7_pointer widget, selection;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_clipboard", 1, widget, "GtkWidget*");
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_clipboard", 2, selection, "GdkAtom");
+  return(s7_make_type_with_c_pointer(sc, GtkClipboard__sym, gtk_widget_get_clipboard(s7_c_pointer(widget), s7_c_pointer(selection))));
+}
+
+static s7_pointer lg_g_list_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_list_free "void g_list_free(GList* list)"
+  s7_pointer list;
+  list = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list, GList__sym)) s7_wrong_type_arg_error(sc, "g_list_free", 1, list, "GList*");
+  g_list_free(s7_c_pointer(list));
+  return(lg_false);
+}
+
+static s7_pointer lg_g_list_reverse(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_list_reverse "GList* g_list_reverse(GList* list)"
+  s7_pointer list;
+  list = s7_car(args);
+  if ((!s7_is_c_pointer_of_type(list, GList__sym)) && (list != lg_false)) s7_wrong_type_arg_error(sc, "g_list_reverse", 1, list, "GList*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, g_list_reverse(s7_c_pointer(list))));
+}
+
+static s7_pointer lg_g_list_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_list_copy "GList* g_list_copy(GList* list)"
+  s7_pointer list;
+  list = s7_car(args);
+  if ((!s7_is_c_pointer_of_type(list, GList__sym)) && (list != lg_false)) s7_wrong_type_arg_error(sc, "g_list_copy", 1, list, "GList*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, g_list_copy(s7_c_pointer(list))));
+}
+
+static s7_pointer lg_g_list_last(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_list_last "GList* g_list_last(GList* list)"
+  s7_pointer list;
+  list = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list, GList__sym)) s7_wrong_type_arg_error(sc, "g_list_last", 1, list, "GList*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, g_list_last(s7_c_pointer(list))));
+}
+
+static s7_pointer lg_g_list_first(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_list_first "GList* g_list_first(GList* list)"
+  s7_pointer list;
+  list = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list, GList__sym)) s7_wrong_type_arg_error(sc, "g_list_first", 1, list, "GList*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, g_list_first(s7_c_pointer(list))));
+}
+
+static s7_pointer lg_g_list_length(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_list_length "guint g_list_length(GList* list)"
+  s7_pointer list;
+  list = s7_car(args);
+  if ((!s7_is_c_pointer_of_type(list, GList__sym)) && (list != lg_false)) s7_wrong_type_arg_error(sc, "g_list_length", 1, list, "GList*");
+  return(s7_make_integer(sc, g_list_length(s7_c_pointer(list))));
+}
+
+static s7_pointer lg_g_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_free "void g_free(gpointer mem)"
+  s7_pointer mem;
+  mem = s7_car(args);
+  if (!s7_is_c_pointer_of_type(mem, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_free", 1, mem, "gpointer");
+  g_free(s7_c_pointer(mem));
+  return(lg_false);
+}
+
+static s7_pointer lg_g_list_remove_link(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_list_remove_link "GList* g_list_remove_link(GList* list, GList* llink)"
+  s7_pointer _p;
+  s7_pointer list, llink;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, GList__sym)) s7_wrong_type_arg_error(sc, "g_list_remove_link", 1, list, "GList*");
+  llink = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(llink, GList__sym)) s7_wrong_type_arg_error(sc, "g_list_remove_link", 2, llink, "GList*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, g_list_remove_link(s7_c_pointer(list), s7_c_pointer(llink))));
+}
+
+static s7_pointer lg_g_object_get_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_object_get_data "gpointer g_object_get_data(GObject* object, gchar* key)"
+  s7_pointer _p;
+  s7_pointer object, key;
+  _p = args;
+  object = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(object, GObject__sym)) s7_wrong_type_arg_error(sc, "g_object_get_data", 1, object, "GObject*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "g_object_get_data", 2, key, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, gpointer_sym, g_object_get_data(s7_c_pointer(object), (const gchar*)s7_string(key))));
+}
+
+static s7_pointer lg_g_object_set_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_object_set_data "void g_object_set_data(GObject* object, gchar* key, gpointer data)"
+  s7_pointer _p;
+  s7_pointer object, key, data;
+  _p = args;
+  object = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(object, GObject__sym)) s7_wrong_type_arg_error(sc, "g_object_set_data", 1, object, "GObject*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "g_object_set_data", 2, key, "gchar*");
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_object_set_data", 3, data, "gpointer");
+  g_object_set_data(s7_c_pointer(object), (const gchar*)s7_string(key), s7_c_pointer(data));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_cursor_new_from_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cursor_new_from_pixbuf "GdkCursor* gdk_cursor_new_from_pixbuf(GdkDisplay* display, GdkPixbuf* pixbuf, \
+gint x, gint y)"
+  s7_pointer _p;
+  s7_pointer display, pixbuf, x, y;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_cursor_new_from_pixbuf", 1, display, "GdkDisplay*");
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_cursor_new_from_pixbuf", 2, pixbuf, "GdkPixbuf*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gdk_cursor_new_from_pixbuf", 3, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gdk_cursor_new_from_pixbuf", 4, y, "gint");
+  return(s7_make_type_with_c_pointer(sc, GdkCursor__sym, gdk_cursor_new_from_pixbuf(s7_c_pointer(display), s7_c_pointer(pixbuf), s7_integer(x), s7_integer(y))));
+}
+
+static s7_pointer lg_gdk_display_flush(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_flush "void gdk_display_flush(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_flush", 1, display, "GdkDisplay*");
+  gdk_display_flush(s7_c_pointer(display));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_display_supports_cursor_alpha(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_supports_cursor_alpha "gboolean gdk_display_supports_cursor_alpha(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_supports_cursor_alpha", 1, display, "GdkDisplay*");
+  return(s7_make_boolean(sc, gdk_display_supports_cursor_alpha(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_display_supports_cursor_color(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_supports_cursor_color "gboolean gdk_display_supports_cursor_color(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_supports_cursor_color", 1, display, "GdkDisplay*");
+  return(s7_make_boolean(sc, gdk_display_supports_cursor_color(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_display_get_default_cursor_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_get_default_cursor_size "guint gdk_display_get_default_cursor_size(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_get_default_cursor_size", 1, display, "GdkDisplay*");
+  return(s7_make_integer(sc, gdk_display_get_default_cursor_size(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_display_get_maximal_cursor_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_get_maximal_cursor_size "void gdk_display_get_maximal_cursor_size(GdkDisplay* display, \
+guint* [width], guint* [height])"
+  s7_pointer _p;
+  s7_pointer display;
+  guint ref_width;
+  guint ref_height;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_get_maximal_cursor_size", 1, display, "GdkDisplay*");
+  gdk_display_get_maximal_cursor_size(s7_c_pointer(display), &ref_width, &ref_height);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_width), s7_make_integer(sc, ref_height)));
+}
+
+static s7_pointer lg_gdk_window_set_keep_above(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_keep_above "void gdk_window_set_keep_above(GdkWindow* window, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_keep_above", 1, window, "GdkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gdk_window_set_keep_above", 2, setting, "gboolean");
+  gdk_window_set_keep_above(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_keep_below(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_keep_below "void gdk_window_set_keep_below(GdkWindow* window, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_keep_below", 1, window, "GdkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gdk_window_set_keep_below", 2, setting, "gboolean");
+  gdk_window_set_keep_below(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_button_box_get_child_secondary(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_box_get_child_secondary "gboolean gtk_button_box_get_child_secondary(GtkButtonBox* widget, \
+GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer widget, child;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkButtonBox__sym)) s7_wrong_type_arg_error(sc, "gtk_button_box_get_child_secondary", 1, widget, "GtkButtonBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_button_box_get_child_secondary", 2, child, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_button_box_get_child_secondary(s7_c_pointer(widget), s7_c_pointer(child))));
+}
+
+static s7_pointer lg_gtk_calendar_set_display_options(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_set_display_options "void gtk_calendar_set_display_options(GtkCalendar* calendar, \
+GtkCalendarDisplayOptions flags)"
+  s7_pointer _p;
+  s7_pointer calendar, flags;
+  _p = args;
+  calendar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(calendar, GtkCalendar__sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_set_display_options", 1, calendar, "GtkCalendar*");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_calendar_set_display_options", 2, flags, "GtkCalendarDisplayOptions");
+  gtk_calendar_set_display_options(s7_c_pointer(calendar), s7_integer(flags));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_calendar_get_display_options(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_get_display_options "GtkCalendarDisplayOptions gtk_calendar_get_display_options(GtkCalendar* calendar)"
+  s7_pointer calendar;
+  calendar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(calendar, GtkCalendar__sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_get_display_options", 1, calendar, "GtkCalendar*");
+  return(s7_make_integer(sc, gtk_calendar_get_display_options(s7_c_pointer(calendar))));
+}
+
+static s7_pointer lg_gtk_check_menu_item_set_draw_as_radio(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_menu_item_set_draw_as_radio "void gtk_check_menu_item_set_draw_as_radio(GtkCheckMenuItem* check_menu_item, \
+gboolean draw_as_radio)"
+  s7_pointer _p;
+  s7_pointer check_menu_item, draw_as_radio;
+  _p = args;
+  check_menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(check_menu_item, GtkCheckMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_check_menu_item_set_draw_as_radio", 1, check_menu_item, "GtkCheckMenuItem*");
+  draw_as_radio = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(draw_as_radio)) s7_wrong_type_arg_error(sc, "gtk_check_menu_item_set_draw_as_radio", 2, draw_as_radio, "gboolean");
+  gtk_check_menu_item_set_draw_as_radio(s7_c_pointer(check_menu_item), lg_boolean(draw_as_radio));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_check_menu_item_get_draw_as_radio(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_menu_item_get_draw_as_radio "gboolean gtk_check_menu_item_get_draw_as_radio(GtkCheckMenuItem* check_menu_item)"
+  s7_pointer check_menu_item;
+  check_menu_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(check_menu_item, GtkCheckMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_check_menu_item_get_draw_as_radio", 1, check_menu_item, "GtkCheckMenuItem*");
+  return(s7_make_boolean(sc, gtk_check_menu_item_get_draw_as_radio(s7_c_pointer(check_menu_item))));
+}
+
+static s7_pointer lg_gtk_entry_set_completion(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_completion "void gtk_entry_set_completion(GtkEntry* entry, GtkEntryCompletion* completion)"
+  s7_pointer _p;
+  s7_pointer entry, completion;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_completion", 1, entry, "GtkEntry*");
+  completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_completion", 2, completion, "GtkEntryCompletion*");
+  gtk_entry_set_completion(s7_c_pointer(entry), s7_c_pointer(completion));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_completion(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_completion "GtkEntryCompletion* gtk_entry_get_completion(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_completion", 1, entry, "GtkEntry*");
+  return(s7_make_type_with_c_pointer(sc, GtkEntryCompletion__sym, gtk_entry_get_completion(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_event_box_get_visible_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_event_box_get_visible_window "gboolean gtk_event_box_get_visible_window(GtkEventBox* event_box)"
+  s7_pointer event_box;
+  event_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event_box, GtkEventBox__sym)) s7_wrong_type_arg_error(sc, "gtk_event_box_get_visible_window", 1, event_box, "GtkEventBox*");
+  return(s7_make_boolean(sc, gtk_event_box_get_visible_window(s7_c_pointer(event_box))));
+}
+
+static s7_pointer lg_gtk_event_box_set_visible_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_event_box_set_visible_window "void gtk_event_box_set_visible_window(GtkEventBox* event_box, \
+gboolean visible_window)"
+  s7_pointer _p;
+  s7_pointer event_box, visible_window;
+  _p = args;
+  event_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event_box, GtkEventBox__sym)) s7_wrong_type_arg_error(sc, "gtk_event_box_set_visible_window", 1, event_box, "GtkEventBox*");
+  visible_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(visible_window)) s7_wrong_type_arg_error(sc, "gtk_event_box_set_visible_window", 2, visible_window, "gboolean");
+  gtk_event_box_set_visible_window(s7_c_pointer(event_box), lg_boolean(visible_window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_event_box_get_above_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_event_box_get_above_child "gboolean gtk_event_box_get_above_child(GtkEventBox* event_box)"
+  s7_pointer event_box;
+  event_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event_box, GtkEventBox__sym)) s7_wrong_type_arg_error(sc, "gtk_event_box_get_above_child", 1, event_box, "GtkEventBox*");
+  return(s7_make_boolean(sc, gtk_event_box_get_above_child(s7_c_pointer(event_box))));
+}
+
+static s7_pointer lg_gtk_event_box_set_above_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_event_box_set_above_child "void gtk_event_box_set_above_child(GtkEventBox* event_box, \
+gboolean above_child)"
+  s7_pointer _p;
+  s7_pointer event_box, above_child;
+  _p = args;
+  event_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event_box, GtkEventBox__sym)) s7_wrong_type_arg_error(sc, "gtk_event_box_set_above_child", 1, event_box, "GtkEventBox*");
+  above_child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(above_child)) s7_wrong_type_arg_error(sc, "gtk_event_box_set_above_child", 2, above_child, "gboolean");
+  gtk_event_box_set_above_child(s7_c_pointer(event_box), lg_boolean(above_child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_attach(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_attach "void gtk_menu_attach(GtkMenu* menu, GtkWidget* child, guint left_attach, \
+guint right_attach, guint top_attach, guint bottom_attach)"
+  s7_pointer _p;
+  s7_pointer menu, child, left_attach, right_attach, top_attach, bottom_attach;
+  _p = args;
+  menu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_attach", 1, menu, "GtkMenu*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_attach", 2, child, "GtkWidget*");
+  left_attach = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(left_attach)) s7_wrong_type_arg_error(sc, "gtk_menu_attach", 3, left_attach, "guint");
+  right_attach = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(right_attach)) s7_wrong_type_arg_error(sc, "gtk_menu_attach", 4, right_attach, "guint");
+  top_attach = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(top_attach)) s7_wrong_type_arg_error(sc, "gtk_menu_attach", 5, top_attach, "guint");
+  bottom_attach = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(bottom_attach)) s7_wrong_type_arg_error(sc, "gtk_menu_attach", 6, bottom_attach, "guint");
+  gtk_menu_attach(s7_c_pointer(menu), s7_c_pointer(child), s7_integer(left_attach), s7_integer(right_attach), s7_integer(top_attach), s7_integer(bottom_attach));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_select_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_select_range "void gtk_text_buffer_select_range(GtkTextBuffer* buffer, GtkTextIter* ins, \
+GtkTextIter* bound)"
+  s7_pointer _p;
+  s7_pointer buffer, ins, bound;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_select_range", 1, buffer, "GtkTextBuffer*");
+  ins = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ins, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_select_range", 2, ins, "GtkTextIter*");
+  bound = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bound, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_select_range", 3, bound, "GtkTextIter*");
+  gtk_text_buffer_select_range(s7_c_pointer(buffer), s7_c_pointer(ins), s7_c_pointer(bound));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_set_overwrite(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_overwrite "void gtk_text_view_set_overwrite(GtkTextView* text_view, gboolean overwrite)"
+  s7_pointer _p;
+  s7_pointer text_view, overwrite;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_overwrite", 1, text_view, "GtkTextView*");
+  overwrite = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(overwrite)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_overwrite", 2, overwrite, "gboolean");
+  gtk_text_view_set_overwrite(s7_c_pointer(text_view), lg_boolean(overwrite));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_overwrite(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_overwrite "gboolean gtk_text_view_get_overwrite(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_overwrite", 1, text_view, "GtkTextView*");
+  return(s7_make_boolean(sc, gtk_text_view_get_overwrite(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_set_accepts_tab(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_accepts_tab "void gtk_text_view_set_accepts_tab(GtkTextView* text_view, \
+gboolean accepts_tab)"
+  s7_pointer _p;
+  s7_pointer text_view, accepts_tab;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_accepts_tab", 1, text_view, "GtkTextView*");
+  accepts_tab = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(accepts_tab)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_accepts_tab", 2, accepts_tab, "gboolean");
+  gtk_text_view_set_accepts_tab(s7_c_pointer(text_view), lg_boolean(accepts_tab));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_accepts_tab(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_accepts_tab "gboolean gtk_text_view_get_accepts_tab(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_accepts_tab", 1, text_view, "GtkTextView*");
+  return(s7_make_boolean(sc, gtk_text_view_get_accepts_tab(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_toolbar_insert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toolbar_insert "void gtk_toolbar_insert(GtkToolbar* toolbar, GtkToolItem* item, gint pos)"
+  s7_pointer _p;
+  s7_pointer toolbar, item, pos;
+  _p = args;
+  toolbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(toolbar, GtkToolbar__sym)) s7_wrong_type_arg_error(sc, "gtk_toolbar_insert", 1, toolbar, "GtkToolbar*");
+  item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_toolbar_insert", 2, item, "GtkToolItem*");
+  pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pos)) s7_wrong_type_arg_error(sc, "gtk_toolbar_insert", 3, pos, "gint");
+  gtk_toolbar_insert(s7_c_pointer(toolbar), s7_c_pointer(item), s7_integer(pos));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_toolbar_get_item_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toolbar_get_item_index "gint gtk_toolbar_get_item_index(GtkToolbar* toolbar, GtkToolItem* item)"
+  s7_pointer _p;
+  s7_pointer toolbar, item;
+  _p = args;
+  toolbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(toolbar, GtkToolbar__sym)) s7_wrong_type_arg_error(sc, "gtk_toolbar_get_item_index", 1, toolbar, "GtkToolbar*");
+  item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_toolbar_get_item_index", 2, item, "GtkToolItem*");
+  return(s7_make_integer(sc, gtk_toolbar_get_item_index(s7_c_pointer(toolbar), s7_c_pointer(item))));
+}
+
+static s7_pointer lg_gtk_toolbar_get_n_items(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toolbar_get_n_items "gint gtk_toolbar_get_n_items(GtkToolbar* toolbar)"
+  s7_pointer toolbar;
+  toolbar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(toolbar, GtkToolbar__sym)) s7_wrong_type_arg_error(sc, "gtk_toolbar_get_n_items", 1, toolbar, "GtkToolbar*");
+  return(s7_make_integer(sc, gtk_toolbar_get_n_items(s7_c_pointer(toolbar))));
+}
+
+static s7_pointer lg_gtk_toolbar_get_nth_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toolbar_get_nth_item "GtkToolItem* gtk_toolbar_get_nth_item(GtkToolbar* toolbar, gint n)"
+  s7_pointer _p;
+  s7_pointer toolbar, n;
+  _p = args;
+  toolbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(toolbar, GtkToolbar__sym)) s7_wrong_type_arg_error(sc, "gtk_toolbar_get_nth_item", 1, toolbar, "GtkToolbar*");
+  n = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n)) s7_wrong_type_arg_error(sc, "gtk_toolbar_get_nth_item", 2, n, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkToolItem__sym, gtk_toolbar_get_nth_item(s7_c_pointer(toolbar), s7_integer(n))));
+}
+
+static s7_pointer lg_gtk_toolbar_set_show_arrow(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toolbar_set_show_arrow "void gtk_toolbar_set_show_arrow(GtkToolbar* toolbar, gboolean show_arrow)"
+  s7_pointer _p;
+  s7_pointer toolbar, show_arrow;
+  _p = args;
+  toolbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(toolbar, GtkToolbar__sym)) s7_wrong_type_arg_error(sc, "gtk_toolbar_set_show_arrow", 1, toolbar, "GtkToolbar*");
+  show_arrow = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_arrow)) s7_wrong_type_arg_error(sc, "gtk_toolbar_set_show_arrow", 2, show_arrow, "gboolean");
+  gtk_toolbar_set_show_arrow(s7_c_pointer(toolbar), lg_boolean(show_arrow));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_toolbar_get_show_arrow(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toolbar_get_show_arrow "gboolean gtk_toolbar_get_show_arrow(GtkToolbar* toolbar)"
+  s7_pointer toolbar;
+  toolbar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(toolbar, GtkToolbar__sym)) s7_wrong_type_arg_error(sc, "gtk_toolbar_get_show_arrow", 1, toolbar, "GtkToolbar*");
+  return(s7_make_boolean(sc, gtk_toolbar_get_show_arrow(s7_c_pointer(toolbar))));
+}
+
+static s7_pointer lg_gtk_toolbar_get_drop_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toolbar_get_drop_index "gint gtk_toolbar_get_drop_index(GtkToolbar* toolbar, gint x, \
+gint y)"
+  s7_pointer _p;
+  s7_pointer toolbar, x, y;
+  _p = args;
+  toolbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(toolbar, GtkToolbar__sym)) s7_wrong_type_arg_error(sc, "gtk_toolbar_get_drop_index", 1, toolbar, "GtkToolbar*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_toolbar_get_drop_index", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_toolbar_get_drop_index", 3, y, "gint");
+  return(s7_make_integer(sc, gtk_toolbar_get_drop_index(s7_c_pointer(toolbar), s7_integer(x), s7_integer(y))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_set_expand(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_set_expand "void gtk_tree_view_column_set_expand(GtkTreeViewColumn* tree_column, \
+gboolean expand)"
+  s7_pointer _p;
+  s7_pointer tree_column, expand;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_expand", 1, tree_column, "GtkTreeViewColumn*");
+  expand = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(expand)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_set_expand", 2, expand, "gboolean");
+  gtk_tree_view_column_set_expand(s7_c_pointer(tree_column), lg_boolean(expand));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_expand(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_expand "gboolean gtk_tree_view_column_get_expand(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_expand", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_boolean(sc, gtk_tree_view_column_get_expand(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_widget_queue_resize_no_redraw(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_queue_resize_no_redraw "void gtk_widget_queue_resize_no_redraw(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_queue_resize_no_redraw", 1, widget, "GtkWidget*");
+  gtk_widget_queue_resize_no_redraw(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_set_default_icon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_default_icon "void gtk_window_set_default_icon(GdkPixbuf* icon)"
+  s7_pointer icon;
+  icon = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_default_icon", 1, icon, "GdkPixbuf*");
+  gtk_window_set_default_icon(s7_c_pointer(icon));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_set_keep_above(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_keep_above "void gtk_window_set_keep_above(GtkWindow* window, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_keep_above", 1, window, "GtkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_window_set_keep_above", 2, setting, "gboolean");
+  gtk_window_set_keep_above(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_set_keep_below(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_keep_below "void gtk_window_set_keep_below(GtkWindow* window, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_keep_below", 1, window, "GtkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_window_set_keep_below", 2, setting, "gboolean");
+  gtk_window_set_keep_below(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_dialog_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_dialog_new "GtkWidget* gtk_file_chooser_dialog_new(gchar* title, GtkWindow* parent, \
+GtkFileChooserAction action, etc buttons)"
+  s7_pointer _p;
+  s7_pointer title, parent, action, buttons;
+  _p = args;
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_dialog_new", 1, title, "gchar*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(parent, GtkWindow__sym)) && (parent != lg_false)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_dialog_new", 2, parent, "GtkWindow*");
+  action = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(action)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_dialog_new", 3, action, "GtkFileChooserAction");
+  buttons = s7_car(_p); _p = s7_cdr(_p);
+  if ((!lg_is_list(buttons)) && (buttons != lg_false)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_dialog_new", 4, buttons, "etc");
+  {
+    int etc_len = 0;
+    GtkWidget* result = NULL;
+    gchar* p_arg0;
+    GtkWindow* p_arg1;
+    GtkFileChooserAction p_arg2;
+    if (s7_is_list(sc, buttons)) etc_len = s7_list_length(sc, buttons);
+    if (etc_len > 10) s7_out_of_range_error(sc, "gtk_file_chooser_dialog_new", 3, buttons, "... list too long (max len: 10)");
+    if ((etc_len % 2) != 0) s7_out_of_range_error(sc, "gtk_file_chooser_dialog_new", 3, buttons, "... list len must be multiple of 2");
+    p_arg0 = (gchar*)s7_string(title);
+    p_arg1 = (GtkWindow*)s7_c_pointer(parent);
+    p_arg2 = (GtkFileChooserAction)s7_integer(action);
+    switch (etc_len)
+      {
+        case 0: result = gtk_file_chooser_dialog_new(p_arg0, p_arg1, p_arg2, NULL, NULL); break;
+        case 2: result = gtk_file_chooser_dialog_new(p_arg0, p_arg1, p_arg2, s7_string(s7_list_ref(sc, buttons, 0)), s7_integer(s7_list_ref(sc, buttons, 1)), NULL); break;
+        case 4: result = gtk_file_chooser_dialog_new(p_arg0, p_arg1, p_arg2, s7_string(s7_list_ref(sc, buttons, 0)), s7_integer(s7_list_ref(sc, buttons, 1)), s7_string(s7_list_ref(sc, buttons, 2)), s7_integer(s7_list_ref(sc, buttons, 3)), NULL); break;
+        case 6: result = gtk_file_chooser_dialog_new(p_arg0, p_arg1, p_arg2, s7_string(s7_list_ref(sc, buttons, 0)), s7_integer(s7_list_ref(sc, buttons, 1)), s7_string(s7_list_ref(sc, buttons, 2)), s7_integer(s7_list_ref(sc, buttons, 3)), s7_string(s7_list_ref(sc, buttons, 4)), s7_integer(s7_list_ref(sc, buttons, 5)), NULL); break;
+        case 8: result = gtk_file_chooser_dialog_new(p_arg0, p_arg1, p_arg2, s7_string(s7_list_ref(sc, buttons, 0)), s7_integer(s7_list_ref(sc, buttons, 1)), s7_string(s7_list_ref(sc, buttons, 2)), s7_integer(s7_list_ref(sc, buttons, 3)), s7_string(s7_list_ref(sc, buttons, 4)), s7_integer(s7_list_ref(sc, buttons, 5)), s7_string(s7_list_ref(sc, buttons, 6)), s7_integer(s7_list_ref(sc, buttons, 7)), NULL); break;
+        case 10: result = gtk_file_chooser_dialog_new(p_arg0, p_arg1, p_arg2, s7_string(s7_list_ref(sc, buttons, 0)), s7_integer(s7_list_ref(sc, buttons, 1)), s7_string(s7_list_ref(sc, buttons, 2)), s7_integer(s7_list_ref(sc, buttons, 3)), s7_string(s7_list_ref(sc, buttons, 4)), s7_integer(s7_list_ref(sc, buttons, 5)), s7_string(s7_list_ref(sc, buttons, 6)), s7_integer(s7_list_ref(sc, buttons, 7)), s7_string(s7_list_ref(sc, buttons, 8)), s7_integer(s7_list_ref(sc, buttons, 9)), NULL); break;
+      }
+    return(s7_make_c_pointer(sc, result));
+  }
+}
+
+static s7_pointer lg_gtk_file_chooser_widget_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_widget_new "GtkWidget* gtk_file_chooser_widget_new(GtkFileChooserAction action)"
+  s7_pointer action;
+  action = s7_car(args);
+  if (!s7_is_integer(action)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_widget_new", 1, action, "GtkFileChooserAction");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_file_chooser_widget_new(s7_integer(action))));
+}
+
+static s7_pointer lg_gtk_tree_model_filter_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_filter_new "GtkTreeModel* gtk_tree_model_filter_new(GtkTreeModel* child_model, \
+GtkTreePath* root)"
+  s7_pointer _p;
+  s7_pointer child_model, root;
+  _p = args;
+  child_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_new", 1, child_model, "GtkTreeModel*");
+  root = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(root, GtkTreePath__sym)) && (root != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_new", 2, root, "GtkTreePath*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeModel__sym, gtk_tree_model_filter_new(s7_c_pointer(child_model), s7_c_pointer(root))));
+}
+
+static s7_pointer lg_gtk_tree_model_filter_set_visible_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_filter_set_visible_column "void gtk_tree_model_filter_set_visible_column(GtkTreeModelFilter* filter, \
+gint column)"
+  s7_pointer _p;
+  s7_pointer filter, column;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkTreeModelFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_set_visible_column", 1, filter, "GtkTreeModelFilter*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(column)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_set_visible_column", 2, column, "gint");
+  gtk_tree_model_filter_set_visible_column(s7_c_pointer(filter), s7_integer(column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_model_filter_get_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_filter_get_model "GtkTreeModel* gtk_tree_model_filter_get_model(GtkTreeModelFilter* filter)"
+  s7_pointer filter;
+  filter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(filter, GtkTreeModelFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_get_model", 1, filter, "GtkTreeModelFilter*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeModel__sym, gtk_tree_model_filter_get_model(s7_c_pointer(filter))));
+}
+
+static s7_pointer lg_gtk_tree_model_filter_convert_iter_to_child_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_filter_convert_iter_to_child_iter "void gtk_tree_model_filter_convert_iter_to_child_iter(GtkTreeModelFilter* filter, \
+GtkTreeIter* child_iter, GtkTreeIter* filter_iter)"
+  s7_pointer _p;
+  s7_pointer filter, child_iter, filter_iter;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkTreeModelFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_convert_iter_to_child_iter", 1, filter, "GtkTreeModelFilter*");
+  child_iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child_iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_convert_iter_to_child_iter", 2, child_iter, "GtkTreeIter*");
+  filter_iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter_iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_convert_iter_to_child_iter", 3, filter_iter, "GtkTreeIter*");
+  gtk_tree_model_filter_convert_iter_to_child_iter(s7_c_pointer(filter), s7_c_pointer(child_iter), s7_c_pointer(filter_iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_model_filter_convert_child_path_to_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_filter_convert_child_path_to_path "GtkTreePath* gtk_tree_model_filter_convert_child_path_to_path(GtkTreeModelFilter* filter, \
+GtkTreePath* child_path)"
+  s7_pointer _p;
+  s7_pointer filter, child_path;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkTreeModelFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_convert_child_path_to_path", 1, filter, "GtkTreeModelFilter*");
+  child_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child_path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_convert_child_path_to_path", 2, child_path, "GtkTreePath*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreePath__sym, gtk_tree_model_filter_convert_child_path_to_path(s7_c_pointer(filter), s7_c_pointer(child_path))));
+}
+
+static s7_pointer lg_gtk_tree_model_filter_convert_path_to_child_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_filter_convert_path_to_child_path "GtkTreePath* gtk_tree_model_filter_convert_path_to_child_path(GtkTreeModelFilter* path, \
+GtkTreePath* filter_path)"
+  s7_pointer _p;
+  s7_pointer path, filter_path;
+  _p = args;
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreeModelFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_convert_path_to_child_path", 1, path, "GtkTreeModelFilter*");
+  filter_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter_path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_convert_path_to_child_path", 2, filter_path, "GtkTreePath*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreePath__sym, gtk_tree_model_filter_convert_path_to_child_path(s7_c_pointer(path), s7_c_pointer(filter_path))));
+}
+
+static s7_pointer lg_gtk_tree_model_filter_refilter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_filter_refilter "void gtk_tree_model_filter_refilter(GtkTreeModelFilter* filter)"
+  s7_pointer filter;
+  filter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(filter, GtkTreeModelFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_refilter", 1, filter, "GtkTreeModelFilter*");
+  gtk_tree_model_filter_refilter(s7_c_pointer(filter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_model_filter_clear_cache(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_filter_clear_cache "void gtk_tree_model_filter_clear_cache(GtkTreeModelFilter* filter)"
+  s7_pointer filter;
+  filter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(filter, GtkTreeModelFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_clear_cache", 1, filter, "GtkTreeModelFilter*");
+  gtk_tree_model_filter_clear_cache(s7_c_pointer(filter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_new "GtkWidget* gtk_combo_box_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_combo_box_new()));
+}
+
+static s7_pointer lg_gtk_combo_box_new_with_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_new_with_model "GtkWidget* gtk_combo_box_new_with_model(GtkTreeModel* model)"
+  s7_pointer model;
+  model = s7_car(args);
+  if (!s7_is_c_pointer_of_type(model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_new_with_model", 1, model, "GtkTreeModel*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_combo_box_new_with_model(s7_c_pointer(model))));
+}
+
+static s7_pointer lg_gtk_combo_box_set_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_set_model "void gtk_combo_box_set_model(GtkComboBox* combo_box, GtkTreeModel* model)"
+  s7_pointer _p;
+  s7_pointer combo_box, model;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_model", 1, combo_box, "GtkComboBox*");
+  model = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(model, GtkTreeModel__sym)) && (model != lg_false)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_model", 2, model, "GtkTreeModel*");
+  gtk_combo_box_set_model(s7_c_pointer(combo_box), s7_c_pointer(model));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_set_wrap_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_set_wrap_width "void gtk_combo_box_set_wrap_width(GtkComboBox* combo_box, gint width)"
+  s7_pointer _p;
+  s7_pointer combo_box, width;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_wrap_width", 1, combo_box, "GtkComboBox*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_wrap_width", 2, width, "gint");
+  gtk_combo_box_set_wrap_width(s7_c_pointer(combo_box), s7_integer(width));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_set_row_span_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_set_row_span_column "void gtk_combo_box_set_row_span_column(GtkComboBox* combo_box, \
+gint row_span)"
+  s7_pointer _p;
+  s7_pointer combo_box, row_span;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_row_span_column", 1, combo_box, "GtkComboBox*");
+  row_span = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(row_span)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_row_span_column", 2, row_span, "gint");
+  gtk_combo_box_set_row_span_column(s7_c_pointer(combo_box), s7_integer(row_span));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_set_column_span_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_set_column_span_column "void gtk_combo_box_set_column_span_column(GtkComboBox* combo_box, \
+gint column_span)"
+  s7_pointer _p;
+  s7_pointer combo_box, column_span;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_column_span_column", 1, combo_box, "GtkComboBox*");
+  column_span = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(column_span)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_column_span_column", 2, column_span, "gint");
+  gtk_combo_box_set_column_span_column(s7_c_pointer(combo_box), s7_integer(column_span));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_get_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_get_active "gint gtk_combo_box_get_active(GtkComboBox* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_get_active", 1, combo_box, "GtkComboBox*");
+  return(s7_make_integer(sc, gtk_combo_box_get_active(s7_c_pointer(combo_box))));
+}
+
+static s7_pointer lg_gtk_combo_box_set_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_set_active "void gtk_combo_box_set_active(GtkComboBox* combo_box, gint index)"
+  s7_pointer _p;
+  s7_pointer combo_box, index;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_active", 1, combo_box, "GtkComboBox*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_active", 2, index, "gint");
+  gtk_combo_box_set_active(s7_c_pointer(combo_box), s7_integer(index));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_get_active_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_get_active_iter "gboolean gtk_combo_box_get_active_iter(GtkComboBox* combo_box, \
+GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer combo_box, iter;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_get_active_iter", 1, combo_box, "GtkComboBox*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_get_active_iter", 2, iter, "GtkTreeIter*");
+  return(s7_make_boolean(sc, gtk_combo_box_get_active_iter(s7_c_pointer(combo_box), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_combo_box_set_active_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_set_active_iter "void gtk_combo_box_set_active_iter(GtkComboBox* combo_box, \
+GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer combo_box, iter;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_active_iter", 1, combo_box, "GtkComboBox*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_active_iter", 2, iter, "GtkTreeIter*");
+  gtk_combo_box_set_active_iter(s7_c_pointer(combo_box), s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_get_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_get_model "GtkTreeModel* gtk_combo_box_get_model(GtkComboBox* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_get_model", 1, combo_box, "GtkComboBox*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeModel__sym, gtk_combo_box_get_model(s7_c_pointer(combo_box))));
+}
+
+static s7_pointer lg_gtk_expander_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_new "GtkWidget* gtk_expander_new(gchar* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_expander_new", 1, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_expander_new(s7_string(label))));
+}
+
+static s7_pointer lg_gtk_expander_new_with_mnemonic(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_new_with_mnemonic "GtkWidget* gtk_expander_new_with_mnemonic(gchar* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_expander_new_with_mnemonic", 1, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_expander_new_with_mnemonic(s7_string(label))));
+}
+
+static s7_pointer lg_gtk_expander_set_expanded(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_set_expanded "void gtk_expander_set_expanded(GtkExpander* expander, gboolean expanded)"
+  s7_pointer _p;
+  s7_pointer expander, expanded;
+  _p = args;
+  expander = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(expander, GtkExpander__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_set_expanded", 1, expander, "GtkExpander*");
+  expanded = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(expanded)) s7_wrong_type_arg_error(sc, "gtk_expander_set_expanded", 2, expanded, "gboolean");
+  gtk_expander_set_expanded(s7_c_pointer(expander), lg_boolean(expanded));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_expander_get_expanded(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_get_expanded "gboolean gtk_expander_get_expanded(GtkExpander* expander)"
+  s7_pointer expander;
+  expander = s7_car(args);
+  if (!s7_is_c_pointer_of_type(expander, GtkExpander__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_get_expanded", 1, expander, "GtkExpander*");
+  return(s7_make_boolean(sc, gtk_expander_get_expanded(s7_c_pointer(expander))));
+}
+
+static s7_pointer lg_gtk_expander_set_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_set_label "void gtk_expander_set_label(GtkExpander* expander, gchar* label)"
+  s7_pointer _p;
+  s7_pointer expander, label;
+  _p = args;
+  expander = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(expander, GtkExpander__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_set_label", 1, expander, "GtkExpander*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_expander_set_label", 2, label, "gchar*");
+  gtk_expander_set_label(s7_c_pointer(expander), s7_string(label));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_expander_get_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_get_label "gchar* gtk_expander_get_label(GtkExpander* expander)"
+  s7_pointer expander;
+  expander = s7_car(args);
+  if (!s7_is_c_pointer_of_type(expander, GtkExpander__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_get_label", 1, expander, "GtkExpander*");
+  return(s7_make_string(sc, gtk_expander_get_label(s7_c_pointer(expander))));
+}
+
+static s7_pointer lg_gtk_expander_set_use_underline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_set_use_underline "void gtk_expander_set_use_underline(GtkExpander* expander, \
+gboolean use_underline)"
+  s7_pointer _p;
+  s7_pointer expander, use_underline;
+  _p = args;
+  expander = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(expander, GtkExpander__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_set_use_underline", 1, expander, "GtkExpander*");
+  use_underline = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_underline)) s7_wrong_type_arg_error(sc, "gtk_expander_set_use_underline", 2, use_underline, "gboolean");
+  gtk_expander_set_use_underline(s7_c_pointer(expander), lg_boolean(use_underline));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_expander_get_use_underline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_get_use_underline "gboolean gtk_expander_get_use_underline(GtkExpander* expander)"
+  s7_pointer expander;
+  expander = s7_car(args);
+  if (!s7_is_c_pointer_of_type(expander, GtkExpander__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_get_use_underline", 1, expander, "GtkExpander*");
+  return(s7_make_boolean(sc, gtk_expander_get_use_underline(s7_c_pointer(expander))));
+}
+
+static s7_pointer lg_gtk_expander_set_label_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_set_label_widget "void gtk_expander_set_label_widget(GtkExpander* expander, \
+GtkWidget* label_widget)"
+  s7_pointer _p;
+  s7_pointer expander, label_widget;
+  _p = args;
+  expander = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(expander, GtkExpander__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_set_label_widget", 1, expander, "GtkExpander*");
+  label_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_set_label_widget", 2, label_widget, "GtkWidget*");
+  gtk_expander_set_label_widget(s7_c_pointer(expander), s7_c_pointer(label_widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_expander_get_label_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_get_label_widget "GtkWidget* gtk_expander_get_label_widget(GtkExpander* expander)"
+  s7_pointer expander;
+  expander = s7_car(args);
+  if (!s7_is_c_pointer_of_type(expander, GtkExpander__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_get_label_widget", 1, expander, "GtkExpander*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_expander_get_label_widget(s7_c_pointer(expander))));
+}
+
+static s7_pointer lg_gtk_expander_set_use_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_set_use_markup "void gtk_expander_set_use_markup(GtkExpander* expander, gboolean use_markup)"
+  s7_pointer _p;
+  s7_pointer expander, use_markup;
+  _p = args;
+  expander = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(expander, GtkExpander__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_set_use_markup", 1, expander, "GtkExpander*");
+  use_markup = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_markup)) s7_wrong_type_arg_error(sc, "gtk_expander_set_use_markup", 2, use_markup, "gboolean");
+  gtk_expander_set_use_markup(s7_c_pointer(expander), lg_boolean(use_markup));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_expander_get_use_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_get_use_markup "gboolean gtk_expander_get_use_markup(GtkExpander* expander)"
+  s7_pointer expander;
+  expander = s7_car(args);
+  if (!s7_is_c_pointer_of_type(expander, GtkExpander__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_get_use_markup", 1, expander, "GtkExpander*");
+  return(s7_make_boolean(sc, gtk_expander_get_use_markup(s7_c_pointer(expander))));
+}
+
+static s7_pointer lg_gtk_font_button_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_button_new "GtkWidget* gtk_font_button_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_font_button_new()));
+}
+
+static s7_pointer lg_gtk_font_button_new_with_font(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_button_new_with_font "GtkWidget* gtk_font_button_new_with_font(gchar* fontname)"
+  s7_pointer fontname;
+  fontname = s7_car(args);
+  if (!s7_is_string(fontname)) s7_wrong_type_arg_error(sc, "gtk_font_button_new_with_font", 1, fontname, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_font_button_new_with_font(s7_string(fontname))));
+}
+
+static s7_pointer lg_gtk_font_button_get_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_button_get_title "gchar* gtk_font_button_get_title(GtkFontButton* font_button)"
+  s7_pointer font_button;
+  font_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(font_button, GtkFontButton__sym)) s7_wrong_type_arg_error(sc, "gtk_font_button_get_title", 1, font_button, "GtkFontButton*");
+  return(s7_make_string(sc, gtk_font_button_get_title(s7_c_pointer(font_button))));
+}
+
+static s7_pointer lg_gtk_font_button_set_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_button_set_title "void gtk_font_button_set_title(GtkFontButton* font_button, gchar* title)"
+  s7_pointer _p;
+  s7_pointer font_button, title;
+  _p = args;
+  font_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font_button, GtkFontButton__sym)) s7_wrong_type_arg_error(sc, "gtk_font_button_set_title", 1, font_button, "GtkFontButton*");
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gtk_font_button_set_title", 2, title, "gchar*");
+  gtk_font_button_set_title(s7_c_pointer(font_button), s7_string(title));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_font_button_get_use_font(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_button_get_use_font "gboolean gtk_font_button_get_use_font(GtkFontButton* font_button)"
+  s7_pointer font_button;
+  font_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(font_button, GtkFontButton__sym)) s7_wrong_type_arg_error(sc, "gtk_font_button_get_use_font", 1, font_button, "GtkFontButton*");
+  return(s7_make_boolean(sc, gtk_font_button_get_use_font(s7_c_pointer(font_button))));
+}
+
+static s7_pointer lg_gtk_font_button_set_use_font(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_button_set_use_font "void gtk_font_button_set_use_font(GtkFontButton* font_button, \
+gboolean use_font)"
+  s7_pointer _p;
+  s7_pointer font_button, use_font;
+  _p = args;
+  font_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font_button, GtkFontButton__sym)) s7_wrong_type_arg_error(sc, "gtk_font_button_set_use_font", 1, font_button, "GtkFontButton*");
+  use_font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_font)) s7_wrong_type_arg_error(sc, "gtk_font_button_set_use_font", 2, use_font, "gboolean");
+  gtk_font_button_set_use_font(s7_c_pointer(font_button), lg_boolean(use_font));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_font_button_get_use_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_button_get_use_size "gboolean gtk_font_button_get_use_size(GtkFontButton* font_button)"
+  s7_pointer font_button;
+  font_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(font_button, GtkFontButton__sym)) s7_wrong_type_arg_error(sc, "gtk_font_button_get_use_size", 1, font_button, "GtkFontButton*");
+  return(s7_make_boolean(sc, gtk_font_button_get_use_size(s7_c_pointer(font_button))));
+}
+
+static s7_pointer lg_gtk_font_button_set_use_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_button_set_use_size "void gtk_font_button_set_use_size(GtkFontButton* font_button, \
+gboolean use_size)"
+  s7_pointer _p;
+  s7_pointer font_button, use_size;
+  _p = args;
+  font_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font_button, GtkFontButton__sym)) s7_wrong_type_arg_error(sc, "gtk_font_button_set_use_size", 1, font_button, "GtkFontButton*");
+  use_size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_size)) s7_wrong_type_arg_error(sc, "gtk_font_button_set_use_size", 2, use_size, "gboolean");
+  gtk_font_button_set_use_size(s7_c_pointer(font_button), lg_boolean(use_size));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_font_button_get_font_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_button_get_font_name "gchar* gtk_font_button_get_font_name(GtkFontButton* font_button)"
+  s7_pointer font_button;
+  font_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(font_button, GtkFontButton__sym)) s7_wrong_type_arg_error(sc, "gtk_font_button_get_font_name", 1, font_button, "GtkFontButton*");
+  return(s7_make_string(sc, gtk_font_button_get_font_name(s7_c_pointer(font_button))));
+}
+
+static s7_pointer lg_gtk_font_button_set_font_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_button_set_font_name "gboolean gtk_font_button_set_font_name(GtkFontButton* font_button, \
+gchar* fontname)"
+  s7_pointer _p;
+  s7_pointer font_button, fontname;
+  _p = args;
+  font_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font_button, GtkFontButton__sym)) s7_wrong_type_arg_error(sc, "gtk_font_button_set_font_name", 1, font_button, "GtkFontButton*");
+  fontname = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(fontname)) s7_wrong_type_arg_error(sc, "gtk_font_button_set_font_name", 2, fontname, "gchar*");
+  return(s7_make_boolean(sc, gtk_font_button_set_font_name(s7_c_pointer(font_button), s7_string(fontname))));
+}
+
+static s7_pointer lg_gtk_font_button_get_show_style(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_button_get_show_style "gboolean gtk_font_button_get_show_style(GtkFontButton* font_button)"
+  s7_pointer font_button;
+  font_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(font_button, GtkFontButton__sym)) s7_wrong_type_arg_error(sc, "gtk_font_button_get_show_style", 1, font_button, "GtkFontButton*");
+  return(s7_make_boolean(sc, gtk_font_button_get_show_style(s7_c_pointer(font_button))));
+}
+
+static s7_pointer lg_gtk_font_button_set_show_style(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_button_set_show_style "void gtk_font_button_set_show_style(GtkFontButton* font_button, \
+gboolean show_style)"
+  s7_pointer _p;
+  s7_pointer font_button, show_style;
+  _p = args;
+  font_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font_button, GtkFontButton__sym)) s7_wrong_type_arg_error(sc, "gtk_font_button_set_show_style", 1, font_button, "GtkFontButton*");
+  show_style = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_style)) s7_wrong_type_arg_error(sc, "gtk_font_button_set_show_style", 2, show_style, "gboolean");
+  gtk_font_button_set_show_style(s7_c_pointer(font_button), lg_boolean(show_style));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_font_button_get_show_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_button_get_show_size "gboolean gtk_font_button_get_show_size(GtkFontButton* font_button)"
+  s7_pointer font_button;
+  font_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(font_button, GtkFontButton__sym)) s7_wrong_type_arg_error(sc, "gtk_font_button_get_show_size", 1, font_button, "GtkFontButton*");
+  return(s7_make_boolean(sc, gtk_font_button_get_show_size(s7_c_pointer(font_button))));
+}
+
+static s7_pointer lg_gtk_font_button_set_show_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_button_set_show_size "void gtk_font_button_set_show_size(GtkFontButton* font_button, \
+gboolean show_size)"
+  s7_pointer _p;
+  s7_pointer font_button, show_size;
+  _p = args;
+  font_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font_button, GtkFontButton__sym)) s7_wrong_type_arg_error(sc, "gtk_font_button_set_show_size", 1, font_button, "GtkFontButton*");
+  show_size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_size)) s7_wrong_type_arg_error(sc, "gtk_font_button_set_show_size", 2, show_size, "gboolean");
+  gtk_font_button_set_show_size(s7_c_pointer(font_button), lg_boolean(show_size));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_new "GtkEntryCompletion* gtk_entry_completion_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkEntryCompletion__sym, gtk_entry_completion_new()));
+}
+
+static s7_pointer lg_gtk_entry_completion_get_entry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_get_entry "GtkWidget* gtk_entry_completion_get_entry(GtkEntryCompletion* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_get_entry", 1, entry, "GtkEntryCompletion*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_entry_completion_get_entry(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_completion_set_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_set_model "void gtk_entry_completion_set_model(GtkEntryCompletion* completion, \
+GtkTreeModel* model)"
+  s7_pointer _p;
+  s7_pointer completion, model;
+  _p = args;
+  completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_model", 1, completion, "GtkEntryCompletion*");
+  model = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(model, GtkTreeModel__sym)) && (model != lg_false)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_model", 2, model, "GtkTreeModel*");
+  gtk_entry_completion_set_model(s7_c_pointer(completion), s7_c_pointer(model));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_get_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_get_model "GtkTreeModel* gtk_entry_completion_get_model(GtkEntryCompletion* completion)"
+  s7_pointer completion;
+  completion = s7_car(args);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_get_model", 1, completion, "GtkEntryCompletion*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeModel__sym, gtk_entry_completion_get_model(s7_c_pointer(completion))));
+}
+
+static s7_pointer lg_gtk_entry_completion_set_match_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_set_match_func "void gtk_entry_completion_set_match_func(GtkEntryCompletion* completion, \
+GtkEntryCompletionMatchFunc func, lambda_data func_info, GtkDestroyNotify func_notify)"
+  s7_pointer _p;
+  s7_pointer completion, func, func_info, func_notify;
+  _p = args;
+  completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_match_func", 1, completion, "GtkEntryCompletion*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkEntryCompletionMatchFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_match_func", 2, func, "GtkEntryCompletionMatchFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_match_func", 3, func_info, "lambda_data");
+  func_notify = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_notify, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_match_func", 4, func_notify, "GtkDestroyNotify");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 3, func_notify);
+    gtk_entry_completion_set_match_func(s7_c_pointer(completion), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(func_notify));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_entry_completion_set_minimum_key_length(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_set_minimum_key_length "void gtk_entry_completion_set_minimum_key_length(GtkEntryCompletion* completion, \
+gint length)"
+  s7_pointer _p;
+  s7_pointer completion, length;
+  _p = args;
+  completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_minimum_key_length", 1, completion, "GtkEntryCompletion*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_minimum_key_length", 2, length, "gint");
+  gtk_entry_completion_set_minimum_key_length(s7_c_pointer(completion), s7_integer(length));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_get_minimum_key_length(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_get_minimum_key_length "gint gtk_entry_completion_get_minimum_key_length(GtkEntryCompletion* completion)"
+  s7_pointer completion;
+  completion = s7_car(args);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_get_minimum_key_length", 1, completion, "GtkEntryCompletion*");
+  return(s7_make_integer(sc, gtk_entry_completion_get_minimum_key_length(s7_c_pointer(completion))));
+}
+
+static s7_pointer lg_gtk_entry_completion_complete(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_complete "void gtk_entry_completion_complete(GtkEntryCompletion* completion)"
+  s7_pointer completion;
+  completion = s7_car(args);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_complete", 1, completion, "GtkEntryCompletion*");
+  gtk_entry_completion_complete(s7_c_pointer(completion));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_insert_action_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_insert_action_text "void gtk_entry_completion_insert_action_text(GtkEntryCompletion* completion, \
+gint index, gchar* text)"
+  s7_pointer _p;
+  s7_pointer completion, index, text;
+  _p = args;
+  completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_insert_action_text", 1, completion, "GtkEntryCompletion*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_insert_action_text", 2, index, "gint");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_insert_action_text", 3, text, "gchar*");
+  gtk_entry_completion_insert_action_text(s7_c_pointer(completion), s7_integer(index), s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_insert_action_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_insert_action_markup "void gtk_entry_completion_insert_action_markup(GtkEntryCompletion* completion, \
+gint index, gchar* markup)"
+  s7_pointer _p;
+  s7_pointer completion, index, markup;
+  _p = args;
+  completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_insert_action_markup", 1, completion, "GtkEntryCompletion*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_insert_action_markup", 2, index, "gint");
+  markup = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(markup)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_insert_action_markup", 3, markup, "gchar*");
+  gtk_entry_completion_insert_action_markup(s7_c_pointer(completion), s7_integer(index), s7_string(markup));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_delete_action(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_delete_action "void gtk_entry_completion_delete_action(GtkEntryCompletion* completion, \
+gint index)"
+  s7_pointer _p;
+  s7_pointer completion, index;
+  _p = args;
+  completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_delete_action", 1, completion, "GtkEntryCompletion*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_delete_action", 2, index, "gint");
+  gtk_entry_completion_delete_action(s7_c_pointer(completion), s7_integer(index));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_set_text_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_set_text_column "void gtk_entry_completion_set_text_column(GtkEntryCompletion* completion, \
+gint column)"
+  s7_pointer _p;
+  s7_pointer completion, column;
+  _p = args;
+  completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_text_column", 1, completion, "GtkEntryCompletion*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(column)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_text_column", 2, column, "gint");
+  gtk_entry_completion_set_text_column(s7_c_pointer(completion), s7_integer(column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_radio_tool_button_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_tool_button_new "GtkToolItem* gtk_radio_tool_button_new(GSList* group)"
+  s7_pointer group;
+  group = s7_car(args);
+  if ((!s7_is_c_pointer_of_type(group, GSList__sym)) && (group != lg_false)) s7_wrong_type_arg_error(sc, "gtk_radio_tool_button_new", 1, group, "GSList*");
+  return(s7_make_type_with_c_pointer(sc, GtkToolItem__sym, gtk_radio_tool_button_new(s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_radio_tool_button_new_from_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_tool_button_new_from_widget "GtkToolItem* gtk_radio_tool_button_new_from_widget(GtkRadioToolButton* group)"
+  s7_pointer group;
+  group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(group, GtkRadioToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_tool_button_new_from_widget", 1, group, "GtkRadioToolButton*");
+  return(s7_make_type_with_c_pointer(sc, GtkToolItem__sym, gtk_radio_tool_button_new_from_widget(s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_radio_tool_button_get_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_tool_button_get_group "GSList* gtk_radio_tool_button_get_group(GtkRadioToolButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkRadioToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_tool_button_get_group", 1, button, "GtkRadioToolButton*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_radio_tool_button_get_group(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_radio_tool_button_set_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_tool_button_set_group "void gtk_radio_tool_button_set_group(GtkRadioToolButton* button, \
+GSList* group)"
+  s7_pointer _p;
+  s7_pointer button, group;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkRadioToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_tool_button_set_group", 1, button, "GtkRadioToolButton*");
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(group, GSList__sym)) && (group != lg_false)) s7_wrong_type_arg_error(sc, "gtk_radio_tool_button_set_group", 2, group, "GSList*");
+  gtk_radio_tool_button_set_group(s7_c_pointer(button), s7_c_pointer(group));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_separator_tool_item_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_separator_tool_item_new "GtkToolItem* gtk_separator_tool_item_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkToolItem__sym, gtk_separator_tool_item_new()));
+}
+
+static s7_pointer lg_gtk_separator_tool_item_get_draw(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_separator_tool_item_get_draw "gboolean gtk_separator_tool_item_get_draw(GtkSeparatorToolItem* item)"
+  s7_pointer item;
+  item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(item, GtkSeparatorToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_separator_tool_item_get_draw", 1, item, "GtkSeparatorToolItem*");
+  return(s7_make_boolean(sc, gtk_separator_tool_item_get_draw(s7_c_pointer(item))));
+}
+
+static s7_pointer lg_gtk_separator_tool_item_set_draw(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_separator_tool_item_set_draw "void gtk_separator_tool_item_set_draw(GtkSeparatorToolItem* tool_item, \
+gboolean draw)"
+  s7_pointer _p;
+  s7_pointer tool_item, draw;
+  _p = args;
+  tool_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkSeparatorToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_separator_tool_item_set_draw", 1, tool_item, "GtkSeparatorToolItem*");
+  draw = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(draw)) s7_wrong_type_arg_error(sc, "gtk_separator_tool_item_set_draw", 2, draw, "gboolean");
+  gtk_separator_tool_item_set_draw(s7_c_pointer(tool_item), lg_boolean(draw));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_toggle_tool_button_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toggle_tool_button_new "GtkToolItem* gtk_toggle_tool_button_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkToolItem__sym, gtk_toggle_tool_button_new()));
+}
+
+static s7_pointer lg_gtk_toggle_tool_button_set_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toggle_tool_button_set_active "void gtk_toggle_tool_button_set_active(GtkToggleToolButton* button, \
+gboolean is_active)"
+  s7_pointer _p;
+  s7_pointer button, is_active;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkToggleToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_toggle_tool_button_set_active", 1, button, "GtkToggleToolButton*");
+  is_active = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(is_active)) s7_wrong_type_arg_error(sc, "gtk_toggle_tool_button_set_active", 2, is_active, "gboolean");
+  gtk_toggle_tool_button_set_active(s7_c_pointer(button), lg_boolean(is_active));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_toggle_tool_button_get_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toggle_tool_button_get_active "gboolean gtk_toggle_tool_button_get_active(GtkToggleToolButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkToggleToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_toggle_tool_button_get_active", 1, button, "GtkToggleToolButton*");
+  return(s7_make_boolean(sc, gtk_toggle_tool_button_get_active(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_g_timeout_add_full(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_timeout_add_full "guint g_timeout_add_full(gint priority, guint interval, GSourceFunc func, \
+lambda_data func_info, GtkDestroyNotify notify)"
+  s7_pointer _p;
+  s7_pointer priority, interval, func, func_info, notify;
+  _p = args;
+  priority = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(priority)) s7_wrong_type_arg_error(sc, "g_timeout_add_full", 1, priority, "gint");
+  interval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(interval)) s7_wrong_type_arg_error(sc, "g_timeout_add_full", 2, interval, "guint");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GSourceFunc_sym)) s7_wrong_type_arg_error(sc, "g_timeout_add_full", 3, func, "GSourceFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "g_timeout_add_full", 4, func_info, "lambda_data");
+  notify = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notify, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "g_timeout_add_full", 5, notify, "GtkDestroyNotify");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    s7_list_set(sc, lg_ptr, 3, notify);
+    result = s7_make_integer(sc, g_timeout_add_full(s7_integer(priority), s7_integer(interval), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(notify)));
+    return(result);
+   }
+}
+
+static s7_pointer lg_g_timeout_add(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_timeout_add "guint g_timeout_add(guint interval, GSourceFunc func, lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer interval, func, func_info;
+  _p = args;
+  interval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(interval)) s7_wrong_type_arg_error(sc, "g_timeout_add", 1, interval, "guint");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GSourceFunc_sym)) s7_wrong_type_arg_error(sc, "g_timeout_add", 2, func, "GSourceFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "g_timeout_add", 3, func_info, "lambda_data");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    result = s7_make_integer(sc, g_timeout_add(s7_integer(interval), s7_c_pointer(func), (gpointer)lg_ptr));
+    return(result);
+   }
+}
+
+static s7_pointer lg_g_idle_add(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_idle_add "guint g_idle_add(GSourceFunc func, lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer func, func_info;
+  _p = args;
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GSourceFunc_sym)) s7_wrong_type_arg_error(sc, "g_idle_add", 1, func, "GSourceFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "g_idle_add", 2, func_info, "lambda_data");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    result = s7_make_integer(sc, g_idle_add(s7_c_pointer(func), (gpointer)lg_ptr));
+    return(result);
+   }
+}
+
+static s7_pointer lg_g_idle_add_full(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_idle_add_full "guint g_idle_add_full(gint priority, GSourceFunc func, lambda_data func_info, \
+GtkDestroyNotify notify)"
+  s7_pointer _p;
+  s7_pointer priority, func, func_info, notify;
+  _p = args;
+  priority = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(priority)) s7_wrong_type_arg_error(sc, "g_idle_add_full", 1, priority, "gint");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GSourceFunc_sym)) s7_wrong_type_arg_error(sc, "g_idle_add_full", 2, func, "GSourceFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "g_idle_add_full", 3, func_info, "lambda_data");
+  notify = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notify, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "g_idle_add_full", 4, notify, "GtkDestroyNotify");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    s7_list_set(sc, lg_ptr, 3, notify);
+    result = s7_make_integer(sc, g_idle_add_full(s7_integer(priority), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(notify)));
+    return(result);
+   }
+}
+
+static s7_pointer lg_g_idle_remove_by_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_idle_remove_by_data "gboolean g_idle_remove_by_data(gpointer data)"
+  s7_pointer data;
+  data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(data, gpointer_sym)) s7_wrong_type_arg_error(sc, "g_idle_remove_by_data", 1, data, "gpointer");
+  return(s7_make_boolean(sc, g_idle_remove_by_data(s7_c_pointer(data))));
+}
+
+static s7_pointer lg_g_source_remove(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_source_remove "gboolean g_source_remove(guint tag)"
+  s7_pointer tag;
+  tag = s7_car(args);
+  if (!s7_is_integer(tag)) s7_wrong_type_arg_error(sc, "g_source_remove", 1, tag, "guint");
+  return(s7_make_boolean(sc, g_source_remove(s7_integer(tag))));
+}
+
+static s7_pointer lg_gtk_file_filter_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_filter_new "GtkFileFilter* gtk_file_filter_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkFileFilter__sym, gtk_file_filter_new()));
+}
+
+static s7_pointer lg_gtk_file_filter_set_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_filter_set_name "void gtk_file_filter_set_name(GtkFileFilter* filter, gchar* name)"
+  s7_pointer _p;
+  s7_pointer filter, name;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkFileFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_file_filter_set_name", 1, filter, "GtkFileFilter*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_file_filter_set_name", 2, name, "gchar*");
+  gtk_file_filter_set_name(s7_c_pointer(filter), s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_filter_get_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_filter_get_name "gchar* gtk_file_filter_get_name(GtkFileFilter* filter)"
+  s7_pointer filter;
+  filter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(filter, GtkFileFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_file_filter_get_name", 1, filter, "GtkFileFilter*");
+  return(s7_make_string(sc, gtk_file_filter_get_name(s7_c_pointer(filter))));
+}
+
+static s7_pointer lg_gtk_file_filter_add_mime_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_filter_add_mime_type "void gtk_file_filter_add_mime_type(GtkFileFilter* filter, \
+gchar* mime_type)"
+  s7_pointer _p;
+  s7_pointer filter, mime_type;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkFileFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_file_filter_add_mime_type", 1, filter, "GtkFileFilter*");
+  mime_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(mime_type)) s7_wrong_type_arg_error(sc, "gtk_file_filter_add_mime_type", 2, mime_type, "gchar*");
+  gtk_file_filter_add_mime_type(s7_c_pointer(filter), s7_string(mime_type));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_filter_add_pattern(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_filter_add_pattern "void gtk_file_filter_add_pattern(GtkFileFilter* filter, gchar* pattern)"
+  s7_pointer _p;
+  s7_pointer filter, pattern;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkFileFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_file_filter_add_pattern", 1, filter, "GtkFileFilter*");
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(pattern)) s7_wrong_type_arg_error(sc, "gtk_file_filter_add_pattern", 2, pattern, "gchar*");
+  gtk_file_filter_add_pattern(s7_c_pointer(filter), s7_string(pattern));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_filter_add_custom(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_filter_add_custom "void gtk_file_filter_add_custom(GtkFileFilter* filter, GtkFileFilterFlags needed, \
+GtkFileFilterFunc func, lambda_data func_info, GtkDestroyNotify notify)"
+  s7_pointer _p;
+  s7_pointer filter, needed, func, func_info, notify;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkFileFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_file_filter_add_custom", 1, filter, "GtkFileFilter*");
+  needed = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(needed)) s7_wrong_type_arg_error(sc, "gtk_file_filter_add_custom", 2, needed, "GtkFileFilterFlags");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkFileFilterFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_file_filter_add_custom", 3, func, "GtkFileFilterFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_file_filter_add_custom", 4, func_info, "lambda_data");
+  notify = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notify, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_file_filter_add_custom", 5, notify, "GtkDestroyNotify");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 3, notify);
+    gtk_file_filter_add_custom(s7_c_pointer(filter), s7_integer(needed), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(notify));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_file_filter_get_needed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_filter_get_needed "GtkFileFilterFlags gtk_file_filter_get_needed(GtkFileFilter* filter)"
+  s7_pointer filter;
+  filter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(filter, GtkFileFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_file_filter_get_needed", 1, filter, "GtkFileFilter*");
+  return(s7_make_integer(sc, gtk_file_filter_get_needed(s7_c_pointer(filter))));
+}
+
+static s7_pointer lg_gtk_file_filter_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_filter_filter "gboolean gtk_file_filter_filter(GtkFileFilter* filter, GtkFileFilterInfo* filter_info)"
+  s7_pointer _p;
+  s7_pointer filter, filter_info;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkFileFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_file_filter_filter", 1, filter, "GtkFileFilter*");
+  filter_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter_info, GtkFileFilterInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_file_filter_filter", 2, filter_info, "GtkFileFilterInfo*");
+  return(s7_make_boolean(sc, gtk_file_filter_filter(s7_c_pointer(filter), s7_c_pointer(filter_info))));
+}
+
+static s7_pointer lg_gtk_cell_layout_pack_start(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_layout_pack_start "void gtk_cell_layout_pack_start(GtkCellLayout* cell_layout, GtkCellRenderer* cell, \
+gboolean expand)"
+  s7_pointer _p;
+  s7_pointer cell_layout, cell, expand;
+  _p = args;
+  cell_layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_layout, GtkCellLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_pack_start", 1, cell_layout, "GtkCellLayout*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_pack_start", 2, cell, "GtkCellRenderer*");
+  expand = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(expand)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_pack_start", 3, expand, "gboolean");
+  gtk_cell_layout_pack_start(s7_c_pointer(cell_layout), s7_c_pointer(cell), lg_boolean(expand));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_layout_pack_end(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_layout_pack_end "void gtk_cell_layout_pack_end(GtkCellLayout* cell_layout, GtkCellRenderer* cell, \
+gboolean expand)"
+  s7_pointer _p;
+  s7_pointer cell_layout, cell, expand;
+  _p = args;
+  cell_layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_layout, GtkCellLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_pack_end", 1, cell_layout, "GtkCellLayout*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_pack_end", 2, cell, "GtkCellRenderer*");
+  expand = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(expand)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_pack_end", 3, expand, "gboolean");
+  gtk_cell_layout_pack_end(s7_c_pointer(cell_layout), s7_c_pointer(cell), lg_boolean(expand));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_layout_clear(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_layout_clear "void gtk_cell_layout_clear(GtkCellLayout* cell_layout)"
+  s7_pointer cell_layout;
+  cell_layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cell_layout, GtkCellLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_clear", 1, cell_layout, "GtkCellLayout*");
+  gtk_cell_layout_clear(s7_c_pointer(cell_layout));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_layout_set_attributes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_layout_set_attributes "void gtk_cell_layout_set_attributes(GtkCellLayout* cell_layout, \
+GtkCellRenderer* cell, etc attributes)"
+  s7_pointer _p;
+  s7_pointer cell_layout, cell, attributes;
+  _p = args;
+  cell_layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_layout, GtkCellLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_set_attributes", 1, cell_layout, "GtkCellLayout*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_set_attributes", 2, cell, "GtkCellRenderer*");
+  attributes = s7_car(_p); _p = s7_cdr(_p);
+  if (!lg_is_list(attributes)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_set_attributes", 3, attributes, "etc");
+  {
+    int etc_len = 0;
+    GtkCellLayout* p_arg0;
+    GtkCellRenderer* p_arg1;
+    if (s7_is_list(sc, attributes)) etc_len = s7_list_length(sc, attributes);
+    if (etc_len < 2) s7_out_of_range_error(sc, "gtk_cell_layout_set_attributes", 2, attributes, "... list must have at least 2 entries");
+    if (etc_len > 10) s7_out_of_range_error(sc, "gtk_cell_layout_set_attributes", 2, attributes, "... list too long (max len: 10)");
+    if ((etc_len % 2) != 0) s7_out_of_range_error(sc, "gtk_cell_layout_set_attributes", 2, attributes, "... list len must be multiple of 2");
+    p_arg0 = (GtkCellLayout*)s7_c_pointer(cell_layout);
+    p_arg1 = (GtkCellRenderer*)s7_c_pointer(cell);
+    switch (etc_len)
+      {
+        case 2: gtk_cell_layout_set_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), NULL); break;
+        case 4: gtk_cell_layout_set_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), NULL); break;
+        case 6: gtk_cell_layout_set_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), s7_string(s7_list_ref(sc, attributes, 4)), s7_integer(s7_list_ref(sc, attributes, 5)), NULL); break;
+        case 8: gtk_cell_layout_set_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), s7_string(s7_list_ref(sc, attributes, 4)), s7_integer(s7_list_ref(sc, attributes, 5)), s7_string(s7_list_ref(sc, attributes, 6)), s7_integer(s7_list_ref(sc, attributes, 7)), NULL); break;
+        case 10: gtk_cell_layout_set_attributes(p_arg0, p_arg1, s7_string(s7_list_ref(sc, attributes, 0)), s7_integer(s7_list_ref(sc, attributes, 1)), s7_string(s7_list_ref(sc, attributes, 2)), s7_integer(s7_list_ref(sc, attributes, 3)), s7_string(s7_list_ref(sc, attributes, 4)), s7_integer(s7_list_ref(sc, attributes, 5)), s7_string(s7_list_ref(sc, attributes, 6)), s7_integer(s7_list_ref(sc, attributes, 7)), s7_string(s7_list_ref(sc, attributes, 8)), s7_integer(s7_list_ref(sc, attributes, 9)), NULL); break;
+      }
+    return(lg_false);
+  }
+}
+
+static s7_pointer lg_gtk_cell_layout_add_attribute(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_layout_add_attribute "void gtk_cell_layout_add_attribute(GtkCellLayout* cell_layout, \
+GtkCellRenderer* cell, gchar* attribute, gint column)"
+  s7_pointer _p;
+  s7_pointer cell_layout, cell, attribute, column;
+  _p = args;
+  cell_layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_layout, GtkCellLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_add_attribute", 1, cell_layout, "GtkCellLayout*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_add_attribute", 2, cell, "GtkCellRenderer*");
+  attribute = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(attribute)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_add_attribute", 3, attribute, "gchar*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(column)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_add_attribute", 4, column, "gint");
+  gtk_cell_layout_add_attribute(s7_c_pointer(cell_layout), s7_c_pointer(cell), s7_string(attribute), s7_integer(column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_layout_set_cell_data_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_layout_set_cell_data_func "void gtk_cell_layout_set_cell_data_func(GtkCellLayout* cell_layout, \
+GtkCellRenderer* cell, GtkCellLayoutDataFunc func, lambda_data func_info, GtkDestroyNotify destroy)"
+  s7_pointer _p;
+  s7_pointer cell_layout, cell, func, func_info, destroy;
+  _p = args;
+  cell_layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_layout, GtkCellLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_set_cell_data_func", 1, cell_layout, "GtkCellLayout*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_set_cell_data_func", 2, cell, "GtkCellRenderer*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkCellLayoutDataFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_set_cell_data_func", 3, func, "GtkCellLayoutDataFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_set_cell_data_func", 4, func_info, "lambda_data");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_set_cell_data_func", 5, destroy, "GtkDestroyNotify");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 3, destroy);
+    gtk_cell_layout_set_cell_data_func(s7_c_pointer(cell_layout), s7_c_pointer(cell), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(destroy));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_cell_layout_clear_attributes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_layout_clear_attributes "void gtk_cell_layout_clear_attributes(GtkCellLayout* cell_layout, \
+GtkCellRenderer* cell)"
+  s7_pointer _p;
+  s7_pointer cell_layout, cell;
+  _p = args;
+  cell_layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_layout, GtkCellLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_clear_attributes", 1, cell_layout, "GtkCellLayout*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_clear_attributes", 2, cell, "GtkCellRenderer*");
+  gtk_cell_layout_clear_attributes(s7_c_pointer(cell_layout), s7_c_pointer(cell));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_set_action(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_action "void gtk_file_chooser_set_action(GtkFileChooser* chooser, GtkFileChooserAction action)"
+  s7_pointer _p;
+  s7_pointer chooser, action;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_action", 1, chooser, "GtkFileChooser*");
+  action = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(action)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_action", 2, action, "GtkFileChooserAction");
+  gtk_file_chooser_set_action(s7_c_pointer(chooser), s7_integer(action));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_action(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_action "GtkFileChooserAction gtk_file_chooser_get_action(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_action", 1, chooser, "GtkFileChooser*");
+  return(s7_make_integer(sc, gtk_file_chooser_get_action(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_file_chooser_set_local_only(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_local_only "void gtk_file_chooser_set_local_only(GtkFileChooser* chooser, \
+gboolean files_only)"
+  s7_pointer _p;
+  s7_pointer chooser, files_only;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_local_only", 1, chooser, "GtkFileChooser*");
+  files_only = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(files_only)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_local_only", 2, files_only, "gboolean");
+  gtk_file_chooser_set_local_only(s7_c_pointer(chooser), lg_boolean(files_only));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_local_only(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_local_only "gboolean gtk_file_chooser_get_local_only(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_local_only", 1, chooser, "GtkFileChooser*");
+  return(s7_make_boolean(sc, gtk_file_chooser_get_local_only(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_file_chooser_set_select_multiple(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_select_multiple "void gtk_file_chooser_set_select_multiple(GtkFileChooser* chooser, \
+gboolean select_multiple)"
+  s7_pointer _p;
+  s7_pointer chooser, select_multiple;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_select_multiple", 1, chooser, "GtkFileChooser*");
+  select_multiple = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(select_multiple)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_select_multiple", 2, select_multiple, "gboolean");
+  gtk_file_chooser_set_select_multiple(s7_c_pointer(chooser), lg_boolean(select_multiple));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_select_multiple(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_select_multiple "gboolean gtk_file_chooser_get_select_multiple(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_select_multiple", 1, chooser, "GtkFileChooser*");
+  return(s7_make_boolean(sc, gtk_file_chooser_get_select_multiple(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_file_chooser_set_current_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_current_name "void gtk_file_chooser_set_current_name(GtkFileChooser* chooser, \
+gchar* name)"
+  s7_pointer _p;
+  s7_pointer chooser, name;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_current_name", 1, chooser, "GtkFileChooser*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_current_name", 2, name, "gchar*");
+  gtk_file_chooser_set_current_name(s7_c_pointer(chooser), s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_filename(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_filename "gchar* gtk_file_chooser_get_filename(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_filename", 1, chooser, "GtkFileChooser*");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_file_chooser_get_filename(s7_c_pointer(chooser));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_file_chooser_set_filename(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_filename "gboolean gtk_file_chooser_set_filename(GtkFileChooser* chooser, \
+char* filename)"
+  s7_pointer _p;
+  s7_pointer chooser, filename;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_filename", 1, chooser, "GtkFileChooser*");
+  filename = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(filename)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_filename", 2, filename, "char*");
+  return(s7_make_boolean(sc, gtk_file_chooser_set_filename(s7_c_pointer(chooser), (char*)s7_string(filename))));
+}
+
+static s7_pointer lg_gtk_file_chooser_select_filename(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_select_filename "gboolean gtk_file_chooser_select_filename(GtkFileChooser* chooser, \
+char* filename)"
+  s7_pointer _p;
+  s7_pointer chooser, filename;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_select_filename", 1, chooser, "GtkFileChooser*");
+  filename = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(filename)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_select_filename", 2, filename, "char*");
+  return(s7_make_boolean(sc, gtk_file_chooser_select_filename(s7_c_pointer(chooser), (char*)s7_string(filename))));
+}
+
+static s7_pointer lg_gtk_file_chooser_unselect_filename(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_unselect_filename "void gtk_file_chooser_unselect_filename(GtkFileChooser* chooser, \
+char* filename)"
+  s7_pointer _p;
+  s7_pointer chooser, filename;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_unselect_filename", 1, chooser, "GtkFileChooser*");
+  filename = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(filename)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_unselect_filename", 2, filename, "char*");
+  gtk_file_chooser_unselect_filename(s7_c_pointer(chooser), (char*)s7_string(filename));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_select_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_select_all "void gtk_file_chooser_select_all(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_select_all", 1, chooser, "GtkFileChooser*");
+  gtk_file_chooser_select_all(s7_c_pointer(chooser));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_unselect_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_unselect_all "void gtk_file_chooser_unselect_all(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_unselect_all", 1, chooser, "GtkFileChooser*");
+  gtk_file_chooser_unselect_all(s7_c_pointer(chooser));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_filenames(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_filenames "GSList* gtk_file_chooser_get_filenames(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_filenames", 1, chooser, "GtkFileChooser*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_file_chooser_get_filenames(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_file_chooser_set_current_folder(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_current_folder "gboolean gtk_file_chooser_set_current_folder(GtkFileChooser* chooser, \
+gchar* filename)"
+  s7_pointer _p;
+  s7_pointer chooser, filename;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_current_folder", 1, chooser, "GtkFileChooser*");
+  filename = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(filename)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_current_folder", 2, filename, "gchar*");
+  return(s7_make_boolean(sc, gtk_file_chooser_set_current_folder(s7_c_pointer(chooser), s7_string(filename))));
+}
+
+static s7_pointer lg_gtk_file_chooser_get_current_folder(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_current_folder "gchar* gtk_file_chooser_get_current_folder(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_current_folder", 1, chooser, "GtkFileChooser*");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_file_chooser_get_current_folder(s7_c_pointer(chooser));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_file_chooser_get_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_uri "gchar* gtk_file_chooser_get_uri(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_uri", 1, chooser, "GtkFileChooser*");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_file_chooser_get_uri(s7_c_pointer(chooser));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_file_chooser_set_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_uri "gboolean gtk_file_chooser_set_uri(GtkFileChooser* chooser, char* uri)"
+  s7_pointer _p;
+  s7_pointer chooser, uri;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_uri", 1, chooser, "GtkFileChooser*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_uri", 2, uri, "char*");
+  return(s7_make_boolean(sc, gtk_file_chooser_set_uri(s7_c_pointer(chooser), (char*)s7_string(uri))));
+}
+
+static s7_pointer lg_gtk_file_chooser_select_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_select_uri "gboolean gtk_file_chooser_select_uri(GtkFileChooser* chooser, \
+char* uri)"
+  s7_pointer _p;
+  s7_pointer chooser, uri;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_select_uri", 1, chooser, "GtkFileChooser*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_select_uri", 2, uri, "char*");
+  return(s7_make_boolean(sc, gtk_file_chooser_select_uri(s7_c_pointer(chooser), (char*)s7_string(uri))));
+}
+
+static s7_pointer lg_gtk_file_chooser_unselect_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_unselect_uri "void gtk_file_chooser_unselect_uri(GtkFileChooser* chooser, \
+char* uri)"
+  s7_pointer _p;
+  s7_pointer chooser, uri;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_unselect_uri", 1, chooser, "GtkFileChooser*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_unselect_uri", 2, uri, "char*");
+  gtk_file_chooser_unselect_uri(s7_c_pointer(chooser), (char*)s7_string(uri));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_uris(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_uris "GSList* gtk_file_chooser_get_uris(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_uris", 1, chooser, "GtkFileChooser*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_file_chooser_get_uris(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_file_chooser_set_current_folder_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_current_folder_uri "gboolean gtk_file_chooser_set_current_folder_uri(GtkFileChooser* chooser, \
+gchar* uri)"
+  s7_pointer _p;
+  s7_pointer chooser, uri;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_current_folder_uri", 1, chooser, "GtkFileChooser*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_current_folder_uri", 2, uri, "gchar*");
+  return(s7_make_boolean(sc, gtk_file_chooser_set_current_folder_uri(s7_c_pointer(chooser), s7_string(uri))));
+}
+
+static s7_pointer lg_gtk_file_chooser_get_current_folder_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_current_folder_uri "gchar* gtk_file_chooser_get_current_folder_uri(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_current_folder_uri", 1, chooser, "GtkFileChooser*");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_file_chooser_get_current_folder_uri(s7_c_pointer(chooser));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_file_chooser_set_preview_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_preview_widget "void gtk_file_chooser_set_preview_widget(GtkFileChooser* chooser, \
+GtkWidget* preview_widget)"
+  s7_pointer _p;
+  s7_pointer chooser, preview_widget;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_preview_widget", 1, chooser, "GtkFileChooser*");
+  preview_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(preview_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_preview_widget", 2, preview_widget, "GtkWidget*");
+  gtk_file_chooser_set_preview_widget(s7_c_pointer(chooser), s7_c_pointer(preview_widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_preview_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_preview_widget "GtkWidget* gtk_file_chooser_get_preview_widget(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_preview_widget", 1, chooser, "GtkFileChooser*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_file_chooser_get_preview_widget(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_file_chooser_set_preview_widget_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_preview_widget_active "void gtk_file_chooser_set_preview_widget_active(GtkFileChooser* chooser, \
+gboolean active)"
+  s7_pointer _p;
+  s7_pointer chooser, active;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_preview_widget_active", 1, chooser, "GtkFileChooser*");
+  active = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(active)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_preview_widget_active", 2, active, "gboolean");
+  gtk_file_chooser_set_preview_widget_active(s7_c_pointer(chooser), lg_boolean(active));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_preview_widget_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_preview_widget_active "gboolean gtk_file_chooser_get_preview_widget_active(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_preview_widget_active", 1, chooser, "GtkFileChooser*");
+  return(s7_make_boolean(sc, gtk_file_chooser_get_preview_widget_active(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_file_chooser_get_preview_filename(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_preview_filename "char* gtk_file_chooser_get_preview_filename(GtkFileChooser* file_chooser)"
+  s7_pointer file_chooser;
+  file_chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(file_chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_preview_filename", 1, file_chooser, "GtkFileChooser*");
+  {
+    char* result;
+    s7_pointer rtn;
+    result = gtk_file_chooser_get_preview_filename(s7_c_pointer(file_chooser));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_file_chooser_get_preview_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_preview_uri "char* gtk_file_chooser_get_preview_uri(GtkFileChooser* file_chooser)"
+  s7_pointer file_chooser;
+  file_chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(file_chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_preview_uri", 1, file_chooser, "GtkFileChooser*");
+  {
+    char* result;
+    s7_pointer rtn;
+    result = gtk_file_chooser_get_preview_uri(s7_c_pointer(file_chooser));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_file_chooser_set_extra_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_extra_widget "void gtk_file_chooser_set_extra_widget(GtkFileChooser* chooser, \
+GtkWidget* extra_widget)"
+  s7_pointer _p;
+  s7_pointer chooser, extra_widget;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_extra_widget", 1, chooser, "GtkFileChooser*");
+  extra_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(extra_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_extra_widget", 2, extra_widget, "GtkWidget*");
+  gtk_file_chooser_set_extra_widget(s7_c_pointer(chooser), s7_c_pointer(extra_widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_extra_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_extra_widget "GtkWidget* gtk_file_chooser_get_extra_widget(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_extra_widget", 1, chooser, "GtkFileChooser*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_file_chooser_get_extra_widget(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_file_chooser_add_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_add_filter "void gtk_file_chooser_add_filter(GtkFileChooser* chooser, GtkFileFilter* filter)"
+  s7_pointer _p;
+  s7_pointer chooser, filter;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_add_filter", 1, chooser, "GtkFileChooser*");
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkFileFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_add_filter", 2, filter, "GtkFileFilter*");
+  gtk_file_chooser_add_filter(s7_c_pointer(chooser), s7_c_pointer(filter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_remove_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_remove_filter "void gtk_file_chooser_remove_filter(GtkFileChooser* chooser, \
+GtkFileFilter* filter)"
+  s7_pointer _p;
+  s7_pointer chooser, filter;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_remove_filter", 1, chooser, "GtkFileChooser*");
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkFileFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_remove_filter", 2, filter, "GtkFileFilter*");
+  gtk_file_chooser_remove_filter(s7_c_pointer(chooser), s7_c_pointer(filter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_list_filters(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_list_filters "GSList* gtk_file_chooser_list_filters(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_list_filters", 1, chooser, "GtkFileChooser*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_file_chooser_list_filters(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_file_chooser_set_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_filter "void gtk_file_chooser_set_filter(GtkFileChooser* chooser, GtkFileFilter* filter)"
+  s7_pointer _p;
+  s7_pointer chooser, filter;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_filter", 1, chooser, "GtkFileChooser*");
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkFileFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_filter", 2, filter, "GtkFileFilter*");
+  gtk_file_chooser_set_filter(s7_c_pointer(chooser), s7_c_pointer(filter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_filter "GtkFileFilter* gtk_file_chooser_get_filter(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_filter", 1, chooser, "GtkFileChooser*");
+  return(s7_make_type_with_c_pointer(sc, GtkFileFilter__sym, gtk_file_chooser_get_filter(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_file_chooser_add_shortcut_folder(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_add_shortcut_folder "gboolean gtk_file_chooser_add_shortcut_folder(GtkFileChooser* chooser, \
+char* folder, GError** [error])"
+  s7_pointer _p;
+  s7_pointer chooser, folder;
+  GError* ref_error = NULL;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_add_shortcut_folder", 1, chooser, "GtkFileChooser*");
+  folder = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(folder)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_add_shortcut_folder", 2, folder, "char*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_file_chooser_add_shortcut_folder(s7_c_pointer(chooser), (char*)s7_string(folder), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_file_chooser_remove_shortcut_folder(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_remove_shortcut_folder "gboolean gtk_file_chooser_remove_shortcut_folder(GtkFileChooser* chooser, \
+char* folder, GError** [error])"
+  s7_pointer _p;
+  s7_pointer chooser, folder;
+  GError* ref_error = NULL;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_remove_shortcut_folder", 1, chooser, "GtkFileChooser*");
+  folder = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(folder)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_remove_shortcut_folder", 2, folder, "char*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_file_chooser_remove_shortcut_folder(s7_c_pointer(chooser), (char*)s7_string(folder), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_file_chooser_list_shortcut_folders(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_list_shortcut_folders "GSList* gtk_file_chooser_list_shortcut_folders(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_list_shortcut_folders", 1, chooser, "GtkFileChooser*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_file_chooser_list_shortcut_folders(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_file_chooser_add_shortcut_folder_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_add_shortcut_folder_uri "gboolean gtk_file_chooser_add_shortcut_folder_uri(GtkFileChooser* chooser, \
+char* folder, GError** [error])"
+  s7_pointer _p;
+  s7_pointer chooser, folder;
+  GError* ref_error = NULL;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_add_shortcut_folder_uri", 1, chooser, "GtkFileChooser*");
+  folder = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(folder)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_add_shortcut_folder_uri", 2, folder, "char*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_file_chooser_add_shortcut_folder_uri(s7_c_pointer(chooser), (char*)s7_string(folder), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_file_chooser_remove_shortcut_folder_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_remove_shortcut_folder_uri "gboolean gtk_file_chooser_remove_shortcut_folder_uri(GtkFileChooser* chooser, \
+char* folder, GError** [error])"
+  s7_pointer _p;
+  s7_pointer chooser, folder;
+  GError* ref_error = NULL;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_remove_shortcut_folder_uri", 1, chooser, "GtkFileChooser*");
+  folder = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(folder)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_remove_shortcut_folder_uri", 2, folder, "char*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_file_chooser_remove_shortcut_folder_uri(s7_c_pointer(chooser), (char*)s7_string(folder), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_file_chooser_list_shortcut_folder_uris(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_list_shortcut_folder_uris "GSList* gtk_file_chooser_list_shortcut_folder_uris(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_list_shortcut_folder_uris", 1, chooser, "GtkFileChooser*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_file_chooser_list_shortcut_folder_uris(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_icon_theme_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_new "GtkIconTheme* gtk_icon_theme_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkIconTheme__sym, gtk_icon_theme_new()));
+}
+
+static s7_pointer lg_gtk_icon_theme_get_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_get_default "GtkIconTheme* gtk_icon_theme_get_default( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkIconTheme__sym, gtk_icon_theme_get_default()));
+}
+
+static s7_pointer lg_gtk_icon_theme_get_for_screen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_get_for_screen "GtkIconTheme* gtk_icon_theme_get_for_screen(GdkScreen* screen)"
+  s7_pointer screen;
+  screen = s7_car(args);
+  if (!s7_is_c_pointer_of_type(screen, GdkScreen__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_get_for_screen", 1, screen, "GdkScreen*");
+  return(s7_make_type_with_c_pointer(sc, GtkIconTheme__sym, gtk_icon_theme_get_for_screen(s7_c_pointer(screen))));
+}
+
+static s7_pointer lg_gtk_icon_theme_set_screen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_set_screen "void gtk_icon_theme_set_screen(GtkIconTheme* icon_theme, GdkScreen* screen)"
+  s7_pointer _p;
+  s7_pointer icon_theme, screen;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_set_screen", 1, icon_theme, "GtkIconTheme*");
+  screen = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(screen, GdkScreen__sym)) && (screen != lg_false)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_set_screen", 2, screen, "GdkScreen*");
+  gtk_icon_theme_set_screen(s7_c_pointer(icon_theme), s7_c_pointer(screen));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_theme_get_search_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_get_search_path "void gtk_icon_theme_get_search_path(GtkIconTheme* icon_theme, \
+gchar*** [path], gint* [n_elements])"
+  s7_pointer _p;
+  s7_pointer icon_theme;
+  gchar** ref_path = NULL;
+  gint ref_n_elements;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_get_search_path", 1, icon_theme, "GtkIconTheme*");
+  gtk_icon_theme_get_search_path(s7_c_pointer(icon_theme), &ref_path, &ref_n_elements);
+    return(s7_list(sc, 2, s7_make_c_pointer(sc, ref_path), s7_make_integer(sc, ref_n_elements)));
+}
+
+static s7_pointer lg_gtk_icon_theme_append_search_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_append_search_path "void gtk_icon_theme_append_search_path(GtkIconTheme* icon_theme, \
+gchar* path)"
+  s7_pointer _p;
+  s7_pointer icon_theme, path;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_append_search_path", 1, icon_theme, "GtkIconTheme*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(path)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_append_search_path", 2, path, "gchar*");
+  gtk_icon_theme_append_search_path(s7_c_pointer(icon_theme), s7_string(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_theme_prepend_search_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_prepend_search_path "void gtk_icon_theme_prepend_search_path(GtkIconTheme* icon_theme, \
+gchar* path)"
+  s7_pointer _p;
+  s7_pointer icon_theme, path;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_prepend_search_path", 1, icon_theme, "GtkIconTheme*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(path)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_prepend_search_path", 2, path, "gchar*");
+  gtk_icon_theme_prepend_search_path(s7_c_pointer(icon_theme), s7_string(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_theme_set_custom_theme(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_set_custom_theme "void gtk_icon_theme_set_custom_theme(GtkIconTheme* icon_theme, \
+gchar* theme_name)"
+  s7_pointer _p;
+  s7_pointer icon_theme, theme_name;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_set_custom_theme", 1, icon_theme, "GtkIconTheme*");
+  theme_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(theme_name)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_set_custom_theme", 2, theme_name, "gchar*");
+  gtk_icon_theme_set_custom_theme(s7_c_pointer(icon_theme), s7_string(theme_name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_theme_has_icon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_has_icon "gboolean gtk_icon_theme_has_icon(GtkIconTheme* icon_theme, gchar* icon_name)"
+  s7_pointer _p;
+  s7_pointer icon_theme, icon_name;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_has_icon", 1, icon_theme, "GtkIconTheme*");
+  icon_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(icon_name)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_has_icon", 2, icon_name, "gchar*");
+  return(s7_make_boolean(sc, gtk_icon_theme_has_icon(s7_c_pointer(icon_theme), s7_string(icon_name))));
+}
+
+static s7_pointer lg_gtk_icon_theme_lookup_icon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_lookup_icon "GtkIconInfo* gtk_icon_theme_lookup_icon(GtkIconTheme* icon_theme, \
+gchar* icon_name, gint size, GtkIconLookupFlags flags)"
+  s7_pointer _p;
+  s7_pointer icon_theme, icon_name, size, flags;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_icon", 1, icon_theme, "GtkIconTheme*");
+  icon_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(icon_name)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_icon", 2, icon_name, "gchar*");
+  size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(size)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_icon", 3, size, "gint");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_icon", 4, flags, "GtkIconLookupFlags");
+  return(s7_make_type_with_c_pointer(sc, GtkIconInfo__sym, gtk_icon_theme_lookup_icon(s7_c_pointer(icon_theme), s7_string(icon_name), s7_integer(size), s7_integer(flags))));
+}
+
+static s7_pointer lg_gtk_icon_theme_load_icon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_load_icon "GdkPixbuf* gtk_icon_theme_load_icon(GtkIconTheme* icon_theme, gchar* icon_name, \
+gint size, GtkIconLookupFlags flags, GError** [error])"
+  s7_pointer _p;
+  s7_pointer icon_theme, icon_name, size, flags;
+  GError* ref_error = NULL;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_icon", 1, icon_theme, "GtkIconTheme*");
+  icon_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(icon_name)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_icon", 2, icon_name, "gchar*");
+  size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(size)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_icon", 3, size, "gint");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_icon", 4, flags, "GtkIconLookupFlags");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gtk_icon_theme_load_icon(s7_c_pointer(icon_theme), s7_string(icon_name), s7_integer(size), s7_integer(flags), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_icon_theme_list_icons(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_list_icons "GList* gtk_icon_theme_list_icons(GtkIconTheme* icon_theme, gchar* context)"
+  s7_pointer _p;
+  s7_pointer icon_theme, context;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_list_icons", 1, icon_theme, "GtkIconTheme*");
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(context)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_list_icons", 2, context, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_icon_theme_list_icons(s7_c_pointer(icon_theme), s7_string(context))));
+}
+
+static s7_pointer lg_gtk_icon_theme_get_example_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_get_example_icon_name "char* gtk_icon_theme_get_example_icon_name(GtkIconTheme* icon_theme)"
+  s7_pointer icon_theme;
+  icon_theme = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_get_example_icon_name", 1, icon_theme, "GtkIconTheme*");
+  return(s7_make_string(sc, gtk_icon_theme_get_example_icon_name(s7_c_pointer(icon_theme))));
+}
+
+static s7_pointer lg_gtk_icon_theme_rescan_if_needed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_rescan_if_needed "gboolean gtk_icon_theme_rescan_if_needed(GtkIconTheme* icon_theme)"
+  s7_pointer icon_theme;
+  icon_theme = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_rescan_if_needed", 1, icon_theme, "GtkIconTheme*");
+  return(s7_make_boolean(sc, gtk_icon_theme_rescan_if_needed(s7_c_pointer(icon_theme))));
+}
+
+static s7_pointer lg_gtk_icon_info_get_base_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_info_get_base_size "gint gtk_icon_info_get_base_size(GtkIconInfo* icon_info)"
+  s7_pointer icon_info;
+  icon_info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_info, GtkIconInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_info_get_base_size", 1, icon_info, "GtkIconInfo*");
+  return(s7_make_integer(sc, gtk_icon_info_get_base_size(s7_c_pointer(icon_info))));
+}
+
+static s7_pointer lg_gtk_icon_info_get_filename(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_info_get_filename "gchar* gtk_icon_info_get_filename(GtkIconInfo* icon_info)"
+  s7_pointer icon_info;
+  icon_info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_info, GtkIconInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_info_get_filename", 1, icon_info, "GtkIconInfo*");
+  return(s7_make_string(sc, gtk_icon_info_get_filename(s7_c_pointer(icon_info))));
+}
+
+static s7_pointer lg_gtk_icon_info_load_icon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_info_load_icon "GdkPixbuf* gtk_icon_info_load_icon(GtkIconInfo* icon_info, GError** [error])"
+  s7_pointer _p;
+  s7_pointer icon_info;
+  GError* ref_error = NULL;
+  _p = args;
+  icon_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_info, GtkIconInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_info_load_icon", 1, icon_info, "GtkIconInfo*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gtk_icon_info_load_icon(s7_c_pointer(icon_info), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_tool_button_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_button_new "GtkToolItem* gtk_tool_button_new(GtkWidget* icon_widget, gchar* label)"
+  s7_pointer _p;
+  s7_pointer icon_widget, label;
+  _p = args;
+  icon_widget = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(icon_widget, GtkWidget__sym)) && (icon_widget != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tool_button_new", 1, icon_widget, "GtkWidget*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_tool_button_new", 2, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkToolItem__sym, gtk_tool_button_new(s7_c_pointer(icon_widget), s7_string(label))));
+}
+
+static s7_pointer lg_gtk_tool_button_set_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_button_set_label "void gtk_tool_button_set_label(GtkToolButton* button, gchar* label)"
+  s7_pointer _p;
+  s7_pointer button, label;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_button_set_label", 1, button, "GtkToolButton*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_tool_button_set_label", 2, label, "gchar*");
+  gtk_tool_button_set_label(s7_c_pointer(button), s7_string(label));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_button_get_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_button_get_label "gchar* gtk_tool_button_get_label(GtkToolButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_button_get_label", 1, button, "GtkToolButton*");
+  return(s7_make_string(sc, gtk_tool_button_get_label(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_tool_button_set_use_underline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_button_set_use_underline "void gtk_tool_button_set_use_underline(GtkToolButton* button, \
+gboolean use_underline)"
+  s7_pointer _p;
+  s7_pointer button, use_underline;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_button_set_use_underline", 1, button, "GtkToolButton*");
+  use_underline = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_underline)) s7_wrong_type_arg_error(sc, "gtk_tool_button_set_use_underline", 2, use_underline, "gboolean");
+  gtk_tool_button_set_use_underline(s7_c_pointer(button), lg_boolean(use_underline));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_button_get_use_underline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_button_get_use_underline "gboolean gtk_tool_button_get_use_underline(GtkToolButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_button_get_use_underline", 1, button, "GtkToolButton*");
+  return(s7_make_boolean(sc, gtk_tool_button_get_use_underline(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_tool_button_set_icon_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_button_set_icon_widget "void gtk_tool_button_set_icon_widget(GtkToolButton* button, \
+GtkWidget* icon_widget)"
+  s7_pointer _p;
+  s7_pointer button, icon_widget;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_button_set_icon_widget", 1, button, "GtkToolButton*");
+  icon_widget = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(icon_widget, GtkWidget__sym)) && (icon_widget != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tool_button_set_icon_widget", 2, icon_widget, "GtkWidget*");
+  gtk_tool_button_set_icon_widget(s7_c_pointer(button), s7_c_pointer(icon_widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_button_get_icon_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_button_get_icon_widget "GtkWidget* gtk_tool_button_get_icon_widget(GtkToolButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_button_get_icon_widget", 1, button, "GtkToolButton*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_tool_button_get_icon_widget(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_tool_button_set_label_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_button_set_label_widget "void gtk_tool_button_set_label_widget(GtkToolButton* button, \
+GtkWidget* label_widget)"
+  s7_pointer _p;
+  s7_pointer button, label_widget;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_button_set_label_widget", 1, button, "GtkToolButton*");
+  label_widget = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(label_widget, GtkWidget__sym)) && (label_widget != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tool_button_set_label_widget", 2, label_widget, "GtkWidget*");
+  gtk_tool_button_set_label_widget(s7_c_pointer(button), s7_c_pointer(label_widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_button_get_label_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_button_get_label_widget "GtkWidget* gtk_tool_button_get_label_widget(GtkToolButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_button_get_label_widget", 1, button, "GtkToolButton*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_tool_button_get_label_widget(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_tool_item_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_new "GtkToolItem* gtk_tool_item_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkToolItem__sym, gtk_tool_item_new()));
+}
+
+static s7_pointer lg_gtk_tool_item_set_homogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_set_homogeneous "void gtk_tool_item_set_homogeneous(GtkToolItem* tool_item, \
+gboolean homogeneous)"
+  s7_pointer _p;
+  s7_pointer tool_item, homogeneous;
+  _p = args;
+  tool_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_homogeneous", 1, tool_item, "GtkToolItem*");
+  homogeneous = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(homogeneous)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_homogeneous", 2, homogeneous, "gboolean");
+  gtk_tool_item_set_homogeneous(s7_c_pointer(tool_item), lg_boolean(homogeneous));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_get_homogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_get_homogeneous "gboolean gtk_tool_item_get_homogeneous(GtkToolItem* tool_item)"
+  s7_pointer tool_item;
+  tool_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_get_homogeneous", 1, tool_item, "GtkToolItem*");
+  return(s7_make_boolean(sc, gtk_tool_item_get_homogeneous(s7_c_pointer(tool_item))));
+}
+
+static s7_pointer lg_gtk_tool_item_set_expand(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_set_expand "void gtk_tool_item_set_expand(GtkToolItem* tool_item, gboolean expand)"
+  s7_pointer _p;
+  s7_pointer tool_item, expand;
+  _p = args;
+  tool_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_expand", 1, tool_item, "GtkToolItem*");
+  expand = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(expand)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_expand", 2, expand, "gboolean");
+  gtk_tool_item_set_expand(s7_c_pointer(tool_item), lg_boolean(expand));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_get_expand(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_get_expand "gboolean gtk_tool_item_get_expand(GtkToolItem* tool_item)"
+  s7_pointer tool_item;
+  tool_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_get_expand", 1, tool_item, "GtkToolItem*");
+  return(s7_make_boolean(sc, gtk_tool_item_get_expand(s7_c_pointer(tool_item))));
+}
+
+static s7_pointer lg_gtk_tool_item_set_visible_horizontal(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_set_visible_horizontal "void gtk_tool_item_set_visible_horizontal(GtkToolItem* toolitem, \
+gboolean visible_horizontal)"
+  s7_pointer _p;
+  s7_pointer toolitem, visible_horizontal;
+  _p = args;
+  toolitem = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(toolitem, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_visible_horizontal", 1, toolitem, "GtkToolItem*");
+  visible_horizontal = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(visible_horizontal)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_visible_horizontal", 2, visible_horizontal, "gboolean");
+  gtk_tool_item_set_visible_horizontal(s7_c_pointer(toolitem), lg_boolean(visible_horizontal));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_get_visible_horizontal(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_get_visible_horizontal "gboolean gtk_tool_item_get_visible_horizontal(GtkToolItem* toolitem)"
+  s7_pointer toolitem;
+  toolitem = s7_car(args);
+  if (!s7_is_c_pointer_of_type(toolitem, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_get_visible_horizontal", 1, toolitem, "GtkToolItem*");
+  return(s7_make_boolean(sc, gtk_tool_item_get_visible_horizontal(s7_c_pointer(toolitem))));
+}
+
+static s7_pointer lg_gtk_tool_item_set_visible_vertical(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_set_visible_vertical "void gtk_tool_item_set_visible_vertical(GtkToolItem* toolitem, \
+gboolean visible_vertical)"
+  s7_pointer _p;
+  s7_pointer toolitem, visible_vertical;
+  _p = args;
+  toolitem = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(toolitem, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_visible_vertical", 1, toolitem, "GtkToolItem*");
+  visible_vertical = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(visible_vertical)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_visible_vertical", 2, visible_vertical, "gboolean");
+  gtk_tool_item_set_visible_vertical(s7_c_pointer(toolitem), lg_boolean(visible_vertical));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_get_visible_vertical(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_get_visible_vertical "gboolean gtk_tool_item_get_visible_vertical(GtkToolItem* toolitem)"
+  s7_pointer toolitem;
+  toolitem = s7_car(args);
+  if (!s7_is_c_pointer_of_type(toolitem, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_get_visible_vertical", 1, toolitem, "GtkToolItem*");
+  return(s7_make_boolean(sc, gtk_tool_item_get_visible_vertical(s7_c_pointer(toolitem))));
+}
+
+static s7_pointer lg_gtk_tool_item_get_is_important(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_get_is_important "gboolean gtk_tool_item_get_is_important(GtkToolItem* tool_item)"
+  s7_pointer tool_item;
+  tool_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_get_is_important", 1, tool_item, "GtkToolItem*");
+  return(s7_make_boolean(sc, gtk_tool_item_get_is_important(s7_c_pointer(tool_item))));
+}
+
+static s7_pointer lg_gtk_tool_item_set_is_important(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_set_is_important "void gtk_tool_item_set_is_important(GtkToolItem* tool_item, \
+gboolean is_important)"
+  s7_pointer _p;
+  s7_pointer tool_item, is_important;
+  _p = args;
+  tool_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_is_important", 1, tool_item, "GtkToolItem*");
+  is_important = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(is_important)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_is_important", 2, is_important, "gboolean");
+  gtk_tool_item_set_is_important(s7_c_pointer(tool_item), lg_boolean(is_important));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_get_orientation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_get_orientation "GtkOrientation gtk_tool_item_get_orientation(GtkToolItem* tool_item)"
+  s7_pointer tool_item;
+  tool_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_get_orientation", 1, tool_item, "GtkToolItem*");
+  return(s7_make_integer(sc, gtk_tool_item_get_orientation(s7_c_pointer(tool_item))));
+}
+
+static s7_pointer lg_gtk_tool_item_get_toolbar_style(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_get_toolbar_style "GtkToolbarStyle gtk_tool_item_get_toolbar_style(GtkToolItem* tool_item)"
+  s7_pointer tool_item;
+  tool_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_get_toolbar_style", 1, tool_item, "GtkToolItem*");
+  return(s7_make_integer(sc, gtk_tool_item_get_toolbar_style(s7_c_pointer(tool_item))));
+}
+
+static s7_pointer lg_gtk_tool_item_retrieve_proxy_menu_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_retrieve_proxy_menu_item "GtkWidget* gtk_tool_item_retrieve_proxy_menu_item(GtkToolItem* tool_item)"
+  s7_pointer tool_item;
+  tool_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_retrieve_proxy_menu_item", 1, tool_item, "GtkToolItem*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_tool_item_retrieve_proxy_menu_item(s7_c_pointer(tool_item))));
+}
+
+static s7_pointer lg_gtk_tool_item_get_proxy_menu_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_get_proxy_menu_item "GtkWidget* gtk_tool_item_get_proxy_menu_item(GtkToolItem* tool_item, \
+gchar* menu_item_id)"
+  s7_pointer _p;
+  s7_pointer tool_item, menu_item_id;
+  _p = args;
+  tool_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_get_proxy_menu_item", 1, tool_item, "GtkToolItem*");
+  menu_item_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(menu_item_id)) s7_wrong_type_arg_error(sc, "gtk_tool_item_get_proxy_menu_item", 2, menu_item_id, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_tool_item_get_proxy_menu_item(s7_c_pointer(tool_item), s7_string(menu_item_id))));
+}
+
+static s7_pointer lg_gtk_tool_item_set_proxy_menu_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_set_proxy_menu_item "void gtk_tool_item_set_proxy_menu_item(GtkToolItem* tool_item, \
+gchar* menu_item_id, GtkWidget* menu_item)"
+  s7_pointer _p;
+  s7_pointer tool_item, menu_item_id, menu_item;
+  _p = args;
+  tool_item = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) && (tool_item != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_proxy_menu_item", 1, tool_item, "GtkToolItem*");
+  menu_item_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(menu_item_id)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_proxy_menu_item", 2, menu_item_id, "gchar*");
+  menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(menu_item, GtkWidget__sym)) && (menu_item != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_proxy_menu_item", 3, menu_item, "GtkWidget*");
+  gtk_tool_item_set_proxy_menu_item(s7_c_pointer(tool_item), s7_string(menu_item_id), s7_c_pointer(menu_item));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_store_remove(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_remove "gboolean gtk_list_store_remove(GtkListStore* list_store, GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer list_store, iter;
+  _p = args;
+  list_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_remove", 1, list_store, "GtkListStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_remove", 2, iter, "GtkTreeIter*");
+  return(s7_make_boolean(sc, gtk_list_store_remove(s7_c_pointer(list_store), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gdk_display_set_double_click_distance(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_set_double_click_distance "void gdk_display_set_double_click_distance(GdkDisplay* display, \
+guint distance)"
+  s7_pointer _p;
+  s7_pointer display, distance;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_set_double_click_distance", 1, display, "GdkDisplay*");
+  distance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(distance)) s7_wrong_type_arg_error(sc, "gdk_display_set_double_click_distance", 2, distance, "guint");
+  gdk_display_set_double_click_distance(s7_c_pointer(display), s7_integer(distance));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_display_get_default_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_get_default_group "GdkWindow* gdk_display_get_default_group(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_get_default_group", 1, display, "GdkDisplay*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_display_get_default_group(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_window_get_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_group "GdkWindow* gdk_window_get_group(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_group", 1, window, "GdkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_window_get_group(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_cell_layout_reorder(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_layout_reorder "void gtk_cell_layout_reorder(GtkCellLayout* cell_layout, GtkCellRenderer* cell, \
+gint position)"
+  s7_pointer _p;
+  s7_pointer cell_layout, cell, position;
+  _p = args;
+  cell_layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_layout, GtkCellLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_reorder", 1, cell_layout, "GtkCellLayout*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_reorder", 2, cell, "GtkCellRenderer*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_reorder", 3, position, "gint");
+  gtk_cell_layout_reorder(s7_c_pointer(cell_layout), s7_c_pointer(cell), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_clipboard_request_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_request_targets "void gtk_clipboard_request_targets(GtkClipboard* clipboard, \
+GtkClipboardTargetsReceivedFunc func, lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer clipboard, func, func_info;
+  _p = args;
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_targets", 1, clipboard, "GtkClipboard*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkClipboardTargetsReceivedFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_targets", 2, func, "GtkClipboardTargetsReceivedFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_targets", 3, func_info, "lambda_data");
+  {
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    gtk_clipboard_request_targets(s7_c_pointer(clipboard), s7_c_pointer(func), (gpointer)lg_ptr);
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_clipboard_wait_for_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_wait_for_targets "gboolean gtk_clipboard_wait_for_targets(GtkClipboard* clipboard, \
+GdkAtom** [targets], gint* [n_targets])"
+  s7_pointer _p;
+  s7_pointer clipboard;
+  GdkAtom* ref_targets = NULL;
+  gint ref_n_targets;
+  _p = args;
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_for_targets", 1, clipboard, "GtkClipboard*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_clipboard_wait_for_targets(s7_c_pointer(clipboard), &ref_targets, &ref_n_targets));
+      return(s7_list(sc, 3, result, s7_make_c_pointer(sc, ref_targets), s7_make_integer(sc, ref_n_targets)));
+   }
+}
+
+static s7_pointer lg_gtk_menu_shell_cancel(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_shell_cancel "void gtk_menu_shell_cancel(GtkMenuShell* menu_shell)"
+  s7_pointer menu_shell;
+  menu_shell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_shell, GtkMenuShell__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_cancel", 1, menu_shell, "GtkMenuShell*");
+  gtk_menu_shell_cancel(s7_c_pointer(menu_shell));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_paned_get_child1(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_paned_get_child1 "GtkWidget* gtk_paned_get_child1(GtkPaned* paned)"
+  s7_pointer paned;
+  paned = s7_car(args);
+  if (!s7_is_c_pointer_of_type(paned, GtkPaned__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_get_child1", 1, paned, "GtkPaned*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_paned_get_child1(s7_c_pointer(paned))));
+}
+
+static s7_pointer lg_gtk_paned_get_child2(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_paned_get_child2 "GtkWidget* gtk_paned_get_child2(GtkPaned* paned)"
+  s7_pointer paned;
+  paned = s7_car(args);
+  if (!s7_is_c_pointer_of_type(paned, GtkPaned__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_get_child2", 1, paned, "GtkPaned*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_paned_get_child2(s7_c_pointer(paned))));
+}
+
+static s7_pointer lg_gtk_window_set_accept_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_accept_focus "void gtk_window_set_accept_focus(GtkWindow* window, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_accept_focus", 1, window, "GtkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_window_set_accept_focus", 2, setting, "gboolean");
+  gtk_window_set_accept_focus(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_accept_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_accept_focus "gboolean gtk_window_get_accept_focus(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_accept_focus", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_get_accept_focus(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_g_list_nth_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_list_nth_data "gpointer g_list_nth_data(GList* list, guint n)"
+  s7_pointer _p;
+  s7_pointer list, n;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, GList__sym)) s7_wrong_type_arg_error(sc, "g_list_nth_data", 1, list, "GList*");
+  n = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n)) s7_wrong_type_arg_error(sc, "g_list_nth_data", 2, n, "guint");
+  return(s7_make_type_with_c_pointer(sc, gpointer_sym, g_list_nth_data(s7_c_pointer(list), s7_integer(n))));
+}
+
+static s7_pointer lg_gtk_accel_map_get(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_map_get "GtkAccelMap* gtk_accel_map_get( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkAccelMap__sym, gtk_accel_map_get()));
+}
+
+static s7_pointer lg_gtk_combo_box_popup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_popup "void gtk_combo_box_popup(GtkComboBox* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_popup", 1, combo_box, "GtkComboBox*");
+  gtk_combo_box_popup(s7_c_pointer(combo_box));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_popdown(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_popdown "void gtk_combo_box_popdown(GtkComboBox* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_popdown", 1, combo_box, "GtkComboBox*");
+  gtk_combo_box_popdown(s7_c_pointer(combo_box));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_radio_menu_item_new_from_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_menu_item_new_from_widget "GtkWidget* gtk_radio_menu_item_new_from_widget(GtkRadioMenuItem* group)"
+  s7_pointer group;
+  group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(group, GtkRadioMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_new_from_widget", 1, group, "GtkRadioMenuItem*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_radio_menu_item_new_from_widget(s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_radio_menu_item_new_with_mnemonic_from_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_menu_item_new_with_mnemonic_from_widget "GtkWidget* gtk_radio_menu_item_new_with_mnemonic_from_widget(GtkRadioMenuItem* group, \
+gchar* label)"
+  s7_pointer _p;
+  s7_pointer group, label;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkRadioMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_new_with_mnemonic_from_widget", 1, group, "GtkRadioMenuItem*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_new_with_mnemonic_from_widget", 2, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_radio_menu_item_new_with_mnemonic_from_widget(s7_c_pointer(group), s7_string(label))));
+}
+
+static s7_pointer lg_gtk_radio_menu_item_new_with_label_from_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_menu_item_new_with_label_from_widget "GtkWidget* gtk_radio_menu_item_new_with_label_from_widget(GtkRadioMenuItem* group, \
+gchar* label)"
+  s7_pointer _p;
+  s7_pointer group, label;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkRadioMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_new_with_label_from_widget", 1, group, "GtkRadioMenuItem*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_new_with_label_from_widget", 2, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_radio_menu_item_new_with_label_from_widget(s7_c_pointer(group), s7_string(label))));
+}
+
+static s7_pointer lg_gtk_scale_get_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_get_layout "PangoLayout* gtk_scale_get_layout(GtkScale* scale)"
+  s7_pointer scale;
+  scale = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scale, GtkScale__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_get_layout", 1, scale, "GtkScale*");
+  return(s7_make_type_with_c_pointer(sc, PangoLayout__sym, gtk_scale_get_layout(s7_c_pointer(scale))));
+}
+
+static s7_pointer lg_gtk_scale_get_layout_offsets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_get_layout_offsets "void gtk_scale_get_layout_offsets(GtkScale* scale, gint* [x], \
+gint* [y])"
+  s7_pointer _p;
+  s7_pointer scale;
+  gint ref_x;
+  gint ref_y;
+  _p = args;
+  scale = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scale, GtkScale__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_get_layout_offsets", 1, scale, "GtkScale*");
+  gtk_scale_get_layout_offsets(s7_c_pointer(scale), &ref_x, &ref_y);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_x), s7_make_integer(sc, ref_y)));
+}
+
+static s7_pointer lg_gtk_drag_source_get_target_list(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_source_get_target_list "GtkTargetList* gtk_drag_source_get_target_list(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_source_get_target_list", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkTargetList__sym, gtk_drag_source_get_target_list(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_drag_source_set_target_list(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_source_set_target_list "void gtk_drag_source_set_target_list(GtkWidget* widget, \
+GtkTargetList* target_list)"
+  s7_pointer _p;
+  s7_pointer widget, target_list;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_source_set_target_list", 1, widget, "GtkWidget*");
+  target_list = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(target_list, GtkTargetList__sym)) && (target_list != lg_false)) s7_wrong_type_arg_error(sc, "gtk_drag_source_set_target_list", 2, target_list, "GtkTargetList*");
+  gtk_drag_source_set_target_list(s7_c_pointer(widget), s7_c_pointer(target_list));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_set_alignment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_alignment "void gtk_entry_set_alignment(GtkEntry* entry, gfloat xalign)"
+  s7_pointer _p;
+  s7_pointer entry, xalign;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_alignment", 1, entry, "GtkEntry*");
+  xalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xalign)) s7_wrong_type_arg_error(sc, "gtk_entry_set_alignment", 2, xalign, "gfloat");
+  gtk_entry_set_alignment(s7_c_pointer(entry), s7_real(xalign));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_alignment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_alignment "gfloat gtk_entry_get_alignment(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_alignment", 1, entry, "GtkEntry*");
+  return(s7_make_real(sc, gtk_entry_get_alignment(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_file_chooser_set_use_preview_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_use_preview_label "void gtk_file_chooser_set_use_preview_label(GtkFileChooser* chooser, \
+gboolean use_label)"
+  s7_pointer _p;
+  s7_pointer chooser, use_label;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_use_preview_label", 1, chooser, "GtkFileChooser*");
+  use_label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_label)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_use_preview_label", 2, use_label, "gboolean");
+  gtk_file_chooser_set_use_preview_label(s7_c_pointer(chooser), lg_boolean(use_label));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_use_preview_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_use_preview_label "gboolean gtk_file_chooser_get_use_preview_label(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_use_preview_label", 1, chooser, "GtkFileChooser*");
+  return(s7_make_boolean(sc, gtk_file_chooser_get_use_preview_label(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_widget_list_mnemonic_labels(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_list_mnemonic_labels "GList* gtk_widget_list_mnemonic_labels(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_list_mnemonic_labels", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_widget_list_mnemonic_labels(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_add_mnemonic_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_add_mnemonic_label "void gtk_widget_add_mnemonic_label(GtkWidget* widget, GtkWidget* label)"
+  s7_pointer _p;
+  s7_pointer widget, label;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_add_mnemonic_label", 1, widget, "GtkWidget*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_add_mnemonic_label", 2, label, "GtkWidget*");
+  gtk_widget_add_mnemonic_label(s7_c_pointer(widget), s7_c_pointer(label));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_remove_mnemonic_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_remove_mnemonic_label "void gtk_widget_remove_mnemonic_label(GtkWidget* widget, \
+GtkWidget* label)"
+  s7_pointer _p;
+  s7_pointer widget, label;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_remove_mnemonic_label", 1, widget, "GtkWidget*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_remove_mnemonic_label", 2, label, "GtkWidget*");
+  gtk_widget_remove_mnemonic_label(s7_c_pointer(widget), s7_c_pointer(label));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_activate_key(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_activate_key "gboolean gtk_window_activate_key(GtkWindow* window, GdkEventKey* event)"
+  s7_pointer _p;
+  s7_pointer window, event;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_activate_key", 1, window, "GtkWindow*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEventKey__sym)) s7_wrong_type_arg_error(sc, "gtk_window_activate_key", 2, event, "GdkEventKey*");
+  return(s7_make_boolean(sc, gtk_window_activate_key(s7_c_pointer(window), s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gtk_window_propagate_key_event(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_propagate_key_event "gboolean gtk_window_propagate_key_event(GtkWindow* window, \
+GdkEventKey* event)"
+  s7_pointer _p;
+  s7_pointer window, event;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_propagate_key_event", 1, window, "GtkWindow*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEventKey__sym)) s7_wrong_type_arg_error(sc, "gtk_window_propagate_key_event", 2, event, "GdkEventKey*");
+  return(s7_make_boolean(sc, gtk_window_propagate_key_event(s7_c_pointer(window), s7_c_pointer(event))));
+}
+
+static s7_pointer lg_g_quark_from_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_quark_from_string "GQuark g_quark_from_string(gchar* string)"
+  s7_pointer string;
+  string = s7_car(args);
+  if (!s7_is_string(string)) s7_wrong_type_arg_error(sc, "g_quark_from_string", 1, string, "gchar*");
+  return(s7_make_integer(sc, g_quark_from_string(s7_string(string))));
+}
+
+static s7_pointer lg_g_quark_to_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_quark_to_string "gchar* g_quark_to_string(GQuark quark)"
+  s7_pointer quark;
+  quark = s7_car(args);
+  if (!s7_is_integer(quark)) s7_wrong_type_arg_error(sc, "g_quark_to_string", 1, quark, "GQuark");
+  return(s7_make_string(sc, g_quark_to_string(s7_integer(quark))));
+}
+
+static s7_pointer lg_gtk_cell_view_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_view_new "GtkWidget* gtk_cell_view_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_cell_view_new()));
+}
+
+static s7_pointer lg_gtk_cell_view_new_with_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_view_new_with_text "GtkWidget* gtk_cell_view_new_with_text(gchar* text)"
+  s7_pointer text;
+  text = s7_car(args);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_cell_view_new_with_text", 1, text, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_cell_view_new_with_text(s7_string(text))));
+}
+
+static s7_pointer lg_gtk_cell_view_new_with_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_view_new_with_markup "GtkWidget* gtk_cell_view_new_with_markup(gchar* markup)"
+  s7_pointer markup;
+  markup = s7_car(args);
+  if (!s7_is_string(markup)) s7_wrong_type_arg_error(sc, "gtk_cell_view_new_with_markup", 1, markup, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_cell_view_new_with_markup(s7_string(markup))));
+}
+
+static s7_pointer lg_gtk_cell_view_new_with_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_view_new_with_pixbuf "GtkWidget* gtk_cell_view_new_with_pixbuf(GdkPixbuf* pixbuf)"
+  s7_pointer pixbuf;
+  pixbuf = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_view_new_with_pixbuf", 1, pixbuf, "GdkPixbuf*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_cell_view_new_with_pixbuf(s7_c_pointer(pixbuf))));
+}
+
+static s7_pointer lg_gtk_cell_view_set_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_view_set_model "void gtk_cell_view_set_model(GtkCellView* cell_view, GtkTreeModel* model)"
+  s7_pointer _p;
+  s7_pointer cell_view, model;
+  _p = args;
+  cell_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_view, GtkCellView__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_view_set_model", 1, cell_view, "GtkCellView*");
+  model = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(model, GtkTreeModel__sym)) && (model != lg_false)) s7_wrong_type_arg_error(sc, "gtk_cell_view_set_model", 2, model, "GtkTreeModel*");
+  gtk_cell_view_set_model(s7_c_pointer(cell_view), s7_c_pointer(model));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_view_set_displayed_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_view_set_displayed_row "void gtk_cell_view_set_displayed_row(GtkCellView* cell_view, \
+GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer cell_view, path;
+  _p = args;
+  cell_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_view, GtkCellView__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_view_set_displayed_row", 1, cell_view, "GtkCellView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_view_set_displayed_row", 2, path, "GtkTreePath*");
+  gtk_cell_view_set_displayed_row(s7_c_pointer(cell_view), s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_view_get_displayed_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_view_get_displayed_row "GtkTreePath* gtk_cell_view_get_displayed_row(GtkCellView* cell_view)"
+  s7_pointer cell_view;
+  cell_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cell_view, GtkCellView__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_view_get_displayed_row", 1, cell_view, "GtkCellView*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreePath__sym, gtk_cell_view_get_displayed_row(s7_c_pointer(cell_view))));
+}
+
+static s7_pointer lg_gtk_combo_box_get_wrap_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_get_wrap_width "gint gtk_combo_box_get_wrap_width(GtkComboBox* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_get_wrap_width", 1, combo_box, "GtkComboBox*");
+  return(s7_make_integer(sc, gtk_combo_box_get_wrap_width(s7_c_pointer(combo_box))));
+}
+
+static s7_pointer lg_gtk_combo_box_get_row_span_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_get_row_span_column "gint gtk_combo_box_get_row_span_column(GtkComboBox* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_get_row_span_column", 1, combo_box, "GtkComboBox*");
+  return(s7_make_integer(sc, gtk_combo_box_get_row_span_column(s7_c_pointer(combo_box))));
+}
+
+static s7_pointer lg_gtk_combo_box_get_column_span_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_get_column_span_column "gint gtk_combo_box_get_column_span_column(GtkComboBox* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_get_column_span_column", 1, combo_box, "GtkComboBox*");
+  return(s7_make_integer(sc, gtk_combo_box_get_column_span_column(s7_c_pointer(combo_box))));
+}
+
+static s7_pointer lg_gtk_drag_dest_add_text_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_dest_add_text_targets "void gtk_drag_dest_add_text_targets(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_add_text_targets", 1, widget, "GtkWidget*");
+  gtk_drag_dest_add_text_targets(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_source_add_text_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_source_add_text_targets "void gtk_drag_source_add_text_targets(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_source_add_text_targets", 1, widget, "GtkWidget*");
+  gtk_drag_source_add_text_targets(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_insert_prefix(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_insert_prefix "void gtk_entry_completion_insert_prefix(GtkEntryCompletion* completion)"
+  s7_pointer completion;
+  completion = s7_car(args);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_insert_prefix", 1, completion, "GtkEntryCompletion*");
+  gtk_entry_completion_insert_prefix(s7_c_pointer(completion));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_set_inline_completion(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_set_inline_completion "void gtk_entry_completion_set_inline_completion(GtkEntryCompletion* completion, \
+gboolean inline_completion)"
+  s7_pointer _p;
+  s7_pointer completion, inline_completion;
+  _p = args;
+  completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_inline_completion", 1, completion, "GtkEntryCompletion*");
+  inline_completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(inline_completion)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_inline_completion", 2, inline_completion, "gboolean");
+  gtk_entry_completion_set_inline_completion(s7_c_pointer(completion), lg_boolean(inline_completion));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_get_inline_completion(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_get_inline_completion "gboolean gtk_entry_completion_get_inline_completion(GtkEntryCompletion* completion)"
+  s7_pointer completion;
+  completion = s7_car(args);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_get_inline_completion", 1, completion, "GtkEntryCompletion*");
+  return(s7_make_boolean(sc, gtk_entry_completion_get_inline_completion(s7_c_pointer(completion))));
+}
+
+static s7_pointer lg_gtk_entry_completion_set_popup_completion(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_set_popup_completion "void gtk_entry_completion_set_popup_completion(GtkEntryCompletion* completion, \
+gboolean popup_completion)"
+  s7_pointer _p;
+  s7_pointer completion, popup_completion;
+  _p = args;
+  completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_popup_completion", 1, completion, "GtkEntryCompletion*");
+  popup_completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(popup_completion)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_popup_completion", 2, popup_completion, "gboolean");
+  gtk_entry_completion_set_popup_completion(s7_c_pointer(completion), lg_boolean(popup_completion));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_get_popup_completion(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_get_popup_completion "gboolean gtk_entry_completion_get_popup_completion(GtkEntryCompletion* completion)"
+  s7_pointer completion;
+  completion = s7_car(args);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_get_popup_completion", 1, completion, "GtkEntryCompletion*");
+  return(s7_make_boolean(sc, gtk_entry_completion_get_popup_completion(s7_c_pointer(completion))));
+}
+
+static s7_pointer lg_gtk_entry_completion_get_text_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_get_text_column "gint gtk_entry_completion_get_text_column(GtkEntryCompletion* completion)"
+  s7_pointer completion;
+  completion = s7_car(args);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_get_text_column", 1, completion, "GtkEntryCompletion*");
+  return(s7_make_integer(sc, gtk_entry_completion_get_text_column(s7_c_pointer(completion))));
+}
+
+static s7_pointer lg_gtk_icon_theme_get_icon_sizes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_get_icon_sizes "gint* gtk_icon_theme_get_icon_sizes(GtkIconTheme* icon_theme, \
+gchar* icon_name)"
+  s7_pointer _p;
+  s7_pointer icon_theme, icon_name;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_get_icon_sizes", 1, icon_theme, "GtkIconTheme*");
+  icon_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(icon_name)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_get_icon_sizes", 2, icon_name, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, gint__sym, gtk_icon_theme_get_icon_sizes(s7_c_pointer(icon_theme), s7_string(icon_name))));
+}
+
+static s7_pointer lg_gtk_menu_get_for_attach_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_get_for_attach_widget "GList* gtk_menu_get_for_attach_widget(GtkWidget* widget, \
+)"
+  s7_pointer widget ;
+  widget  = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget , GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_get_for_attach_widget", 1, widget , "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_menu_get_for_attach_widget(s7_c_pointer(widget ))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_fixed_height_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_fixed_height_mode "void gtk_tree_view_set_fixed_height_mode(GtkTreeView* tree_view, \
+gboolean enable)"
+  s7_pointer _p;
+  s7_pointer tree_view, enable;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_fixed_height_mode", 1, tree_view, "GtkTreeView*");
+  enable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(enable)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_fixed_height_mode", 2, enable, "gboolean");
+  gtk_tree_view_set_fixed_height_mode(s7_c_pointer(tree_view), lg_boolean(enable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_fixed_height_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_fixed_height_mode "gboolean gtk_tree_view_get_fixed_height_mode(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_fixed_height_mode", 1, tree_view, "GtkTreeView*");
+  return(s7_make_boolean(sc, gtk_tree_view_get_fixed_height_mode(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_hover_selection(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_hover_selection "void gtk_tree_view_set_hover_selection(GtkTreeView* tree_view, \
+gboolean hover)"
+  s7_pointer _p;
+  s7_pointer tree_view, hover;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_hover_selection", 1, tree_view, "GtkTreeView*");
+  hover = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(hover)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_hover_selection", 2, hover, "gboolean");
+  gtk_tree_view_set_hover_selection(s7_c_pointer(tree_view), lg_boolean(hover));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_hover_selection(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_hover_selection "gboolean gtk_tree_view_get_hover_selection(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_hover_selection", 1, tree_view, "GtkTreeView*");
+  return(s7_make_boolean(sc, gtk_tree_view_get_hover_selection(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_row_separator_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_row_separator_func "void gtk_tree_view_set_row_separator_func(GtkTreeView* tree_view, \
+GtkTreeViewRowSeparatorFunc func, lambda_data func_info, GtkDestroyNotify destroy)"
+  s7_pointer _p;
+  s7_pointer tree_view, func, func_info, destroy;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_row_separator_func", 1, tree_view, "GtkTreeView*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkTreeViewRowSeparatorFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_row_separator_func", 2, func, "GtkTreeViewRowSeparatorFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_row_separator_func", 3, func_info, "lambda_data");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_row_separator_func", 4, destroy, "GtkDestroyNotify");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 3, destroy);
+    gtk_tree_view_set_row_separator_func(s7_c_pointer(tree_view), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(destroy));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_window_set_focus_on_map(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_focus_on_map "void gtk_window_set_focus_on_map(GtkWindow* window, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_focus_on_map", 1, window, "GtkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_window_set_focus_on_map", 2, setting, "gboolean");
+  gtk_window_set_focus_on_map(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_focus_on_map(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_focus_on_map "gboolean gtk_window_get_focus_on_map(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_focus_on_map", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_get_focus_on_map(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_icon_name "void gtk_window_set_icon_name(GtkWindow* window, gchar* name)"
+  s7_pointer _p;
+  s7_pointer window, name;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_icon_name", 1, window, "GtkWindow*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_window_set_icon_name", 2, name, "gchar*");
+  gtk_window_set_icon_name(s7_c_pointer(window), s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_icon_name "gchar* gtk_window_get_icon_name(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_icon_name", 1, window, "GtkWindow*");
+  return(s7_make_string(sc, gtk_window_get_icon_name(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_default_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_default_icon_name "void gtk_window_set_default_icon_name(gchar* name)"
+  s7_pointer name;
+  name = s7_car(args);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_window_set_default_icon_name", 1, name, "gchar*");
+  gtk_window_set_default_icon_name(s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_about_dialog_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_new "GtkWidget* gtk_about_dialog_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_about_dialog_new()));
+}
+
+static s7_pointer lg_gtk_about_dialog_get_version(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_get_version "gchar* gtk_about_dialog_get_version(GtkAboutDialog* about)"
+  s7_pointer about;
+  about = s7_car(args);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_get_version", 1, about, "GtkAboutDialog*");
+  return(s7_make_string(sc, gtk_about_dialog_get_version(s7_c_pointer(about))));
+}
+
+static s7_pointer lg_gtk_about_dialog_set_version(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_set_version "void gtk_about_dialog_set_version(GtkAboutDialog* about, gchar* version)"
+  s7_pointer _p;
+  s7_pointer about, version;
+  _p = args;
+  about = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_version", 1, about, "GtkAboutDialog*");
+  version = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(version)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_version", 2, version, "gchar*");
+  gtk_about_dialog_set_version(s7_c_pointer(about), s7_string(version));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_about_dialog_get_copyright(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_get_copyright "gchar* gtk_about_dialog_get_copyright(GtkAboutDialog* about)"
+  s7_pointer about;
+  about = s7_car(args);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_get_copyright", 1, about, "GtkAboutDialog*");
+  return(s7_make_string(sc, gtk_about_dialog_get_copyright(s7_c_pointer(about))));
+}
+
+static s7_pointer lg_gtk_about_dialog_set_copyright(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_set_copyright "void gtk_about_dialog_set_copyright(GtkAboutDialog* about, \
+gchar* copyright)"
+  s7_pointer _p;
+  s7_pointer about, copyright;
+  _p = args;
+  about = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_copyright", 1, about, "GtkAboutDialog*");
+  copyright = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(copyright)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_copyright", 2, copyright, "gchar*");
+  gtk_about_dialog_set_copyright(s7_c_pointer(about), s7_string(copyright));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_about_dialog_get_comments(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_get_comments "gchar* gtk_about_dialog_get_comments(GtkAboutDialog* about)"
+  s7_pointer about;
+  about = s7_car(args);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_get_comments", 1, about, "GtkAboutDialog*");
+  return(s7_make_string(sc, gtk_about_dialog_get_comments(s7_c_pointer(about))));
+}
+
+static s7_pointer lg_gtk_about_dialog_set_comments(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_set_comments "void gtk_about_dialog_set_comments(GtkAboutDialog* about, \
+gchar* comments)"
+  s7_pointer _p;
+  s7_pointer about, comments;
+  _p = args;
+  about = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_comments", 1, about, "GtkAboutDialog*");
+  comments = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(comments)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_comments", 2, comments, "gchar*");
+  gtk_about_dialog_set_comments(s7_c_pointer(about), s7_string(comments));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_about_dialog_get_website(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_get_website "gchar* gtk_about_dialog_get_website(GtkAboutDialog* about)"
+  s7_pointer about;
+  about = s7_car(args);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_get_website", 1, about, "GtkAboutDialog*");
+  return(s7_make_string(sc, gtk_about_dialog_get_website(s7_c_pointer(about))));
+}
+
+static s7_pointer lg_gtk_about_dialog_set_website(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_set_website "void gtk_about_dialog_set_website(GtkAboutDialog* about, gchar* website)"
+  s7_pointer _p;
+  s7_pointer about, website;
+  _p = args;
+  about = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_website", 1, about, "GtkAboutDialog*");
+  website = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(website)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_website", 2, website, "gchar*");
+  gtk_about_dialog_set_website(s7_c_pointer(about), s7_string(website));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_about_dialog_get_website_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_get_website_label "gchar* gtk_about_dialog_get_website_label(GtkAboutDialog* about)"
+  s7_pointer about;
+  about = s7_car(args);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_get_website_label", 1, about, "GtkAboutDialog*");
+  return(s7_make_string(sc, gtk_about_dialog_get_website_label(s7_c_pointer(about))));
+}
+
+static s7_pointer lg_gtk_about_dialog_set_website_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_set_website_label "void gtk_about_dialog_set_website_label(GtkAboutDialog* about, \
+gchar* website_label)"
+  s7_pointer _p;
+  s7_pointer about, website_label;
+  _p = args;
+  about = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_website_label", 1, about, "GtkAboutDialog*");
+  website_label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(website_label)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_website_label", 2, website_label, "gchar*");
+  gtk_about_dialog_set_website_label(s7_c_pointer(about), s7_string(website_label));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_about_dialog_get_authors(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_get_authors "gchar** gtk_about_dialog_get_authors(GtkAboutDialog* about)"
+  s7_pointer about;
+  about = s7_car(args);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_get_authors", 1, about, "GtkAboutDialog*");
+    return(s7_make_type_with_c_pointer(sc, gchar___sym, (gchar**)gtk_about_dialog_get_authors(s7_c_pointer(about))));
+}
+
+static s7_pointer lg_gtk_about_dialog_set_authors(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_set_authors "void gtk_about_dialog_set_authors(GtkAboutDialog* about, gchar** authors)"
+  s7_pointer _p;
+  s7_pointer about, authors;
+  _p = args;
+  about = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_authors", 1, about, "GtkAboutDialog*");
+  authors = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(authors, gchar___sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_authors", 2, authors, "gchar**");
+  gtk_about_dialog_set_authors(s7_c_pointer(about), (const gchar**)s7_c_pointer(authors));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_about_dialog_get_documenters(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_get_documenters "gchar** gtk_about_dialog_get_documenters(GtkAboutDialog* about)"
+  s7_pointer about;
+  about = s7_car(args);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_get_documenters", 1, about, "GtkAboutDialog*");
+    return(s7_make_type_with_c_pointer(sc, gchar___sym, (gchar**)gtk_about_dialog_get_documenters(s7_c_pointer(about))));
+}
+
+static s7_pointer lg_gtk_about_dialog_set_documenters(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_set_documenters "void gtk_about_dialog_set_documenters(GtkAboutDialog* about, \
+gchar** documenters)"
+  s7_pointer _p;
+  s7_pointer about, documenters;
+  _p = args;
+  about = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_documenters", 1, about, "GtkAboutDialog*");
+  documenters = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(documenters, gchar___sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_documenters", 2, documenters, "gchar**");
+  gtk_about_dialog_set_documenters(s7_c_pointer(about), (const gchar**)s7_c_pointer(documenters));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_about_dialog_get_artists(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_get_artists "gchar** gtk_about_dialog_get_artists(GtkAboutDialog* about)"
+  s7_pointer about;
+  about = s7_car(args);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_get_artists", 1, about, "GtkAboutDialog*");
+    return(s7_make_type_with_c_pointer(sc, gchar___sym, (gchar**)gtk_about_dialog_get_artists(s7_c_pointer(about))));
+}
+
+static s7_pointer lg_gtk_about_dialog_set_artists(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_set_artists "void gtk_about_dialog_set_artists(GtkAboutDialog* about, gchar** artists)"
+  s7_pointer _p;
+  s7_pointer about, artists;
+  _p = args;
+  about = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_artists", 1, about, "GtkAboutDialog*");
+  artists = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(artists, gchar___sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_artists", 2, artists, "gchar**");
+  gtk_about_dialog_set_artists(s7_c_pointer(about), (const gchar**)s7_c_pointer(artists));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_about_dialog_get_translator_credits(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_get_translator_credits "gchar* gtk_about_dialog_get_translator_credits(GtkAboutDialog* about)"
+  s7_pointer about;
+  about = s7_car(args);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_get_translator_credits", 1, about, "GtkAboutDialog*");
+  return(s7_make_string(sc, gtk_about_dialog_get_translator_credits(s7_c_pointer(about))));
+}
+
+static s7_pointer lg_gtk_about_dialog_set_translator_credits(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_set_translator_credits "void gtk_about_dialog_set_translator_credits(GtkAboutDialog* about, \
+gchar* translator_credits)"
+  s7_pointer _p;
+  s7_pointer about, translator_credits;
+  _p = args;
+  about = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_translator_credits", 1, about, "GtkAboutDialog*");
+  translator_credits = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(translator_credits)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_translator_credits", 2, translator_credits, "gchar*");
+  gtk_about_dialog_set_translator_credits(s7_c_pointer(about), s7_string(translator_credits));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_about_dialog_get_logo(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_get_logo "GdkPixbuf* gtk_about_dialog_get_logo(GtkAboutDialog* about)"
+  s7_pointer about;
+  about = s7_car(args);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_get_logo", 1, about, "GtkAboutDialog*");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gtk_about_dialog_get_logo(s7_c_pointer(about))));
+}
+
+static s7_pointer lg_gtk_about_dialog_set_logo(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_set_logo "void gtk_about_dialog_set_logo(GtkAboutDialog* about, GdkPixbuf* logo)"
+  s7_pointer _p;
+  s7_pointer about, logo;
+  _p = args;
+  about = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_logo", 1, about, "GtkAboutDialog*");
+  logo = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(logo, GdkPixbuf__sym)) && (logo != lg_false)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_logo", 2, logo, "GdkPixbuf*");
+  gtk_about_dialog_set_logo(s7_c_pointer(about), s7_c_pointer(logo));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_about_dialog_get_program_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_get_program_name "gchar* gtk_about_dialog_get_program_name(GtkAboutDialog* about)"
+  s7_pointer about;
+  about = s7_car(args);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_get_program_name", 1, about, "GtkAboutDialog*");
+  return(s7_make_string(sc, gtk_about_dialog_get_program_name(s7_c_pointer(about))));
+}
+
+static s7_pointer lg_gtk_about_dialog_set_program_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_set_program_name "void gtk_about_dialog_set_program_name(GtkAboutDialog* about, \
+gchar* name)"
+  s7_pointer _p;
+  s7_pointer about, name;
+  _p = args;
+  about = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_program_name", 1, about, "GtkAboutDialog*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_program_name", 2, name, "gchar*");
+  gtk_about_dialog_set_program_name(s7_c_pointer(about), s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_new "GtkWidget* gtk_icon_view_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_icon_view_new()));
+}
+
+static s7_pointer lg_gtk_icon_view_new_with_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_new_with_model "GtkWidget* gtk_icon_view_new_with_model(GtkTreeModel* model)"
+  s7_pointer model;
+  model = s7_car(args);
+  if (!s7_is_c_pointer_of_type(model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_new_with_model", 1, model, "GtkTreeModel*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_icon_view_new_with_model(s7_c_pointer(model))));
+}
+
+static s7_pointer lg_gtk_icon_view_set_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_model "void gtk_icon_view_set_model(GtkIconView* icon_view, GtkTreeModel* model)"
+  s7_pointer _p;
+  s7_pointer icon_view, model;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_model", 1, icon_view, "GtkIconView*");
+  model = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(model, GtkTreeModel__sym)) && (model != lg_false)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_model", 2, model, "GtkTreeModel*");
+  gtk_icon_view_set_model(s7_c_pointer(icon_view), s7_c_pointer(model));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_model "GtkTreeModel* gtk_icon_view_get_model(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_model", 1, icon_view, "GtkIconView*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeModel__sym, gtk_icon_view_get_model(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_icon_view_set_text_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_text_column "void gtk_icon_view_set_text_column(GtkIconView* icon_view, \
+gint column)"
+  s7_pointer _p;
+  s7_pointer icon_view, column;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_text_column", 1, icon_view, "GtkIconView*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(column)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_text_column", 2, column, "gint");
+  gtk_icon_view_set_text_column(s7_c_pointer(icon_view), s7_integer(column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_text_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_text_column "gint gtk_icon_view_get_text_column(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_text_column", 1, icon_view, "GtkIconView*");
+  return(s7_make_integer(sc, gtk_icon_view_get_text_column(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_icon_view_set_markup_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_markup_column "void gtk_icon_view_set_markup_column(GtkIconView* icon_view, \
+gint column)"
+  s7_pointer _p;
+  s7_pointer icon_view, column;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_markup_column", 1, icon_view, "GtkIconView*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(column)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_markup_column", 2, column, "gint");
+  gtk_icon_view_set_markup_column(s7_c_pointer(icon_view), s7_integer(column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_markup_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_markup_column "gint gtk_icon_view_get_markup_column(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_markup_column", 1, icon_view, "GtkIconView*");
+  return(s7_make_integer(sc, gtk_icon_view_get_markup_column(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_icon_view_set_pixbuf_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_pixbuf_column "void gtk_icon_view_set_pixbuf_column(GtkIconView* icon_view, \
+gint column)"
+  s7_pointer _p;
+  s7_pointer icon_view, column;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_pixbuf_column", 1, icon_view, "GtkIconView*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(column)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_pixbuf_column", 2, column, "gint");
+  gtk_icon_view_set_pixbuf_column(s7_c_pointer(icon_view), s7_integer(column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_pixbuf_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_pixbuf_column "gint gtk_icon_view_get_pixbuf_column(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_pixbuf_column", 1, icon_view, "GtkIconView*");
+  return(s7_make_integer(sc, gtk_icon_view_get_pixbuf_column(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_icon_view_get_path_at_pos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_path_at_pos "GtkTreePath* gtk_icon_view_get_path_at_pos(GtkIconView* icon_view, \
+gint x, gint y)"
+  s7_pointer _p;
+  s7_pointer icon_view, x, y;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_path_at_pos", 1, icon_view, "GtkIconView*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_path_at_pos", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_path_at_pos", 3, y, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkTreePath__sym, gtk_icon_view_get_path_at_pos(s7_c_pointer(icon_view), s7_integer(x), s7_integer(y))));
+}
+
+static s7_pointer lg_gtk_icon_view_selected_foreach(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_selected_foreach "void gtk_icon_view_selected_foreach(GtkIconView* icon_view, \
+GtkIconViewForeachFunc func, lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer icon_view, func, func_info;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_selected_foreach", 1, icon_view, "GtkIconView*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkIconViewForeachFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_selected_foreach", 2, func, "GtkIconViewForeachFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_icon_view_selected_foreach", 3, func_info, "lambda_data");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    gtk_icon_view_selected_foreach(s7_c_pointer(icon_view), s7_c_pointer(func), (gpointer)lg_ptr);
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_icon_view_set_selection_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_selection_mode "void gtk_icon_view_set_selection_mode(GtkIconView* icon_view, \
+GtkSelectionMode mode)"
+  s7_pointer _p;
+  s7_pointer icon_view, mode;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_selection_mode", 1, icon_view, "GtkIconView*");
+  mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mode)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_selection_mode", 2, mode, "GtkSelectionMode");
+  gtk_icon_view_set_selection_mode(s7_c_pointer(icon_view), s7_integer(mode));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_selection_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_selection_mode "GtkSelectionMode gtk_icon_view_get_selection_mode(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_selection_mode", 1, icon_view, "GtkIconView*");
+  return(s7_make_integer(sc, gtk_icon_view_get_selection_mode(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_icon_view_select_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_select_path "void gtk_icon_view_select_path(GtkIconView* icon_view, GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer icon_view, path;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_select_path", 1, icon_view, "GtkIconView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_select_path", 2, path, "GtkTreePath*");
+  gtk_icon_view_select_path(s7_c_pointer(icon_view), s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_unselect_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_unselect_path "void gtk_icon_view_unselect_path(GtkIconView* icon_view, GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer icon_view, path;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_unselect_path", 1, icon_view, "GtkIconView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_unselect_path", 2, path, "GtkTreePath*");
+  gtk_icon_view_unselect_path(s7_c_pointer(icon_view), s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_path_is_selected(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_path_is_selected "gboolean gtk_icon_view_path_is_selected(GtkIconView* icon_view, \
+GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer icon_view, path;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_path_is_selected", 1, icon_view, "GtkIconView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_path_is_selected", 2, path, "GtkTreePath*");
+  return(s7_make_boolean(sc, gtk_icon_view_path_is_selected(s7_c_pointer(icon_view), s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_icon_view_get_selected_items(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_selected_items "GList* gtk_icon_view_get_selected_items(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_selected_items", 1, icon_view, "GtkIconView*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_icon_view_get_selected_items(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_icon_view_select_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_select_all "void gtk_icon_view_select_all(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_select_all", 1, icon_view, "GtkIconView*");
+  gtk_icon_view_select_all(s7_c_pointer(icon_view));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_unselect_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_unselect_all "void gtk_icon_view_unselect_all(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_unselect_all", 1, icon_view, "GtkIconView*");
+  gtk_icon_view_unselect_all(s7_c_pointer(icon_view));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_item_activated(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_item_activated "void gtk_icon_view_item_activated(GtkIconView* icon_view, GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer icon_view, path;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_item_activated", 1, icon_view, "GtkIconView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_item_activated", 2, path, "GtkTreePath*");
+  gtk_icon_view_item_activated(s7_c_pointer(icon_view), s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_renderer_combo_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_combo_new "GtkCellRenderer* gtk_cell_renderer_combo_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkCellRenderer__sym, gtk_cell_renderer_combo_new()));
+}
+
+static s7_pointer lg_gtk_cell_renderer_progress_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_progress_new "GtkCellRenderer* gtk_cell_renderer_progress_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkCellRenderer__sym, gtk_cell_renderer_progress_new()));
+}
+
+static s7_pointer lg_gtk_combo_box_set_row_separator_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_set_row_separator_func "void gtk_combo_box_set_row_separator_func(GtkComboBox* combo_box, \
+GtkTreeViewRowSeparatorFunc func, lambda_data func_info, GtkDestroyNotify destroy)"
+  s7_pointer _p;
+  s7_pointer combo_box, func, func_info, destroy;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_row_separator_func", 1, combo_box, "GtkComboBox*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkTreeViewRowSeparatorFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_row_separator_func", 2, func, "GtkTreeViewRowSeparatorFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_row_separator_func", 3, func_info, "lambda_data");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, GtkDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_row_separator_func", 4, destroy, "GtkDestroyNotify");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 3, destroy);
+    gtk_combo_box_set_row_separator_func(s7_c_pointer(combo_box), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(destroy));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_label_set_ellipsize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_ellipsize "void gtk_label_set_ellipsize(GtkLabel* label, PangoEllipsizeMode mode)"
+  s7_pointer _p;
+  s7_pointer label, mode;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_ellipsize", 1, label, "GtkLabel*");
+  mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mode)) s7_wrong_type_arg_error(sc, "gtk_label_set_ellipsize", 2, mode, "PangoEllipsizeMode");
+  gtk_label_set_ellipsize(s7_c_pointer(label), s7_integer(mode));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_ellipsize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_ellipsize "PangoEllipsizeMode gtk_label_get_ellipsize(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_ellipsize", 1, label, "GtkLabel*");
+  return(s7_make_integer(sc, gtk_label_get_ellipsize(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_pango_attr_fallback_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_fallback_new "PangoAttribute* pango_attr_fallback_new(gboolean enable_fallback)"
+  s7_pointer enable_fallback;
+  enable_fallback = s7_car(args);
+  if (!s7_is_boolean(enable_fallback)) s7_wrong_type_arg_error(sc, "pango_attr_fallback_new", 1, enable_fallback, "gboolean");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_fallback_new(lg_boolean(enable_fallback))));
+}
+
+static s7_pointer lg_pango_attr_letter_spacing_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_letter_spacing_new "PangoAttribute* pango_attr_letter_spacing_new(int letter_spacing)"
+  s7_pointer letter_spacing;
+  letter_spacing = s7_car(args);
+  if (!s7_is_integer(letter_spacing)) s7_wrong_type_arg_error(sc, "pango_attr_letter_spacing_new", 1, letter_spacing, "int");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_letter_spacing_new(s7_integer(letter_spacing))));
+}
+
+static s7_pointer lg_pango_attr_list_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_list_filter "PangoAttrList* pango_attr_list_filter(PangoAttrList* list, PangoAttrFilterFunc func, \
+gpointer data)"
+  s7_pointer _p;
+  s7_pointer list, func, data;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, PangoAttrList__sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_filter", 1, list, "PangoAttrList*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, PangoAttrFilterFunc_sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_filter", 2, func, "PangoAttrFilterFunc");
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, gpointer_sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_filter", 3, data, "gpointer");
+  return(s7_make_type_with_c_pointer(sc, PangoAttrList__sym, pango_attr_list_filter(s7_c_pointer(list), s7_c_pointer(func), s7_c_pointer(data))));
+}
+
+static s7_pointer lg_pango_attr_iterator_get_attrs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_iterator_get_attrs "GSList* pango_attr_iterator_get_attrs(PangoAttrIterator* iterator)"
+  s7_pointer iterator;
+  iterator = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iterator, PangoAttrIterator__sym)) s7_wrong_type_arg_error(sc, "pango_attr_iterator_get_attrs", 1, iterator, "PangoAttrIterator*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, pango_attr_iterator_get_attrs(s7_c_pointer(iterator))));
+}
+
+static s7_pointer lg_pango_font_metrics_get_underline_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_metrics_get_underline_position "int pango_font_metrics_get_underline_position(PangoFontMetrics* metrics)"
+  s7_pointer metrics;
+  metrics = s7_car(args);
+  if (!s7_is_c_pointer_of_type(metrics, PangoFontMetrics__sym)) s7_wrong_type_arg_error(sc, "pango_font_metrics_get_underline_position", 1, metrics, "PangoFontMetrics*");
+  return(s7_make_integer(sc, pango_font_metrics_get_underline_position(s7_c_pointer(metrics))));
+}
+
+static s7_pointer lg_pango_font_metrics_get_underline_thickness(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_metrics_get_underline_thickness "int pango_font_metrics_get_underline_thickness(PangoFontMetrics* metrics)"
+  s7_pointer metrics;
+  metrics = s7_car(args);
+  if (!s7_is_c_pointer_of_type(metrics, PangoFontMetrics__sym)) s7_wrong_type_arg_error(sc, "pango_font_metrics_get_underline_thickness", 1, metrics, "PangoFontMetrics*");
+  return(s7_make_integer(sc, pango_font_metrics_get_underline_thickness(s7_c_pointer(metrics))));
+}
+
+static s7_pointer lg_pango_font_metrics_get_strikethrough_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_metrics_get_strikethrough_position "int pango_font_metrics_get_strikethrough_position(PangoFontMetrics* metrics)"
+  s7_pointer metrics;
+  metrics = s7_car(args);
+  if (!s7_is_c_pointer_of_type(metrics, PangoFontMetrics__sym)) s7_wrong_type_arg_error(sc, "pango_font_metrics_get_strikethrough_position", 1, metrics, "PangoFontMetrics*");
+  return(s7_make_integer(sc, pango_font_metrics_get_strikethrough_position(s7_c_pointer(metrics))));
+}
+
+static s7_pointer lg_pango_font_metrics_get_strikethrough_thickness(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_metrics_get_strikethrough_thickness "int pango_font_metrics_get_strikethrough_thickness(PangoFontMetrics* metrics)"
+  s7_pointer metrics;
+  metrics = s7_car(args);
+  if (!s7_is_c_pointer_of_type(metrics, PangoFontMetrics__sym)) s7_wrong_type_arg_error(sc, "pango_font_metrics_get_strikethrough_thickness", 1, metrics, "PangoFontMetrics*");
+  return(s7_make_integer(sc, pango_font_metrics_get_strikethrough_thickness(s7_c_pointer(metrics))));
+}
+
+static s7_pointer lg_pango_font_family_is_monospace(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_family_is_monospace "gboolean pango_font_family_is_monospace(PangoFontFamily* family)"
+  s7_pointer family;
+  family = s7_car(args);
+  if (!s7_is_c_pointer_of_type(family, PangoFontFamily__sym)) s7_wrong_type_arg_error(sc, "pango_font_family_is_monospace", 1, family, "PangoFontFamily*");
+  return(s7_make_boolean(sc, pango_font_family_is_monospace(s7_c_pointer(family))));
+}
+
+static s7_pointer lg_pango_font_face_list_sizes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_face_list_sizes "void pango_font_face_list_sizes(PangoFontFace* face, int** [sizes], \
+int* [n_sizes])"
+  s7_pointer _p;
+  s7_pointer face;
+  int* ref_sizes = NULL;
+  int ref_n_sizes;
+  _p = args;
+  face = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(face, PangoFontFace__sym)) s7_wrong_type_arg_error(sc, "pango_font_face_list_sizes", 1, face, "PangoFontFace*");
+  pango_font_face_list_sizes(s7_c_pointer(face), &ref_sizes, &ref_n_sizes);
+    return(s7_list(sc, 2, s7_make_c_pointer(sc, ref_sizes), s7_make_integer(sc, ref_n_sizes)));
+}
+
+static s7_pointer lg_pango_layout_set_auto_dir(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_set_auto_dir "void pango_layout_set_auto_dir(PangoLayout* layout, gboolean auto_dir)"
+  s7_pointer _p;
+  s7_pointer layout, auto_dir;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_set_auto_dir", 1, layout, "PangoLayout*");
+  auto_dir = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(auto_dir)) s7_wrong_type_arg_error(sc, "pango_layout_set_auto_dir", 2, auto_dir, "gboolean");
+  pango_layout_set_auto_dir(s7_c_pointer(layout), lg_boolean(auto_dir));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_auto_dir(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_auto_dir "gboolean pango_layout_get_auto_dir(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_auto_dir", 1, layout, "PangoLayout*");
+  return(s7_make_boolean(sc, pango_layout_get_auto_dir(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_pango_script_for_unichar(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_script_for_unichar "PangoScript pango_script_for_unichar(gunichar ch)"
+  s7_pointer ch;
+  ch = s7_car(args);
+  if (!s7_is_integer(ch)) s7_wrong_type_arg_error(sc, "pango_script_for_unichar", 1, ch, "gunichar");
+  return(s7_make_integer(sc, pango_script_for_unichar(s7_integer(ch))));
+}
+
+static s7_pointer lg_pango_script_iter_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_script_iter_new "PangoScriptIter* pango_script_iter_new(char* text, int length)"
+  s7_pointer _p;
+  s7_pointer text, length;
+  _p = args;
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "pango_script_iter_new", 1, text, "char*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "pango_script_iter_new", 2, length, "int");
+  return(s7_make_type_with_c_pointer(sc, PangoScriptIter__sym, pango_script_iter_new((char*)s7_string(text), s7_integer(length))));
+}
+
+static s7_pointer lg_pango_script_iter_get_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_script_iter_get_range "void pango_script_iter_get_range(PangoScriptIter* iter, char** [start], \
+char** [end], PangoScript* [script])"
+  s7_pointer _p;
+  s7_pointer iter;
+  char* ref_start = NULL;
+  char* ref_end = NULL;
+  PangoScript ref_script;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, PangoScriptIter__sym)) s7_wrong_type_arg_error(sc, "pango_script_iter_get_range", 1, iter, "PangoScriptIter*");
+  pango_script_iter_get_range(s7_c_pointer(iter), (const char**)&ref_start, (const char**)&ref_end, &ref_script);
+    return(s7_list(sc, 3, s7_make_string(sc, ref_start), s7_make_string(sc, ref_end), s7_make_integer(sc, ref_script)));
+}
+
+static s7_pointer lg_pango_script_iter_next(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_script_iter_next "gboolean pango_script_iter_next(PangoScriptIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, PangoScriptIter__sym)) s7_wrong_type_arg_error(sc, "pango_script_iter_next", 1, iter, "PangoScriptIter*");
+  return(s7_make_boolean(sc, pango_script_iter_next(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_pango_script_iter_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_script_iter_free "void pango_script_iter_free(PangoScriptIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, PangoScriptIter__sym)) s7_wrong_type_arg_error(sc, "pango_script_iter_free", 1, iter, "PangoScriptIter*");
+  pango_script_iter_free(s7_c_pointer(iter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_button_new_with_dialog(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_button_new_with_dialog "GtkWidget* gtk_file_chooser_button_new_with_dialog(GtkWidget* dialog)"
+  s7_pointer dialog;
+  dialog = s7_car(args);
+  if (!s7_is_c_pointer_of_type(dialog, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_button_new_with_dialog", 1, dialog, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_file_chooser_button_new_with_dialog(s7_c_pointer(dialog))));
+}
+
+static s7_pointer lg_gtk_file_chooser_button_get_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_button_get_title "gchar* gtk_file_chooser_button_get_title(GtkFileChooserButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkFileChooserButton__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_button_get_title", 1, button, "GtkFileChooserButton*");
+  return(s7_make_string(sc, gtk_file_chooser_button_get_title(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_file_chooser_button_set_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_button_set_title "void gtk_file_chooser_button_set_title(GtkFileChooserButton* button, \
+gchar* title)"
+  s7_pointer _p;
+  s7_pointer button, title;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkFileChooserButton__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_button_set_title", 1, button, "GtkFileChooserButton*");
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_button_set_title", 2, title, "gchar*");
+  gtk_file_chooser_button_set_title(s7_c_pointer(button), s7_string(title));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_drag_drop_succeeded(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_drop_succeeded "gboolean gdk_drag_drop_succeeded(GdkDragContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_drop_succeeded", 1, context, "GdkDragContext*");
+  return(s7_make_boolean(sc, gdk_drag_drop_succeeded(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gtk_entry_layout_index_to_text_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_layout_index_to_text_index "gint gtk_entry_layout_index_to_text_index(GtkEntry* entry, \
+gint layout_index)"
+  s7_pointer _p;
+  s7_pointer entry, layout_index;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_layout_index_to_text_index", 1, entry, "GtkEntry*");
+  layout_index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(layout_index)) s7_wrong_type_arg_error(sc, "gtk_entry_layout_index_to_text_index", 2, layout_index, "gint");
+  return(s7_make_integer(sc, gtk_entry_layout_index_to_text_index(s7_c_pointer(entry), s7_integer(layout_index))));
+}
+
+static s7_pointer lg_gtk_entry_text_index_to_layout_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_text_index_to_layout_index "gint gtk_entry_text_index_to_layout_index(GtkEntry* entry, \
+gint text_index)"
+  s7_pointer _p;
+  s7_pointer entry, text_index;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_text_index_to_layout_index", 1, entry, "GtkEntry*");
+  text_index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(text_index)) s7_wrong_type_arg_error(sc, "gtk_entry_text_index_to_layout_index", 2, text_index, "gint");
+  return(s7_make_integer(sc, gtk_entry_text_index_to_layout_index(s7_c_pointer(entry), s7_integer(text_index))));
+}
+
+static s7_pointer lg_gtk_file_chooser_set_show_hidden(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_show_hidden "void gtk_file_chooser_set_show_hidden(GtkFileChooser* chooser, \
+gboolean show_hidden)"
+  s7_pointer _p;
+  s7_pointer chooser, show_hidden;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_show_hidden", 1, chooser, "GtkFileChooser*");
+  show_hidden = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_hidden)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_show_hidden", 2, show_hidden, "gboolean");
+  gtk_file_chooser_set_show_hidden(s7_c_pointer(chooser), lg_boolean(show_hidden));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_show_hidden(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_show_hidden "gboolean gtk_file_chooser_get_show_hidden(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_show_hidden", 1, chooser, "GtkFileChooser*");
+  return(s7_make_boolean(sc, gtk_file_chooser_get_show_hidden(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_hover_expand(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_hover_expand "void gtk_tree_view_set_hover_expand(GtkTreeView* tree_view, \
+gboolean expand)"
+  s7_pointer _p;
+  s7_pointer tree_view, expand;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_hover_expand", 1, tree_view, "GtkTreeView*");
+  expand = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(expand)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_hover_expand", 2, expand, "gboolean");
+  gtk_tree_view_set_hover_expand(s7_c_pointer(tree_view), lg_boolean(expand));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_hover_expand(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_hover_expand "gboolean gtk_tree_view_get_hover_expand(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_hover_expand", 1, tree_view, "GtkTreeView*");
+  return(s7_make_boolean(sc, gtk_tree_view_get_hover_expand(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tool_item_rebuild_menu(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_rebuild_menu "void gtk_tool_item_rebuild_menu(GtkToolItem* tool_item)"
+  s7_pointer tool_item;
+  tool_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_rebuild_menu", 1, tool_item, "GtkToolItem*");
+  gtk_tool_item_rebuild_menu(s7_c_pointer(tool_item));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_tool_button_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_tool_button_new "GtkToolItem* gtk_menu_tool_button_new(GtkWidget* icon_widget, gchar* label)"
+  s7_pointer _p;
+  s7_pointer icon_widget, label;
+  _p = args;
+  icon_widget = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(icon_widget, GtkWidget__sym)) && (icon_widget != lg_false)) s7_wrong_type_arg_error(sc, "gtk_menu_tool_button_new", 1, icon_widget, "GtkWidget*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_menu_tool_button_new", 2, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkToolItem__sym, gtk_menu_tool_button_new(s7_c_pointer(icon_widget), s7_string(label))));
+}
+
+static s7_pointer lg_gtk_menu_tool_button_set_menu(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_tool_button_set_menu "void gtk_menu_tool_button_set_menu(GtkMenuToolButton* button, \
+GtkWidget* menu)"
+  s7_pointer _p;
+  s7_pointer button, menu;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkMenuToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_tool_button_set_menu", 1, button, "GtkMenuToolButton*");
+  menu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_tool_button_set_menu", 2, menu, "GtkWidget*");
+  gtk_menu_tool_button_set_menu(s7_c_pointer(button), s7_c_pointer(menu));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_tool_button_get_menu(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_tool_button_get_menu "GtkWidget* gtk_menu_tool_button_get_menu(GtkMenuToolButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkMenuToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_tool_button_get_menu", 1, button, "GtkMenuToolButton*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_menu_tool_button_get_menu(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gdk_display_supports_clipboard_persistence(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_supports_clipboard_persistence "gboolean gdk_display_supports_clipboard_persistence(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_supports_clipboard_persistence", 1, display, "GdkDisplay*");
+  return(s7_make_boolean(sc, gdk_display_supports_clipboard_persistence(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gtk_about_dialog_get_logo_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_get_logo_icon_name "gchar* gtk_about_dialog_get_logo_icon_name(GtkAboutDialog* about)"
+  s7_pointer about;
+  about = s7_car(args);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_get_logo_icon_name", 1, about, "GtkAboutDialog*");
+  return(s7_make_string(sc, gtk_about_dialog_get_logo_icon_name(s7_c_pointer(about))));
+}
+
+static s7_pointer lg_gtk_about_dialog_set_logo_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_set_logo_icon_name "void gtk_about_dialog_set_logo_icon_name(GtkAboutDialog* about, \
+gchar* icon_name)"
+  s7_pointer _p;
+  s7_pointer about, icon_name;
+  _p = args;
+  about = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_logo_icon_name", 1, about, "GtkAboutDialog*");
+  icon_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(icon_name)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_logo_icon_name", 2, icon_name, "gchar*");
+  gtk_about_dialog_set_logo_icon_name(s7_c_pointer(about), s7_string(icon_name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accelerator_get_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accelerator_get_label "gchar* gtk_accelerator_get_label(guint accelerator_key, GdkModifierType accelerator_mods)"
+  s7_pointer _p;
+  s7_pointer accelerator_key, accelerator_mods;
+  _p = args;
+  accelerator_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accelerator_key)) s7_wrong_type_arg_error(sc, "gtk_accelerator_get_label", 1, accelerator_key, "guint");
+  accelerator_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accelerator_mods)) s7_wrong_type_arg_error(sc, "gtk_accelerator_get_label", 2, accelerator_mods, "GdkModifierType");
+  {
+    gchar* result;
+    s7_pointer rtn;
+    result = gtk_accelerator_get_label(s7_integer(accelerator_key), s7_integer(accelerator_mods));
+    rtn = s7_make_string(sc, result);
+    g_free(result);
+    return(rtn);
+  }
+}
+
+static s7_pointer lg_gtk_clipboard_wait_is_target_available(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_wait_is_target_available "gboolean gtk_clipboard_wait_is_target_available(GtkClipboard* clipboard, \
+GdkAtom target)"
+  s7_pointer _p;
+  s7_pointer clipboard, target;
+  _p = args;
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_is_target_available", 1, clipboard, "GtkClipboard*");
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_is_target_available", 2, target, "GdkAtom");
+  return(s7_make_boolean(sc, gtk_clipboard_wait_is_target_available(s7_c_pointer(clipboard), s7_c_pointer(target))));
+}
+
+static s7_pointer lg_gtk_clipboard_set_can_store(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_set_can_store "void gtk_clipboard_set_can_store(GtkClipboard* clipboard, GtkTargetEntry* targets, \
+gint n_targets)"
+  s7_pointer _p;
+  s7_pointer clipboard, targets, n_targets;
+  _p = args;
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_set_can_store", 1, clipboard, "GtkClipboard*");
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(targets, GtkTargetEntry__sym)) && (targets != lg_false)) s7_wrong_type_arg_error(sc, "gtk_clipboard_set_can_store", 2, targets, "GtkTargetEntry*");
+  n_targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_targets)) s7_wrong_type_arg_error(sc, "gtk_clipboard_set_can_store", 3, n_targets, "gint");
+  gtk_clipboard_set_can_store(s7_c_pointer(clipboard), s7_c_pointer(targets), s7_integer(n_targets));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_clipboard_store(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_store "void gtk_clipboard_store(GtkClipboard* clipboard)"
+  s7_pointer clipboard;
+  clipboard = s7_car(args);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_store", 1, clipboard, "GtkClipboard*");
+  gtk_clipboard_store(s7_c_pointer(clipboard));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_dest_add_image_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_dest_add_image_targets "void gtk_drag_dest_add_image_targets(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_add_image_targets", 1, widget, "GtkWidget*");
+  gtk_drag_dest_add_image_targets(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_dest_add_uri_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_dest_add_uri_targets "void gtk_drag_dest_add_uri_targets(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_add_uri_targets", 1, widget, "GtkWidget*");
+  gtk_drag_dest_add_uri_targets(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_source_add_image_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_source_add_image_targets "void gtk_drag_source_add_image_targets(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_source_add_image_targets", 1, widget, "GtkWidget*");
+  gtk_drag_source_add_image_targets(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_source_add_uri_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_source_add_uri_targets "void gtk_drag_source_add_uri_targets(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_source_add_uri_targets", 1, widget, "GtkWidget*");
+  gtk_drag_source_add_uri_targets(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_button_get_width_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_button_get_width_chars "gint gtk_file_chooser_button_get_width_chars(GtkFileChooserButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkFileChooserButton__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_button_get_width_chars", 1, button, "GtkFileChooserButton*");
+  return(s7_make_integer(sc, gtk_file_chooser_button_get_width_chars(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_file_chooser_button_set_width_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_button_set_width_chars "void gtk_file_chooser_button_set_width_chars(GtkFileChooserButton* button, \
+gint n_chars)"
+  s7_pointer _p;
+  s7_pointer button, n_chars;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkFileChooserButton__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_button_set_width_chars", 1, button, "GtkFileChooserButton*");
+  n_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_chars)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_button_set_width_chars", 2, n_chars, "gint");
+  gtk_file_chooser_button_set_width_chars(s7_c_pointer(button), s7_integer(n_chars));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_image_set_pixel_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_set_pixel_size "void gtk_image_set_pixel_size(GtkImage* image, gint pixel_size)"
+  s7_pointer _p;
+  s7_pointer image, pixel_size;
+  _p = args;
+  image = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(image, GtkImage__sym)) s7_wrong_type_arg_error(sc, "gtk_image_set_pixel_size", 1, image, "GtkImage*");
+  pixel_size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pixel_size)) s7_wrong_type_arg_error(sc, "gtk_image_set_pixel_size", 2, pixel_size, "gint");
+  gtk_image_set_pixel_size(s7_c_pointer(image), s7_integer(pixel_size));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_image_get_pixel_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_get_pixel_size "gint gtk_image_get_pixel_size(GtkImage* image)"
+  s7_pointer image;
+  image = s7_car(args);
+  if (!s7_is_c_pointer_of_type(image, GtkImage__sym)) s7_wrong_type_arg_error(sc, "gtk_image_get_pixel_size", 1, image, "GtkImage*");
+  return(s7_make_integer(sc, gtk_image_get_pixel_size(s7_c_pointer(image))));
+}
+
+static s7_pointer lg_gtk_label_set_width_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_width_chars "void gtk_label_set_width_chars(GtkLabel* label, gint n_chars)"
+  s7_pointer _p;
+  s7_pointer label, n_chars;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_width_chars", 1, label, "GtkLabel*");
+  n_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_chars)) s7_wrong_type_arg_error(sc, "gtk_label_set_width_chars", 2, n_chars, "gint");
+  gtk_label_set_width_chars(s7_c_pointer(label), s7_integer(n_chars));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_width_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_width_chars "gint gtk_label_get_width_chars(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_width_chars", 1, label, "GtkLabel*");
+  return(s7_make_integer(sc, gtk_label_get_width_chars(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_target_list_add_text_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_list_add_text_targets "void gtk_target_list_add_text_targets(GtkTargetList* list, \
+guint info)"
+  s7_pointer _p;
+  s7_pointer list, info;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, GtkTargetList__sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_add_text_targets", 1, list, "GtkTargetList*");
+  info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(info)) s7_wrong_type_arg_error(sc, "gtk_target_list_add_text_targets", 2, info, "guint");
+  gtk_target_list_add_text_targets(s7_c_pointer(list), s7_integer(info));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_target_list_add_image_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_list_add_image_targets "void gtk_target_list_add_image_targets(GtkTargetList* list, \
+guint info, gboolean writable)"
+  s7_pointer _p;
+  s7_pointer list, info, writable;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, GtkTargetList__sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_add_image_targets", 1, list, "GtkTargetList*");
+  info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(info)) s7_wrong_type_arg_error(sc, "gtk_target_list_add_image_targets", 2, info, "guint");
+  writable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(writable)) s7_wrong_type_arg_error(sc, "gtk_target_list_add_image_targets", 3, writable, "gboolean");
+  gtk_target_list_add_image_targets(s7_c_pointer(list), s7_integer(info), lg_boolean(writable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_target_list_add_uri_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_list_add_uri_targets "void gtk_target_list_add_uri_targets(GtkTargetList* list, \
+guint info)"
+  s7_pointer _p;
+  s7_pointer list, info;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, GtkTargetList__sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_add_uri_targets", 1, list, "GtkTargetList*");
+  info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(info)) s7_wrong_type_arg_error(sc, "gtk_target_list_add_uri_targets", 2, info, "guint");
+  gtk_target_list_add_uri_targets(s7_c_pointer(list), s7_integer(info));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_selection_data_set_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_set_pixbuf "gboolean gtk_selection_data_set_pixbuf(GtkSelectionData* selection_data, \
+GdkPixbuf* pixbuf)"
+  s7_pointer _p;
+  s7_pointer selection_data, pixbuf;
+  _p = args;
+  selection_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_set_pixbuf", 1, selection_data, "GtkSelectionData*");
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_set_pixbuf", 2, pixbuf, "GdkPixbuf*");
+  return(s7_make_boolean(sc, gtk_selection_data_set_pixbuf(s7_c_pointer(selection_data), s7_c_pointer(pixbuf))));
+}
+
+static s7_pointer lg_gtk_selection_data_get_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_get_pixbuf "GdkPixbuf* gtk_selection_data_get_pixbuf(GtkSelectionData* selection_data)"
+  s7_pointer selection_data;
+  selection_data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_get_pixbuf", 1, selection_data, "GtkSelectionData*");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gtk_selection_data_get_pixbuf(s7_c_pointer(selection_data))));
+}
+
+static s7_pointer lg_gtk_selection_data_set_uris(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_set_uris "gboolean gtk_selection_data_set_uris(GtkSelectionData* selection_data, \
+gchar** uris)"
+  s7_pointer _p;
+  s7_pointer selection_data, uris;
+  _p = args;
+  selection_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_set_uris", 1, selection_data, "GtkSelectionData*");
+  uris = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(uris, gchar___sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_set_uris", 2, uris, "gchar**");
+  return(s7_make_boolean(sc, gtk_selection_data_set_uris(s7_c_pointer(selection_data), s7_c_pointer(uris))));
+}
+
+static s7_pointer lg_gtk_selection_data_get_uris(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_get_uris "gchar** gtk_selection_data_get_uris(GtkSelectionData* selection_data)"
+  s7_pointer selection_data;
+  selection_data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_get_uris", 1, selection_data, "GtkSelectionData*");
+  return(s7_make_type_with_c_pointer(sc, gchar___sym, gtk_selection_data_get_uris(s7_c_pointer(selection_data))));
+}
+
+static s7_pointer lg_gtk_text_buffer_backspace(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_backspace "gboolean gtk_text_buffer_backspace(GtkTextBuffer* buffer, GtkTextIter* iter, \
+gboolean interactive, gboolean default_editable)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, interactive, default_editable;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_backspace", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_backspace", 2, iter, "GtkTextIter*");
+  interactive = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(interactive)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_backspace", 3, interactive, "gboolean");
+  default_editable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(default_editable)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_backspace", 4, default_editable, "gboolean");
+  return(s7_make_boolean(sc, gtk_text_buffer_backspace(s7_c_pointer(buffer), s7_c_pointer(iter), lg_boolean(interactive), lg_boolean(default_editable))));
+}
+
+static s7_pointer lg_gtk_clipboard_set_image(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_set_image "void gtk_clipboard_set_image(GtkClipboard* clipboard, GdkPixbuf* pixbuf)"
+  s7_pointer _p;
+  s7_pointer clipboard, pixbuf;
+  _p = args;
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_set_image", 1, clipboard, "GtkClipboard*");
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_set_image", 2, pixbuf, "GdkPixbuf*");
+  gtk_clipboard_set_image(s7_c_pointer(clipboard), s7_c_pointer(pixbuf));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_clipboard_request_image(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_request_image "void gtk_clipboard_request_image(GtkClipboard* clipboard, GtkClipboardImageReceivedFunc func, \
+lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer clipboard, func, func_info;
+  _p = args;
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_image", 1, clipboard, "GtkClipboard*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkClipboardImageReceivedFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_image", 2, func, "GtkClipboardImageReceivedFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_image", 3, func_info, "lambda_data");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    gtk_clipboard_request_image(s7_c_pointer(clipboard), s7_c_pointer(func), (gpointer)lg_ptr);
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_clipboard_wait_for_image(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_wait_for_image "GdkPixbuf* gtk_clipboard_wait_for_image(GtkClipboard* clipboard)"
+  s7_pointer clipboard;
+  clipboard = s7_car(args);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_for_image", 1, clipboard, "GtkClipboard*");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gtk_clipboard_wait_for_image(s7_c_pointer(clipboard))));
+}
+
+static s7_pointer lg_gtk_clipboard_wait_is_image_available(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_wait_is_image_available "gboolean gtk_clipboard_wait_is_image_available(GtkClipboard* clipboard)"
+  s7_pointer clipboard;
+  clipboard = s7_car(args);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_is_image_available", 1, clipboard, "GtkClipboard*");
+  return(s7_make_boolean(sc, gtk_clipboard_wait_is_image_available(s7_c_pointer(clipboard))));
+}
+
+static s7_pointer lg_gtk_file_filter_add_pixbuf_formats(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_filter_add_pixbuf_formats "void gtk_file_filter_add_pixbuf_formats(GtkFileFilter* filter)"
+  s7_pointer filter;
+  filter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(filter, GtkFileFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_file_filter_add_pixbuf_formats", 1, filter, "GtkFileFilter*");
+  gtk_file_filter_add_pixbuf_formats(s7_c_pointer(filter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_set_single_line_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_single_line_mode "void gtk_label_set_single_line_mode(GtkLabel* label, gboolean single_line_mode)"
+  s7_pointer _p;
+  s7_pointer label, single_line_mode;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_single_line_mode", 1, label, "GtkLabel*");
+  single_line_mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(single_line_mode)) s7_wrong_type_arg_error(sc, "gtk_label_set_single_line_mode", 2, single_line_mode, "gboolean");
+  gtk_label_set_single_line_mode(s7_c_pointer(label), lg_boolean(single_line_mode));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_single_line_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_single_line_mode "gboolean gtk_label_get_single_line_mode(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_single_line_mode", 1, label, "GtkLabel*");
+  return(s7_make_boolean(sc, gtk_label_get_single_line_mode(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_progress_bar_set_ellipsize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_progress_bar_set_ellipsize "void gtk_progress_bar_set_ellipsize(GtkProgressBar* pbar, \
+PangoEllipsizeMode mode)"
+  s7_pointer _p;
+  s7_pointer pbar, mode;
+  _p = args;
+  pbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pbar, GtkProgressBar__sym)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_set_ellipsize", 1, pbar, "GtkProgressBar*");
+  mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mode)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_set_ellipsize", 2, mode, "PangoEllipsizeMode");
+  gtk_progress_bar_set_ellipsize(s7_c_pointer(pbar), s7_integer(mode));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_progress_bar_get_ellipsize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_progress_bar_get_ellipsize "PangoEllipsizeMode gtk_progress_bar_get_ellipsize(GtkProgressBar* pbar)"
+  s7_pointer pbar;
+  pbar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pbar, GtkProgressBar__sym)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_get_ellipsize", 1, pbar, "GtkProgressBar*");
+  return(s7_make_integer(sc, gtk_progress_bar_get_ellipsize(s7_c_pointer(pbar))));
+}
+
+static s7_pointer lg_gtk_selection_data_targets_include_image(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_targets_include_image "gboolean gtk_selection_data_targets_include_image(GtkSelectionData* selection_data, \
+gboolean writable)"
+  s7_pointer _p;
+  s7_pointer selection_data, writable;
+  _p = args;
+  selection_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_targets_include_image", 1, selection_data, "GtkSelectionData*");
+  writable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(writable)) s7_wrong_type_arg_error(sc, "gtk_selection_data_targets_include_image", 2, writable, "gboolean");
+  return(s7_make_boolean(sc, gtk_selection_data_targets_include_image(s7_c_pointer(selection_data), lg_boolean(writable))));
+}
+
+static s7_pointer lg_gtk_menu_set_screen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_set_screen "void gtk_menu_set_screen(GtkMenu* menu, GdkScreen* screen)"
+  s7_pointer _p;
+  s7_pointer menu, screen;
+  _p = args;
+  menu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_set_screen", 1, menu, "GtkMenu*");
+  screen = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(screen, GdkScreen__sym)) && (screen != lg_false)) s7_wrong_type_arg_error(sc, "gtk_menu_set_screen", 2, screen, "GdkScreen*");
+  gtk_menu_set_screen(s7_c_pointer(menu), s7_c_pointer(screen));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_attr_underline_color_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_underline_color_new "PangoAttribute* pango_attr_underline_color_new(guint16 red, \
+guint16 green, guint16 blue)"
+  s7_pointer _p;
+  s7_pointer red, green, blue;
+  _p = args;
+  red = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(red)) s7_wrong_type_arg_error(sc, "pango_attr_underline_color_new", 1, red, "guint16");
+  green = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(green)) s7_wrong_type_arg_error(sc, "pango_attr_underline_color_new", 2, green, "guint16");
+  blue = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(blue)) s7_wrong_type_arg_error(sc, "pango_attr_underline_color_new", 3, blue, "guint16");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_underline_color_new(s7_integer(red), s7_integer(green), s7_integer(blue))));
+}
+
+static s7_pointer lg_pango_attr_strikethrough_color_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_strikethrough_color_new "PangoAttribute* pango_attr_strikethrough_color_new(guint16 red, \
+guint16 green, guint16 blue)"
+  s7_pointer _p;
+  s7_pointer red, green, blue;
+  _p = args;
+  red = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(red)) s7_wrong_type_arg_error(sc, "pango_attr_strikethrough_color_new", 1, red, "guint16");
+  green = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(green)) s7_wrong_type_arg_error(sc, "pango_attr_strikethrough_color_new", 2, green, "guint16");
+  blue = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(blue)) s7_wrong_type_arg_error(sc, "pango_attr_strikethrough_color_new", 3, blue, "guint16");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_strikethrough_color_new(s7_integer(red), s7_integer(green), s7_integer(blue))));
+}
+
+static s7_pointer lg_pango_renderer_draw_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_renderer_draw_layout "void pango_renderer_draw_layout(PangoRenderer* renderer, PangoLayout* layout, \
+int x, int y)"
+  s7_pointer _p;
+  s7_pointer renderer, layout, x, y;
+  _p = args;
+  renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(renderer, PangoRenderer__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_layout", 1, renderer, "PangoRenderer*");
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_layout", 2, layout, "PangoLayout*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_layout", 3, x, "int");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_layout", 4, y, "int");
+  pango_renderer_draw_layout(s7_c_pointer(renderer), s7_c_pointer(layout), s7_integer(x), s7_integer(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_renderer_draw_layout_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_renderer_draw_layout_line "void pango_renderer_draw_layout_line(PangoRenderer* renderer, \
+PangoLayoutLine* line, int x, int y)"
+  s7_pointer _p;
+  s7_pointer renderer, line, x, y;
+  _p = args;
+  renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(renderer, PangoRenderer__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_layout_line", 1, renderer, "PangoRenderer*");
+  line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(line, PangoLayoutLine__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_layout_line", 2, line, "PangoLayoutLine*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_layout_line", 3, x, "int");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_layout_line", 4, y, "int");
+  pango_renderer_draw_layout_line(s7_c_pointer(renderer), s7_c_pointer(line), s7_integer(x), s7_integer(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_renderer_draw_glyphs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_renderer_draw_glyphs "void pango_renderer_draw_glyphs(PangoRenderer* renderer, PangoFont* font, \
+PangoGlyphString* glyphs, int x, int y)"
+  s7_pointer _p;
+  s7_pointer renderer, font, glyphs, x, y;
+  _p = args;
+  renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(renderer, PangoRenderer__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_glyphs", 1, renderer, "PangoRenderer*");
+  font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font, PangoFont__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_glyphs", 2, font, "PangoFont*");
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, PangoGlyphString__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_glyphs", 3, glyphs, "PangoGlyphString*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_glyphs", 4, x, "int");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_glyphs", 5, y, "int");
+  pango_renderer_draw_glyphs(s7_c_pointer(renderer), s7_c_pointer(font), s7_c_pointer(glyphs), s7_integer(x), s7_integer(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_renderer_draw_rectangle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_renderer_draw_rectangle "void pango_renderer_draw_rectangle(PangoRenderer* renderer, \
+PangoRenderPart part, int x, int y, int width, int height)"
+  s7_pointer _p;
+  s7_pointer renderer, part, x, y, width, height;
+  _p = args;
+  renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(renderer, PangoRenderer__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_rectangle", 1, renderer, "PangoRenderer*");
+  part = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(part)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_rectangle", 2, part, "PangoRenderPart");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_rectangle", 3, x, "int");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_rectangle", 4, y, "int");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_rectangle", 5, width, "int");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_rectangle", 6, height, "int");
+  pango_renderer_draw_rectangle(s7_c_pointer(renderer), s7_integer(part), s7_integer(x), s7_integer(y), s7_integer(width), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_renderer_draw_error_underline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_renderer_draw_error_underline "void pango_renderer_draw_error_underline(PangoRenderer* renderer, \
+int x, int y, int width, int height)"
+  s7_pointer _p;
+  s7_pointer renderer, x, y, width, height;
+  _p = args;
+  renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(renderer, PangoRenderer__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_error_underline", 1, renderer, "PangoRenderer*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_error_underline", 2, x, "int");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_error_underline", 3, y, "int");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_error_underline", 4, width, "int");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_error_underline", 5, height, "int");
+  pango_renderer_draw_error_underline(s7_c_pointer(renderer), s7_integer(x), s7_integer(y), s7_integer(width), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_renderer_draw_trapezoid(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_renderer_draw_trapezoid "void pango_renderer_draw_trapezoid(PangoRenderer* renderer, \
+PangoRenderPart part, double y1, double x11, double x21, double y2, double x12, double x22)"
+  s7_pointer _p;
+  s7_pointer renderer, part, y1, x11, x21, y2, x12, x22;
+  _p = args;
+  renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(renderer, PangoRenderer__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_trapezoid", 1, renderer, "PangoRenderer*");
+  part = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(part)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_trapezoid", 2, part, "PangoRenderPart");
+  y1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y1)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_trapezoid", 3, y1, "double");
+  x11 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x11)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_trapezoid", 4, x11, "double");
+  x21 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x21)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_trapezoid", 5, x21, "double");
+  y2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y2)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_trapezoid", 6, y2, "double");
+  x12 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x12)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_trapezoid", 7, x12, "double");
+  x22 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x22)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_trapezoid", 8, x22, "double");
+  pango_renderer_draw_trapezoid(s7_c_pointer(renderer), s7_integer(part), s7_real(y1), s7_real(x11), s7_real(x21), s7_real(y2), s7_real(x12), s7_real(x22));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_renderer_draw_glyph(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_renderer_draw_glyph "void pango_renderer_draw_glyph(PangoRenderer* renderer, PangoFont* font, \
+PangoGlyph glyph, double x, double y)"
+  s7_pointer _p;
+  s7_pointer renderer, font, glyph, x, y;
+  _p = args;
+  renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(renderer, PangoRenderer__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_glyph", 1, renderer, "PangoRenderer*");
+  font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font, PangoFont__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_glyph", 2, font, "PangoFont*");
+  glyph = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(glyph)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_glyph", 3, glyph, "PangoGlyph");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_glyph", 4, x, "double");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "pango_renderer_draw_glyph", 5, y, "double");
+  pango_renderer_draw_glyph(s7_c_pointer(renderer), s7_c_pointer(font), s7_integer(glyph), s7_real(x), s7_real(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_renderer_activate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_renderer_activate "void pango_renderer_activate(PangoRenderer* renderer)"
+  s7_pointer renderer;
+  renderer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(renderer, PangoRenderer__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_activate", 1, renderer, "PangoRenderer*");
+  pango_renderer_activate(s7_c_pointer(renderer));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_renderer_deactivate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_renderer_deactivate "void pango_renderer_deactivate(PangoRenderer* renderer)"
+  s7_pointer renderer;
+  renderer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(renderer, PangoRenderer__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_deactivate", 1, renderer, "PangoRenderer*");
+  pango_renderer_deactivate(s7_c_pointer(renderer));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_renderer_part_changed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_renderer_part_changed "void pango_renderer_part_changed(PangoRenderer* renderer, PangoRenderPart part)"
+  s7_pointer _p;
+  s7_pointer renderer, part;
+  _p = args;
+  renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(renderer, PangoRenderer__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_part_changed", 1, renderer, "PangoRenderer*");
+  part = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(part)) s7_wrong_type_arg_error(sc, "pango_renderer_part_changed", 2, part, "PangoRenderPart");
+  pango_renderer_part_changed(s7_c_pointer(renderer), s7_integer(part));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_renderer_set_color(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_renderer_set_color "void pango_renderer_set_color(PangoRenderer* renderer, PangoRenderPart part, \
+PangoColor* color)"
+  s7_pointer _p;
+  s7_pointer renderer, part, color;
+  _p = args;
+  renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(renderer, PangoRenderer__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_set_color", 1, renderer, "PangoRenderer*");
+  part = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(part)) s7_wrong_type_arg_error(sc, "pango_renderer_set_color", 2, part, "PangoRenderPart");
+  color = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(color, PangoColor__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_set_color", 3, color, "PangoColor*");
+  pango_renderer_set_color(s7_c_pointer(renderer), s7_integer(part), s7_c_pointer(color));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_renderer_get_color(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_renderer_get_color "PangoColor* pango_renderer_get_color(PangoRenderer* renderer, PangoRenderPart part)"
+  s7_pointer _p;
+  s7_pointer renderer, part;
+  _p = args;
+  renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(renderer, PangoRenderer__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_get_color", 1, renderer, "PangoRenderer*");
+  part = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(part)) s7_wrong_type_arg_error(sc, "pango_renderer_get_color", 2, part, "PangoRenderPart");
+  return(s7_make_type_with_c_pointer(sc, PangoColor__sym, pango_renderer_get_color(s7_c_pointer(renderer), s7_integer(part))));
+}
+
+static s7_pointer lg_pango_renderer_set_matrix(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_renderer_set_matrix "void pango_renderer_set_matrix(PangoRenderer* renderer, PangoMatrix* matrix)"
+  s7_pointer _p;
+  s7_pointer renderer, matrix;
+  _p = args;
+  renderer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(renderer, PangoRenderer__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_set_matrix", 1, renderer, "PangoRenderer*");
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, PangoMatrix__sym)) s7_wrong_type_arg_error(sc, "pango_renderer_set_matrix", 2, matrix, "PangoMatrix*");
+  pango_renderer_set_matrix(s7_c_pointer(renderer), s7_c_pointer(matrix));
+  return(lg_false);
+}
+
+static s7_pointer lg_g_log_set_handler(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_log_set_handler "guint g_log_set_handler(gchar* log_domain, GLogLevelFlags log_levels, \
+GLogFunc func, lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer log_domain, log_levels, func, func_info;
+  _p = args;
+  log_domain = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(log_domain)) s7_wrong_type_arg_error(sc, "g_log_set_handler", 1, log_domain, "gchar*");
+  log_levels = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(log_levels)) s7_wrong_type_arg_error(sc, "g_log_set_handler", 2, log_levels, "GLogLevelFlags");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GLogFunc_sym)) s7_wrong_type_arg_error(sc, "g_log_set_handler", 3, func, "GLogFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "g_log_set_handler", 4, func_info, "lambda_data");
+  {
+    s7_pointer result;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    result = s7_make_integer(sc, g_log_set_handler(s7_string(log_domain), s7_integer(log_levels), s7_c_pointer(func), (gpointer)lg_ptr));
+    return(result);
+   }
+}
+
+static s7_pointer lg_g_log_remove_handler(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_log_remove_handler "void g_log_remove_handler(gchar* log_domain, guint handler_id)"
+  s7_pointer _p;
+  s7_pointer log_domain, handler_id;
+  _p = args;
+  log_domain = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(log_domain)) s7_wrong_type_arg_error(sc, "g_log_remove_handler", 1, log_domain, "gchar*");
+  handler_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(handler_id)) s7_wrong_type_arg_error(sc, "g_log_remove_handler", 2, handler_id, "guint");
+  g_log_remove_handler(s7_string(log_domain), s7_integer(handler_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_renderer_stop_editing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_stop_editing "void gtk_cell_renderer_stop_editing(GtkCellRenderer* cell, \
+gboolean canceled)"
+  s7_pointer _p;
+  s7_pointer cell, canceled;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_stop_editing", 1, cell, "GtkCellRenderer*");
+  canceled = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(canceled)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_stop_editing", 2, canceled, "gboolean");
+  gtk_cell_renderer_stop_editing(s7_c_pointer(cell), lg_boolean(canceled));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_button_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_button_new "GtkWidget* gtk_file_chooser_button_new(gchar* title, GtkFileChooserAction action)"
+  s7_pointer _p;
+  s7_pointer title, action;
+  _p = args;
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_button_new", 1, title, "gchar*");
+  action = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(action)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_button_new", 2, action, "GtkFileChooserAction");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_file_chooser_button_new((const gchar*)s7_string(title), s7_integer(action))));
+}
+
+static s7_pointer lg_gtk_icon_view_set_columns(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_columns "void gtk_icon_view_set_columns(GtkIconView* icon_view, gint columns)"
+  s7_pointer _p;
+  s7_pointer icon_view, columns;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_columns", 1, icon_view, "GtkIconView*");
+  columns = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(columns)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_columns", 2, columns, "gint");
+  gtk_icon_view_set_columns(s7_c_pointer(icon_view), s7_integer(columns));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_columns(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_columns "gint gtk_icon_view_get_columns(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_columns", 1, icon_view, "GtkIconView*");
+  return(s7_make_integer(sc, gtk_icon_view_get_columns(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_icon_view_set_item_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_item_width "void gtk_icon_view_set_item_width(GtkIconView* icon_view, gint item_width)"
+  s7_pointer _p;
+  s7_pointer icon_view, item_width;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_item_width", 1, icon_view, "GtkIconView*");
+  item_width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(item_width)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_item_width", 2, item_width, "gint");
+  gtk_icon_view_set_item_width(s7_c_pointer(icon_view), s7_integer(item_width));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_item_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_item_width "gint gtk_icon_view_get_item_width(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_item_width", 1, icon_view, "GtkIconView*");
+  return(s7_make_integer(sc, gtk_icon_view_get_item_width(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_icon_view_set_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_spacing "void gtk_icon_view_set_spacing(GtkIconView* icon_view, gint spacing)"
+  s7_pointer _p;
+  s7_pointer icon_view, spacing;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_spacing", 1, icon_view, "GtkIconView*");
+  spacing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(spacing)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_spacing", 2, spacing, "gint");
+  gtk_icon_view_set_spacing(s7_c_pointer(icon_view), s7_integer(spacing));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_spacing "gint gtk_icon_view_get_spacing(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_spacing", 1, icon_view, "GtkIconView*");
+  return(s7_make_integer(sc, gtk_icon_view_get_spacing(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_icon_view_set_row_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_row_spacing "void gtk_icon_view_set_row_spacing(GtkIconView* icon_view, \
+gint row_spacing)"
+  s7_pointer _p;
+  s7_pointer icon_view, row_spacing;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_row_spacing", 1, icon_view, "GtkIconView*");
+  row_spacing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(row_spacing)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_row_spacing", 2, row_spacing, "gint");
+  gtk_icon_view_set_row_spacing(s7_c_pointer(icon_view), s7_integer(row_spacing));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_row_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_row_spacing "gint gtk_icon_view_get_row_spacing(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_row_spacing", 1, icon_view, "GtkIconView*");
+  return(s7_make_integer(sc, gtk_icon_view_get_row_spacing(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_icon_view_set_column_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_column_spacing "void gtk_icon_view_set_column_spacing(GtkIconView* icon_view, \
+gint column_spacing)"
+  s7_pointer _p;
+  s7_pointer icon_view, column_spacing;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_column_spacing", 1, icon_view, "GtkIconView*");
+  column_spacing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(column_spacing)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_column_spacing", 2, column_spacing, "gint");
+  gtk_icon_view_set_column_spacing(s7_c_pointer(icon_view), s7_integer(column_spacing));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_column_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_column_spacing "gint gtk_icon_view_get_column_spacing(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_column_spacing", 1, icon_view, "GtkIconView*");
+  return(s7_make_integer(sc, gtk_icon_view_get_column_spacing(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_icon_view_set_margin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_margin "void gtk_icon_view_set_margin(GtkIconView* icon_view, gint margin)"
+  s7_pointer _p;
+  s7_pointer icon_view, margin;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_margin", 1, icon_view, "GtkIconView*");
+  margin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(margin)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_margin", 2, margin, "gint");
+  gtk_icon_view_set_margin(s7_c_pointer(icon_view), s7_integer(margin));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_margin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_margin "gint gtk_icon_view_get_margin(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_margin", 1, icon_view, "GtkIconView*");
+  return(s7_make_integer(sc, gtk_icon_view_get_margin(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_label_set_max_width_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_max_width_chars "void gtk_label_set_max_width_chars(GtkLabel* label, gint n_chars)"
+  s7_pointer _p;
+  s7_pointer label, n_chars;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_max_width_chars", 1, label, "GtkLabel*");
+  n_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_chars)) s7_wrong_type_arg_error(sc, "gtk_label_set_max_width_chars", 2, n_chars, "gint");
+  gtk_label_set_max_width_chars(s7_c_pointer(label), s7_integer(n_chars));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_max_width_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_max_width_chars "gint gtk_label_get_max_width_chars(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_max_width_chars", 1, label, "GtkLabel*");
+  return(s7_make_integer(sc, gtk_label_get_max_width_chars(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_list_store_insert_with_values(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_insert_with_values "void gtk_list_store_insert_with_values(GtkListStore* list_store, \
+GtkTreeIter* iter, gint position, ...)"
+  s7_pointer _p;
+  s7_pointer list_store, iter, position;
+  _p = args;
+  list_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_with_values", 1, list_store, "GtkListStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_with_values", 2, iter, "GtkTreeIter*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_with_values", 3, position, "gint");
+  gtk_list_store_insert_with_values(s7_c_pointer(list_store), s7_c_pointer(iter), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_store_insert_with_valuesv(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_store_insert_with_valuesv "void gtk_list_store_insert_with_valuesv(GtkListStore* list_store, \
+GtkTreeIter* iter, gint position, gint* columns, GValue* values, gint n_values)"
+  s7_pointer _p;
+  s7_pointer list_store, iter, position, columns, values, n_values;
+  _p = args;
+  list_store = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_store, GtkListStore__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_with_valuesv", 1, list_store, "GtkListStore*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_with_valuesv", 2, iter, "GtkTreeIter*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_with_valuesv", 3, position, "gint");
+  columns = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(columns, gint__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_with_valuesv", 4, columns, "gint*");
+  values = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(values, GValue__sym)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_with_valuesv", 5, values, "GValue*");
+  n_values = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_values)) s7_wrong_type_arg_error(sc, "gtk_list_store_insert_with_valuesv", 6, n_values, "gint");
+  gtk_list_store_insert_with_valuesv(s7_c_pointer(list_store), s7_c_pointer(iter), s7_integer(position), s7_c_pointer(columns), s7_c_pointer(values), s7_integer(n_values));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_attr_size_new_absolute(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_size_new_absolute "PangoAttribute* pango_attr_size_new_absolute(int size)"
+  s7_pointer size;
+  size = s7_car(args);
+  if (!s7_is_integer(size)) s7_wrong_type_arg_error(sc, "pango_attr_size_new_absolute", 1, size, "int");
+  return(s7_make_type_with_c_pointer(sc, PangoAttribute__sym, pango_attr_size_new_absolute(s7_integer(size))));
+}
+
+static s7_pointer lg_pango_font_description_set_absolute_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_description_set_absolute_size "void pango_font_description_set_absolute_size(PangoFontDescription* desc, \
+double size)"
+  s7_pointer _p;
+  s7_pointer desc, size;
+  _p = args;
+  desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "pango_font_description_set_absolute_size", 1, desc, "PangoFontDescription*");
+  size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(size)) s7_wrong_type_arg_error(sc, "pango_font_description_set_absolute_size", 2, size, "double");
+  pango_font_description_set_absolute_size(s7_c_pointer(desc), s7_real(size));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_layout_get_font_description(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_get_font_description "PangoFontDescription* pango_layout_get_font_description(PangoLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_get_font_description", 1, layout, "PangoLayout*");
+    return(s7_make_type_with_c_pointer(sc, PangoFontDescription__sym, (PangoFontDescription*)pango_layout_get_font_description(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_gdk_cursor_new_from_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cursor_new_from_name "GdkCursor* gdk_cursor_new_from_name(GdkDisplay* display, gchar* name)"
+  s7_pointer _p;
+  s7_pointer display, name;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_cursor_new_from_name", 1, display, "GdkDisplay*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gdk_cursor_new_from_name", 2, name, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GdkCursor__sym, gdk_cursor_new_from_name(s7_c_pointer(display), (const gchar*)s7_string(name))));
+}
+
+static s7_pointer lg_gdk_cursor_get_image(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cursor_get_image "GdkPixbuf* gdk_cursor_get_image(GdkCursor* cursor)"
+  s7_pointer cursor;
+  cursor = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cursor, GdkCursor__sym)) s7_wrong_type_arg_error(sc, "gdk_cursor_get_image", 1, cursor, "GdkCursor*");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gdk_cursor_get_image(s7_c_pointer(cursor))));
+}
+
+static s7_pointer lg_gdk_window_set_urgency_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_urgency_hint "void gdk_window_set_urgency_hint(GdkWindow* window, gboolean urgent)"
+  s7_pointer _p;
+  s7_pointer window, urgent;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_urgency_hint", 1, window, "GdkWindow*");
+  urgent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(urgent)) s7_wrong_type_arg_error(sc, "gdk_window_set_urgency_hint", 2, urgent, "gboolean");
+  gdk_window_set_urgency_hint(s7_c_pointer(window), lg_boolean(urgent));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_dialog_get_response_for_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_dialog_get_response_for_widget "gint gtk_dialog_get_response_for_widget(GtkDialog* dialog, \
+GtkWidget* widget)"
+  s7_pointer _p;
+  s7_pointer dialog, widget;
+  _p = args;
+  dialog = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dialog, GtkDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_dialog_get_response_for_widget", 1, dialog, "GtkDialog*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_dialog_get_response_for_widget", 2, widget, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_dialog_get_response_for_widget(s7_c_pointer(dialog), s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_drag_source_set_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_source_set_icon_name "void gtk_drag_source_set_icon_name(GtkWidget* widget, gchar* icon_name)"
+  s7_pointer _p;
+  s7_pointer widget, icon_name;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_source_set_icon_name", 1, widget, "GtkWidget*");
+  icon_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(icon_name)) s7_wrong_type_arg_error(sc, "gtk_drag_source_set_icon_name", 2, icon_name, "gchar*");
+  gtk_drag_source_set_icon_name(s7_c_pointer(widget), (const gchar*)s7_string(icon_name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_set_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_set_icon_name "void gtk_drag_set_icon_name(GdkDragContext* context, gchar* icon_name, \
+gint hot_x, gint hot_y)"
+  s7_pointer _p;
+  s7_pointer context, icon_name, hot_x, hot_y;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_name", 1, context, "GdkDragContext*");
+  icon_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(icon_name)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_name", 2, icon_name, "gchar*");
+  hot_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hot_x)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_name", 3, hot_x, "gint");
+  hot_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hot_y)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_name", 4, hot_y, "gint");
+  gtk_drag_set_icon_name(s7_c_pointer(context), (const gchar*)s7_string(icon_name), s7_integer(hot_x), s7_integer(hot_y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_set_popup_set_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_set_popup_set_width "void gtk_entry_completion_set_popup_set_width(GtkEntryCompletion* completion, \
+gboolean popup_set_width)"
+  s7_pointer _p;
+  s7_pointer completion, popup_set_width;
+  _p = args;
+  completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_popup_set_width", 1, completion, "GtkEntryCompletion*");
+  popup_set_width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(popup_set_width)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_popup_set_width", 2, popup_set_width, "gboolean");
+  gtk_entry_completion_set_popup_set_width(s7_c_pointer(completion), lg_boolean(popup_set_width));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_get_popup_set_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_get_popup_set_width "gboolean gtk_entry_completion_get_popup_set_width(GtkEntryCompletion* completion)"
+  s7_pointer completion;
+  completion = s7_car(args);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_get_popup_set_width", 1, completion, "GtkEntryCompletion*");
+  return(s7_make_boolean(sc, gtk_entry_completion_get_popup_set_width(s7_c_pointer(completion))));
+}
+
+static s7_pointer lg_gtk_entry_completion_set_popup_single_match(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_set_popup_single_match "void gtk_entry_completion_set_popup_single_match(GtkEntryCompletion* completion, \
+gboolean popup_single_match)"
+  s7_pointer _p;
+  s7_pointer completion, popup_single_match;
+  _p = args;
+  completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_popup_single_match", 1, completion, "GtkEntryCompletion*");
+  popup_single_match = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(popup_single_match)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_popup_single_match", 2, popup_single_match, "gboolean");
+  gtk_entry_completion_set_popup_single_match(s7_c_pointer(completion), lg_boolean(popup_single_match));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_get_popup_single_match(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_get_popup_single_match "gboolean gtk_entry_completion_get_popup_single_match(GtkEntryCompletion* completion)"
+  s7_pointer completion;
+  completion = s7_car(args);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_get_popup_single_match", 1, completion, "GtkEntryCompletion*");
+  return(s7_make_boolean(sc, gtk_entry_completion_get_popup_single_match(s7_c_pointer(completion))));
+}
+
+static s7_pointer lg_gtk_icon_view_get_item_at_pos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_item_at_pos "gboolean gtk_icon_view_get_item_at_pos(GtkIconView* icon_view, \
+gint x, gint y, GtkTreePath** [path], GtkCellRenderer** [cell])"
+  s7_pointer _p;
+  s7_pointer icon_view, x, y;
+  GtkTreePath* ref_path = NULL;
+  GtkCellRenderer* ref_cell = NULL;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_item_at_pos", 1, icon_view, "GtkIconView*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_item_at_pos", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_item_at_pos", 3, y, "gint");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_icon_view_get_item_at_pos(s7_c_pointer(icon_view), s7_integer(x), s7_integer(y), &ref_path, &ref_cell));
+      return(s7_list(sc, 3, result, s7_make_c_pointer(sc, ref_path), s7_make_c_pointer(sc, ref_cell)));
+   }
+}
+
+static s7_pointer lg_gtk_icon_view_get_visible_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_visible_range "gboolean gtk_icon_view_get_visible_range(GtkIconView* icon_view, \
+GtkTreePath** [start_path], GtkTreePath** [end_path])"
+  s7_pointer _p;
+  s7_pointer icon_view;
+  GtkTreePath* ref_start_path = NULL;
+  GtkTreePath* ref_end_path = NULL;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_visible_range", 1, icon_view, "GtkIconView*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_icon_view_get_visible_range(s7_c_pointer(icon_view), &ref_start_path, &ref_end_path));
+      return(s7_list(sc, 3, result, s7_make_c_pointer(sc, ref_start_path), s7_make_c_pointer(sc, ref_end_path)));
+   }
+}
+
+static s7_pointer lg_gtk_icon_view_set_cursor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_cursor "void gtk_icon_view_set_cursor(GtkIconView* icon_view, GtkTreePath* path, \
+GtkCellRenderer* cell, gboolean start_editing)"
+  s7_pointer _p;
+  s7_pointer icon_view, path, cell, start_editing;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_cursor", 1, icon_view, "GtkIconView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_cursor", 2, path, "GtkTreePath*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_cursor", 3, cell, "GtkCellRenderer*");
+  start_editing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(start_editing)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_cursor", 4, start_editing, "gboolean");
+  gtk_icon_view_set_cursor(s7_c_pointer(icon_view), s7_c_pointer(path), s7_c_pointer(cell), lg_boolean(start_editing));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_cursor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_cursor "gboolean gtk_icon_view_get_cursor(GtkIconView* icon_view, GtkTreePath** [path], \
+GtkCellRenderer** [cell])"
+  s7_pointer _p;
+  s7_pointer icon_view;
+  GtkTreePath* ref_path = NULL;
+  GtkCellRenderer* ref_cell = NULL;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_cursor", 1, icon_view, "GtkIconView*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_icon_view_get_cursor(s7_c_pointer(icon_view), &ref_path, &ref_cell));
+      return(s7_list(sc, 3, result, s7_make_c_pointer(sc, ref_path), s7_make_c_pointer(sc, ref_cell)));
+   }
+}
+
+static s7_pointer lg_gtk_icon_view_scroll_to_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_scroll_to_path "void gtk_icon_view_scroll_to_path(GtkIconView* icon_view, GtkTreePath* path, \
+gboolean use_align, gfloat row_align, gfloat col_align)"
+  s7_pointer _p;
+  s7_pointer icon_view, path, use_align, row_align, col_align;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_scroll_to_path", 1, icon_view, "GtkIconView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_scroll_to_path", 2, path, "GtkTreePath*");
+  use_align = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_align)) s7_wrong_type_arg_error(sc, "gtk_icon_view_scroll_to_path", 3, use_align, "gboolean");
+  row_align = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(row_align)) s7_wrong_type_arg_error(sc, "gtk_icon_view_scroll_to_path", 4, row_align, "gfloat");
+  col_align = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(col_align)) s7_wrong_type_arg_error(sc, "gtk_icon_view_scroll_to_path", 5, col_align, "gfloat");
+  gtk_icon_view_scroll_to_path(s7_c_pointer(icon_view), s7_c_pointer(path), lg_boolean(use_align), s7_real(row_align), s7_real(col_align));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_enable_model_drag_source(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_enable_model_drag_source "void gtk_icon_view_enable_model_drag_source(GtkIconView* icon_view, \
+GdkModifierType start_button_mask, GtkTargetEntry* targets, gint n_targets, GdkDragAction actions)"
+  s7_pointer _p;
+  s7_pointer icon_view, start_button_mask, targets, n_targets, actions;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_enable_model_drag_source", 1, icon_view, "GtkIconView*");
+  start_button_mask = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(start_button_mask)) s7_wrong_type_arg_error(sc, "gtk_icon_view_enable_model_drag_source", 2, start_button_mask, "GdkModifierType");
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GtkTargetEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_enable_model_drag_source", 3, targets, "GtkTargetEntry*");
+  n_targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_targets)) s7_wrong_type_arg_error(sc, "gtk_icon_view_enable_model_drag_source", 4, n_targets, "gint");
+  actions = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(actions)) s7_wrong_type_arg_error(sc, "gtk_icon_view_enable_model_drag_source", 5, actions, "GdkDragAction");
+  gtk_icon_view_enable_model_drag_source(s7_c_pointer(icon_view), s7_integer(start_button_mask), s7_c_pointer(targets), s7_integer(n_targets), s7_integer(actions));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_enable_model_drag_dest(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_enable_model_drag_dest "void gtk_icon_view_enable_model_drag_dest(GtkIconView* icon_view, \
+GtkTargetEntry* targets, gint n_targets, GdkDragAction actions)"
+  s7_pointer _p;
+  s7_pointer icon_view, targets, n_targets, actions;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_enable_model_drag_dest", 1, icon_view, "GtkIconView*");
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GtkTargetEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_enable_model_drag_dest", 2, targets, "GtkTargetEntry*");
+  n_targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_targets)) s7_wrong_type_arg_error(sc, "gtk_icon_view_enable_model_drag_dest", 3, n_targets, "gint");
+  actions = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(actions)) s7_wrong_type_arg_error(sc, "gtk_icon_view_enable_model_drag_dest", 4, actions, "GdkDragAction");
+  gtk_icon_view_enable_model_drag_dest(s7_c_pointer(icon_view), s7_c_pointer(targets), s7_integer(n_targets), s7_integer(actions));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_unset_model_drag_source(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_unset_model_drag_source "void gtk_icon_view_unset_model_drag_source(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_unset_model_drag_source", 1, icon_view, "GtkIconView*");
+  gtk_icon_view_unset_model_drag_source(s7_c_pointer(icon_view));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_unset_model_drag_dest(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_unset_model_drag_dest "void gtk_icon_view_unset_model_drag_dest(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_unset_model_drag_dest", 1, icon_view, "GtkIconView*");
+  gtk_icon_view_unset_model_drag_dest(s7_c_pointer(icon_view));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_set_reorderable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_reorderable "void gtk_icon_view_set_reorderable(GtkIconView* icon_view, \
+gboolean reorderable)"
+  s7_pointer _p;
+  s7_pointer icon_view, reorderable;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_reorderable", 1, icon_view, "GtkIconView*");
+  reorderable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(reorderable)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_reorderable", 2, reorderable, "gboolean");
+  gtk_icon_view_set_reorderable(s7_c_pointer(icon_view), lg_boolean(reorderable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_reorderable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_reorderable "gboolean gtk_icon_view_get_reorderable(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_reorderable", 1, icon_view, "GtkIconView*");
+  return(s7_make_boolean(sc, gtk_icon_view_get_reorderable(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_icon_view_set_drag_dest_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_drag_dest_item "void gtk_icon_view_set_drag_dest_item(GtkIconView* icon_view, \
+GtkTreePath* path, GtkIconViewDropPosition pos)"
+  s7_pointer _p;
+  s7_pointer icon_view, path, pos;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_drag_dest_item", 1, icon_view, "GtkIconView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_drag_dest_item", 2, path, "GtkTreePath*");
+  pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pos)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_drag_dest_item", 3, pos, "GtkIconViewDropPosition");
+  gtk_icon_view_set_drag_dest_item(s7_c_pointer(icon_view), s7_c_pointer(path), s7_integer(pos));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_drag_dest_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_drag_dest_item "void gtk_icon_view_get_drag_dest_item(GtkIconView* icon_view, \
+GtkTreePath** [path], GtkIconViewDropPosition* [pos])"
+  s7_pointer _p;
+  s7_pointer icon_view;
+  GtkTreePath* ref_path = NULL;
+  GtkIconViewDropPosition ref_pos;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_drag_dest_item", 1, icon_view, "GtkIconView*");
+  gtk_icon_view_get_drag_dest_item(s7_c_pointer(icon_view), &ref_path, &ref_pos);
+    return(s7_list(sc, 2, s7_make_c_pointer(sc, ref_path), s7_make_integer(sc, ref_pos)));
+}
+
+static s7_pointer lg_gtk_icon_view_get_dest_item_at_pos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_dest_item_at_pos "gboolean gtk_icon_view_get_dest_item_at_pos(GtkIconView* icon_view, \
+gint drag_x, gint drag_y, GtkTreePath** [path], GtkIconViewDropPosition* [pos])"
+  s7_pointer _p;
+  s7_pointer icon_view, drag_x, drag_y;
+  GtkTreePath* ref_path = NULL;
+  GtkIconViewDropPosition ref_pos;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_dest_item_at_pos", 1, icon_view, "GtkIconView*");
+  drag_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(drag_x)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_dest_item_at_pos", 2, drag_x, "gint");
+  drag_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(drag_y)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_dest_item_at_pos", 3, drag_y, "gint");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_icon_view_get_dest_item_at_pos(s7_c_pointer(icon_view), s7_integer(drag_x), s7_integer(drag_y), &ref_path, &ref_pos));
+      return(s7_list(sc, 3, result, s7_make_c_pointer(sc, ref_path), s7_make_integer(sc, ref_pos)));
+   }
+}
+
+static s7_pointer lg_gtk_image_clear(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_clear "void gtk_image_clear(GtkImage* image)"
+  s7_pointer image;
+  image = s7_car(args);
+  if (!s7_is_c_pointer_of_type(image, GtkImage__sym)) s7_wrong_type_arg_error(sc, "gtk_image_clear", 1, image, "GtkImage*");
+  gtk_image_clear(s7_c_pointer(image));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_bar_get_pack_direction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_bar_get_pack_direction "GtkPackDirection gtk_menu_bar_get_pack_direction(GtkMenuBar* menubar)"
+  s7_pointer menubar;
+  menubar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menubar, GtkMenuBar__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_bar_get_pack_direction", 1, menubar, "GtkMenuBar*");
+  return(s7_make_integer(sc, gtk_menu_bar_get_pack_direction(s7_c_pointer(menubar))));
+}
+
+static s7_pointer lg_gtk_menu_bar_set_pack_direction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_bar_set_pack_direction "void gtk_menu_bar_set_pack_direction(GtkMenuBar* menubar, \
+GtkPackDirection pack_dir)"
+  s7_pointer _p;
+  s7_pointer menubar, pack_dir;
+  _p = args;
+  menubar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menubar, GtkMenuBar__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_bar_set_pack_direction", 1, menubar, "GtkMenuBar*");
+  pack_dir = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pack_dir)) s7_wrong_type_arg_error(sc, "gtk_menu_bar_set_pack_direction", 2, pack_dir, "GtkPackDirection");
+  gtk_menu_bar_set_pack_direction(s7_c_pointer(menubar), s7_integer(pack_dir));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_bar_get_child_pack_direction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_bar_get_child_pack_direction "GtkPackDirection gtk_menu_bar_get_child_pack_direction(GtkMenuBar* menubar)"
+  s7_pointer menubar;
+  menubar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menubar, GtkMenuBar__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_bar_get_child_pack_direction", 1, menubar, "GtkMenuBar*");
+  return(s7_make_integer(sc, gtk_menu_bar_get_child_pack_direction(s7_c_pointer(menubar))));
+}
+
+static s7_pointer lg_gtk_menu_bar_set_child_pack_direction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_bar_set_child_pack_direction "void gtk_menu_bar_set_child_pack_direction(GtkMenuBar* menubar, \
+GtkPackDirection child_pack_dir)"
+  s7_pointer _p;
+  s7_pointer menubar, child_pack_dir;
+  _p = args;
+  menubar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menubar, GtkMenuBar__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_bar_set_child_pack_direction", 1, menubar, "GtkMenuBar*");
+  child_pack_dir = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(child_pack_dir)) s7_wrong_type_arg_error(sc, "gtk_menu_bar_set_child_pack_direction", 2, child_pack_dir, "GtkPackDirection");
+  gtk_menu_bar_set_child_pack_direction(s7_c_pointer(menubar), s7_integer(child_pack_dir));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_shell_get_take_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_shell_get_take_focus "gboolean gtk_menu_shell_get_take_focus(GtkMenuShell* menu_shell)"
+  s7_pointer menu_shell;
+  menu_shell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_shell, GtkMenuShell__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_get_take_focus", 1, menu_shell, "GtkMenuShell*");
+  return(s7_make_boolean(sc, gtk_menu_shell_get_take_focus(s7_c_pointer(menu_shell))));
+}
+
+static s7_pointer lg_gtk_menu_shell_set_take_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_shell_set_take_focus "void gtk_menu_shell_set_take_focus(GtkMenuShell* menu_shell, \
+gboolean take_focus)"
+  s7_pointer _p;
+  s7_pointer menu_shell, take_focus;
+  _p = args;
+  menu_shell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_shell, GtkMenuShell__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_set_take_focus", 1, menu_shell, "GtkMenuShell*");
+  take_focus = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(take_focus)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_set_take_focus", 2, take_focus, "gboolean");
+  gtk_menu_shell_set_take_focus(s7_c_pointer(menu_shell), lg_boolean(take_focus));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_iter_forward_visible_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_visible_line "gboolean gtk_text_iter_forward_visible_line(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_visible_line", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_visible_line(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_backward_visible_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_visible_line "gboolean gtk_text_iter_backward_visible_line(GtkTextIter* iter)"
+  s7_pointer iter;
+  iter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_visible_line", 1, iter, "GtkTextIter*");
+  return(s7_make_boolean(sc, gtk_text_iter_backward_visible_line(s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_text_iter_forward_visible_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_forward_visible_lines "gboolean gtk_text_iter_forward_visible_lines(GtkTextIter* iter, \
+gint count)"
+  s7_pointer _p;
+  s7_pointer iter, count;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_visible_lines", 1, iter, "GtkTextIter*");
+  count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(count)) s7_wrong_type_arg_error(sc, "gtk_text_iter_forward_visible_lines", 2, count, "gint");
+  return(s7_make_boolean(sc, gtk_text_iter_forward_visible_lines(s7_c_pointer(iter), s7_integer(count))));
+}
+
+static s7_pointer lg_gtk_text_iter_backward_visible_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_backward_visible_lines "gboolean gtk_text_iter_backward_visible_lines(GtkTextIter* iter, \
+gint count)"
+  s7_pointer _p;
+  s7_pointer iter, count;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_visible_lines", 1, iter, "GtkTextIter*");
+  count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(count)) s7_wrong_type_arg_error(sc, "gtk_text_iter_backward_visible_lines", 2, count, "gint");
+  return(s7_make_boolean(sc, gtk_text_iter_backward_visible_lines(s7_c_pointer(iter), s7_integer(count))));
+}
+
+static s7_pointer lg_gtk_tool_button_set_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_button_set_icon_name "void gtk_tool_button_set_icon_name(GtkToolButton* button, \
+gchar* icon_name)"
+  s7_pointer _p;
+  s7_pointer button, icon_name;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_button_set_icon_name", 1, button, "GtkToolButton*");
+  icon_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(icon_name)) s7_wrong_type_arg_error(sc, "gtk_tool_button_set_icon_name", 2, icon_name, "gchar*");
+  gtk_tool_button_set_icon_name(s7_c_pointer(button), (const gchar*)s7_string(icon_name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_button_get_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_button_get_icon_name "gchar* gtk_tool_button_get_icon_name(GtkToolButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_button_get_icon_name", 1, button, "GtkToolButton*");
+    return(s7_make_string(sc, (gchar*)gtk_tool_button_get_icon_name(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_window_set_urgency_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_urgency_hint "void gtk_window_set_urgency_hint(GtkWindow* window, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_urgency_hint", 1, window, "GtkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_window_set_urgency_hint", 2, setting, "gboolean");
+  gtk_window_set_urgency_hint(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_urgency_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_urgency_hint "gboolean gtk_window_get_urgency_hint(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_urgency_hint", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_get_urgency_hint(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_present_with_time(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_present_with_time "void gtk_window_present_with_time(GtkWindow* window, guint32 timestamp)"
+  s7_pointer _p;
+  s7_pointer window, timestamp;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_present_with_time", 1, window, "GtkWindow*");
+  timestamp = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(timestamp)) s7_wrong_type_arg_error(sc, "gtk_window_present_with_time", 2, timestamp, "guint32");
+  gtk_window_present_with_time(s7_c_pointer(window), s7_integer(timestamp));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_set_do_overwrite_confirmation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_do_overwrite_confirmation "void gtk_file_chooser_set_do_overwrite_confirmation(GtkFileChooser* chooser, \
+gboolean do_overwrite_confirmation)"
+  s7_pointer _p;
+  s7_pointer chooser, do_overwrite_confirmation;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_do_overwrite_confirmation", 1, chooser, "GtkFileChooser*");
+  do_overwrite_confirmation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(do_overwrite_confirmation)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_do_overwrite_confirmation", 2, do_overwrite_confirmation, "gboolean");
+  gtk_file_chooser_set_do_overwrite_confirmation(s7_c_pointer(chooser), lg_boolean(do_overwrite_confirmation));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_do_overwrite_confirmation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_do_overwrite_confirmation "gboolean gtk_file_chooser_get_do_overwrite_confirmation(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_do_overwrite_confirmation", 1, chooser, "GtkFileChooser*");
+  return(s7_make_boolean(sc, gtk_file_chooser_get_do_overwrite_confirmation(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_tree_row_reference_get_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_row_reference_get_model "GtkTreeModel* gtk_tree_row_reference_get_model(GtkTreeRowReference* reference)"
+  s7_pointer reference;
+  reference = s7_car(args);
+  if (!s7_is_c_pointer_of_type(reference, GtkTreeRowReference__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_row_reference_get_model", 1, reference, "GtkTreeRowReference*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeModel__sym, gtk_tree_row_reference_get_model(s7_c_pointer(reference))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_queue_resize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_queue_resize "void gtk_tree_view_column_queue_resize(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_queue_resize", 1, tree_column, "GtkTreeViewColumn*");
+  gtk_tree_view_column_queue_resize(s7_c_pointer(tree_column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_visible_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_visible_range "gboolean gtk_tree_view_get_visible_range(GtkTreeView* tree_view, \
+GtkTreePath** [start_path], GtkTreePath** [end_path])"
+  s7_pointer _p;
+  s7_pointer tree_view;
+  GtkTreePath* ref_start_path = NULL;
+  GtkTreePath* ref_end_path = NULL;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_visible_range", 1, tree_view, "GtkTreeView*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_tree_view_get_visible_range(s7_c_pointer(tree_view), &ref_start_path, &ref_end_path));
+      return(s7_list(sc, 3, result, s7_make_c_pointer(sc, ref_start_path), s7_make_c_pointer(sc, ref_end_path)));
+   }
+}
+
+static s7_pointer lg_gtk_text_attributes_ref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_attributes_ref "GtkTextAttributes* gtk_text_attributes_ref(GtkTextAttributes* values)"
+  s7_pointer values;
+  values = s7_car(args);
+  if (!s7_is_c_pointer_of_type(values, GtkTextAttributes__sym)) s7_wrong_type_arg_error(sc, "gtk_text_attributes_ref", 1, values, "GtkTextAttributes*");
+  return(s7_make_type_with_c_pointer(sc, GtkTextAttributes__sym, gtk_text_attributes_ref(s7_c_pointer(values))));
+}
+
+static s7_pointer lg_pango_attr_list_ref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_attr_list_ref "PangoAttrList* pango_attr_list_ref(PangoAttrList* list)"
+  s7_pointer list;
+  list = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list, PangoAttrList__sym)) s7_wrong_type_arg_error(sc, "pango_attr_list_ref", 1, list, "PangoAttrList*");
+  return(s7_make_type_with_c_pointer(sc, PangoAttrList__sym, pango_attr_list_ref(s7_c_pointer(list))));
+}
+
+static s7_pointer lg_pango_layout_line_ref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_line_ref "PangoLayoutLine* pango_layout_line_ref(PangoLayoutLine* line)"
+  s7_pointer line;
+  line = s7_car(args);
+  if (!s7_is_c_pointer_of_type(line, PangoLayoutLine__sym)) s7_wrong_type_arg_error(sc, "pango_layout_line_ref", 1, line, "PangoLayoutLine*");
+  return(s7_make_type_with_c_pointer(sc, PangoLayoutLine__sym, pango_layout_line_ref(s7_c_pointer(line))));
+}
+
+static s7_pointer lg_pango_layout_index_to_line_x(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_layout_index_to_line_x "void pango_layout_index_to_line_x(PangoLayout* layout, int index_, \
+gboolean trailing, int* [line], int* [x_pos])"
+  s7_pointer _p;
+  s7_pointer layout, index_, trailing;
+  int ref_line;
+  int ref_x_pos;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_layout_index_to_line_x", 1, layout, "PangoLayout*");
+  index_ = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index_)) s7_wrong_type_arg_error(sc, "pango_layout_index_to_line_x", 2, index_, "int");
+  trailing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(trailing)) s7_wrong_type_arg_error(sc, "pango_layout_index_to_line_x", 3, trailing, "gboolean");
+  pango_layout_index_to_line_x(s7_c_pointer(layout), s7_integer(index_), lg_boolean(trailing), &ref_line, &ref_x_pos);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_line), s7_make_integer(sc, ref_x_pos)));
+}
+
+static s7_pointer lg_gtk_target_list_ref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_list_ref "GtkTargetList* gtk_target_list_ref(GtkTargetList* list)"
+  s7_pointer list;
+  list = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list, GtkTargetList__sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_ref", 1, list, "GtkTargetList*");
+  return(s7_make_type_with_c_pointer(sc, GtkTargetList__sym, gtk_target_list_ref(s7_c_pointer(list))));
+}
+
+static s7_pointer lg_gdk_display_supports_shapes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_supports_shapes "gboolean gdk_display_supports_shapes(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_supports_shapes", 1, display, "GdkDisplay*");
+  return(s7_make_boolean(sc, gdk_display_supports_shapes(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_display_supports_input_shapes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_supports_input_shapes "gboolean gdk_display_supports_input_shapes(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_supports_input_shapes", 1, display, "GdkDisplay*");
+  return(s7_make_boolean(sc, gdk_display_supports_input_shapes(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_screen_set_resolution(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_screen_set_resolution "void gdk_screen_set_resolution(GdkScreen* screen, gdouble dpi)"
+  s7_pointer _p;
+  s7_pointer screen, dpi;
+  _p = args;
+  screen = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(screen, GdkScreen__sym)) s7_wrong_type_arg_error(sc, "gdk_screen_set_resolution", 1, screen, "GdkScreen*");
+  dpi = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(dpi)) s7_wrong_type_arg_error(sc, "gdk_screen_set_resolution", 2, dpi, "gdouble");
+  gdk_screen_set_resolution(s7_c_pointer(screen), s7_real(dpi));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_screen_get_resolution(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_screen_get_resolution "gdouble gdk_screen_get_resolution(GdkScreen* screen)"
+  s7_pointer screen;
+  screen = s7_car(args);
+  if (!s7_is_c_pointer_of_type(screen, GdkScreen__sym)) s7_wrong_type_arg_error(sc, "gdk_screen_get_resolution", 1, screen, "GdkScreen*");
+  return(s7_make_real(sc, gdk_screen_get_resolution(s7_c_pointer(screen))));
+}
+
+static s7_pointer lg_gdk_window_get_type_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_type_hint "GdkWindowTypeHint gdk_window_get_type_hint(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_type_hint", 1, window, "GdkWindow*");
+  return(s7_make_integer(sc, gdk_window_get_type_hint(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_clipboard_request_rich_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_request_rich_text "void gtk_clipboard_request_rich_text(GtkClipboard* clipboard, \
+GtkTextBuffer* buffer, GtkClipboardRichTextReceivedFunc func, lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer clipboard, buffer, func, func_info;
+  _p = args;
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_rich_text", 1, clipboard, "GtkClipboard*");
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_rich_text", 2, buffer, "GtkTextBuffer*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkClipboardRichTextReceivedFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_rich_text", 3, func, "GtkClipboardRichTextReceivedFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_clipboard_request_rich_text", 4, func_info, "lambda_data");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    gtk_clipboard_request_rich_text(s7_c_pointer(clipboard), s7_c_pointer(buffer), s7_c_pointer(func), (gpointer)lg_ptr);
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_clipboard_wait_for_rich_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_wait_for_rich_text "guint8* gtk_clipboard_wait_for_rich_text(GtkClipboard* clipboard, \
+GtkTextBuffer* buffer, GdkAtom* format, gsize* [length])"
+  s7_pointer _p;
+  s7_pointer clipboard, buffer, format;
+  gsize ref_length;
+  _p = args;
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_for_rich_text", 1, clipboard, "GtkClipboard*");
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_for_rich_text", 2, buffer, "GtkTextBuffer*");
+  format = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(format, GdkAtom__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_for_rich_text", 3, format, "GdkAtom*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, guint8__sym, gtk_clipboard_wait_for_rich_text(s7_c_pointer(clipboard), s7_c_pointer(buffer), s7_c_pointer(format), &ref_length));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_length)));
+   }
+}
+
+static s7_pointer lg_gtk_clipboard_wait_is_rich_text_available(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_wait_is_rich_text_available "gboolean gtk_clipboard_wait_is_rich_text_available(GtkClipboard* clipboard, \
+GtkTextBuffer* buffer)"
+  s7_pointer _p;
+  s7_pointer clipboard, buffer;
+  _p = args;
+  clipboard = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_is_rich_text_available", 1, clipboard, "GtkClipboard*");
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_is_rich_text_available", 2, buffer, "GtkTextBuffer*");
+  return(s7_make_boolean(sc, gtk_clipboard_wait_is_rich_text_available(s7_c_pointer(clipboard), s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_drag_dest_set_track_motion(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_dest_set_track_motion "void gtk_drag_dest_set_track_motion(GtkWidget* widget, gboolean track_motion)"
+  s7_pointer _p;
+  s7_pointer widget, track_motion;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_set_track_motion", 1, widget, "GtkWidget*");
+  track_motion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(track_motion)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_set_track_motion", 2, track_motion, "gboolean");
+  gtk_drag_dest_set_track_motion(s7_c_pointer(widget), lg_boolean(track_motion));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_dest_get_track_motion(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_dest_get_track_motion "gboolean gtk_drag_dest_get_track_motion(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_dest_get_track_motion", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_drag_dest_get_track_motion(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_notebook_get_tab_reorderable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_tab_reorderable "gboolean gtk_notebook_get_tab_reorderable(GtkNotebook* notebook, \
+GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer notebook, child;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_tab_reorderable", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_tab_reorderable", 2, child, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_notebook_get_tab_reorderable(s7_c_pointer(notebook), s7_c_pointer(child))));
+}
+
+static s7_pointer lg_gtk_notebook_set_tab_reorderable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_set_tab_reorderable "void gtk_notebook_set_tab_reorderable(GtkNotebook* notebook, \
+GtkWidget* child, gboolean reorderable)"
+  s7_pointer _p;
+  s7_pointer notebook, child, reorderable;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_tab_reorderable", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_tab_reorderable", 2, child, "GtkWidget*");
+  reorderable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(reorderable)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_tab_reorderable", 3, reorderable, "gboolean");
+  gtk_notebook_set_tab_reorderable(s7_c_pointer(notebook), s7_c_pointer(child), lg_boolean(reorderable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_get_tab_detachable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_tab_detachable "gboolean gtk_notebook_get_tab_detachable(GtkNotebook* notebook, \
+GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer notebook, child;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_tab_detachable", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_tab_detachable", 2, child, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_notebook_get_tab_detachable(s7_c_pointer(notebook), s7_c_pointer(child))));
+}
+
+static s7_pointer lg_gtk_notebook_set_tab_detachable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_set_tab_detachable "void gtk_notebook_set_tab_detachable(GtkNotebook* notebook, \
+GtkWidget* child, gboolean detachable)"
+  s7_pointer _p;
+  s7_pointer notebook, child, detachable;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_tab_detachable", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_tab_detachable", 2, child, "GtkWidget*");
+  detachable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(detachable)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_tab_detachable", 3, detachable, "gboolean");
+  gtk_notebook_set_tab_detachable(s7_c_pointer(notebook), s7_c_pointer(child), lg_boolean(detachable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_set_lower_stepper_sensitivity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_set_lower_stepper_sensitivity "void gtk_range_set_lower_stepper_sensitivity(GtkRange* range, \
+GtkSensitivityType sensitivity)"
+  s7_pointer _p;
+  s7_pointer range, sensitivity;
+  _p = args;
+  range = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_set_lower_stepper_sensitivity", 1, range, "GtkRange*");
+  sensitivity = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(sensitivity)) s7_wrong_type_arg_error(sc, "gtk_range_set_lower_stepper_sensitivity", 2, sensitivity, "GtkSensitivityType");
+  gtk_range_set_lower_stepper_sensitivity(s7_c_pointer(range), s7_integer(sensitivity));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_get_lower_stepper_sensitivity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_get_lower_stepper_sensitivity "GtkSensitivityType gtk_range_get_lower_stepper_sensitivity(GtkRange* range)"
+  s7_pointer range;
+  range = s7_car(args);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_get_lower_stepper_sensitivity", 1, range, "GtkRange*");
+  return(s7_make_integer(sc, gtk_range_get_lower_stepper_sensitivity(s7_c_pointer(range))));
+}
+
+static s7_pointer lg_gtk_range_set_upper_stepper_sensitivity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_set_upper_stepper_sensitivity "void gtk_range_set_upper_stepper_sensitivity(GtkRange* range, \
+GtkSensitivityType sensitivity)"
+  s7_pointer _p;
+  s7_pointer range, sensitivity;
+  _p = args;
+  range = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_set_upper_stepper_sensitivity", 1, range, "GtkRange*");
+  sensitivity = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(sensitivity)) s7_wrong_type_arg_error(sc, "gtk_range_set_upper_stepper_sensitivity", 2, sensitivity, "GtkSensitivityType");
+  gtk_range_set_upper_stepper_sensitivity(s7_c_pointer(range), s7_integer(sensitivity));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_get_upper_stepper_sensitivity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_get_upper_stepper_sensitivity "GtkSensitivityType gtk_range_get_upper_stepper_sensitivity(GtkRange* range)"
+  s7_pointer range;
+  range = s7_car(args);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_get_upper_stepper_sensitivity", 1, range, "GtkRange*");
+  return(s7_make_integer(sc, gtk_range_get_upper_stepper_sensitivity(s7_c_pointer(range))));
+}
+
+static s7_pointer lg_gtk_scrolled_window_unset_placement(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_unset_placement "void gtk_scrolled_window_unset_placement(GtkScrolledWindow* scrolled_window)"
+  s7_pointer scrolled_window;
+  scrolled_window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_unset_placement", 1, scrolled_window, "GtkScrolledWindow*");
+  gtk_scrolled_window_unset_placement(s7_c_pointer(scrolled_window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_target_list_add_rich_text_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_list_add_rich_text_targets "void gtk_target_list_add_rich_text_targets(GtkTargetList* list, \
+guint info, gboolean deserializable, GtkTextBuffer* buffer)"
+  s7_pointer _p;
+  s7_pointer list, info, deserializable, buffer;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, GtkTargetList__sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_add_rich_text_targets", 1, list, "GtkTargetList*");
+  info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(info)) s7_wrong_type_arg_error(sc, "gtk_target_list_add_rich_text_targets", 2, info, "guint");
+  deserializable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(deserializable)) s7_wrong_type_arg_error(sc, "gtk_target_list_add_rich_text_targets", 3, deserializable, "gboolean");
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_target_list_add_rich_text_targets", 4, buffer, "GtkTextBuffer*");
+  gtk_target_list_add_rich_text_targets(s7_c_pointer(list), s7_integer(info), lg_boolean(deserializable), s7_c_pointer(buffer));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_target_table_new_from_list(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_table_new_from_list "GtkTargetEntry* gtk_target_table_new_from_list(GtkTargetList* list, \
+gint* [n_targets])"
+  s7_pointer _p;
+  s7_pointer list;
+  gint ref_n_targets;
+  _p = args;
+  list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list, GtkTargetList__sym)) s7_wrong_type_arg_error(sc, "gtk_target_table_new_from_list", 1, list, "GtkTargetList*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GtkTargetEntry__sym, gtk_target_table_new_from_list(s7_c_pointer(list), &ref_n_targets));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_n_targets)));
+   }
+}
+
+static s7_pointer lg_gtk_target_table_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_table_free "void gtk_target_table_free(GtkTargetEntry* targets, gint n_targets)"
+  s7_pointer _p;
+  s7_pointer targets, n_targets;
+  _p = args;
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GtkTargetEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_target_table_free", 1, targets, "GtkTargetEntry*");
+  n_targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_targets)) s7_wrong_type_arg_error(sc, "gtk_target_table_free", 2, n_targets, "gint");
+  gtk_target_table_free(s7_c_pointer(targets), s7_integer(n_targets));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_selection_data_targets_include_rich_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_targets_include_rich_text "gboolean gtk_selection_data_targets_include_rich_text(GtkSelectionData* selection_data, \
+GtkTextBuffer* buffer)"
+  s7_pointer _p;
+  s7_pointer selection_data, buffer;
+  _p = args;
+  selection_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_targets_include_rich_text", 1, selection_data, "GtkSelectionData*");
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_targets_include_rich_text", 2, buffer, "GtkTextBuffer*");
+  return(s7_make_boolean(sc, gtk_selection_data_targets_include_rich_text(s7_c_pointer(selection_data), s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_selection_data_targets_include_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_targets_include_uri "gboolean gtk_selection_data_targets_include_uri(GtkSelectionData* selection_data)"
+  s7_pointer selection_data;
+  selection_data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_targets_include_uri", 1, selection_data, "GtkSelectionData*");
+  return(s7_make_boolean(sc, gtk_selection_data_targets_include_uri(s7_c_pointer(selection_data))));
+}
+
+static s7_pointer lg_gtk_targets_include_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_targets_include_text "gboolean gtk_targets_include_text(GdkAtom* targets, gint n_targets)"
+  s7_pointer _p;
+  s7_pointer targets, n_targets;
+  _p = args;
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GdkAtom__sym)) s7_wrong_type_arg_error(sc, "gtk_targets_include_text", 1, targets, "GdkAtom*");
+  n_targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_targets)) s7_wrong_type_arg_error(sc, "gtk_targets_include_text", 2, n_targets, "gint");
+  return(s7_make_boolean(sc, gtk_targets_include_text(s7_c_pointer(targets), s7_integer(n_targets))));
+}
+
+static s7_pointer lg_gtk_targets_include_rich_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_targets_include_rich_text "gboolean gtk_targets_include_rich_text(GdkAtom* targets, gint n_targets, \
+GtkTextBuffer* buffer)"
+  s7_pointer _p;
+  s7_pointer targets, n_targets, buffer;
+  _p = args;
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GdkAtom__sym)) s7_wrong_type_arg_error(sc, "gtk_targets_include_rich_text", 1, targets, "GdkAtom*");
+  n_targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_targets)) s7_wrong_type_arg_error(sc, "gtk_targets_include_rich_text", 2, n_targets, "gint");
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_targets_include_rich_text", 3, buffer, "GtkTextBuffer*");
+  return(s7_make_boolean(sc, gtk_targets_include_rich_text(s7_c_pointer(targets), s7_integer(n_targets), s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_targets_include_image(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_targets_include_image "gboolean gtk_targets_include_image(GdkAtom* targets, gint n_targets, \
+gboolean writable)"
+  s7_pointer _p;
+  s7_pointer targets, n_targets, writable;
+  _p = args;
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GdkAtom__sym)) s7_wrong_type_arg_error(sc, "gtk_targets_include_image", 1, targets, "GdkAtom*");
+  n_targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_targets)) s7_wrong_type_arg_error(sc, "gtk_targets_include_image", 2, n_targets, "gint");
+  writable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(writable)) s7_wrong_type_arg_error(sc, "gtk_targets_include_image", 3, writable, "gboolean");
+  return(s7_make_boolean(sc, gtk_targets_include_image(s7_c_pointer(targets), s7_integer(n_targets), lg_boolean(writable))));
+}
+
+static s7_pointer lg_gtk_targets_include_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_targets_include_uri "gboolean gtk_targets_include_uri(GdkAtom* targets, gint n_targets)"
+  s7_pointer _p;
+  s7_pointer targets, n_targets;
+  _p = args;
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GdkAtom__sym)) s7_wrong_type_arg_error(sc, "gtk_targets_include_uri", 1, targets, "GdkAtom*");
+  n_targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_targets)) s7_wrong_type_arg_error(sc, "gtk_targets_include_uri", 2, n_targets, "gint");
+  return(s7_make_boolean(sc, gtk_targets_include_uri(s7_c_pointer(targets), s7_integer(n_targets))));
+}
+
+static s7_pointer lg_gtk_size_group_get_widgets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_size_group_get_widgets "GSList* gtk_size_group_get_widgets(GtkSizeGroup* size_group)"
+  s7_pointer size_group;
+  size_group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(size_group, GtkSizeGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_size_group_get_widgets", 1, size_group, "GtkSizeGroup*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_size_group_get_widgets(s7_c_pointer(size_group))));
+}
+
+static s7_pointer lg_gtk_text_buffer_get_has_selection(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_has_selection "gboolean gtk_text_buffer_get_has_selection(GtkTextBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_has_selection", 1, buffer, "GtkTextBuffer*");
+  return(s7_make_boolean(sc, gtk_text_buffer_get_has_selection(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_text_buffer_get_copy_target_list(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_copy_target_list "GtkTargetList* gtk_text_buffer_get_copy_target_list(GtkTextBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_copy_target_list", 1, buffer, "GtkTextBuffer*");
+  return(s7_make_type_with_c_pointer(sc, GtkTargetList__sym, gtk_text_buffer_get_copy_target_list(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_text_buffer_get_paste_target_list(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_paste_target_list "GtkTargetList* gtk_text_buffer_get_paste_target_list(GtkTextBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_paste_target_list", 1, buffer, "GtkTextBuffer*");
+  return(s7_make_type_with_c_pointer(sc, GtkTargetList__sym, gtk_text_buffer_get_paste_target_list(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_tree_view_get_headers_clickable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_headers_clickable "gboolean gtk_tree_view_get_headers_clickable(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_headers_clickable", 1, tree_view, "GtkTreeView*");
+  return(s7_make_boolean(sc, gtk_tree_view_get_headers_clickable(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_get_search_entry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_search_entry "GtkEntry* gtk_tree_view_get_search_entry(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_search_entry", 1, tree_view, "GtkTreeView*");
+  return(s7_make_type_with_c_pointer(sc, GtkEntry__sym, gtk_tree_view_get_search_entry(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_search_entry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_search_entry "void gtk_tree_view_set_search_entry(GtkTreeView* tree_view, \
+GtkEntry* entry)"
+  s7_pointer _p;
+  s7_pointer tree_view, entry;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_search_entry", 1, tree_view, "GtkTreeView*");
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_search_entry", 2, entry, "GtkEntry*");
+  gtk_tree_view_set_search_entry(s7_c_pointer(tree_view), s7_c_pointer(entry));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_search_position_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_search_position_func "GtkTreeViewSearchPositionFunc gtk_tree_view_get_search_position_func(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_search_position_func", 1, tree_view, "GtkTreeView*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeViewSearchPositionFunc_sym, gtk_tree_view_get_search_position_func(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_search_position_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_search_position_func "void gtk_tree_view_set_search_position_func(GtkTreeView* tree_view, \
+GtkTreeViewSearchPositionFunc func, lambda_data func_info, GDestroyNotify destroy)"
+  s7_pointer _p;
+  s7_pointer tree_view, func, func_info, destroy;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_search_position_func", 1, tree_view, "GtkTreeView*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkTreeViewSearchPositionFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_search_position_func", 2, func, "GtkTreeViewSearchPositionFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_search_position_func", 3, func_info, "lambda_data");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, GDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_search_position_func", 4, destroy, "GDestroyNotify");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    gtk_tree_view_set_search_position_func(s7_c_pointer(tree_view), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(destroy));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_window_set_deletable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_deletable "void gtk_window_set_deletable(GtkWindow* window, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_deletable", 1, window, "GtkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_window_set_deletable", 2, setting, "gboolean");
+  gtk_window_set_deletable(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_deletable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_deletable "gboolean gtk_window_get_deletable(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_deletable", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_get_deletable(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_assistant_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_new "GtkWidget* gtk_assistant_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_assistant_new()));
+}
+
+static s7_pointer lg_gtk_assistant_get_current_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_get_current_page "gint gtk_assistant_get_current_page(GtkAssistant* assistant)"
+  s7_pointer assistant;
+  assistant = s7_car(args);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_get_current_page", 1, assistant, "GtkAssistant*");
+  return(s7_make_integer(sc, gtk_assistant_get_current_page(s7_c_pointer(assistant))));
+}
+
+static s7_pointer lg_gtk_assistant_set_current_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_set_current_page "void gtk_assistant_set_current_page(GtkAssistant* assistant, \
+gint page_num)"
+  s7_pointer _p;
+  s7_pointer assistant, page_num;
+  _p = args;
+  assistant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_current_page", 1, assistant, "GtkAssistant*");
+  page_num = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(page_num)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_current_page", 2, page_num, "gint");
+  gtk_assistant_set_current_page(s7_c_pointer(assistant), s7_integer(page_num));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_assistant_get_n_pages(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_get_n_pages "gint gtk_assistant_get_n_pages(GtkAssistant* assistant)"
+  s7_pointer assistant;
+  assistant = s7_car(args);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_get_n_pages", 1, assistant, "GtkAssistant*");
+  return(s7_make_integer(sc, gtk_assistant_get_n_pages(s7_c_pointer(assistant))));
+}
+
+static s7_pointer lg_gtk_assistant_get_nth_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_get_nth_page "GtkWidget* gtk_assistant_get_nth_page(GtkAssistant* assistant, \
+gint page_num)"
+  s7_pointer _p;
+  s7_pointer assistant, page_num;
+  _p = args;
+  assistant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_get_nth_page", 1, assistant, "GtkAssistant*");
+  page_num = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(page_num)) s7_wrong_type_arg_error(sc, "gtk_assistant_get_nth_page", 2, page_num, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_assistant_get_nth_page(s7_c_pointer(assistant), s7_integer(page_num))));
+}
+
+static s7_pointer lg_gtk_assistant_prepend_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_prepend_page "gint gtk_assistant_prepend_page(GtkAssistant* assistant, GtkWidget* page)"
+  s7_pointer _p;
+  s7_pointer assistant, page;
+  _p = args;
+  assistant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_prepend_page", 1, assistant, "GtkAssistant*");
+  page = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(page, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_prepend_page", 2, page, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_assistant_prepend_page(s7_c_pointer(assistant), s7_c_pointer(page))));
+}
+
+static s7_pointer lg_gtk_assistant_append_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_append_page "gint gtk_assistant_append_page(GtkAssistant* assistant, GtkWidget* page)"
+  s7_pointer _p;
+  s7_pointer assistant, page;
+  _p = args;
+  assistant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_append_page", 1, assistant, "GtkAssistant*");
+  page = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(page, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_append_page", 2, page, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_assistant_append_page(s7_c_pointer(assistant), s7_c_pointer(page))));
+}
+
+static s7_pointer lg_gtk_assistant_insert_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_insert_page "gint gtk_assistant_insert_page(GtkAssistant* assistant, GtkWidget* page, \
+gint position)"
+  s7_pointer _p;
+  s7_pointer assistant, page, position;
+  _p = args;
+  assistant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_insert_page", 1, assistant, "GtkAssistant*");
+  page = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(page, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_insert_page", 2, page, "GtkWidget*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_assistant_insert_page", 3, position, "gint");
+  return(s7_make_integer(sc, gtk_assistant_insert_page(s7_c_pointer(assistant), s7_c_pointer(page), s7_integer(position))));
+}
+
+static s7_pointer lg_gtk_assistant_set_forward_page_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_set_forward_page_func "void gtk_assistant_set_forward_page_func(GtkAssistant* assistant, \
+GtkAssistantPageFunc page_func, lambda_data func_info, GDestroyNotify destroy)"
+  s7_pointer _p;
+  s7_pointer assistant, page_func, func_info, destroy;
+  _p = args;
+  assistant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_forward_page_func", 1, assistant, "GtkAssistant*");
+  page_func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(page_func, GtkAssistantPageFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_forward_page_func", 2, page_func, "GtkAssistantPageFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_forward_page_func", 3, func_info, "lambda_data");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, GDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_forward_page_func", 4, destroy, "GDestroyNotify");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, lg_false, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    gtk_assistant_set_forward_page_func(s7_c_pointer(assistant), s7_c_pointer(page_func), (gpointer)lg_ptr, s7_c_pointer(destroy));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_assistant_set_page_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_set_page_type "void gtk_assistant_set_page_type(GtkAssistant* assistant, GtkWidget* page, \
+GtkAssistantPageType type)"
+  s7_pointer _p;
+  s7_pointer assistant, page, type;
+  _p = args;
+  assistant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_page_type", 1, assistant, "GtkAssistant*");
+  page = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(page, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_page_type", 2, page, "GtkWidget*");
+  type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(type)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_page_type", 3, type, "GtkAssistantPageType");
+  gtk_assistant_set_page_type(s7_c_pointer(assistant), s7_c_pointer(page), s7_integer(type));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_assistant_get_page_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_get_page_type "GtkAssistantPageType gtk_assistant_get_page_type(GtkAssistant* assistant, \
+GtkWidget* page)"
+  s7_pointer _p;
+  s7_pointer assistant, page;
+  _p = args;
+  assistant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_get_page_type", 1, assistant, "GtkAssistant*");
+  page = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(page, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_get_page_type", 2, page, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_assistant_get_page_type(s7_c_pointer(assistant), s7_c_pointer(page))));
+}
+
+static s7_pointer lg_gtk_assistant_set_page_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_set_page_title "void gtk_assistant_set_page_title(GtkAssistant* assistant, \
+GtkWidget* page, gchar* title)"
+  s7_pointer _p;
+  s7_pointer assistant, page, title;
+  _p = args;
+  assistant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_page_title", 1, assistant, "GtkAssistant*");
+  page = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(page, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_page_title", 2, page, "GtkWidget*");
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_page_title", 3, title, "gchar*");
+  gtk_assistant_set_page_title(s7_c_pointer(assistant), s7_c_pointer(page), s7_string(title));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_assistant_get_page_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_get_page_title "gchar* gtk_assistant_get_page_title(GtkAssistant* assistant, \
+GtkWidget* page)"
+  s7_pointer _p;
+  s7_pointer assistant, page;
+  _p = args;
+  assistant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_get_page_title", 1, assistant, "GtkAssistant*");
+  page = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(page, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_get_page_title", 2, page, "GtkWidget*");
+  return(s7_make_string(sc, gtk_assistant_get_page_title(s7_c_pointer(assistant), s7_c_pointer(page))));
+}
+
+static s7_pointer lg_gtk_assistant_set_page_complete(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_set_page_complete "void gtk_assistant_set_page_complete(GtkAssistant* assistant, \
+GtkWidget* page, gboolean complete)"
+  s7_pointer _p;
+  s7_pointer assistant, page, complete;
+  _p = args;
+  assistant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_page_complete", 1, assistant, "GtkAssistant*");
+  page = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(page, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_page_complete", 2, page, "GtkWidget*");
+  complete = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(complete)) s7_wrong_type_arg_error(sc, "gtk_assistant_set_page_complete", 3, complete, "gboolean");
+  gtk_assistant_set_page_complete(s7_c_pointer(assistant), s7_c_pointer(page), lg_boolean(complete));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_assistant_get_page_complete(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_get_page_complete "gboolean gtk_assistant_get_page_complete(GtkAssistant* assistant, \
+GtkWidget* page)"
+  s7_pointer _p;
+  s7_pointer assistant, page;
+  _p = args;
+  assistant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_get_page_complete", 1, assistant, "GtkAssistant*");
+  page = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(page, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_get_page_complete", 2, page, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_assistant_get_page_complete(s7_c_pointer(assistant), s7_c_pointer(page))));
+}
+
+static s7_pointer lg_gtk_assistant_add_action_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_add_action_widget "void gtk_assistant_add_action_widget(GtkAssistant* assistant, \
+GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer assistant, child;
+  _p = args;
+  assistant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_add_action_widget", 1, assistant, "GtkAssistant*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_add_action_widget", 2, child, "GtkWidget*");
+  gtk_assistant_add_action_widget(s7_c_pointer(assistant), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_assistant_remove_action_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_remove_action_widget "void gtk_assistant_remove_action_widget(GtkAssistant* assistant, \
+GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer assistant, child;
+  _p = args;
+  assistant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_remove_action_widget", 1, assistant, "GtkAssistant*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_remove_action_widget", 2, child, "GtkWidget*");
+  gtk_assistant_remove_action_widget(s7_c_pointer(assistant), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_assistant_update_buttons_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_update_buttons_state "void gtk_assistant_update_buttons_state(GtkAssistant* assistant)"
+  s7_pointer assistant;
+  assistant = s7_car(args);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_update_buttons_state", 1, assistant, "GtkAssistant*");
+  gtk_assistant_update_buttons_state(s7_c_pointer(assistant));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_renderer_accel_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_accel_new "GtkCellRenderer* gtk_cell_renderer_accel_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkCellRenderer__sym, gtk_cell_renderer_accel_new()));
+}
+
+static s7_pointer lg_gtk_cell_renderer_spin_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_spin_new "GtkCellRenderer* gtk_cell_renderer_spin_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkCellRenderer__sym, gtk_cell_renderer_spin_new()));
+}
+
+static s7_pointer lg_gtk_link_button_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_link_button_new "GtkWidget* gtk_link_button_new(gchar* uri)"
+  s7_pointer uri;
+  uri = s7_car(args);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_link_button_new", 1, uri, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_link_button_new(s7_string(uri))));
+}
+
+static s7_pointer lg_gtk_link_button_new_with_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_link_button_new_with_label "GtkWidget* gtk_link_button_new_with_label(gchar* uri, gchar* label)"
+  s7_pointer _p;
+  s7_pointer uri, label;
+  _p = args;
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_link_button_new_with_label", 1, uri, "gchar*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_link_button_new_with_label", 2, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_link_button_new_with_label(s7_string(uri), s7_string(label))));
+}
+
+static s7_pointer lg_gtk_link_button_get_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_link_button_get_uri "gchar* gtk_link_button_get_uri(GtkLinkButton* link_button)"
+  s7_pointer link_button;
+  link_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(link_button, GtkLinkButton__sym)) s7_wrong_type_arg_error(sc, "gtk_link_button_get_uri", 1, link_button, "GtkLinkButton*");
+  return(s7_make_string(sc, gtk_link_button_get_uri(s7_c_pointer(link_button))));
+}
+
+static s7_pointer lg_gtk_link_button_set_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_link_button_set_uri "void gtk_link_button_set_uri(GtkLinkButton* link_button, gchar* uri)"
+  s7_pointer _p;
+  s7_pointer link_button, uri;
+  _p = args;
+  link_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(link_button, GtkLinkButton__sym)) s7_wrong_type_arg_error(sc, "gtk_link_button_set_uri", 1, link_button, "GtkLinkButton*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_link_button_set_uri", 2, uri, "gchar*");
+  gtk_link_button_set_uri(s7_c_pointer(link_button), s7_string(uri));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_error_quark(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_error_quark "GQuark gtk_recent_chooser_error_quark( void)"
+  return(s7_make_integer(sc, gtk_recent_chooser_error_quark()));
+}
+
+static s7_pointer lg_gtk_recent_chooser_set_show_private(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_set_show_private "void gtk_recent_chooser_set_show_private(GtkRecentChooser* chooser, \
+gboolean show_private)"
+  s7_pointer _p;
+  s7_pointer chooser, show_private;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_show_private", 1, chooser, "GtkRecentChooser*");
+  show_private = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_private)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_show_private", 2, show_private, "gboolean");
+  gtk_recent_chooser_set_show_private(s7_c_pointer(chooser), lg_boolean(show_private));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_get_show_private(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_get_show_private "gboolean gtk_recent_chooser_get_show_private(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_get_show_private", 1, chooser, "GtkRecentChooser*");
+  return(s7_make_boolean(sc, gtk_recent_chooser_get_show_private(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_set_show_not_found(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_set_show_not_found "void gtk_recent_chooser_set_show_not_found(GtkRecentChooser* chooser, \
+gboolean show_not_found)"
+  s7_pointer _p;
+  s7_pointer chooser, show_not_found;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_show_not_found", 1, chooser, "GtkRecentChooser*");
+  show_not_found = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_not_found)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_show_not_found", 2, show_not_found, "gboolean");
+  gtk_recent_chooser_set_show_not_found(s7_c_pointer(chooser), lg_boolean(show_not_found));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_get_show_not_found(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_get_show_not_found "gboolean gtk_recent_chooser_get_show_not_found(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_get_show_not_found", 1, chooser, "GtkRecentChooser*");
+  return(s7_make_boolean(sc, gtk_recent_chooser_get_show_not_found(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_set_select_multiple(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_set_select_multiple "void gtk_recent_chooser_set_select_multiple(GtkRecentChooser* chooser, \
+gboolean select_multiple)"
+  s7_pointer _p;
+  s7_pointer chooser, select_multiple;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_select_multiple", 1, chooser, "GtkRecentChooser*");
+  select_multiple = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(select_multiple)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_select_multiple", 2, select_multiple, "gboolean");
+  gtk_recent_chooser_set_select_multiple(s7_c_pointer(chooser), lg_boolean(select_multiple));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_get_select_multiple(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_get_select_multiple "gboolean gtk_recent_chooser_get_select_multiple(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_get_select_multiple", 1, chooser, "GtkRecentChooser*");
+  return(s7_make_boolean(sc, gtk_recent_chooser_get_select_multiple(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_set_limit(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_set_limit "void gtk_recent_chooser_set_limit(GtkRecentChooser* chooser, \
+gint limit)"
+  s7_pointer _p;
+  s7_pointer chooser, limit;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_limit", 1, chooser, "GtkRecentChooser*");
+  limit = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(limit)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_limit", 2, limit, "gint");
+  gtk_recent_chooser_set_limit(s7_c_pointer(chooser), s7_integer(limit));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_get_limit(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_get_limit "gint gtk_recent_chooser_get_limit(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_get_limit", 1, chooser, "GtkRecentChooser*");
+  return(s7_make_integer(sc, gtk_recent_chooser_get_limit(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_set_local_only(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_set_local_only "void gtk_recent_chooser_set_local_only(GtkRecentChooser* chooser, \
+gboolean local_only)"
+  s7_pointer _p;
+  s7_pointer chooser, local_only;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_local_only", 1, chooser, "GtkRecentChooser*");
+  local_only = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(local_only)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_local_only", 2, local_only, "gboolean");
+  gtk_recent_chooser_set_local_only(s7_c_pointer(chooser), lg_boolean(local_only));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_get_local_only(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_get_local_only "gboolean gtk_recent_chooser_get_local_only(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_get_local_only", 1, chooser, "GtkRecentChooser*");
+  return(s7_make_boolean(sc, gtk_recent_chooser_get_local_only(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_set_show_tips(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_set_show_tips "void gtk_recent_chooser_set_show_tips(GtkRecentChooser* chooser, \
+gboolean show_tips)"
+  s7_pointer _p;
+  s7_pointer chooser, show_tips;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_show_tips", 1, chooser, "GtkRecentChooser*");
+  show_tips = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_tips)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_show_tips", 2, show_tips, "gboolean");
+  gtk_recent_chooser_set_show_tips(s7_c_pointer(chooser), lg_boolean(show_tips));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_get_show_tips(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_get_show_tips "gboolean gtk_recent_chooser_get_show_tips(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_get_show_tips", 1, chooser, "GtkRecentChooser*");
+  return(s7_make_boolean(sc, gtk_recent_chooser_get_show_tips(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_set_show_icons(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_set_show_icons "void gtk_recent_chooser_set_show_icons(GtkRecentChooser* chooser, \
+gboolean show_icons)"
+  s7_pointer _p;
+  s7_pointer chooser, show_icons;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_show_icons", 1, chooser, "GtkRecentChooser*");
+  show_icons = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_icons)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_show_icons", 2, show_icons, "gboolean");
+  gtk_recent_chooser_set_show_icons(s7_c_pointer(chooser), lg_boolean(show_icons));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_get_show_icons(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_get_show_icons "gboolean gtk_recent_chooser_get_show_icons(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_get_show_icons", 1, chooser, "GtkRecentChooser*");
+  return(s7_make_boolean(sc, gtk_recent_chooser_get_show_icons(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_set_sort_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_set_sort_type "void gtk_recent_chooser_set_sort_type(GtkRecentChooser* chooser, \
+GtkRecentSortType sort_type)"
+  s7_pointer _p;
+  s7_pointer chooser, sort_type;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_sort_type", 1, chooser, "GtkRecentChooser*");
+  sort_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(sort_type)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_sort_type", 2, sort_type, "GtkRecentSortType");
+  gtk_recent_chooser_set_sort_type(s7_c_pointer(chooser), s7_integer(sort_type));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_get_sort_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_get_sort_type "GtkRecentSortType gtk_recent_chooser_get_sort_type(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_get_sort_type", 1, chooser, "GtkRecentChooser*");
+  return(s7_make_integer(sc, gtk_recent_chooser_get_sort_type(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_set_sort_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_set_sort_func "void gtk_recent_chooser_set_sort_func(GtkRecentChooser* chooser, \
+GtkRecentSortFunc func, lambda_data func_info, GDestroyNotify data_destroy)"
+  s7_pointer _p;
+  s7_pointer chooser, func, func_info, data_destroy;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_sort_func", 1, chooser, "GtkRecentChooser*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkRecentSortFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_sort_func", 2, func, "GtkRecentSortFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_sort_func", 3, func_info, "lambda_data");
+  data_destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data_destroy, GDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_sort_func", 4, data_destroy, "GDestroyNotify");
+  {
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    gtk_recent_chooser_set_sort_func(s7_c_pointer(chooser), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(data_destroy));
+    return(lg_false);
+   }
+}
+
+static s7_pointer lg_gtk_recent_chooser_set_current_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_set_current_uri "gboolean gtk_recent_chooser_set_current_uri(GtkRecentChooser* chooser, \
+gchar* uri, GError** [error])"
+  s7_pointer _p;
+  s7_pointer chooser, uri;
+  GError* ref_error = NULL;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_current_uri", 1, chooser, "GtkRecentChooser*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_current_uri", 2, uri, "gchar*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_recent_chooser_set_current_uri(s7_c_pointer(chooser), s7_string(uri), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_recent_chooser_get_current_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_get_current_uri "gchar* gtk_recent_chooser_get_current_uri(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_get_current_uri", 1, chooser, "GtkRecentChooser*");
+  return(s7_make_string(sc, gtk_recent_chooser_get_current_uri(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_get_current_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_get_current_item "GtkRecentInfo* gtk_recent_chooser_get_current_item(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_get_current_item", 1, chooser, "GtkRecentChooser*");
+  return(s7_make_type_with_c_pointer(sc, GtkRecentInfo__sym, gtk_recent_chooser_get_current_item(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_select_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_select_uri "gboolean gtk_recent_chooser_select_uri(GtkRecentChooser* chooser, \
+gchar* uri, GError** [error])"
+  s7_pointer _p;
+  s7_pointer chooser, uri;
+  GError* ref_error = NULL;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_select_uri", 1, chooser, "GtkRecentChooser*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_select_uri", 2, uri, "gchar*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_recent_chooser_select_uri(s7_c_pointer(chooser), s7_string(uri), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_recent_chooser_unselect_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_unselect_uri "void gtk_recent_chooser_unselect_uri(GtkRecentChooser* chooser, \
+gchar* uri)"
+  s7_pointer _p;
+  s7_pointer chooser, uri;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_unselect_uri", 1, chooser, "GtkRecentChooser*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_unselect_uri", 2, uri, "gchar*");
+  gtk_recent_chooser_unselect_uri(s7_c_pointer(chooser), s7_string(uri));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_select_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_select_all "void gtk_recent_chooser_select_all(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_select_all", 1, chooser, "GtkRecentChooser*");
+  gtk_recent_chooser_select_all(s7_c_pointer(chooser));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_unselect_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_unselect_all "void gtk_recent_chooser_unselect_all(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_unselect_all", 1, chooser, "GtkRecentChooser*");
+  gtk_recent_chooser_unselect_all(s7_c_pointer(chooser));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_get_items(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_get_items "GList* gtk_recent_chooser_get_items(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_get_items", 1, chooser, "GtkRecentChooser*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_recent_chooser_get_items(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_get_uris(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_get_uris "gchar** gtk_recent_chooser_get_uris(GtkRecentChooser* chooser, \
+gsize* [length])"
+  s7_pointer _p;
+  s7_pointer chooser;
+  gsize ref_length;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_get_uris", 1, chooser, "GtkRecentChooser*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, gchar___sym, gtk_recent_chooser_get_uris(s7_c_pointer(chooser), &ref_length));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_length)));
+   }
+}
+
+static s7_pointer lg_gtk_recent_chooser_add_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_add_filter "void gtk_recent_chooser_add_filter(GtkRecentChooser* chooser, \
+GtkRecentFilter* filter)"
+  s7_pointer _p;
+  s7_pointer chooser, filter;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_add_filter", 1, chooser, "GtkRecentChooser*");
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkRecentFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_add_filter", 2, filter, "GtkRecentFilter*");
+  gtk_recent_chooser_add_filter(s7_c_pointer(chooser), s7_c_pointer(filter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_remove_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_remove_filter "void gtk_recent_chooser_remove_filter(GtkRecentChooser* chooser, \
+GtkRecentFilter* filter)"
+  s7_pointer _p;
+  s7_pointer chooser, filter;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_remove_filter", 1, chooser, "GtkRecentChooser*");
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkRecentFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_remove_filter", 2, filter, "GtkRecentFilter*");
+  gtk_recent_chooser_remove_filter(s7_c_pointer(chooser), s7_c_pointer(filter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_list_filters(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_list_filters "GSList* gtk_recent_chooser_list_filters(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_list_filters", 1, chooser, "GtkRecentChooser*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_recent_chooser_list_filters(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_set_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_set_filter "void gtk_recent_chooser_set_filter(GtkRecentChooser* chooser, \
+GtkRecentFilter* filter)"
+  s7_pointer _p;
+  s7_pointer chooser, filter;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_filter", 1, chooser, "GtkRecentChooser*");
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkRecentFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_set_filter", 2, filter, "GtkRecentFilter*");
+  gtk_recent_chooser_set_filter(s7_c_pointer(chooser), s7_c_pointer(filter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_get_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_get_filter "GtkRecentFilter* gtk_recent_chooser_get_filter(GtkRecentChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkRecentChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_get_filter", 1, chooser, "GtkRecentChooser*");
+  return(s7_make_type_with_c_pointer(sc, GtkRecentFilter__sym, gtk_recent_chooser_get_filter(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_menu_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_menu_new "GtkWidget* gtk_recent_chooser_menu_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_recent_chooser_menu_new()));
+}
+
+static s7_pointer lg_gtk_recent_chooser_menu_new_for_manager(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_menu_new_for_manager "GtkWidget* gtk_recent_chooser_menu_new_for_manager(GtkRecentManager* manager)"
+  s7_pointer manager;
+  manager = s7_car(args);
+  if (!s7_is_c_pointer_of_type(manager, GtkRecentManager__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_menu_new_for_manager", 1, manager, "GtkRecentManager*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_recent_chooser_menu_new_for_manager(s7_c_pointer(manager))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_menu_get_show_numbers(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_menu_get_show_numbers "gboolean gtk_recent_chooser_menu_get_show_numbers(GtkRecentChooserMenu* menu)"
+  s7_pointer menu;
+  menu = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu, GtkRecentChooserMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_menu_get_show_numbers", 1, menu, "GtkRecentChooserMenu*");
+  return(s7_make_boolean(sc, gtk_recent_chooser_menu_get_show_numbers(s7_c_pointer(menu))));
+}
+
+static s7_pointer lg_gtk_recent_chooser_menu_set_show_numbers(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_menu_set_show_numbers "void gtk_recent_chooser_menu_set_show_numbers(GtkRecentChooserMenu* menu, \
+gboolean show_numbers)"
+  s7_pointer _p;
+  s7_pointer menu, show_numbers;
+  _p = args;
+  menu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu, GtkRecentChooserMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_menu_set_show_numbers", 1, menu, "GtkRecentChooserMenu*");
+  show_numbers = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_numbers)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_menu_set_show_numbers", 2, show_numbers, "gboolean");
+  gtk_recent_chooser_menu_set_show_numbers(s7_c_pointer(menu), lg_boolean(show_numbers));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_chooser_widget_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_widget_new "GtkWidget* gtk_recent_chooser_widget_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_recent_chooser_widget_new()));
+}
+
+static s7_pointer lg_gtk_recent_chooser_widget_new_for_manager(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_chooser_widget_new_for_manager "GtkWidget* gtk_recent_chooser_widget_new_for_manager(GtkRecentManager* manager)"
+  s7_pointer manager;
+  manager = s7_car(args);
+  if (!s7_is_c_pointer_of_type(manager, GtkRecentManager__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_chooser_widget_new_for_manager", 1, manager, "GtkRecentManager*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_recent_chooser_widget_new_for_manager(s7_c_pointer(manager))));
+}
+
+static s7_pointer lg_gtk_recent_filter_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_filter_new "GtkRecentFilter* gtk_recent_filter_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkRecentFilter__sym, gtk_recent_filter_new()));
+}
+
+static s7_pointer lg_gtk_recent_filter_set_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_filter_set_name "void gtk_recent_filter_set_name(GtkRecentFilter* filter, gchar* name)"
+  s7_pointer _p;
+  s7_pointer filter, name;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkRecentFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_filter_set_name", 1, filter, "GtkRecentFilter*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_recent_filter_set_name", 2, name, "gchar*");
+  gtk_recent_filter_set_name(s7_c_pointer(filter), s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_filter_get_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_filter_get_name "gchar* gtk_recent_filter_get_name(GtkRecentFilter* filter)"
+  s7_pointer filter;
+  filter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(filter, GtkRecentFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_filter_get_name", 1, filter, "GtkRecentFilter*");
+    return(s7_make_string(sc, (gchar*)gtk_recent_filter_get_name(s7_c_pointer(filter))));
+}
+
+static s7_pointer lg_gtk_recent_filter_add_mime_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_filter_add_mime_type "void gtk_recent_filter_add_mime_type(GtkRecentFilter* filter, \
+gchar* mime_type)"
+  s7_pointer _p;
+  s7_pointer filter, mime_type;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkRecentFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_filter_add_mime_type", 1, filter, "GtkRecentFilter*");
+  mime_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(mime_type)) s7_wrong_type_arg_error(sc, "gtk_recent_filter_add_mime_type", 2, mime_type, "gchar*");
+  gtk_recent_filter_add_mime_type(s7_c_pointer(filter), s7_string(mime_type));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_filter_add_pattern(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_filter_add_pattern "void gtk_recent_filter_add_pattern(GtkRecentFilter* filter, \
+gchar* pattern)"
+  s7_pointer _p;
+  s7_pointer filter, pattern;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkRecentFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_filter_add_pattern", 1, filter, "GtkRecentFilter*");
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(pattern)) s7_wrong_type_arg_error(sc, "gtk_recent_filter_add_pattern", 2, pattern, "gchar*");
+  gtk_recent_filter_add_pattern(s7_c_pointer(filter), s7_string(pattern));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_filter_add_pixbuf_formats(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_filter_add_pixbuf_formats "void gtk_recent_filter_add_pixbuf_formats(GtkRecentFilter* filter)"
+  s7_pointer filter;
+  filter = s7_car(args);
+  if (!s7_is_c_pointer_of_type(filter, GtkRecentFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_filter_add_pixbuf_formats", 1, filter, "GtkRecentFilter*");
+  gtk_recent_filter_add_pixbuf_formats(s7_c_pointer(filter));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_filter_add_application(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_filter_add_application "void gtk_recent_filter_add_application(GtkRecentFilter* filter, \
+gchar* application)"
+  s7_pointer _p;
+  s7_pointer filter, application;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkRecentFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_filter_add_application", 1, filter, "GtkRecentFilter*");
+  application = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(application)) s7_wrong_type_arg_error(sc, "gtk_recent_filter_add_application", 2, application, "gchar*");
+  gtk_recent_filter_add_application(s7_c_pointer(filter), s7_string(application));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_filter_add_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_filter_add_group "void gtk_recent_filter_add_group(GtkRecentFilter* filter, gchar* group)"
+  s7_pointer _p;
+  s7_pointer filter, group;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkRecentFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_filter_add_group", 1, filter, "GtkRecentFilter*");
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(group)) s7_wrong_type_arg_error(sc, "gtk_recent_filter_add_group", 2, group, "gchar*");
+  gtk_recent_filter_add_group(s7_c_pointer(filter), s7_string(group));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_filter_add_age(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_filter_add_age "void gtk_recent_filter_add_age(GtkRecentFilter* filter, gint days)"
+  s7_pointer _p;
+  s7_pointer filter, days;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkRecentFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_filter_add_age", 1, filter, "GtkRecentFilter*");
+  days = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(days)) s7_wrong_type_arg_error(sc, "gtk_recent_filter_add_age", 2, days, "gint");
+  gtk_recent_filter_add_age(s7_c_pointer(filter), s7_integer(days));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_manager_error_quark(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_manager_error_quark "GQuark gtk_recent_manager_error_quark( void)"
+  return(s7_make_integer(sc, gtk_recent_manager_error_quark()));
+}
+
+static s7_pointer lg_gtk_recent_manager_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_manager_new "GtkRecentManager* gtk_recent_manager_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkRecentManager__sym, gtk_recent_manager_new()));
+}
+
+static s7_pointer lg_gtk_recent_manager_get_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_manager_get_default "GtkRecentManager* gtk_recent_manager_get_default( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkRecentManager__sym, gtk_recent_manager_get_default()));
+}
+
+static s7_pointer lg_gtk_recent_manager_remove_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_manager_remove_item "gboolean gtk_recent_manager_remove_item(GtkRecentManager* manager, \
+gchar* uri, GError** [error])"
+  s7_pointer _p;
+  s7_pointer manager, uri;
+  GError* ref_error = NULL;
+  _p = args;
+  manager = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(manager, GtkRecentManager__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_remove_item", 1, manager, "GtkRecentManager*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_remove_item", 2, uri, "gchar*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_recent_manager_remove_item(s7_c_pointer(manager), s7_string(uri), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_recent_manager_lookup_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_manager_lookup_item "GtkRecentInfo* gtk_recent_manager_lookup_item(GtkRecentManager* manager, \
+gchar* uri, GError** [error])"
+  s7_pointer _p;
+  s7_pointer manager, uri;
+  GError* ref_error = NULL;
+  _p = args;
+  manager = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(manager, GtkRecentManager__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_lookup_item", 1, manager, "GtkRecentManager*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_lookup_item", 2, uri, "gchar*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GtkRecentInfo__sym, gtk_recent_manager_lookup_item(s7_c_pointer(manager), s7_string(uri), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_recent_manager_has_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_manager_has_item "gboolean gtk_recent_manager_has_item(GtkRecentManager* manager, \
+gchar* uri)"
+  s7_pointer _p;
+  s7_pointer manager, uri;
+  _p = args;
+  manager = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(manager, GtkRecentManager__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_has_item", 1, manager, "GtkRecentManager*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_has_item", 2, uri, "gchar*");
+  return(s7_make_boolean(sc, gtk_recent_manager_has_item(s7_c_pointer(manager), s7_string(uri))));
+}
+
+static s7_pointer lg_gtk_recent_manager_move_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_manager_move_item "gboolean gtk_recent_manager_move_item(GtkRecentManager* manager, \
+gchar* uri, gchar* new_uri, GError** [error])"
+  s7_pointer _p;
+  s7_pointer manager, uri, new_uri;
+  GError* ref_error = NULL;
+  _p = args;
+  manager = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(manager, GtkRecentManager__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_move_item", 1, manager, "GtkRecentManager*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_move_item", 2, uri, "gchar*");
+  new_uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(new_uri)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_move_item", 3, new_uri, "gchar*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_recent_manager_move_item(s7_c_pointer(manager), s7_string(uri), s7_string(new_uri), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_recent_manager_get_items(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_manager_get_items "GList* gtk_recent_manager_get_items(GtkRecentManager* manager)"
+  s7_pointer manager;
+  manager = s7_car(args);
+  if (!s7_is_c_pointer_of_type(manager, GtkRecentManager__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_get_items", 1, manager, "GtkRecentManager*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_recent_manager_get_items(s7_c_pointer(manager))));
+}
+
+static s7_pointer lg_gtk_recent_manager_purge_items(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_manager_purge_items "gint gtk_recent_manager_purge_items(GtkRecentManager* manager, \
+GError** [error])"
+  s7_pointer _p;
+  s7_pointer manager;
+  GError* ref_error = NULL;
+  _p = args;
+  manager = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(manager, GtkRecentManager__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_purge_items", 1, manager, "GtkRecentManager*");
+  {
+    s7_pointer result;
+    result = s7_make_integer(sc, gtk_recent_manager_purge_items(s7_c_pointer(manager), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_recent_info_ref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_ref "GtkRecentInfo* gtk_recent_info_ref(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_ref", 1, info, "GtkRecentInfo*");
+  return(s7_make_type_with_c_pointer(sc, GtkRecentInfo__sym, gtk_recent_info_ref(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_unref(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_unref "void gtk_recent_info_unref(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_unref", 1, info, "GtkRecentInfo*");
+  gtk_recent_info_unref(s7_c_pointer(info));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_recent_info_get_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_get_uri "gchar* gtk_recent_info_get_uri(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_uri", 1, info, "GtkRecentInfo*");
+  return(s7_make_string(sc, gtk_recent_info_get_uri(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_get_display_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_get_display_name "gchar* gtk_recent_info_get_display_name(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_display_name", 1, info, "GtkRecentInfo*");
+    return(s7_make_string(sc, (gchar*)gtk_recent_info_get_display_name(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_get_description(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_get_description "gchar* gtk_recent_info_get_description(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_description", 1, info, "GtkRecentInfo*");
+    return(s7_make_string(sc, (gchar*)gtk_recent_info_get_description(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_get_mime_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_get_mime_type "gchar* gtk_recent_info_get_mime_type(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_mime_type", 1, info, "GtkRecentInfo*");
+    return(s7_make_string(sc, (gchar*)gtk_recent_info_get_mime_type(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_get_added(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_get_added "time_t gtk_recent_info_get_added(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_added", 1, info, "GtkRecentInfo*");
+  return(s7_make_integer(sc, gtk_recent_info_get_added(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_get_modified(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_get_modified "time_t gtk_recent_info_get_modified(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_modified", 1, info, "GtkRecentInfo*");
+  return(s7_make_integer(sc, gtk_recent_info_get_modified(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_get_visited(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_get_visited "time_t gtk_recent_info_get_visited(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_visited", 1, info, "GtkRecentInfo*");
+  return(s7_make_integer(sc, gtk_recent_info_get_visited(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_get_private_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_get_private_hint "gboolean gtk_recent_info_get_private_hint(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_private_hint", 1, info, "GtkRecentInfo*");
+  return(s7_make_boolean(sc, gtk_recent_info_get_private_hint(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_get_applications(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_get_applications "gchar** gtk_recent_info_get_applications(GtkRecentInfo* info, \
+gsize* [length])"
+  s7_pointer _p;
+  s7_pointer info;
+  gsize ref_length;
+  _p = args;
+  info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_applications", 1, info, "GtkRecentInfo*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, gchar___sym, gtk_recent_info_get_applications(s7_c_pointer(info), &ref_length));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_length)));
+   }
+}
+
+static s7_pointer lg_gtk_recent_info_last_application(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_last_application "gchar* gtk_recent_info_last_application(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_last_application", 1, info, "GtkRecentInfo*");
+  return(s7_make_string(sc, gtk_recent_info_last_application(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_has_application(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_has_application "gboolean gtk_recent_info_has_application(GtkRecentInfo* info, \
+gchar* app_name)"
+  s7_pointer _p;
+  s7_pointer info, app_name;
+  _p = args;
+  info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_has_application", 1, info, "GtkRecentInfo*");
+  app_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(app_name)) s7_wrong_type_arg_error(sc, "gtk_recent_info_has_application", 2, app_name, "gchar*");
+  return(s7_make_boolean(sc, gtk_recent_info_has_application(s7_c_pointer(info), s7_string(app_name))));
+}
+
+static s7_pointer lg_gtk_recent_info_get_groups(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_get_groups "gchar** gtk_recent_info_get_groups(GtkRecentInfo* info, gsize* [length])"
+  s7_pointer _p;
+  s7_pointer info;
+  gsize ref_length;
+  _p = args;
+  info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_groups", 1, info, "GtkRecentInfo*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, gchar___sym, gtk_recent_info_get_groups(s7_c_pointer(info), &ref_length));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_length)));
+   }
+}
+
+static s7_pointer lg_gtk_recent_info_has_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_has_group "gboolean gtk_recent_info_has_group(GtkRecentInfo* info, gchar* group_name)"
+  s7_pointer _p;
+  s7_pointer info, group_name;
+  _p = args;
+  info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_has_group", 1, info, "GtkRecentInfo*");
+  group_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(group_name)) s7_wrong_type_arg_error(sc, "gtk_recent_info_has_group", 2, group_name, "gchar*");
+  return(s7_make_boolean(sc, gtk_recent_info_has_group(s7_c_pointer(info), s7_string(group_name))));
+}
+
+static s7_pointer lg_gtk_recent_info_get_icon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_get_icon "GdkPixbuf* gtk_recent_info_get_icon(GtkRecentInfo* info, gint size)"
+  s7_pointer _p;
+  s7_pointer info, size;
+  _p = args;
+  info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_icon", 1, info, "GtkRecentInfo*");
+  size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(size)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_icon", 2, size, "gint");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gtk_recent_info_get_icon(s7_c_pointer(info), s7_integer(size))));
+}
+
+static s7_pointer lg_gtk_recent_info_get_short_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_get_short_name "gchar* gtk_recent_info_get_short_name(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_short_name", 1, info, "GtkRecentInfo*");
+  return(s7_make_string(sc, gtk_recent_info_get_short_name(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_get_uri_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_get_uri_display "gchar* gtk_recent_info_get_uri_display(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_uri_display", 1, info, "GtkRecentInfo*");
+  return(s7_make_string(sc, gtk_recent_info_get_uri_display(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_get_age(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_get_age "gint gtk_recent_info_get_age(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_get_age", 1, info, "GtkRecentInfo*");
+  return(s7_make_integer(sc, gtk_recent_info_get_age(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_is_local(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_is_local "gboolean gtk_recent_info_is_local(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_is_local", 1, info, "GtkRecentInfo*");
+  return(s7_make_boolean(sc, gtk_recent_info_is_local(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_exists(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_exists "gboolean gtk_recent_info_exists(GtkRecentInfo* info)"
+  s7_pointer info;
+  info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_exists", 1, info, "GtkRecentInfo*");
+  return(s7_make_boolean(sc, gtk_recent_info_exists(s7_c_pointer(info))));
+}
+
+static s7_pointer lg_gtk_recent_info_match(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_info_match "gboolean gtk_recent_info_match(GtkRecentInfo* info_a, GtkRecentInfo* info_b)"
+  s7_pointer _p;
+  s7_pointer info_a, info_b;
+  _p = args;
+  info_a = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info_a, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_match", 1, info_a, "GtkRecentInfo*");
+  info_b = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info_b, GtkRecentInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_info_match", 2, info_b, "GtkRecentInfo*");
+  return(s7_make_boolean(sc, gtk_recent_info_match(s7_c_pointer(info_a), s7_c_pointer(info_b))));
+}
+
+static s7_pointer lg_gtk_text_buffer_register_serialize_format(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_register_serialize_format "GdkAtom gtk_text_buffer_register_serialize_format(GtkTextBuffer* buffer, \
+gchar* mime_type, GtkTextBufferSerializeFunc function, gpointer user_data, GDestroyNotify user_data_destroy)"
+  s7_pointer _p;
+  s7_pointer buffer, mime_type, function, user_data, user_data_destroy;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_register_serialize_format", 1, buffer, "GtkTextBuffer*");
+  mime_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(mime_type)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_register_serialize_format", 2, mime_type, "gchar*");
+  function = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(function, GtkTextBufferSerializeFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_register_serialize_format", 3, function, "GtkTextBufferSerializeFunc");
+  user_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(user_data, gpointer_sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_register_serialize_format", 4, user_data, "gpointer");
+  user_data_destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(user_data_destroy, GDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_register_serialize_format", 5, user_data_destroy, "GDestroyNotify");
+  return(s7_make_type_with_c_pointer(sc, GdkAtom_sym, gtk_text_buffer_register_serialize_format(s7_c_pointer(buffer), s7_string(mime_type), s7_c_pointer(function), s7_c_pointer(user_data), s7_c_pointer(user_data_destroy))));
+}
+
+static s7_pointer lg_gtk_text_buffer_register_serialize_tagset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_register_serialize_tagset "GdkAtom gtk_text_buffer_register_serialize_tagset(GtkTextBuffer* buffer, \
+gchar* tagset_name)"
+  s7_pointer _p;
+  s7_pointer buffer, tagset_name;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_register_serialize_tagset", 1, buffer, "GtkTextBuffer*");
+  tagset_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(tagset_name)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_register_serialize_tagset", 2, tagset_name, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GdkAtom_sym, gtk_text_buffer_register_serialize_tagset(s7_c_pointer(buffer), s7_string(tagset_name))));
+}
+
+static s7_pointer lg_gtk_text_buffer_register_deserialize_format(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_register_deserialize_format "GdkAtom gtk_text_buffer_register_deserialize_format(GtkTextBuffer* buffer, \
+gchar* mime_type, GtkTextBufferDeserializeFunc function, gpointer user_data, GDestroyNotify user_data_destroy)"
+  s7_pointer _p;
+  s7_pointer buffer, mime_type, function, user_data, user_data_destroy;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_register_deserialize_format", 1, buffer, "GtkTextBuffer*");
+  mime_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(mime_type)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_register_deserialize_format", 2, mime_type, "gchar*");
+  function = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(function, GtkTextBufferDeserializeFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_register_deserialize_format", 3, function, "GtkTextBufferDeserializeFunc");
+  user_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(user_data, gpointer_sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_register_deserialize_format", 4, user_data, "gpointer");
+  user_data_destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(user_data_destroy, GDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_register_deserialize_format", 5, user_data_destroy, "GDestroyNotify");
+  return(s7_make_type_with_c_pointer(sc, GdkAtom_sym, gtk_text_buffer_register_deserialize_format(s7_c_pointer(buffer), s7_string(mime_type), s7_c_pointer(function), s7_c_pointer(user_data), s7_c_pointer(user_data_destroy))));
+}
+
+static s7_pointer lg_gtk_text_buffer_register_deserialize_tagset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_register_deserialize_tagset "GdkAtom gtk_text_buffer_register_deserialize_tagset(GtkTextBuffer* buffer, \
+gchar* tagset_name)"
+  s7_pointer _p;
+  s7_pointer buffer, tagset_name;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_register_deserialize_tagset", 1, buffer, "GtkTextBuffer*");
+  tagset_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(tagset_name)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_register_deserialize_tagset", 2, tagset_name, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GdkAtom_sym, gtk_text_buffer_register_deserialize_tagset(s7_c_pointer(buffer), s7_string(tagset_name))));
+}
+
+static s7_pointer lg_gtk_text_buffer_unregister_serialize_format(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_unregister_serialize_format "void gtk_text_buffer_unregister_serialize_format(GtkTextBuffer* buffer, \
+GdkAtom format)"
+  s7_pointer _p;
+  s7_pointer buffer, format;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_unregister_serialize_format", 1, buffer, "GtkTextBuffer*");
+  format = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(format, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_unregister_serialize_format", 2, format, "GdkAtom");
+  gtk_text_buffer_unregister_serialize_format(s7_c_pointer(buffer), s7_c_pointer(format));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_unregister_deserialize_format(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_unregister_deserialize_format "void gtk_text_buffer_unregister_deserialize_format(GtkTextBuffer* buffer, \
+GdkAtom format)"
+  s7_pointer _p;
+  s7_pointer buffer, format;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_unregister_deserialize_format", 1, buffer, "GtkTextBuffer*");
+  format = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(format, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_unregister_deserialize_format", 2, format, "GdkAtom");
+  gtk_text_buffer_unregister_deserialize_format(s7_c_pointer(buffer), s7_c_pointer(format));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_deserialize_set_can_create_tags(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_deserialize_set_can_create_tags "void gtk_text_buffer_deserialize_set_can_create_tags(GtkTextBuffer* buffer, \
+GdkAtom format, gboolean can_create_tags)"
+  s7_pointer _p;
+  s7_pointer buffer, format, can_create_tags;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_deserialize_set_can_create_tags", 1, buffer, "GtkTextBuffer*");
+  format = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(format, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_deserialize_set_can_create_tags", 2, format, "GdkAtom");
+  can_create_tags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(can_create_tags)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_deserialize_set_can_create_tags", 3, can_create_tags, "gboolean");
+  gtk_text_buffer_deserialize_set_can_create_tags(s7_c_pointer(buffer), s7_c_pointer(format), lg_boolean(can_create_tags));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_deserialize_get_can_create_tags(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_deserialize_get_can_create_tags "gboolean gtk_text_buffer_deserialize_get_can_create_tags(GtkTextBuffer* buffer, \
+GdkAtom format)"
+  s7_pointer _p;
+  s7_pointer buffer, format;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_deserialize_get_can_create_tags", 1, buffer, "GtkTextBuffer*");
+  format = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(format, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_deserialize_get_can_create_tags", 2, format, "GdkAtom");
+  return(s7_make_boolean(sc, gtk_text_buffer_deserialize_get_can_create_tags(s7_c_pointer(buffer), s7_c_pointer(format))));
+}
+
+static s7_pointer lg_gtk_text_buffer_get_serialize_formats(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_serialize_formats "GdkAtom* gtk_text_buffer_get_serialize_formats(GtkTextBuffer* buffer, \
+gint* [n_formats])"
+  s7_pointer _p;
+  s7_pointer buffer;
+  gint ref_n_formats;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_serialize_formats", 1, buffer, "GtkTextBuffer*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GdkAtom__sym, gtk_text_buffer_get_serialize_formats(s7_c_pointer(buffer), &ref_n_formats));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_n_formats)));
+   }
+}
+
+static s7_pointer lg_gtk_text_buffer_get_deserialize_formats(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_get_deserialize_formats "GdkAtom* gtk_text_buffer_get_deserialize_formats(GtkTextBuffer* buffer, \
+gint* [n_formats])"
+  s7_pointer _p;
+  s7_pointer buffer;
+  gint ref_n_formats;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_get_deserialize_formats", 1, buffer, "GtkTextBuffer*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GdkAtom__sym, gtk_text_buffer_get_deserialize_formats(s7_c_pointer(buffer), &ref_n_formats));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_n_formats)));
+   }
+}
+
+static s7_pointer lg_gtk_text_buffer_serialize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_serialize "guint8* gtk_text_buffer_serialize(GtkTextBuffer* register_buffer, \
+GtkTextBuffer* content_buffer, GdkAtom format, GtkTextIter* start, GtkTextIter* end, gsize* [length])"
+  s7_pointer _p;
+  s7_pointer register_buffer, content_buffer, format, start, end;
+  gsize ref_length;
+  _p = args;
+  register_buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(register_buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_serialize", 1, register_buffer, "GtkTextBuffer*");
+  content_buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(content_buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_serialize", 2, content_buffer, "GtkTextBuffer*");
+  format = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(format, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_serialize", 3, format, "GdkAtom");
+  start = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(start, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_serialize", 4, start, "GtkTextIter*");
+  end = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(end, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_serialize", 5, end, "GtkTextIter*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, guint8__sym, gtk_text_buffer_serialize(s7_c_pointer(register_buffer), s7_c_pointer(content_buffer), s7_c_pointer(format), s7_c_pointer(start), s7_c_pointer(end), &ref_length));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_length)));
+   }
+}
+
+static s7_pointer lg_gtk_text_buffer_deserialize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_deserialize "gboolean gtk_text_buffer_deserialize(GtkTextBuffer* register_buffer, \
+GtkTextBuffer* content_buffer, GdkAtom format, GtkTextIter* iter, guint8* data, gsize length, GError** [error])"
+  s7_pointer _p;
+  s7_pointer register_buffer, content_buffer, format, iter, data, length;
+  GError* ref_error = NULL;
+  _p = args;
+  register_buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(register_buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_deserialize", 1, register_buffer, "GtkTextBuffer*");
+  content_buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(content_buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_deserialize", 2, content_buffer, "GtkTextBuffer*");
+  format = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(format, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_deserialize", 3, format, "GdkAtom");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_deserialize", 4, iter, "GtkTextIter*");
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, guint8__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_deserialize", 5, data, "guint8*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_deserialize", 6, length, "gsize");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_text_buffer_deserialize(s7_c_pointer(register_buffer), s7_c_pointer(content_buffer), s7_c_pointer(format), s7_c_pointer(iter), s7_c_pointer(data), s7_integer(length), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_recent_manager_add_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_manager_add_item "gboolean gtk_recent_manager_add_item(GtkRecentManager* manager, \
+gchar* uri)"
+  s7_pointer _p;
+  s7_pointer manager, uri;
+  _p = args;
+  manager = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(manager, GtkRecentManager__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_add_item", 1, manager, "GtkRecentManager*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_add_item", 2, uri, "gchar*");
+  return(s7_make_boolean(sc, gtk_recent_manager_add_item(s7_c_pointer(manager), s7_string(uri))));
+}
+
+static s7_pointer lg_gtk_recent_manager_add_full(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_recent_manager_add_full "gboolean gtk_recent_manager_add_full(GtkRecentManager* manager, \
+gchar* uri, GtkRecentData* recent_data)"
+  s7_pointer _p;
+  s7_pointer manager, uri, recent_data;
+  _p = args;
+  manager = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(manager, GtkRecentManager__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_add_full", 1, manager, "GtkRecentManager*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_add_full", 2, uri, "gchar*");
+  recent_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(recent_data, GtkRecentData__sym)) s7_wrong_type_arg_error(sc, "gtk_recent_manager_add_full", 3, recent_data, "GtkRecentData*");
+  return(s7_make_boolean(sc, gtk_recent_manager_add_full(s7_c_pointer(manager), s7_string(uri), s7_c_pointer(recent_data))));
+}
+
+static s7_pointer lg_gtk_tree_model_filter_convert_child_iter_to_iter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_filter_convert_child_iter_to_iter "gboolean gtk_tree_model_filter_convert_child_iter_to_iter(GtkTreeModelFilter* filter, \
+GtkTreeIter* filter_iter, GtkTreeIter* child_iter)"
+  s7_pointer _p;
+  s7_pointer filter, filter_iter, child_iter;
+  _p = args;
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter, GtkTreeModelFilter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_convert_child_iter_to_iter", 1, filter, "GtkTreeModelFilter*");
+  filter_iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(filter_iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_convert_child_iter_to_iter", 2, filter_iter, "GtkTreeIter*");
+  child_iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child_iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_filter_convert_child_iter_to_iter", 3, child_iter, "GtkTreeIter*");
+  return(s7_make_boolean(sc, gtk_tree_model_filter_convert_child_iter_to_iter(s7_c_pointer(filter), s7_c_pointer(filter_iter), s7_c_pointer(child_iter))));
+}
+
+static s7_pointer lg_gtk_tree_view_get_grid_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_grid_lines "GtkTreeViewGridLines gtk_tree_view_get_grid_lines(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_grid_lines", 1, tree_view, "GtkTreeView*");
+  return(s7_make_integer(sc, gtk_tree_view_get_grid_lines(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_grid_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_grid_lines "void gtk_tree_view_set_grid_lines(GtkTreeView* tree_view, GtkTreeViewGridLines grid_lines)"
+  s7_pointer _p;
+  s7_pointer tree_view, grid_lines;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_grid_lines", 1, tree_view, "GtkTreeView*");
+  grid_lines = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(grid_lines)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_grid_lines", 2, grid_lines, "GtkTreeViewGridLines");
+  gtk_tree_view_set_grid_lines(s7_c_pointer(tree_view), s7_integer(grid_lines));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_enable_tree_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_enable_tree_lines "gboolean gtk_tree_view_get_enable_tree_lines(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_enable_tree_lines", 1, tree_view, "GtkTreeView*");
+  return(s7_make_boolean(sc, gtk_tree_view_get_enable_tree_lines(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_enable_tree_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_enable_tree_lines "void gtk_tree_view_set_enable_tree_lines(GtkTreeView* tree_view, \
+gboolean enabled)"
+  s7_pointer _p;
+  s7_pointer tree_view, enabled;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_enable_tree_lines", 1, tree_view, "GtkTreeView*");
+  enabled = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(enabled)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_enable_tree_lines", 2, enabled, "gboolean");
+  gtk_tree_view_set_enable_tree_lines(s7_c_pointer(tree_view), lg_boolean(enabled));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_set_line_wrap_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_line_wrap_mode "void gtk_label_set_line_wrap_mode(GtkLabel* label, PangoWrapMode wrap_mode)"
+  s7_pointer _p;
+  s7_pointer label, wrap_mode;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_line_wrap_mode", 1, label, "GtkLabel*");
+  wrap_mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(wrap_mode)) s7_wrong_type_arg_error(sc, "gtk_label_set_line_wrap_mode", 2, wrap_mode, "PangoWrapMode");
+  gtk_label_set_line_wrap_mode(s7_c_pointer(label), s7_integer(wrap_mode));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_line_wrap_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_line_wrap_mode "PangoWrapMode gtk_label_get_line_wrap_mode(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_line_wrap_mode", 1, label, "GtkLabel*");
+  return(s7_make_integer(sc, gtk_label_get_line_wrap_mode(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_print_context_get_cairo_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_context_get_cairo_context "cairo_t* gtk_print_context_get_cairo_context(GtkPrintContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GtkPrintContext__sym)) s7_wrong_type_arg_error(sc, "gtk_print_context_get_cairo_context", 1, context, "GtkPrintContext*");
+  return(s7_make_type_with_c_pointer(sc, cairo_t__sym, gtk_print_context_get_cairo_context(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gtk_print_context_get_page_setup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_context_get_page_setup "GtkPageSetup* gtk_print_context_get_page_setup(GtkPrintContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GtkPrintContext__sym)) s7_wrong_type_arg_error(sc, "gtk_print_context_get_page_setup", 1, context, "GtkPrintContext*");
+  return(s7_make_type_with_c_pointer(sc, GtkPageSetup__sym, gtk_print_context_get_page_setup(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gtk_print_context_get_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_context_get_width "gdouble gtk_print_context_get_width(GtkPrintContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GtkPrintContext__sym)) s7_wrong_type_arg_error(sc, "gtk_print_context_get_width", 1, context, "GtkPrintContext*");
+  return(s7_make_real(sc, gtk_print_context_get_width(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gtk_print_context_get_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_context_get_height "gdouble gtk_print_context_get_height(GtkPrintContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GtkPrintContext__sym)) s7_wrong_type_arg_error(sc, "gtk_print_context_get_height", 1, context, "GtkPrintContext*");
+  return(s7_make_real(sc, gtk_print_context_get_height(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gtk_print_context_get_dpi_x(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_context_get_dpi_x "gdouble gtk_print_context_get_dpi_x(GtkPrintContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GtkPrintContext__sym)) s7_wrong_type_arg_error(sc, "gtk_print_context_get_dpi_x", 1, context, "GtkPrintContext*");
+  return(s7_make_real(sc, gtk_print_context_get_dpi_x(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gtk_print_context_get_dpi_y(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_context_get_dpi_y "gdouble gtk_print_context_get_dpi_y(GtkPrintContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GtkPrintContext__sym)) s7_wrong_type_arg_error(sc, "gtk_print_context_get_dpi_y", 1, context, "GtkPrintContext*");
+  return(s7_make_real(sc, gtk_print_context_get_dpi_y(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gtk_print_context_create_pango_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_context_create_pango_context "PangoContext* gtk_print_context_create_pango_context(GtkPrintContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GtkPrintContext__sym)) s7_wrong_type_arg_error(sc, "gtk_print_context_create_pango_context", 1, context, "GtkPrintContext*");
+  return(s7_make_type_with_c_pointer(sc, PangoContext__sym, gtk_print_context_create_pango_context(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gtk_print_context_create_pango_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_context_create_pango_layout "PangoLayout* gtk_print_context_create_pango_layout(GtkPrintContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GtkPrintContext__sym)) s7_wrong_type_arg_error(sc, "gtk_print_context_create_pango_layout", 1, context, "GtkPrintContext*");
+  return(s7_make_type_with_c_pointer(sc, PangoLayout__sym, gtk_print_context_create_pango_layout(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gtk_print_context_set_cairo_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_context_set_cairo_context "void gtk_print_context_set_cairo_context(GtkPrintContext* context, \
+cairo_t* cr, double dpi_x, double dpi_y)"
+  s7_pointer _p;
+  s7_pointer context, cr, dpi_x, dpi_y;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkPrintContext__sym)) s7_wrong_type_arg_error(sc, "gtk_print_context_set_cairo_context", 1, context, "GtkPrintContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_print_context_set_cairo_context", 2, cr, "cairo_t*");
+  dpi_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(dpi_x)) s7_wrong_type_arg_error(sc, "gtk_print_context_set_cairo_context", 3, dpi_x, "double");
+  dpi_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(dpi_y)) s7_wrong_type_arg_error(sc, "gtk_print_context_set_cairo_context", 4, dpi_y, "double");
+  gtk_print_context_set_cairo_context(s7_c_pointer(context), s7_c_pointer(cr), s7_real(dpi_x), s7_real(dpi_y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_operation_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_new "GtkPrintOperation* gtk_print_operation_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkPrintOperation__sym, gtk_print_operation_new()));
+}
+
+static s7_pointer lg_gtk_print_operation_set_default_page_setup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_set_default_page_setup "void gtk_print_operation_set_default_page_setup(GtkPrintOperation* op, \
+GtkPageSetup* default_page_setup)"
+  s7_pointer _p;
+  s7_pointer op, default_page_setup;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_default_page_setup", 1, op, "GtkPrintOperation*");
+  default_page_setup = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(default_page_setup, GtkPageSetup__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_default_page_setup", 2, default_page_setup, "GtkPageSetup*");
+  gtk_print_operation_set_default_page_setup(s7_c_pointer(op), s7_c_pointer(default_page_setup));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_operation_get_default_page_setup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_get_default_page_setup "GtkPageSetup* gtk_print_operation_get_default_page_setup(GtkPrintOperation* op)"
+  s7_pointer op;
+  op = s7_car(args);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_get_default_page_setup", 1, op, "GtkPrintOperation*");
+  return(s7_make_type_with_c_pointer(sc, GtkPageSetup__sym, gtk_print_operation_get_default_page_setup(s7_c_pointer(op))));
+}
+
+static s7_pointer lg_gtk_print_operation_set_print_settings(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_set_print_settings "void gtk_print_operation_set_print_settings(GtkPrintOperation* op, \
+GtkPrintSettings* print_settings)"
+  s7_pointer _p;
+  s7_pointer op, print_settings;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_print_settings", 1, op, "GtkPrintOperation*");
+  print_settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(print_settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_print_settings", 2, print_settings, "GtkPrintSettings*");
+  gtk_print_operation_set_print_settings(s7_c_pointer(op), s7_c_pointer(print_settings));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_operation_get_print_settings(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_get_print_settings "GtkPrintSettings* gtk_print_operation_get_print_settings(GtkPrintOperation* op)"
+  s7_pointer op;
+  op = s7_car(args);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_get_print_settings", 1, op, "GtkPrintOperation*");
+  return(s7_make_type_with_c_pointer(sc, GtkPrintSettings__sym, gtk_print_operation_get_print_settings(s7_c_pointer(op))));
+}
+
+static s7_pointer lg_gtk_print_operation_set_job_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_set_job_name "void gtk_print_operation_set_job_name(GtkPrintOperation* op, \
+gchar* job_name)"
+  s7_pointer _p;
+  s7_pointer op, job_name;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_job_name", 1, op, "GtkPrintOperation*");
+  job_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(job_name)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_job_name", 2, job_name, "gchar*");
+  gtk_print_operation_set_job_name(s7_c_pointer(op), s7_string(job_name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_operation_set_n_pages(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_set_n_pages "void gtk_print_operation_set_n_pages(GtkPrintOperation* op, \
+gint n_pages)"
+  s7_pointer _p;
+  s7_pointer op, n_pages;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_n_pages", 1, op, "GtkPrintOperation*");
+  n_pages = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_pages)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_n_pages", 2, n_pages, "gint");
+  gtk_print_operation_set_n_pages(s7_c_pointer(op), s7_integer(n_pages));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_operation_set_current_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_set_current_page "void gtk_print_operation_set_current_page(GtkPrintOperation* op, \
+gint current_page)"
+  s7_pointer _p;
+  s7_pointer op, current_page;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_current_page", 1, op, "GtkPrintOperation*");
+  current_page = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(current_page)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_current_page", 2, current_page, "gint");
+  gtk_print_operation_set_current_page(s7_c_pointer(op), s7_integer(current_page));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_operation_set_use_full_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_set_use_full_page "void gtk_print_operation_set_use_full_page(GtkPrintOperation* op, \
+gboolean full_page)"
+  s7_pointer _p;
+  s7_pointer op, full_page;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_use_full_page", 1, op, "GtkPrintOperation*");
+  full_page = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(full_page)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_use_full_page", 2, full_page, "gboolean");
+  gtk_print_operation_set_use_full_page(s7_c_pointer(op), lg_boolean(full_page));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_operation_set_unit(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_set_unit "void gtk_print_operation_set_unit(GtkPrintOperation* op, GtkUnit unit)"
+  s7_pointer _p;
+  s7_pointer op, unit;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_unit", 1, op, "GtkPrintOperation*");
+  unit = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(unit)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_unit", 2, unit, "GtkUnit");
+  gtk_print_operation_set_unit(s7_c_pointer(op), s7_integer(unit));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_operation_set_export_filename(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_set_export_filename "void gtk_print_operation_set_export_filename(GtkPrintOperation* op, \
+gchar* filename)"
+  s7_pointer _p;
+  s7_pointer op, filename;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_export_filename", 1, op, "GtkPrintOperation*");
+  filename = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(filename)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_export_filename", 2, filename, "gchar*");
+  gtk_print_operation_set_export_filename(s7_c_pointer(op), s7_string(filename));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_operation_set_track_print_status(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_set_track_print_status "void gtk_print_operation_set_track_print_status(GtkPrintOperation* op, \
+gboolean track_status)"
+  s7_pointer _p;
+  s7_pointer op, track_status;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_track_print_status", 1, op, "GtkPrintOperation*");
+  track_status = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(track_status)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_track_print_status", 2, track_status, "gboolean");
+  gtk_print_operation_set_track_print_status(s7_c_pointer(op), lg_boolean(track_status));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_operation_set_show_progress(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_set_show_progress "void gtk_print_operation_set_show_progress(GtkPrintOperation* op, \
+gboolean show_progress)"
+  s7_pointer _p;
+  s7_pointer op, show_progress;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_show_progress", 1, op, "GtkPrintOperation*");
+  show_progress = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_progress)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_show_progress", 2, show_progress, "gboolean");
+  gtk_print_operation_set_show_progress(s7_c_pointer(op), lg_boolean(show_progress));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_operation_set_allow_async(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_set_allow_async "void gtk_print_operation_set_allow_async(GtkPrintOperation* op, \
+gboolean allow_async)"
+  s7_pointer _p;
+  s7_pointer op, allow_async;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_allow_async", 1, op, "GtkPrintOperation*");
+  allow_async = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(allow_async)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_allow_async", 2, allow_async, "gboolean");
+  gtk_print_operation_set_allow_async(s7_c_pointer(op), lg_boolean(allow_async));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_operation_set_custom_tab_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_set_custom_tab_label "void gtk_print_operation_set_custom_tab_label(GtkPrintOperation* op, \
+gchar* label)"
+  s7_pointer _p;
+  s7_pointer op, label;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_custom_tab_label", 1, op, "GtkPrintOperation*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_custom_tab_label", 2, label, "gchar*");
+  gtk_print_operation_set_custom_tab_label(s7_c_pointer(op), s7_string(label));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_operation_run(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_run "GtkPrintOperationResult gtk_print_operation_run(GtkPrintOperation* op, \
+GtkPrintOperationAction action, GtkWindow* parent, GError** [error])"
+  s7_pointer _p;
+  s7_pointer op, action, parent;
+  GError* ref_error = NULL;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_run", 1, op, "GtkPrintOperation*");
+  action = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(action)) s7_wrong_type_arg_error(sc, "gtk_print_operation_run", 2, action, "GtkPrintOperationAction");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(parent, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_run", 3, parent, "GtkWindow*");
+  {
+    s7_pointer result;
+    result = s7_make_integer(sc, gtk_print_operation_run(s7_c_pointer(op), s7_integer(action), s7_c_pointer(parent), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_print_operation_get_error(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_get_error "void gtk_print_operation_get_error(GtkPrintOperation* op, \
+GError** [error])"
+  s7_pointer _p;
+  s7_pointer op;
+  GError* ref_error = NULL;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_get_error", 1, op, "GtkPrintOperation*");
+  gtk_print_operation_get_error(s7_c_pointer(op), &ref_error);
+    return(s7_list(sc, 1, s7_make_c_pointer(sc, ref_error)));
+}
+
+static s7_pointer lg_gtk_print_operation_get_status(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_get_status "GtkPrintStatus gtk_print_operation_get_status(GtkPrintOperation* op)"
+  s7_pointer op;
+  op = s7_car(args);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_get_status", 1, op, "GtkPrintOperation*");
+  return(s7_make_integer(sc, gtk_print_operation_get_status(s7_c_pointer(op))));
+}
+
+static s7_pointer lg_gtk_print_operation_get_status_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_get_status_string "gchar* gtk_print_operation_get_status_string(GtkPrintOperation* op)"
+  s7_pointer op;
+  op = s7_car(args);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_get_status_string", 1, op, "GtkPrintOperation*");
+  return(s7_make_string(sc, gtk_print_operation_get_status_string(s7_c_pointer(op))));
+}
+
+static s7_pointer lg_gtk_print_operation_is_finished(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_is_finished "gboolean gtk_print_operation_is_finished(GtkPrintOperation* op)"
+  s7_pointer op;
+  op = s7_car(args);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_is_finished", 1, op, "GtkPrintOperation*");
+  return(s7_make_boolean(sc, gtk_print_operation_is_finished(s7_c_pointer(op))));
+}
+
+static s7_pointer lg_gtk_print_operation_cancel(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_cancel "void gtk_print_operation_cancel(GtkPrintOperation* op)"
+  s7_pointer op;
+  op = s7_car(args);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_cancel", 1, op, "GtkPrintOperation*");
+  gtk_print_operation_cancel(s7_c_pointer(op));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_run_page_setup_dialog(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_run_page_setup_dialog "GtkPageSetup* gtk_print_run_page_setup_dialog(GtkWindow* parent, \
+GtkPageSetup* page_setup, GtkPrintSettings* settings)"
+  s7_pointer _p;
+  s7_pointer parent, page_setup, settings;
+  _p = args;
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(parent, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_print_run_page_setup_dialog", 1, parent, "GtkWindow*");
+  page_setup = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(page_setup, GtkPageSetup__sym)) s7_wrong_type_arg_error(sc, "gtk_print_run_page_setup_dialog", 2, page_setup, "GtkPageSetup*");
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_run_page_setup_dialog", 3, settings, "GtkPrintSettings*");
+  return(s7_make_type_with_c_pointer(sc, GtkPageSetup__sym, gtk_print_run_page_setup_dialog(s7_c_pointer(parent), s7_c_pointer(page_setup), s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_run_page_setup_dialog_async(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_run_page_setup_dialog_async "void gtk_print_run_page_setup_dialog_async(GtkWindow* parent, \
+GtkPageSetup* page_setup, GtkPrintSettings* settings, GtkPageSetupDoneFunc done_cb, gpointer data)"
+  s7_pointer _p;
+  s7_pointer parent, page_setup, settings, done_cb, data;
+  _p = args;
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(parent, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_print_run_page_setup_dialog_async", 1, parent, "GtkWindow*");
+  page_setup = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(page_setup, GtkPageSetup__sym)) s7_wrong_type_arg_error(sc, "gtk_print_run_page_setup_dialog_async", 2, page_setup, "GtkPageSetup*");
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_run_page_setup_dialog_async", 3, settings, "GtkPrintSettings*");
+  done_cb = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(done_cb, GtkPageSetupDoneFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_print_run_page_setup_dialog_async", 4, done_cb, "GtkPageSetupDoneFunc");
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, gpointer_sym)) s7_wrong_type_arg_error(sc, "gtk_print_run_page_setup_dialog_async", 5, data, "gpointer");
+  gtk_print_run_page_setup_dialog_async(s7_c_pointer(parent), s7_c_pointer(page_setup), s7_c_pointer(settings), s7_c_pointer(done_cb), s7_c_pointer(data));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_new "GtkPrintSettings* gtk_print_settings_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkPrintSettings__sym, gtk_print_settings_new()));
+}
+
+static s7_pointer lg_gtk_print_settings_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_copy "GtkPrintSettings* gtk_print_settings_copy(GtkPrintSettings* other)"
+  s7_pointer other;
+  other = s7_car(args);
+  if (!s7_is_c_pointer_of_type(other, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_copy", 1, other, "GtkPrintSettings*");
+  return(s7_make_type_with_c_pointer(sc, GtkPrintSettings__sym, gtk_print_settings_copy(s7_c_pointer(other))));
+}
+
+static s7_pointer lg_gtk_print_settings_has_key(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_has_key "gboolean gtk_print_settings_has_key(GtkPrintSettings* settings, \
+gchar* key)"
+  s7_pointer _p;
+  s7_pointer settings, key;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_has_key", 1, settings, "GtkPrintSettings*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_print_settings_has_key", 2, key, "gchar*");
+  return(s7_make_boolean(sc, gtk_print_settings_has_key(s7_c_pointer(settings), s7_string(key))));
+}
+
+static s7_pointer lg_gtk_print_settings_get(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get "gchar* gtk_print_settings_get(GtkPrintSettings* settings, gchar* key)"
+  s7_pointer _p;
+  s7_pointer settings, key;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get", 1, settings, "GtkPrintSettings*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get", 2, key, "gchar*");
+  return(s7_make_string(sc, gtk_print_settings_get(s7_c_pointer(settings), s7_string(key))));
+}
+
+static s7_pointer lg_gtk_print_settings_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set "void gtk_print_settings_set(GtkPrintSettings* settings, gchar* key, \
+gchar* value)"
+  s7_pointer _p;
+  s7_pointer settings, key, value;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set", 1, settings, "GtkPrintSettings*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set", 2, key, "gchar*");
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(value)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set", 3, value, "gchar*");
+  gtk_print_settings_set(s7_c_pointer(settings), s7_string(key), s7_string(value));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_unset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_unset "void gtk_print_settings_unset(GtkPrintSettings* settings, gchar* key)"
+  s7_pointer _p;
+  s7_pointer settings, key;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_unset", 1, settings, "GtkPrintSettings*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_print_settings_unset", 2, key, "gchar*");
+  gtk_print_settings_unset(s7_c_pointer(settings), s7_string(key));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_foreach(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_foreach "void gtk_print_settings_foreach(GtkPrintSettings* settings, GtkPrintSettingsFunc func, \
+gpointer user_data)"
+  s7_pointer _p;
+  s7_pointer settings, func, user_data;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_foreach", 1, settings, "GtkPrintSettings*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkPrintSettingsFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_foreach", 2, func, "GtkPrintSettingsFunc");
+  user_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(user_data, gpointer_sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_foreach", 3, user_data, "gpointer");
+  gtk_print_settings_foreach(s7_c_pointer(settings), s7_c_pointer(func), s7_c_pointer(user_data));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_bool(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_bool "gboolean gtk_print_settings_get_bool(GtkPrintSettings* settings, \
+gchar* key)"
+  s7_pointer _p;
+  s7_pointer settings, key;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_bool", 1, settings, "GtkPrintSettings*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_bool", 2, key, "gchar*");
+  return(s7_make_boolean(sc, gtk_print_settings_get_bool(s7_c_pointer(settings), s7_string(key))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_bool(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_bool "void gtk_print_settings_set_bool(GtkPrintSettings* settings, \
+gchar* key, gboolean value)"
+  s7_pointer _p;
+  s7_pointer settings, key, value;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_bool", 1, settings, "GtkPrintSettings*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_bool", 2, key, "gchar*");
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(value)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_bool", 3, value, "gboolean");
+  gtk_print_settings_set_bool(s7_c_pointer(settings), s7_string(key), lg_boolean(value));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_double(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_double "gdouble gtk_print_settings_get_double(GtkPrintSettings* settings, \
+gchar* key)"
+  s7_pointer _p;
+  s7_pointer settings, key;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_double", 1, settings, "GtkPrintSettings*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_double", 2, key, "gchar*");
+  return(s7_make_real(sc, gtk_print_settings_get_double(s7_c_pointer(settings), s7_string(key))));
+}
+
+static s7_pointer lg_gtk_print_settings_get_double_with_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_double_with_default "gdouble gtk_print_settings_get_double_with_default(GtkPrintSettings* settings, \
+gchar* key, gdouble def)"
+  s7_pointer _p;
+  s7_pointer settings, key, def;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_double_with_default", 1, settings, "GtkPrintSettings*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_double_with_default", 2, key, "gchar*");
+  def = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(def)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_double_with_default", 3, def, "gdouble");
+  return(s7_make_real(sc, gtk_print_settings_get_double_with_default(s7_c_pointer(settings), s7_string(key), s7_real(def))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_double(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_double "void gtk_print_settings_set_double(GtkPrintSettings* settings, \
+gchar* key, gdouble value)"
+  s7_pointer _p;
+  s7_pointer settings, key, value;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_double", 1, settings, "GtkPrintSettings*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_double", 2, key, "gchar*");
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(value)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_double", 3, value, "gdouble");
+  gtk_print_settings_set_double(s7_c_pointer(settings), s7_string(key), s7_real(value));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_length(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_length "gdouble gtk_print_settings_get_length(GtkPrintSettings* settings, \
+gchar* key, GtkUnit unit)"
+  s7_pointer _p;
+  s7_pointer settings, key, unit;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_length", 1, settings, "GtkPrintSettings*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_length", 2, key, "gchar*");
+  unit = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(unit)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_length", 3, unit, "GtkUnit");
+  return(s7_make_real(sc, gtk_print_settings_get_length(s7_c_pointer(settings), s7_string(key), s7_integer(unit))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_length(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_length "void gtk_print_settings_set_length(GtkPrintSettings* settings, \
+gchar* key, gdouble value, GtkUnit unit)"
+  s7_pointer _p;
+  s7_pointer settings, key, value, unit;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_length", 1, settings, "GtkPrintSettings*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_length", 2, key, "gchar*");
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(value)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_length", 3, value, "gdouble");
+  unit = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(unit)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_length", 4, unit, "GtkUnit");
+  gtk_print_settings_set_length(s7_c_pointer(settings), s7_string(key), s7_real(value), s7_integer(unit));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_int(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_int "gint gtk_print_settings_get_int(GtkPrintSettings* settings, gchar* key)"
+  s7_pointer _p;
+  s7_pointer settings, key;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_int", 1, settings, "GtkPrintSettings*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_int", 2, key, "gchar*");
+  return(s7_make_integer(sc, gtk_print_settings_get_int(s7_c_pointer(settings), s7_string(key))));
+}
+
+static s7_pointer lg_gtk_print_settings_get_int_with_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_int_with_default "gint gtk_print_settings_get_int_with_default(GtkPrintSettings* settings, \
+gchar* key, gint def)"
+  s7_pointer _p;
+  s7_pointer settings, key, def;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_int_with_default", 1, settings, "GtkPrintSettings*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_int_with_default", 2, key, "gchar*");
+  def = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(def)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_int_with_default", 3, def, "gint");
+  return(s7_make_integer(sc, gtk_print_settings_get_int_with_default(s7_c_pointer(settings), s7_string(key), s7_integer(def))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_int(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_int "void gtk_print_settings_set_int(GtkPrintSettings* settings, gchar* key, \
+gint value)"
+  s7_pointer _p;
+  s7_pointer settings, key, value;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_int", 1, settings, "GtkPrintSettings*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_int", 2, key, "gchar*");
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(value)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_int", 3, value, "gint");
+  gtk_print_settings_set_int(s7_c_pointer(settings), s7_string(key), s7_integer(value));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_printer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_printer "gchar* gtk_print_settings_get_printer(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_printer", 1, settings, "GtkPrintSettings*");
+  return(s7_make_string(sc, gtk_print_settings_get_printer(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_printer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_printer "void gtk_print_settings_set_printer(GtkPrintSettings* settings, \
+gchar* printer)"
+  s7_pointer _p;
+  s7_pointer settings, printer;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_printer", 1, settings, "GtkPrintSettings*");
+  printer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(printer)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_printer", 2, printer, "gchar*");
+  gtk_print_settings_set_printer(s7_c_pointer(settings), s7_string(printer));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_orientation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_orientation "GtkPageOrientation gtk_print_settings_get_orientation(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_orientation", 1, settings, "GtkPrintSettings*");
+  return(s7_make_integer(sc, gtk_print_settings_get_orientation(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_orientation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_orientation "void gtk_print_settings_set_orientation(GtkPrintSettings* settings, \
+GtkPageOrientation orientation)"
+  s7_pointer _p;
+  s7_pointer settings, orientation;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_orientation", 1, settings, "GtkPrintSettings*");
+  orientation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(orientation)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_orientation", 2, orientation, "GtkPageOrientation");
+  gtk_print_settings_set_orientation(s7_c_pointer(settings), s7_integer(orientation));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_paper_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_paper_size "GtkPaperSize* gtk_print_settings_get_paper_size(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_paper_size", 1, settings, "GtkPrintSettings*");
+  return(s7_make_type_with_c_pointer(sc, GtkPaperSize__sym, gtk_print_settings_get_paper_size(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_paper_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_paper_size "void gtk_print_settings_set_paper_size(GtkPrintSettings* settings, \
+GtkPaperSize* paper_size)"
+  s7_pointer _p;
+  s7_pointer settings, paper_size;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_paper_size", 1, settings, "GtkPrintSettings*");
+  paper_size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(paper_size, GtkPaperSize__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_paper_size", 2, paper_size, "GtkPaperSize*");
+  gtk_print_settings_set_paper_size(s7_c_pointer(settings), s7_c_pointer(paper_size));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_paper_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_paper_width "gdouble gtk_print_settings_get_paper_width(GtkPrintSettings* settings, \
+GtkUnit unit)"
+  s7_pointer _p;
+  s7_pointer settings, unit;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_paper_width", 1, settings, "GtkPrintSettings*");
+  unit = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(unit)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_paper_width", 2, unit, "GtkUnit");
+  return(s7_make_real(sc, gtk_print_settings_get_paper_width(s7_c_pointer(settings), s7_integer(unit))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_paper_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_paper_width "void gtk_print_settings_set_paper_width(GtkPrintSettings* settings, \
+gdouble width, GtkUnit unit)"
+  s7_pointer _p;
+  s7_pointer settings, width, unit;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_paper_width", 1, settings, "GtkPrintSettings*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_paper_width", 2, width, "gdouble");
+  unit = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(unit)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_paper_width", 3, unit, "GtkUnit");
+  gtk_print_settings_set_paper_width(s7_c_pointer(settings), s7_real(width), s7_integer(unit));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_paper_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_paper_height "gdouble gtk_print_settings_get_paper_height(GtkPrintSettings* settings, \
+GtkUnit unit)"
+  s7_pointer _p;
+  s7_pointer settings, unit;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_paper_height", 1, settings, "GtkPrintSettings*");
+  unit = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(unit)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_paper_height", 2, unit, "GtkUnit");
+  return(s7_make_real(sc, gtk_print_settings_get_paper_height(s7_c_pointer(settings), s7_integer(unit))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_paper_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_paper_height "void gtk_print_settings_set_paper_height(GtkPrintSettings* settings, \
+gdouble height, GtkUnit unit)"
+  s7_pointer _p;
+  s7_pointer settings, height, unit;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_paper_height", 1, settings, "GtkPrintSettings*");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_paper_height", 2, height, "gdouble");
+  unit = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(unit)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_paper_height", 3, unit, "GtkUnit");
+  gtk_print_settings_set_paper_height(s7_c_pointer(settings), s7_real(height), s7_integer(unit));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_use_color(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_use_color "gboolean gtk_print_settings_get_use_color(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_use_color", 1, settings, "GtkPrintSettings*");
+  return(s7_make_boolean(sc, gtk_print_settings_get_use_color(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_use_color(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_use_color "void gtk_print_settings_set_use_color(GtkPrintSettings* settings, \
+gboolean use_color)"
+  s7_pointer _p;
+  s7_pointer settings, use_color;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_use_color", 1, settings, "GtkPrintSettings*");
+  use_color = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_color)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_use_color", 2, use_color, "gboolean");
+  gtk_print_settings_set_use_color(s7_c_pointer(settings), lg_boolean(use_color));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_collate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_collate "gboolean gtk_print_settings_get_collate(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_collate", 1, settings, "GtkPrintSettings*");
+  return(s7_make_boolean(sc, gtk_print_settings_get_collate(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_collate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_collate "void gtk_print_settings_set_collate(GtkPrintSettings* settings, \
+gboolean collate)"
+  s7_pointer _p;
+  s7_pointer settings, collate;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_collate", 1, settings, "GtkPrintSettings*");
+  collate = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(collate)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_collate", 2, collate, "gboolean");
+  gtk_print_settings_set_collate(s7_c_pointer(settings), lg_boolean(collate));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_reverse(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_reverse "gboolean gtk_print_settings_get_reverse(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_reverse", 1, settings, "GtkPrintSettings*");
+  return(s7_make_boolean(sc, gtk_print_settings_get_reverse(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_reverse(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_reverse "void gtk_print_settings_set_reverse(GtkPrintSettings* settings, \
+gboolean reverse)"
+  s7_pointer _p;
+  s7_pointer settings, reverse;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_reverse", 1, settings, "GtkPrintSettings*");
+  reverse = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(reverse)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_reverse", 2, reverse, "gboolean");
+  gtk_print_settings_set_reverse(s7_c_pointer(settings), lg_boolean(reverse));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_duplex(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_duplex "GtkPrintDuplex gtk_print_settings_get_duplex(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_duplex", 1, settings, "GtkPrintSettings*");
+  return(s7_make_integer(sc, gtk_print_settings_get_duplex(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_duplex(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_duplex "void gtk_print_settings_set_duplex(GtkPrintSettings* settings, \
+GtkPrintDuplex duplex)"
+  s7_pointer _p;
+  s7_pointer settings, duplex;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_duplex", 1, settings, "GtkPrintSettings*");
+  duplex = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(duplex)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_duplex", 2, duplex, "GtkPrintDuplex");
+  gtk_print_settings_set_duplex(s7_c_pointer(settings), s7_integer(duplex));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_quality(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_quality "GtkPrintQuality gtk_print_settings_get_quality(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_quality", 1, settings, "GtkPrintSettings*");
+  return(s7_make_integer(sc, gtk_print_settings_get_quality(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_quality(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_quality "void gtk_print_settings_set_quality(GtkPrintSettings* settings, \
+GtkPrintQuality quality)"
+  s7_pointer _p;
+  s7_pointer settings, quality;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_quality", 1, settings, "GtkPrintSettings*");
+  quality = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(quality)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_quality", 2, quality, "GtkPrintQuality");
+  gtk_print_settings_set_quality(s7_c_pointer(settings), s7_integer(quality));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_n_copies(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_n_copies "gint gtk_print_settings_get_n_copies(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_n_copies", 1, settings, "GtkPrintSettings*");
+  return(s7_make_integer(sc, gtk_print_settings_get_n_copies(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_n_copies(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_n_copies "void gtk_print_settings_set_n_copies(GtkPrintSettings* settings, \
+gint num_copies)"
+  s7_pointer _p;
+  s7_pointer settings, num_copies;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_n_copies", 1, settings, "GtkPrintSettings*");
+  num_copies = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(num_copies)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_n_copies", 2, num_copies, "gint");
+  gtk_print_settings_set_n_copies(s7_c_pointer(settings), s7_integer(num_copies));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_number_up(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_number_up "gint gtk_print_settings_get_number_up(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_number_up", 1, settings, "GtkPrintSettings*");
+  return(s7_make_integer(sc, gtk_print_settings_get_number_up(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_number_up(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_number_up "void gtk_print_settings_set_number_up(GtkPrintSettings* settings, \
+gint number_up)"
+  s7_pointer _p;
+  s7_pointer settings, number_up;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_number_up", 1, settings, "GtkPrintSettings*");
+  number_up = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(number_up)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_number_up", 2, number_up, "gint");
+  gtk_print_settings_set_number_up(s7_c_pointer(settings), s7_integer(number_up));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_resolution(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_resolution "gint gtk_print_settings_get_resolution(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_resolution", 1, settings, "GtkPrintSettings*");
+  return(s7_make_integer(sc, gtk_print_settings_get_resolution(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_resolution(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_resolution "void gtk_print_settings_set_resolution(GtkPrintSettings* settings, \
+gint resolution)"
+  s7_pointer _p;
+  s7_pointer settings, resolution;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_resolution", 1, settings, "GtkPrintSettings*");
+  resolution = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(resolution)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_resolution", 2, resolution, "gint");
+  gtk_print_settings_set_resolution(s7_c_pointer(settings), s7_integer(resolution));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_scale(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_scale "gdouble gtk_print_settings_get_scale(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_scale", 1, settings, "GtkPrintSettings*");
+  return(s7_make_real(sc, gtk_print_settings_get_scale(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_scale(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_scale "void gtk_print_settings_set_scale(GtkPrintSettings* settings, \
+gdouble scale)"
+  s7_pointer _p;
+  s7_pointer settings, scale;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_scale", 1, settings, "GtkPrintSettings*");
+  scale = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(scale)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_scale", 2, scale, "gdouble");
+  gtk_print_settings_set_scale(s7_c_pointer(settings), s7_real(scale));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_print_pages(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_print_pages "GtkPrintPages gtk_print_settings_get_print_pages(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_print_pages", 1, settings, "GtkPrintSettings*");
+  return(s7_make_integer(sc, gtk_print_settings_get_print_pages(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_print_pages(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_print_pages "void gtk_print_settings_set_print_pages(GtkPrintSettings* settings, \
+GtkPrintPages pages)"
+  s7_pointer _p;
+  s7_pointer settings, pages;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_print_pages", 1, settings, "GtkPrintSettings*");
+  pages = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pages)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_print_pages", 2, pages, "GtkPrintPages");
+  gtk_print_settings_set_print_pages(s7_c_pointer(settings), s7_integer(pages));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_page_ranges(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_page_ranges "GtkPageRange* gtk_print_settings_get_page_ranges(GtkPrintSettings* settings, \
+gint* num_ranges)"
+  s7_pointer _p;
+  s7_pointer settings, num_ranges;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_page_ranges", 1, settings, "GtkPrintSettings*");
+  num_ranges = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(num_ranges, gint__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_page_ranges", 2, num_ranges, "gint*");
+  return(s7_make_type_with_c_pointer(sc, GtkPageRange__sym, gtk_print_settings_get_page_ranges(s7_c_pointer(settings), s7_c_pointer(num_ranges))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_page_ranges(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_page_ranges "void gtk_print_settings_set_page_ranges(GtkPrintSettings* settings, \
+GtkPageRange* page_ranges, gint num_ranges)"
+  s7_pointer _p;
+  s7_pointer settings, page_ranges, num_ranges;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_page_ranges", 1, settings, "GtkPrintSettings*");
+  page_ranges = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(page_ranges, GtkPageRange__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_page_ranges", 2, page_ranges, "GtkPageRange*");
+  num_ranges = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(num_ranges)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_page_ranges", 3, num_ranges, "gint");
+  gtk_print_settings_set_page_ranges(s7_c_pointer(settings), s7_c_pointer(page_ranges), s7_integer(num_ranges));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_page_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_page_set "GtkPageSet gtk_print_settings_get_page_set(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_page_set", 1, settings, "GtkPrintSettings*");
+  return(s7_make_integer(sc, gtk_print_settings_get_page_set(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_page_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_page_set "void gtk_print_settings_set_page_set(GtkPrintSettings* settings, \
+GtkPageSet page_set)"
+  s7_pointer _p;
+  s7_pointer settings, page_set;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_page_set", 1, settings, "GtkPrintSettings*");
+  page_set = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(page_set)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_page_set", 2, page_set, "GtkPageSet");
+  gtk_print_settings_set_page_set(s7_c_pointer(settings), s7_integer(page_set));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_default_source(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_default_source "gchar* gtk_print_settings_get_default_source(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_default_source", 1, settings, "GtkPrintSettings*");
+  return(s7_make_string(sc, gtk_print_settings_get_default_source(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_default_source(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_default_source "void gtk_print_settings_set_default_source(GtkPrintSettings* settings, \
+gchar* default_source)"
+  s7_pointer _p;
+  s7_pointer settings, default_source;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_default_source", 1, settings, "GtkPrintSettings*");
+  default_source = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(default_source)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_default_source", 2, default_source, "gchar*");
+  gtk_print_settings_set_default_source(s7_c_pointer(settings), s7_string(default_source));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_media_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_media_type "gchar* gtk_print_settings_get_media_type(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_media_type", 1, settings, "GtkPrintSettings*");
+  return(s7_make_string(sc, gtk_print_settings_get_media_type(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_media_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_media_type "void gtk_print_settings_set_media_type(GtkPrintSettings* settings, \
+gchar* media_type)"
+  s7_pointer _p;
+  s7_pointer settings, media_type;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_media_type", 1, settings, "GtkPrintSettings*");
+  media_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(media_type)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_media_type", 2, media_type, "gchar*");
+  gtk_print_settings_set_media_type(s7_c_pointer(settings), s7_string(media_type));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_dither(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_dither "gchar* gtk_print_settings_get_dither(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_dither", 1, settings, "GtkPrintSettings*");
+  return(s7_make_string(sc, gtk_print_settings_get_dither(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_dither(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_dither "void gtk_print_settings_set_dither(GtkPrintSettings* settings, \
+gchar* dither)"
+  s7_pointer _p;
+  s7_pointer settings, dither;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_dither", 1, settings, "GtkPrintSettings*");
+  dither = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(dither)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_dither", 2, dither, "gchar*");
+  gtk_print_settings_set_dither(s7_c_pointer(settings), s7_string(dither));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_finishings(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_finishings "gchar* gtk_print_settings_get_finishings(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_finishings", 1, settings, "GtkPrintSettings*");
+  return(s7_make_string(sc, gtk_print_settings_get_finishings(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_finishings(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_finishings "void gtk_print_settings_set_finishings(GtkPrintSettings* settings, \
+gchar* finishings)"
+  s7_pointer _p;
+  s7_pointer settings, finishings;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_finishings", 1, settings, "GtkPrintSettings*");
+  finishings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(finishings)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_finishings", 2, finishings, "gchar*");
+  gtk_print_settings_set_finishings(s7_c_pointer(settings), s7_string(finishings));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_settings_get_output_bin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_get_output_bin "gchar* gtk_print_settings_get_output_bin(GtkPrintSettings* settings)"
+  s7_pointer settings;
+  settings = s7_car(args);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_get_output_bin", 1, settings, "GtkPrintSettings*");
+  return(s7_make_string(sc, gtk_print_settings_get_output_bin(s7_c_pointer(settings))));
+}
+
+static s7_pointer lg_gtk_print_settings_set_output_bin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_set_output_bin "void gtk_print_settings_set_output_bin(GtkPrintSettings* settings, \
+gchar* output_bin)"
+  s7_pointer _p;
+  s7_pointer settings, output_bin;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_output_bin", 1, settings, "GtkPrintSettings*");
+  output_bin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(output_bin)) s7_wrong_type_arg_error(sc, "gtk_print_settings_set_output_bin", 2, output_bin, "gchar*");
+  gtk_print_settings_set_output_bin(s7_c_pointer(settings), s7_string(output_bin));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_settings_get_for_screen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_settings_get_for_screen "GtkSettings* gtk_settings_get_for_screen(GdkScreen* screen)"
+  s7_pointer screen;
+  screen = s7_car(args);
+  if (!s7_is_c_pointer_of_type(screen, GdkScreen__sym)) s7_wrong_type_arg_error(sc, "gtk_settings_get_for_screen", 1, screen, "GdkScreen*");
+  return(s7_make_type_with_c_pointer(sc, GtkSettings__sym, gtk_settings_get_for_screen(s7_c_pointer(screen))));
+}
+
+static s7_pointer lg_pango_cairo_create_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_create_layout "PangoLayout* pango_cairo_create_layout(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_create_layout", 1, cr, "cairo_t*");
+  return(s7_make_type_with_c_pointer(sc, PangoLayout__sym, pango_cairo_create_layout(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_pango_cairo_update_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_update_layout "void pango_cairo_update_layout(cairo_t* cr, PangoLayout* layout)"
+  s7_pointer _p;
+  s7_pointer cr, layout;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_update_layout", 1, cr, "cairo_t*");
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_update_layout", 2, layout, "PangoLayout*");
+  pango_cairo_update_layout(s7_c_pointer(cr), s7_c_pointer(layout));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_cairo_update_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_update_context "void pango_cairo_update_context(cairo_t* cr, PangoContext* context)"
+  s7_pointer _p;
+  s7_pointer cr, context;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_update_context", 1, cr, "cairo_t*");
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_update_context", 2, context, "PangoContext*");
+  pango_cairo_update_context(s7_c_pointer(cr), s7_c_pointer(context));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_cairo_context_set_font_options(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_context_set_font_options "void pango_cairo_context_set_font_options(PangoContext* context, \
+cairo_font_options_t* options)"
+  s7_pointer _p;
+  s7_pointer context, options;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_context_set_font_options", 1, context, "PangoContext*");
+  options = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_context_set_font_options", 2, options, "cairo_font_options_t*");
+  pango_cairo_context_set_font_options(s7_c_pointer(context), s7_c_pointer(options));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_cairo_context_get_font_options(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_context_get_font_options "cairo_font_options_t* pango_cairo_context_get_font_options(PangoContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_context_get_font_options", 1, context, "PangoContext*");
+    return(s7_make_type_with_c_pointer(sc, cairo_font_options_t__sym, (cairo_font_options_t*)pango_cairo_context_get_font_options(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_pango_cairo_context_set_resolution(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_context_set_resolution "void pango_cairo_context_set_resolution(PangoContext* context, \
+gdouble dpi)"
+  s7_pointer _p;
+  s7_pointer context, dpi;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_context_set_resolution", 1, context, "PangoContext*");
+  dpi = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(dpi)) s7_wrong_type_arg_error(sc, "pango_cairo_context_set_resolution", 2, dpi, "gdouble");
+  pango_cairo_context_set_resolution(s7_c_pointer(context), s7_real(dpi));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_cairo_context_get_resolution(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_context_get_resolution "gdouble pango_cairo_context_get_resolution(PangoContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, PangoContext__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_context_get_resolution", 1, context, "PangoContext*");
+  return(s7_make_real(sc, pango_cairo_context_get_resolution(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_pango_cairo_show_glyph_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_show_glyph_string "void pango_cairo_show_glyph_string(cairo_t* cr, PangoFont* font, \
+PangoGlyphString* glyphs)"
+  s7_pointer _p;
+  s7_pointer cr, font, glyphs;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_show_glyph_string", 1, cr, "cairo_t*");
+  font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font, PangoFont__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_show_glyph_string", 2, font, "PangoFont*");
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, PangoGlyphString__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_show_glyph_string", 3, glyphs, "PangoGlyphString*");
+  pango_cairo_show_glyph_string(s7_c_pointer(cr), s7_c_pointer(font), s7_c_pointer(glyphs));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_cairo_show_layout_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_show_layout_line "void pango_cairo_show_layout_line(cairo_t* cr, PangoLayoutLine* line)"
+  s7_pointer _p;
+  s7_pointer cr, line;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_show_layout_line", 1, cr, "cairo_t*");
+  line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(line, PangoLayoutLine__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_show_layout_line", 2, line, "PangoLayoutLine*");
+  pango_cairo_show_layout_line(s7_c_pointer(cr), s7_c_pointer(line));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_cairo_show_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_show_layout "void pango_cairo_show_layout(cairo_t* cr, PangoLayout* layout)"
+  s7_pointer _p;
+  s7_pointer cr, layout;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_show_layout", 1, cr, "cairo_t*");
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_show_layout", 2, layout, "PangoLayout*");
+  pango_cairo_show_layout(s7_c_pointer(cr), s7_c_pointer(layout));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_cairo_show_error_underline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_show_error_underline "void pango_cairo_show_error_underline(cairo_t* cr, gdouble x, \
+gdouble y, gdouble width, gdouble height)"
+  s7_pointer _p;
+  s7_pointer cr, x, y, width, height;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_show_error_underline", 1, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "pango_cairo_show_error_underline", 2, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "pango_cairo_show_error_underline", 3, y, "gdouble");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "pango_cairo_show_error_underline", 4, width, "gdouble");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "pango_cairo_show_error_underline", 5, height, "gdouble");
+  pango_cairo_show_error_underline(s7_c_pointer(cr), s7_real(x), s7_real(y), s7_real(width), s7_real(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_cairo_glyph_string_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_glyph_string_path "void pango_cairo_glyph_string_path(cairo_t* cr, PangoFont* font, \
+PangoGlyphString* glyphs)"
+  s7_pointer _p;
+  s7_pointer cr, font, glyphs;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_glyph_string_path", 1, cr, "cairo_t*");
+  font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font, PangoFont__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_glyph_string_path", 2, font, "PangoFont*");
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, PangoGlyphString__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_glyph_string_path", 3, glyphs, "PangoGlyphString*");
+  pango_cairo_glyph_string_path(s7_c_pointer(cr), s7_c_pointer(font), s7_c_pointer(glyphs));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_cairo_layout_line_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_layout_line_path "void pango_cairo_layout_line_path(cairo_t* cr, PangoLayoutLine* line)"
+  s7_pointer _p;
+  s7_pointer cr, line;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_layout_line_path", 1, cr, "cairo_t*");
+  line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(line, PangoLayoutLine__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_layout_line_path", 2, line, "PangoLayoutLine*");
+  pango_cairo_layout_line_path(s7_c_pointer(cr), s7_c_pointer(line));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_cairo_layout_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_layout_path "void pango_cairo_layout_path(cairo_t* cr, PangoLayout* layout)"
+  s7_pointer _p;
+  s7_pointer cr, layout;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_layout_path", 1, cr, "cairo_t*");
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_layout_path", 2, layout, "PangoLayout*");
+  pango_cairo_layout_path(s7_c_pointer(cr), s7_c_pointer(layout));
+  return(lg_false);
+}
+
+static s7_pointer lg_pango_cairo_error_underline_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_cairo_error_underline_path "void pango_cairo_error_underline_path(cairo_t* cr, gdouble x, \
+gdouble y, gdouble width, gdouble height)"
+  s7_pointer _p;
+  s7_pointer cr, x, y, width, height;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "pango_cairo_error_underline_path", 1, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "pango_cairo_error_underline_path", 2, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "pango_cairo_error_underline_path", 3, y, "gdouble");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "pango_cairo_error_underline_path", 4, width, "gdouble");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "pango_cairo_error_underline_path", 5, height, "gdouble");
+  pango_cairo_error_underline_path(s7_c_pointer(cr), s7_real(x), s7_real(y), s7_real(width), s7_real(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_cairo_set_source_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cairo_set_source_pixbuf "void gdk_cairo_set_source_pixbuf(cairo_t* cr, GdkPixbuf* pixbuf, \
+gdouble pixbuf_x, gdouble pixbuf_y)"
+  s7_pointer _p;
+  s7_pointer cr, pixbuf, pixbuf_x, pixbuf_y;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gdk_cairo_set_source_pixbuf", 1, cr, "cairo_t*");
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_cairo_set_source_pixbuf", 2, pixbuf, "GdkPixbuf*");
+  pixbuf_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(pixbuf_x)) s7_wrong_type_arg_error(sc, "gdk_cairo_set_source_pixbuf", 3, pixbuf_x, "gdouble");
+  pixbuf_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(pixbuf_y)) s7_wrong_type_arg_error(sc, "gdk_cairo_set_source_pixbuf", 4, pixbuf_y, "gdouble");
+  gdk_cairo_set_source_pixbuf(s7_c_pointer(cr), s7_c_pointer(pixbuf), s7_real(pixbuf_x), s7_real(pixbuf_y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_cairo_rectangle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cairo_rectangle "void gdk_cairo_rectangle(cairo_t* cr, GdkRectangle* rectangle)"
+  s7_pointer _p;
+  s7_pointer cr, rectangle;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gdk_cairo_rectangle", 1, cr, "cairo_t*");
+  rectangle = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rectangle, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_cairo_rectangle", 2, rectangle, "GdkRectangle*");
+  gdk_cairo_rectangle(s7_c_pointer(cr), s7_c_pointer(rectangle));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_event_request_motions(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_request_motions "void gdk_event_request_motions(GdkEventMotion* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event, GdkEventMotion__sym)) s7_wrong_type_arg_error(sc, "gdk_event_request_motions", 1, event, "GdkEventMotion*");
+  gdk_event_request_motions(s7_c_pointer(event));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_notify_startup_complete_with_id(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_notify_startup_complete_with_id "void gdk_notify_startup_complete_with_id(gchar* startup_id)"
+  s7_pointer startup_id;
+  startup_id = s7_car(args);
+  if (!s7_is_string(startup_id)) s7_wrong_type_arg_error(sc, "gdk_notify_startup_complete_with_id", 1, startup_id, "gchar*");
+  gdk_notify_startup_complete_with_id(s7_string(startup_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_threads_add_idle_full(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_threads_add_idle_full "guint gdk_threads_add_idle_full(gint priority, GSourceFunc func, \
+lambda_data func_info, GDestroyNotify notify)"
+  s7_pointer _p;
+  s7_pointer priority, func, func_info, notify;
+  _p = args;
+  priority = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(priority)) s7_wrong_type_arg_error(sc, "gdk_threads_add_idle_full", 1, priority, "gint");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GSourceFunc_sym)) s7_wrong_type_arg_error(sc, "gdk_threads_add_idle_full", 2, func, "GSourceFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gdk_threads_add_idle_full", 3, func_info, "lambda_data");
+  notify = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notify, GDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gdk_threads_add_idle_full", 4, notify, "GDestroyNotify");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    result = s7_make_integer(sc, gdk_threads_add_idle_full(s7_integer(priority), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(notify)));
+    return(result);
+   }
+}
+
+static s7_pointer lg_gdk_threads_add_idle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_threads_add_idle "guint gdk_threads_add_idle(GSourceFunc func, lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer func, func_info;
+  _p = args;
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GSourceFunc_sym)) s7_wrong_type_arg_error(sc, "gdk_threads_add_idle", 1, func, "GSourceFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gdk_threads_add_idle", 2, func_info, "lambda_data");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    result = s7_make_integer(sc, gdk_threads_add_idle(s7_c_pointer(func), (gpointer)lg_ptr));
+    return(result);
+   }
+}
+
+static s7_pointer lg_gdk_threads_add_timeout_full(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_threads_add_timeout_full "guint gdk_threads_add_timeout_full(gint priority, guint interval, \
+GSourceFunc func, lambda_data func_info, GDestroyNotify notify)"
+  s7_pointer _p;
+  s7_pointer priority, interval, func, func_info, notify;
+  _p = args;
+  priority = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(priority)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout_full", 1, priority, "gint");
+  interval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(interval)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout_full", 2, interval, "guint");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GSourceFunc_sym)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout_full", 3, func, "GSourceFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout_full", 4, func_info, "lambda_data");
+  notify = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notify, GDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout_full", 5, notify, "GDestroyNotify");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    result = s7_make_integer(sc, gdk_threads_add_timeout_full(s7_integer(priority), s7_integer(interval), s7_c_pointer(func), (gpointer)lg_ptr, s7_c_pointer(notify)));
+    return(result);
+   }
+}
+
+static s7_pointer lg_gdk_threads_add_timeout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_threads_add_timeout "guint gdk_threads_add_timeout(guint interval, GSourceFunc func, \
+lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer interval, func, func_info;
+  _p = args;
+  interval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(interval)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout", 1, interval, "guint");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GSourceFunc_sym)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout", 2, func, "GSourceFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout", 3, func_info, "lambda_data");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, func, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    result = s7_make_integer(sc, gdk_threads_add_timeout(s7_integer(interval), s7_c_pointer(func), (gpointer)lg_ptr));
+    return(result);
+   }
+}
+
+static s7_pointer lg_gdk_window_set_startup_id(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_startup_id "void gdk_window_set_startup_id(GdkWindow* window, gchar* startup_id)"
+  s7_pointer _p;
+  s7_pointer window, startup_id;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_startup_id", 1, window, "GdkWindow*");
+  startup_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(startup_id)) s7_wrong_type_arg_error(sc, "gdk_window_set_startup_id", 2, startup_id, "gchar*");
+  gdk_window_set_startup_id(s7_c_pointer(window), s7_string(startup_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_beep(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_beep "void gdk_window_beep(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_beep", 1, window, "GdkWindow*");
+  gdk_window_beep(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_opacity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_opacity "void gdk_window_set_opacity(GdkWindow* window, gdouble opacity)"
+  s7_pointer _p;
+  s7_pointer window, opacity;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_opacity", 1, window, "GdkWindow*");
+  opacity = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(opacity)) s7_wrong_type_arg_error(sc, "gdk_window_set_opacity", 2, opacity, "gdouble");
+  gdk_window_set_opacity(s7_c_pointer(window), s7_real(opacity));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_binding_entry_skip(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_binding_entry_skip "void gtk_binding_entry_skip(GtkBindingSet* binding_set, guint keyval, \
+GdkModifierType modifiers)"
+  s7_pointer _p;
+  s7_pointer binding_set, keyval, modifiers;
+  _p = args;
+  binding_set = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(binding_set, GtkBindingSet__sym)) s7_wrong_type_arg_error(sc, "gtk_binding_entry_skip", 1, binding_set, "GtkBindingSet*");
+  keyval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gtk_binding_entry_skip", 2, keyval, "guint");
+  modifiers = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(modifiers)) s7_wrong_type_arg_error(sc, "gtk_binding_entry_skip", 3, modifiers, "GdkModifierType");
+  gtk_binding_entry_skip(s7_c_pointer(binding_set), s7_integer(keyval), s7_integer(modifiers));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_layout_get_cells(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_layout_get_cells "GList* gtk_cell_layout_get_cells(GtkCellLayout* cell_layout)"
+  s7_pointer cell_layout;
+  cell_layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cell_layout, GtkCellLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_layout_get_cells", 1, cell_layout, "GtkCellLayout*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_cell_layout_get_cells(s7_c_pointer(cell_layout))));
+}
+
+static s7_pointer lg_gtk_entry_completion_set_inline_selection(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_set_inline_selection "void gtk_entry_completion_set_inline_selection(GtkEntryCompletion* completion, \
+gboolean inline_selection)"
+  s7_pointer _p;
+  s7_pointer completion, inline_selection;
+  _p = args;
+  completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_inline_selection", 1, completion, "GtkEntryCompletion*");
+  inline_selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(inline_selection)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_set_inline_selection", 2, inline_selection, "gboolean");
+  gtk_entry_completion_set_inline_selection(s7_c_pointer(completion), lg_boolean(inline_selection));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_get_inline_selection(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_get_inline_selection "gboolean gtk_entry_completion_get_inline_selection(GtkEntryCompletion* completion)"
+  s7_pointer completion;
+  completion = s7_car(args);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_get_inline_selection", 1, completion, "GtkEntryCompletion*");
+  return(s7_make_boolean(sc, gtk_entry_completion_get_inline_selection(s7_c_pointer(completion))));
+}
+
+static s7_pointer lg_gtk_entry_completion_get_completion_prefix(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_get_completion_prefix "gchar* gtk_entry_completion_get_completion_prefix(GtkEntryCompletion* completion)"
+  s7_pointer completion;
+  completion = s7_car(args);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_get_completion_prefix", 1, completion, "GtkEntryCompletion*");
+  return(s7_make_string(sc, gtk_entry_completion_get_completion_prefix(s7_c_pointer(completion))));
+}
+
+static s7_pointer lg_gtk_entry_set_cursor_hadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_cursor_hadjustment "void gtk_entry_set_cursor_hadjustment(GtkEntry* entry, \
+GtkAdjustment* adjustment)"
+  s7_pointer _p;
+  s7_pointer entry, adjustment;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_cursor_hadjustment", 1, entry, "GtkEntry*");
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_cursor_hadjustment", 2, adjustment, "GtkAdjustment*");
+  gtk_entry_set_cursor_hadjustment(s7_c_pointer(entry), s7_c_pointer(adjustment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_cursor_hadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_cursor_hadjustment "GtkAdjustment* gtk_entry_get_cursor_hadjustment(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_cursor_hadjustment", 1, entry, "GtkEntry*");
+  return(s7_make_type_with_c_pointer(sc, GtkAdjustment__sym, gtk_entry_get_cursor_hadjustment(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_icon_theme_list_contexts(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_list_contexts "GList* gtk_icon_theme_list_contexts(GtkIconTheme* icon_theme)"
+  s7_pointer icon_theme;
+  icon_theme = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_list_contexts", 1, icon_theme, "GtkIconTheme*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_icon_theme_list_contexts(s7_c_pointer(icon_theme))));
+}
+
+static s7_pointer lg_gtk_print_settings_new_from_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_new_from_file "GtkPrintSettings* gtk_print_settings_new_from_file(gchar* file_name, \
+GError** [error])"
+  s7_pointer _p;
+  s7_pointer file_name;
+  GError* ref_error = NULL;
+  _p = args;
+  file_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(file_name)) s7_wrong_type_arg_error(sc, "gtk_print_settings_new_from_file", 1, file_name, "gchar*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GtkPrintSettings__sym, gtk_print_settings_new_from_file(s7_string(file_name), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_print_settings_to_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_settings_to_file "gboolean gtk_print_settings_to_file(GtkPrintSettings* settings, \
+gchar* file_name, GError** [error])"
+  s7_pointer _p;
+  s7_pointer settings, file_name;
+  GError* ref_error = NULL;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkPrintSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_print_settings_to_file", 1, settings, "GtkPrintSettings*");
+  file_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(file_name)) s7_wrong_type_arg_error(sc, "gtk_print_settings_to_file", 2, file_name, "gchar*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_print_settings_to_file(s7_c_pointer(settings), s7_string(file_name), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_range_set_show_fill_level(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_set_show_fill_level "void gtk_range_set_show_fill_level(GtkRange* range,  gboolean, \
+show_fill_level)"
+  s7_pointer _p;
+  s7_pointer range, show_fill_level;
+  _p = args;
+  range = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_set_show_fill_level", 1, range, "GtkRange*");
+  show_fill_level = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_fill_level)) s7_wrong_type_arg_error(sc, "gtk_range_set_show_fill_level", 2, show_fill_level, "gboolean");
+  gtk_range_set_show_fill_level(s7_c_pointer(range), lg_boolean(show_fill_level));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_get_show_fill_level(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_get_show_fill_level "gboolean gtk_range_get_show_fill_level(GtkRange* range)"
+  s7_pointer range;
+  range = s7_car(args);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_get_show_fill_level", 1, range, "GtkRange*");
+  return(s7_make_boolean(sc, gtk_range_get_show_fill_level(s7_c_pointer(range))));
+}
+
+static s7_pointer lg_gtk_range_set_restrict_to_fill_level(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_set_restrict_to_fill_level "void gtk_range_set_restrict_to_fill_level(GtkRange* range, \
+ gboolean, restrict_to_fill_level)"
+  s7_pointer _p;
+  s7_pointer range, restrict_to_fill_level;
+  _p = args;
+  range = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_set_restrict_to_fill_level", 1, range, "GtkRange*");
+  restrict_to_fill_level = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(restrict_to_fill_level)) s7_wrong_type_arg_error(sc, "gtk_range_set_restrict_to_fill_level", 2, restrict_to_fill_level, "gboolean");
+  gtk_range_set_restrict_to_fill_level(s7_c_pointer(range), lg_boolean(restrict_to_fill_level));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_get_restrict_to_fill_level(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_get_restrict_to_fill_level "gboolean gtk_range_get_restrict_to_fill_level(GtkRange* range)"
+  s7_pointer range;
+  range = s7_car(args);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_get_restrict_to_fill_level", 1, range, "GtkRange*");
+  return(s7_make_boolean(sc, gtk_range_get_restrict_to_fill_level(s7_c_pointer(range))));
+}
+
+static s7_pointer lg_gtk_range_set_fill_level(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_set_fill_level "void gtk_range_set_fill_level(GtkRange* range,  gdouble, fill_level)"
+  s7_pointer _p;
+  s7_pointer range, fill_level;
+  _p = args;
+  range = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_set_fill_level", 1, range, "GtkRange*");
+  fill_level = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(fill_level)) s7_wrong_type_arg_error(sc, "gtk_range_set_fill_level", 2, fill_level, "gdouble");
+  gtk_range_set_fill_level(s7_c_pointer(range), s7_real(fill_level));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_get_fill_level(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_get_fill_level "gdouble gtk_range_get_fill_level(GtkRange* range)"
+  s7_pointer range;
+  range = s7_car(args);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_get_fill_level", 1, range, "GtkRange*");
+  return(s7_make_real(sc, gtk_range_get_fill_level(s7_c_pointer(range))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_show_expanders(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_show_expanders "void gtk_tree_view_set_show_expanders(GtkTreeView* tree_view, \
+gboolean enabled)"
+  s7_pointer _p;
+  s7_pointer tree_view, enabled;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_show_expanders", 1, tree_view, "GtkTreeView*");
+  enabled = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(enabled)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_show_expanders", 2, enabled, "gboolean");
+  gtk_tree_view_set_show_expanders(s7_c_pointer(tree_view), lg_boolean(enabled));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_show_expanders(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_show_expanders "gboolean gtk_tree_view_get_show_expanders(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_show_expanders", 1, tree_view, "GtkTreeView*");
+  return(s7_make_boolean(sc, gtk_tree_view_get_show_expanders(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_level_indentation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_level_indentation "void gtk_tree_view_set_level_indentation(GtkTreeView* tree_view, \
+gint indentation)"
+  s7_pointer _p;
+  s7_pointer tree_view, indentation;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_level_indentation", 1, tree_view, "GtkTreeView*");
+  indentation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(indentation)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_level_indentation", 2, indentation, "gint");
+  gtk_tree_view_set_level_indentation(s7_c_pointer(tree_view), s7_integer(indentation));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_level_indentation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_level_indentation "gint gtk_tree_view_get_level_indentation(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_level_indentation", 1, tree_view, "GtkTreeView*");
+  return(s7_make_integer(sc, gtk_tree_view_get_level_indentation(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_widget_keynav_failed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_keynav_failed "gboolean gtk_widget_keynav_failed(GtkWidget* widget, GtkDirectionType direction)"
+  s7_pointer _p;
+  s7_pointer widget, direction;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_keynav_failed", 1, widget, "GtkWidget*");
+  direction = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(direction)) s7_wrong_type_arg_error(sc, "gtk_widget_keynav_failed", 2, direction, "GtkDirectionType");
+  return(s7_make_boolean(sc, gtk_widget_keynav_failed(s7_c_pointer(widget), s7_integer(direction))));
+}
+
+static s7_pointer lg_gtk_widget_error_bell(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_error_bell "void gtk_widget_error_bell(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_error_bell", 1, widget, "GtkWidget*");
+  gtk_widget_error_bell(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_set_tooltip_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_tooltip_window "void gtk_widget_set_tooltip_window(GtkWidget* widget, GtkWindow* custom_window)"
+  s7_pointer _p;
+  s7_pointer widget, custom_window;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_tooltip_window", 1, widget, "GtkWidget*");
+  custom_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(custom_window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_tooltip_window", 2, custom_window, "GtkWindow*");
+  gtk_widget_set_tooltip_window(s7_c_pointer(widget), s7_c_pointer(custom_window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_tooltip_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_tooltip_window "GtkWindow* gtk_widget_get_tooltip_window(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_tooltip_window", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkWindow__sym, gtk_widget_get_tooltip_window(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_trigger_tooltip_query(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_trigger_tooltip_query "void gtk_widget_trigger_tooltip_query(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_trigger_tooltip_query", 1, widget, "GtkWidget*");
+  gtk_widget_trigger_tooltip_query(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_set_startup_id(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_startup_id "void gtk_window_set_startup_id(GtkWindow* window, gchar* startup_id)"
+  s7_pointer _p;
+  s7_pointer window, startup_id;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_startup_id", 1, window, "GtkWindow*");
+  startup_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(startup_id)) s7_wrong_type_arg_error(sc, "gtk_window_set_startup_id", 2, startup_id, "gchar*");
+  gtk_window_set_startup_id(s7_c_pointer(window), s7_string(startup_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_buffer_add_mark(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_add_mark "void gtk_text_buffer_add_mark(GtkTextBuffer* buffer, GtkTextMark* mark, \
+GtkTextIter* where)"
+  s7_pointer _p;
+  s7_pointer buffer, mark, where;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_add_mark", 1, buffer, "GtkTextBuffer*");
+  mark = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(mark, GtkTextMark__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_add_mark", 2, mark, "GtkTextMark*");
+  where = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(where, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_add_mark", 3, where, "GtkTextIter*");
+  gtk_text_buffer_add_mark(s7_c_pointer(buffer), s7_c_pointer(mark), s7_c_pointer(where));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_mark_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_mark_new "GtkTextMark* gtk_text_mark_new(gchar* name, gboolean left_gravity)"
+  s7_pointer _p;
+  s7_pointer name, left_gravity;
+  _p = args;
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_text_mark_new", 1, name, "gchar*");
+  left_gravity = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(left_gravity)) s7_wrong_type_arg_error(sc, "gtk_text_mark_new", 2, left_gravity, "gboolean");
+  return(s7_make_type_with_c_pointer(sc, GtkTextMark__sym, gtk_text_mark_new(s7_string(name), lg_boolean(left_gravity))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_tree_view(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_tree_view "GtkWidget* gtk_tree_view_column_get_tree_view(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_tree_view", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_tree_view_column_get_tree_view(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tooltip_set_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tooltip_set_text "void gtk_tooltip_set_text(GtkTooltip* tooltip, gchar* text)"
+  s7_pointer _p;
+  s7_pointer tooltip, text;
+  _p = args;
+  tooltip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tooltip, GtkTooltip__sym)) s7_wrong_type_arg_error(sc, "gtk_tooltip_set_text", 1, tooltip, "GtkTooltip*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_tooltip_set_text", 2, text, "gchar*");
+  gtk_tooltip_set_text(s7_c_pointer(tooltip), (const gchar*)s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_convert_widget_to_tree_coords(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_convert_widget_to_tree_coords "void gtk_tree_view_convert_widget_to_tree_coords(GtkTreeView* tree_view, \
+gint wx, gint wy, gint* [tx], gint* [ty])"
+  s7_pointer _p;
+  s7_pointer tree_view, wx, wy;
+  gint ref_tx;
+  gint ref_ty;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_widget_to_tree_coords", 1, tree_view, "GtkTreeView*");
+  wx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(wx)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_widget_to_tree_coords", 2, wx, "gint");
+  wy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(wy)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_widget_to_tree_coords", 3, wy, "gint");
+  gtk_tree_view_convert_widget_to_tree_coords(s7_c_pointer(tree_view), s7_integer(wx), s7_integer(wy), &ref_tx, &ref_ty);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_tx), s7_make_integer(sc, ref_ty)));
+}
+
+static s7_pointer lg_gtk_tree_view_convert_tree_to_widget_coords(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_convert_tree_to_widget_coords "void gtk_tree_view_convert_tree_to_widget_coords(GtkTreeView* tree_view, \
+gint tx, gint ty, gint* [wx], gint* [wy])"
+  s7_pointer _p;
+  s7_pointer tree_view, tx, ty;
+  gint ref_wx;
+  gint ref_wy;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_tree_to_widget_coords", 1, tree_view, "GtkTreeView*");
+  tx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(tx)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_tree_to_widget_coords", 2, tx, "gint");
+  ty = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(ty)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_tree_to_widget_coords", 3, ty, "gint");
+  gtk_tree_view_convert_tree_to_widget_coords(s7_c_pointer(tree_view), s7_integer(tx), s7_integer(ty), &ref_wx, &ref_wy);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_wx), s7_make_integer(sc, ref_wy)));
+}
+
+static s7_pointer lg_gtk_tree_view_convert_widget_to_bin_window_coords(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_convert_widget_to_bin_window_coords "void gtk_tree_view_convert_widget_to_bin_window_coords(GtkTreeView* tree_view, \
+gint wx, gint wy, gint* [bx], gint* [by])"
+  s7_pointer _p;
+  s7_pointer tree_view, wx, wy;
+  gint ref_bx;
+  gint ref_by;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_widget_to_bin_window_coords", 1, tree_view, "GtkTreeView*");
+  wx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(wx)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_widget_to_bin_window_coords", 2, wx, "gint");
+  wy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(wy)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_widget_to_bin_window_coords", 3, wy, "gint");
+  gtk_tree_view_convert_widget_to_bin_window_coords(s7_c_pointer(tree_view), s7_integer(wx), s7_integer(wy), &ref_bx, &ref_by);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_bx), s7_make_integer(sc, ref_by)));
+}
+
+static s7_pointer lg_gtk_tree_view_convert_bin_window_to_widget_coords(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_convert_bin_window_to_widget_coords "void gtk_tree_view_convert_bin_window_to_widget_coords(GtkTreeView* tree_view, \
+gint bx, gint by, gint* [wx], gint* [wy])"
+  s7_pointer _p;
+  s7_pointer tree_view, bx, by;
+  gint ref_wx;
+  gint ref_wy;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_bin_window_to_widget_coords", 1, tree_view, "GtkTreeView*");
+  bx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(bx)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_bin_window_to_widget_coords", 2, bx, "gint");
+  by = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(by)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_bin_window_to_widget_coords", 3, by, "gint");
+  gtk_tree_view_convert_bin_window_to_widget_coords(s7_c_pointer(tree_view), s7_integer(bx), s7_integer(by), &ref_wx, &ref_wy);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_wx), s7_make_integer(sc, ref_wy)));
+}
+
+static s7_pointer lg_gtk_tree_view_convert_tree_to_bin_window_coords(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_convert_tree_to_bin_window_coords "void gtk_tree_view_convert_tree_to_bin_window_coords(GtkTreeView* tree_view, \
+gint tx, gint ty, gint* [bx], gint* [by])"
+  s7_pointer _p;
+  s7_pointer tree_view, tx, ty;
+  gint ref_bx;
+  gint ref_by;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_tree_to_bin_window_coords", 1, tree_view, "GtkTreeView*");
+  tx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(tx)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_tree_to_bin_window_coords", 2, tx, "gint");
+  ty = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(ty)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_tree_to_bin_window_coords", 3, ty, "gint");
+  gtk_tree_view_convert_tree_to_bin_window_coords(s7_c_pointer(tree_view), s7_integer(tx), s7_integer(ty), &ref_bx, &ref_by);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_bx), s7_make_integer(sc, ref_by)));
+}
+
+static s7_pointer lg_gtk_tree_view_convert_bin_window_to_tree_coords(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_convert_bin_window_to_tree_coords "void gtk_tree_view_convert_bin_window_to_tree_coords(GtkTreeView* tree_view, \
+gint bx, gint by, gint* [tx], gint* [ty])"
+  s7_pointer _p;
+  s7_pointer tree_view, bx, by;
+  gint ref_tx;
+  gint ref_ty;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_bin_window_to_tree_coords", 1, tree_view, "GtkTreeView*");
+  bx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(bx)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_bin_window_to_tree_coords", 2, bx, "gint");
+  by = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(by)) s7_wrong_type_arg_error(sc, "gtk_tree_view_convert_bin_window_to_tree_coords", 3, by, "gint");
+  gtk_tree_view_convert_bin_window_to_tree_coords(s7_c_pointer(tree_view), s7_integer(bx), s7_integer(by), &ref_tx, &ref_ty);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_tx), s7_make_integer(sc, ref_ty)));
+}
+
+static s7_pointer lg_gtk_widget_set_tooltip_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_tooltip_text "void gtk_widget_set_tooltip_text(GtkWidget* widget, gchar* text)"
+  s7_pointer _p;
+  s7_pointer widget, text;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_tooltip_text", 1, widget, "GtkWidget*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_widget_set_tooltip_text", 2, text, "gchar*");
+  gtk_widget_set_tooltip_text(s7_c_pointer(widget), (const gchar*)s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_tooltip_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_tooltip_text "gchar* gtk_widget_get_tooltip_text(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_tooltip_text", 1, widget, "GtkWidget*");
+  return(s7_make_string(sc, gtk_widget_get_tooltip_text(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_tooltip_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_tooltip_markup "void gtk_widget_set_tooltip_markup(GtkWidget* widget, gchar* markup)"
+  s7_pointer _p;
+  s7_pointer widget, markup;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_tooltip_markup", 1, widget, "GtkWidget*");
+  markup = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(markup)) s7_wrong_type_arg_error(sc, "gtk_widget_set_tooltip_markup", 2, markup, "gchar*");
+  gtk_widget_set_tooltip_markup(s7_c_pointer(widget), (const gchar*)s7_string(markup));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_tooltip_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_tooltip_markup "gchar* gtk_widget_get_tooltip_markup(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_tooltip_markup", 1, widget, "GtkWidget*");
+  return(s7_make_string(sc, gtk_widget_get_tooltip_markup(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_tree_view_is_rubber_banding_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_is_rubber_banding_active "gboolean gtk_tree_view_is_rubber_banding_active(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_is_rubber_banding_active", 1, tree_view, "GtkTreeView*");
+  return(s7_make_boolean(sc, gtk_tree_view_is_rubber_banding_active(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_icon_view_convert_widget_to_bin_window_coords(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_convert_widget_to_bin_window_coords "void gtk_icon_view_convert_widget_to_bin_window_coords(GtkIconView* icon_view, \
+gint wx, gint wy, gint* [bx], gint* [by])"
+  s7_pointer _p;
+  s7_pointer icon_view, wx, wy;
+  gint ref_bx;
+  gint ref_by;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_convert_widget_to_bin_window_coords", 1, icon_view, "GtkIconView*");
+  wx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(wx)) s7_wrong_type_arg_error(sc, "gtk_icon_view_convert_widget_to_bin_window_coords", 2, wx, "gint");
+  wy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(wy)) s7_wrong_type_arg_error(sc, "gtk_icon_view_convert_widget_to_bin_window_coords", 3, wy, "gint");
+  gtk_icon_view_convert_widget_to_bin_window_coords(s7_c_pointer(icon_view), s7_integer(wx), s7_integer(wy), &ref_bx, &ref_by);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_bx), s7_make_integer(sc, ref_by)));
+}
+
+static s7_pointer lg_gtk_icon_view_set_tooltip_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_tooltip_item "void gtk_icon_view_set_tooltip_item(GtkIconView* icon_view, \
+GtkTooltip* tooltip, GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer icon_view, tooltip, path;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_tooltip_item", 1, icon_view, "GtkIconView*");
+  tooltip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tooltip, GtkTooltip__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_tooltip_item", 2, tooltip, "GtkTooltip*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_tooltip_item", 3, path, "GtkTreePath*");
+  gtk_icon_view_set_tooltip_item(s7_c_pointer(icon_view), s7_c_pointer(tooltip), s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_set_tooltip_cell(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_tooltip_cell "void gtk_icon_view_set_tooltip_cell(GtkIconView* icon_view, \
+GtkTooltip* tooltip, GtkTreePath* path, GtkCellRenderer* cell)"
+  s7_pointer _p;
+  s7_pointer icon_view, tooltip, path, cell;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_tooltip_cell", 1, icon_view, "GtkIconView*");
+  tooltip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tooltip, GtkTooltip__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_tooltip_cell", 2, tooltip, "GtkTooltip*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_tooltip_cell", 3, path, "GtkTreePath*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_tooltip_cell", 4, cell, "GtkCellRenderer*");
+  gtk_icon_view_set_tooltip_cell(s7_c_pointer(icon_view), s7_c_pointer(tooltip), s7_c_pointer(path), s7_c_pointer(cell));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_tooltip_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_tooltip_context "gboolean gtk_icon_view_get_tooltip_context(GtkIconView* icon_view, \
+gint* [x], gint* [y], gboolean keyboard_tip, GtkTreeModel** [model], GtkTreePath** [path], GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer icon_view, keyboard_tip, iter;
+  gint ref_x;
+  gint ref_y;
+  GtkTreeModel* ref_model = NULL;
+  GtkTreePath* ref_path = NULL;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_tooltip_context", 1, icon_view, "GtkIconView*");
+  keyboard_tip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(keyboard_tip)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_tooltip_context", 4, keyboard_tip, "gboolean");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) && (iter != lg_false)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_tooltip_context", 7, iter, "GtkTreeIter*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_icon_view_get_tooltip_context(s7_c_pointer(icon_view), &ref_x, &ref_y, lg_boolean(keyboard_tip), &ref_model, &ref_path, s7_c_pointer(iter)));
+      return(s7_list(sc, 5, result, s7_make_integer(sc, ref_x), s7_make_integer(sc, ref_y), s7_make_c_pointer(sc, ref_model), s7_make_c_pointer(sc, ref_path)));
+   }
+}
+
+static s7_pointer lg_gtk_icon_view_set_tooltip_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_tooltip_column "void gtk_icon_view_set_tooltip_column(GtkIconView* icon_view, \
+gint column)"
+  s7_pointer _p;
+  s7_pointer icon_view, column;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_tooltip_column", 1, icon_view, "GtkIconView*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(column)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_tooltip_column", 2, column, "gint");
+  gtk_icon_view_set_tooltip_column(s7_c_pointer(icon_view), s7_integer(column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_tooltip_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_tooltip_column "gint gtk_icon_view_get_tooltip_column(GtkIconView* icon_view, \
+)"
+  s7_pointer icon_view ;
+  icon_view  = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view , GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_tooltip_column", 1, icon_view , "GtkIconView*");
+  return(s7_make_integer(sc, gtk_icon_view_get_tooltip_column(s7_c_pointer(icon_view ))));
+}
+
+static s7_pointer lg_gtk_menu_tool_button_set_arrow_tooltip_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_tool_button_set_arrow_tooltip_text "void gtk_menu_tool_button_set_arrow_tooltip_text(GtkMenuToolButton* button, \
+gchar* text)"
+  s7_pointer _p;
+  s7_pointer button, text;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkMenuToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_tool_button_set_arrow_tooltip_text", 1, button, "GtkMenuToolButton*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_menu_tool_button_set_arrow_tooltip_text", 2, text, "gchar*");
+  gtk_menu_tool_button_set_arrow_tooltip_text(s7_c_pointer(button), (const gchar*)s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_tool_button_set_arrow_tooltip_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_tool_button_set_arrow_tooltip_markup "void gtk_menu_tool_button_set_arrow_tooltip_markup(GtkMenuToolButton* button, \
+gchar* markup)"
+  s7_pointer _p;
+  s7_pointer button, markup;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkMenuToolButton__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_tool_button_set_arrow_tooltip_markup", 1, button, "GtkMenuToolButton*");
+  markup = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(markup)) s7_wrong_type_arg_error(sc, "gtk_menu_tool_button_set_arrow_tooltip_markup", 2, markup, "gchar*");
+  gtk_menu_tool_button_set_arrow_tooltip_markup(s7_c_pointer(button), (const gchar*)s7_string(markup));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_set_tooltip_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_set_tooltip_text "void gtk_tool_item_set_tooltip_text(GtkToolItem* tool_item, \
+gchar* text)"
+  s7_pointer _p;
+  s7_pointer tool_item, text;
+  _p = args;
+  tool_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_tooltip_text", 1, tool_item, "GtkToolItem*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_tooltip_text", 2, text, "gchar*");
+  gtk_tool_item_set_tooltip_text(s7_c_pointer(tool_item), (const gchar*)s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_set_tooltip_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_set_tooltip_markup "void gtk_tool_item_set_tooltip_markup(GtkToolItem* tool_item, \
+gchar* markup)"
+  s7_pointer _p;
+  s7_pointer tool_item, markup;
+  _p = args;
+  tool_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_tooltip_markup", 1, tool_item, "GtkToolItem*");
+  markup = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(markup)) s7_wrong_type_arg_error(sc, "gtk_tool_item_set_tooltip_markup", 2, markup, "gchar*");
+  gtk_tool_item_set_tooltip_markup(s7_c_pointer(tool_item), (const gchar*)s7_string(markup));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tooltip_set_tip_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tooltip_set_tip_area "void gtk_tooltip_set_tip_area(GtkTooltip* tooltip, GdkRectangle* rect)"
+  s7_pointer _p;
+  s7_pointer tooltip, rect;
+  _p = args;
+  tooltip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tooltip, GtkTooltip__sym)) s7_wrong_type_arg_error(sc, "gtk_tooltip_set_tip_area", 1, tooltip, "GtkTooltip*");
+  rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rect, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_tooltip_set_tip_area", 2, rect, "GdkRectangle*");
+  gtk_tooltip_set_tip_area(s7_c_pointer(tooltip), s7_c_pointer(rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_set_tooltip_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_tooltip_row "void gtk_tree_view_set_tooltip_row(GtkTreeView* tree_view, \
+GtkTooltip* tooltip, GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer tree_view, tooltip, path;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_tooltip_row", 1, tree_view, "GtkTreeView*");
+  tooltip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tooltip, GtkTooltip__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_tooltip_row", 2, tooltip, "GtkTooltip*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_tooltip_row", 3, path, "GtkTreePath*");
+  gtk_tree_view_set_tooltip_row(s7_c_pointer(tree_view), s7_c_pointer(tooltip), s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_set_tooltip_cell(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_tooltip_cell "void gtk_tree_view_set_tooltip_cell(GtkTreeView* tree_view, \
+GtkTooltip* tooltip, GtkTreePath* path, GtkTreeViewColumn* column, GtkCellRenderer* cell)"
+  s7_pointer _p;
+  s7_pointer tree_view, tooltip, path, column, cell;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_tooltip_cell", 1, tree_view, "GtkTreeView*");
+  tooltip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tooltip, GtkTooltip__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_tooltip_cell", 2, tooltip, "GtkTooltip*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_tooltip_cell", 3, path, "GtkTreePath*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_tooltip_cell", 4, column, "GtkTreeViewColumn*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_tooltip_cell", 5, cell, "GtkCellRenderer*");
+  gtk_tree_view_set_tooltip_cell(s7_c_pointer(tree_view), s7_c_pointer(tooltip), s7_c_pointer(path), s7_c_pointer(column), s7_c_pointer(cell));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_tooltip_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_tooltip_context "gboolean gtk_tree_view_get_tooltip_context(GtkTreeView* tree_view, \
+gint* [x], gint* [y], gboolean keyboard_tip, GtkTreeModel** [model], GtkTreePath** [path], GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_view, keyboard_tip, iter;
+  gint ref_x;
+  gint ref_y;
+  GtkTreeModel* ref_model = NULL;
+  GtkTreePath* ref_path = NULL;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_tooltip_context", 1, tree_view, "GtkTreeView*");
+  keyboard_tip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(keyboard_tip)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_tooltip_context", 4, keyboard_tip, "gboolean");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) && (iter != lg_false)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_tooltip_context", 7, iter, "GtkTreeIter*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_tree_view_get_tooltip_context(s7_c_pointer(tree_view), &ref_x, &ref_y, lg_boolean(keyboard_tip), &ref_model, &ref_path, s7_c_pointer(iter)));
+      return(s7_list(sc, 5, result, s7_make_integer(sc, ref_x), s7_make_integer(sc, ref_y), s7_make_c_pointer(sc, ref_model), s7_make_c_pointer(sc, ref_path)));
+   }
+}
+
+static s7_pointer lg_gtk_tree_view_set_tooltip_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_tooltip_column "void gtk_tree_view_set_tooltip_column(GtkTreeView* tree_view, \
+gint column)"
+  s7_pointer _p;
+  s7_pointer tree_view, column;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_tooltip_column", 1, tree_view, "GtkTreeView*");
+  column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(column)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_tooltip_column", 2, column, "gint");
+  gtk_tree_view_set_tooltip_column(s7_c_pointer(tree_view), s7_integer(column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_tooltip_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_tooltip_column "gint gtk_tree_view_get_tooltip_column(GtkTreeView* tree_view, \
+)"
+  s7_pointer tree_view ;
+  tree_view  = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view , GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_tooltip_column", 1, tree_view , "GtkTreeView*");
+  return(s7_make_integer(sc, gtk_tree_view_get_tooltip_column(s7_c_pointer(tree_view ))));
+}
+
+static s7_pointer lg_gtk_widget_set_has_tooltip(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_has_tooltip "void gtk_widget_set_has_tooltip(GtkWidget* widget, gboolean has_tooltip)"
+  s7_pointer _p;
+  s7_pointer widget, has_tooltip;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_has_tooltip", 1, widget, "GtkWidget*");
+  has_tooltip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(has_tooltip)) s7_wrong_type_arg_error(sc, "gtk_widget_set_has_tooltip", 2, has_tooltip, "gboolean");
+  gtk_widget_set_has_tooltip(s7_c_pointer(widget), lg_boolean(has_tooltip));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_has_tooltip(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_has_tooltip "gboolean gtk_widget_get_has_tooltip(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_has_tooltip", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_has_tooltip(s7_c_pointer(widget))));
+}
+
+#if GTK_CHECK_VERSION(2, 14, 0)
+static s7_pointer lg_gtk_calendar_set_detail_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_set_detail_func "void gtk_calendar_set_detail_func(GtkCalendar* calendar, GtkCalendarDetailFunc func, \
+gpointer data, GDestroyNotify destroy)"
+  s7_pointer _p;
+  s7_pointer calendar, func, data, destroy;
+  _p = args;
+  calendar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(calendar, GtkCalendar__sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_set_detail_func", 1, calendar, "GtkCalendar*");
+  func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func, GtkCalendarDetailFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_set_detail_func", 2, func, "GtkCalendarDetailFunc");
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, gpointer_sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_set_detail_func", 3, data, "gpointer");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, GDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_set_detail_func", 4, destroy, "GDestroyNotify");
+  gtk_calendar_set_detail_func(s7_c_pointer(calendar), s7_c_pointer(func), s7_c_pointer(data), s7_c_pointer(destroy));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_calendar_set_detail_width_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_set_detail_width_chars "void gtk_calendar_set_detail_width_chars(GtkCalendar* calendar, \
+gint chars)"
+  s7_pointer _p;
+  s7_pointer calendar, chars;
+  _p = args;
+  calendar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(calendar, GtkCalendar__sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_set_detail_width_chars", 1, calendar, "GtkCalendar*");
+  chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(chars)) s7_wrong_type_arg_error(sc, "gtk_calendar_set_detail_width_chars", 2, chars, "gint");
+  gtk_calendar_set_detail_width_chars(s7_c_pointer(calendar), s7_integer(chars));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_calendar_set_detail_height_rows(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_set_detail_height_rows "void gtk_calendar_set_detail_height_rows(GtkCalendar* calendar, \
+gint rows)"
+  s7_pointer _p;
+  s7_pointer calendar, rows;
+  _p = args;
+  calendar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(calendar, GtkCalendar__sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_set_detail_height_rows", 1, calendar, "GtkCalendar*");
+  rows = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(rows)) s7_wrong_type_arg_error(sc, "gtk_calendar_set_detail_height_rows", 2, rows, "gint");
+  gtk_calendar_set_detail_height_rows(s7_c_pointer(calendar), s7_integer(rows));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_calendar_get_detail_width_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_get_detail_width_chars "gint gtk_calendar_get_detail_width_chars(GtkCalendar* calendar)"
+  s7_pointer calendar;
+  calendar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(calendar, GtkCalendar__sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_get_detail_width_chars", 1, calendar, "GtkCalendar*");
+  return(s7_make_integer(sc, gtk_calendar_get_detail_width_chars(s7_c_pointer(calendar))));
+}
+
+static s7_pointer lg_gtk_calendar_get_detail_height_rows(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_get_detail_height_rows "gint gtk_calendar_get_detail_height_rows(GtkCalendar* calendar)"
+  s7_pointer calendar;
+  calendar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(calendar, GtkCalendar__sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_get_detail_height_rows", 1, calendar, "GtkCalendar*");
+  return(s7_make_integer(sc, gtk_calendar_get_detail_height_rows(s7_c_pointer(calendar))));
+}
+
+static s7_pointer lg_gtk_accel_group_get_is_locked(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_group_get_is_locked "gboolean gtk_accel_group_get_is_locked(GtkAccelGroup* accel_group)"
+  s7_pointer accel_group;
+  accel_group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_group_get_is_locked", 1, accel_group, "GtkAccelGroup*");
+  return(s7_make_boolean(sc, gtk_accel_group_get_is_locked(s7_c_pointer(accel_group))));
+}
+
+static s7_pointer lg_gtk_dialog_get_content_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_dialog_get_content_area "GtkWidget* gtk_dialog_get_content_area(GtkDialog* dialog)"
+  s7_pointer dialog;
+  dialog = s7_car(args);
+  if (!s7_is_c_pointer_of_type(dialog, GtkDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_dialog_get_content_area", 1, dialog, "GtkDialog*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_dialog_get_content_area(s7_c_pointer(dialog))));
+}
+
+static s7_pointer lg_gtk_entry_set_overwrite_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_overwrite_mode "void gtk_entry_set_overwrite_mode(GtkEntry* entry, gboolean overwrite)"
+  s7_pointer _p;
+  s7_pointer entry, overwrite;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_overwrite_mode", 1, entry, "GtkEntry*");
+  overwrite = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(overwrite)) s7_wrong_type_arg_error(sc, "gtk_entry_set_overwrite_mode", 2, overwrite, "gboolean");
+  gtk_entry_set_overwrite_mode(s7_c_pointer(entry), lg_boolean(overwrite));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_overwrite_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_overwrite_mode "gboolean gtk_entry_get_overwrite_mode(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_overwrite_mode", 1, entry, "GtkEntry*");
+  return(s7_make_boolean(sc, gtk_entry_get_overwrite_mode(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_get_text_length(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_text_length "guint16 gtk_entry_get_text_length(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_text_length", 1, entry, "GtkEntry*");
+  return(s7_make_integer(sc, gtk_entry_get_text_length(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_layout_get_bin_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_layout_get_bin_window "GdkWindow* gtk_layout_get_bin_window(GtkLayout* layout)"
+  s7_pointer layout;
+  layout = s7_car(args);
+  if (!s7_is_c_pointer_of_type(layout, GtkLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_layout_get_bin_window", 1, layout, "GtkLayout*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gtk_layout_get_bin_window(s7_c_pointer(layout))));
+}
+
+static s7_pointer lg_gtk_menu_get_accel_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_get_accel_path "gchar* gtk_menu_get_accel_path(GtkMenu* menu)"
+  s7_pointer menu;
+  menu = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_get_accel_path", 1, menu, "GtkMenu*");
+  return(s7_make_string(sc, gtk_menu_get_accel_path(s7_c_pointer(menu))));
+}
+
+static s7_pointer lg_gtk_menu_get_monitor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_get_monitor "gint gtk_menu_get_monitor(GtkMenu* menu)"
+  s7_pointer menu;
+  menu = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_get_monitor", 1, menu, "GtkMenu*");
+  return(s7_make_integer(sc, gtk_menu_get_monitor(s7_c_pointer(menu))));
+}
+
+static s7_pointer lg_gtk_menu_item_get_accel_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_get_accel_path "gchar* gtk_menu_item_get_accel_path(GtkMenuItem* menu_item)"
+  s7_pointer menu_item;
+  menu_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_get_accel_path", 1, menu_item, "GtkMenuItem*");
+  return(s7_make_string(sc, gtk_menu_item_get_accel_path(s7_c_pointer(menu_item))));
+}
+
+static s7_pointer lg_gtk_scale_button_get_plus_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_button_get_plus_button "GtkWidget* gtk_scale_button_get_plus_button(GtkScaleButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkScaleButton__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_button_get_plus_button", 1, button, "GtkScaleButton*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_scale_button_get_plus_button(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_scale_button_get_minus_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_button_get_minus_button "GtkWidget* gtk_scale_button_get_minus_button(GtkScaleButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkScaleButton__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_button_get_minus_button", 1, button, "GtkScaleButton*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_scale_button_get_minus_button(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_scale_button_get_popup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_button_get_popup "GtkWidget* gtk_scale_button_get_popup(GtkScaleButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkScaleButton__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_button_get_popup", 1, button, "GtkScaleButton*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_scale_button_get_popup(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_selection_data_get_target(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_get_target "GdkAtom gtk_selection_data_get_target(GtkSelectionData* selection_data)"
+  s7_pointer selection_data;
+  selection_data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_get_target", 1, selection_data, "GtkSelectionData*");
+  return(s7_make_type_with_c_pointer(sc, GdkAtom_sym, gtk_selection_data_get_target(s7_c_pointer(selection_data))));
+}
+
+static s7_pointer lg_gtk_selection_data_get_data_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_get_data_type "GdkAtom gtk_selection_data_get_data_type(GtkSelectionData* selection_data)"
+  s7_pointer selection_data;
+  selection_data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_get_data_type", 1, selection_data, "GtkSelectionData*");
+  return(s7_make_type_with_c_pointer(sc, GdkAtom_sym, gtk_selection_data_get_data_type(s7_c_pointer(selection_data))));
+}
+
+static s7_pointer lg_gtk_selection_data_get_format(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_get_format "gint gtk_selection_data_get_format(GtkSelectionData* selection_data)"
+  s7_pointer selection_data;
+  selection_data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_get_format", 1, selection_data, "GtkSelectionData*");
+  return(s7_make_integer(sc, gtk_selection_data_get_format(s7_c_pointer(selection_data))));
+}
+
+static s7_pointer lg_gtk_selection_data_get_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_get_display "GdkDisplay* gtk_selection_data_get_display(GtkSelectionData* selection_data)"
+  s7_pointer selection_data;
+  selection_data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_get_display", 1, selection_data, "GtkSelectionData*");
+  return(s7_make_type_with_c_pointer(sc, GdkDisplay__sym, gtk_selection_data_get_display(s7_c_pointer(selection_data))));
+}
+
+static s7_pointer lg_gtk_widget_get_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_window "GdkWindow* gtk_widget_get_window(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_window", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gtk_widget_get_window(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_accel_group_get_modifier_mask(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_group_get_modifier_mask "GdkModifierType gtk_accel_group_get_modifier_mask(GtkAccelGroup* accel_group)"
+  s7_pointer accel_group;
+  accel_group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(accel_group, GtkAccelGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_group_get_modifier_mask", 1, accel_group, "GtkAccelGroup*");
+  return(s7_make_integer(sc, gtk_accel_group_get_modifier_mask(s7_c_pointer(accel_group))));
+}
+
+static s7_pointer lg_gdk_threads_add_timeout_seconds_full(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_threads_add_timeout_seconds_full "guint gdk_threads_add_timeout_seconds_full(gint priority, \
+guint interval, GSourceFunc function, lambda_data func_info, GDestroyNotify notify)"
+  s7_pointer _p;
+  s7_pointer priority, interval, function, func_info, notify;
+  _p = args;
+  priority = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(priority)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout_seconds_full", 1, priority, "gint");
+  interval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(interval)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout_seconds_full", 2, interval, "guint");
+  function = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(function, GSourceFunc_sym)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout_seconds_full", 3, function, "GSourceFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout_seconds_full", 4, func_info, "lambda_data");
+  notify = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notify, GDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout_seconds_full", 5, notify, "GDestroyNotify");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, lg_false, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    result = s7_make_integer(sc, gdk_threads_add_timeout_seconds_full(s7_integer(priority), s7_integer(interval), s7_c_pointer(function), (gpointer)lg_ptr, s7_c_pointer(notify)));
+    return(result);
+   }
+}
+
+static s7_pointer lg_gdk_threads_add_timeout_seconds(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_threads_add_timeout_seconds "guint gdk_threads_add_timeout_seconds(guint interval, GSourceFunc function, \
+lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer interval, function, func_info;
+  _p = args;
+  interval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(interval)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout_seconds", 1, interval, "guint");
+  function = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(function, GSourceFunc_sym)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout_seconds", 2, function, "GSourceFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gdk_threads_add_timeout_seconds", 3, func_info, "lambda_data");
+  {
+    s7_pointer result;
+    int loc;
+    s7_pointer lg_ptr = s7_list(sc, 5, lg_false, func_info, lg_false, lg_false, lg_false);
+    loc = s7_gc_protect(sc, lg_ptr);
+    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));
+    result = s7_make_integer(sc, gdk_threads_add_timeout_seconds(s7_integer(interval), s7_c_pointer(function), (gpointer)lg_ptr));
+    return(result);
+   }
+}
+
+static s7_pointer lg_gtk_adjustment_get_lower(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_get_lower "gdouble gtk_adjustment_get_lower(GtkAdjustment* adjustment)"
+  s7_pointer adjustment;
+  adjustment = s7_car(args);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_get_lower", 1, adjustment, "GtkAdjustment*");
+  return(s7_make_real(sc, gtk_adjustment_get_lower(s7_c_pointer(adjustment))));
+}
+
+static s7_pointer lg_gtk_adjustment_set_lower(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_set_lower "void gtk_adjustment_set_lower(GtkAdjustment* adjustment, gdouble lower)"
+  s7_pointer _p;
+  s7_pointer adjustment, lower;
+  _p = args;
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_set_lower", 1, adjustment, "GtkAdjustment*");
+  lower = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(lower)) s7_wrong_type_arg_error(sc, "gtk_adjustment_set_lower", 2, lower, "gdouble");
+  gtk_adjustment_set_lower(s7_c_pointer(adjustment), s7_real(lower));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_adjustment_get_upper(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_get_upper "gdouble gtk_adjustment_get_upper(GtkAdjustment* adjustment)"
+  s7_pointer adjustment;
+  adjustment = s7_car(args);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_get_upper", 1, adjustment, "GtkAdjustment*");
+  return(s7_make_real(sc, gtk_adjustment_get_upper(s7_c_pointer(adjustment))));
+}
+
+static s7_pointer lg_gtk_adjustment_set_upper(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_set_upper "void gtk_adjustment_set_upper(GtkAdjustment* adjustment, gdouble upper)"
+  s7_pointer _p;
+  s7_pointer adjustment, upper;
+  _p = args;
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_set_upper", 1, adjustment, "GtkAdjustment*");
+  upper = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(upper)) s7_wrong_type_arg_error(sc, "gtk_adjustment_set_upper", 2, upper, "gdouble");
+  gtk_adjustment_set_upper(s7_c_pointer(adjustment), s7_real(upper));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_adjustment_get_step_increment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_get_step_increment "gdouble gtk_adjustment_get_step_increment(GtkAdjustment* adjustment)"
+  s7_pointer adjustment;
+  adjustment = s7_car(args);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_get_step_increment", 1, adjustment, "GtkAdjustment*");
+  return(s7_make_real(sc, gtk_adjustment_get_step_increment(s7_c_pointer(adjustment))));
+}
+
+static s7_pointer lg_gtk_adjustment_set_step_increment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_set_step_increment "void gtk_adjustment_set_step_increment(GtkAdjustment* adjustment, \
+gdouble step_increment)"
+  s7_pointer _p;
+  s7_pointer adjustment, step_increment;
+  _p = args;
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_set_step_increment", 1, adjustment, "GtkAdjustment*");
+  step_increment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(step_increment)) s7_wrong_type_arg_error(sc, "gtk_adjustment_set_step_increment", 2, step_increment, "gdouble");
+  gtk_adjustment_set_step_increment(s7_c_pointer(adjustment), s7_real(step_increment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_adjustment_get_page_increment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_get_page_increment "gdouble gtk_adjustment_get_page_increment(GtkAdjustment* adjustment)"
+  s7_pointer adjustment;
+  adjustment = s7_car(args);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_get_page_increment", 1, adjustment, "GtkAdjustment*");
+  return(s7_make_real(sc, gtk_adjustment_get_page_increment(s7_c_pointer(adjustment))));
+}
+
+static s7_pointer lg_gtk_adjustment_set_page_increment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_set_page_increment "void gtk_adjustment_set_page_increment(GtkAdjustment* adjustment, \
+gdouble page_increment)"
+  s7_pointer _p;
+  s7_pointer adjustment, page_increment;
+  _p = args;
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_set_page_increment", 1, adjustment, "GtkAdjustment*");
+  page_increment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(page_increment)) s7_wrong_type_arg_error(sc, "gtk_adjustment_set_page_increment", 2, page_increment, "gdouble");
+  gtk_adjustment_set_page_increment(s7_c_pointer(adjustment), s7_real(page_increment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_adjustment_get_page_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_get_page_size "gdouble gtk_adjustment_get_page_size(GtkAdjustment* adjustment)"
+  s7_pointer adjustment;
+  adjustment = s7_car(args);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_get_page_size", 1, adjustment, "GtkAdjustment*");
+  return(s7_make_real(sc, gtk_adjustment_get_page_size(s7_c_pointer(adjustment))));
+}
+
+static s7_pointer lg_gtk_adjustment_set_page_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_set_page_size "void gtk_adjustment_set_page_size(GtkAdjustment* adjustment, \
+gdouble page_size)"
+  s7_pointer _p;
+  s7_pointer adjustment, page_size;
+  _p = args;
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_set_page_size", 1, adjustment, "GtkAdjustment*");
+  page_size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(page_size)) s7_wrong_type_arg_error(sc, "gtk_adjustment_set_page_size", 2, page_size, "gdouble");
+  gtk_adjustment_set_page_size(s7_c_pointer(adjustment), s7_real(page_size));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_adjustment_configure(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_configure "void gtk_adjustment_configure(GtkAdjustment* adjustment, gdouble value, \
+gdouble lower, gdouble upper, gdouble step_increment, gdouble page_increment, gdouble page_size)"
+  s7_pointer _p;
+  s7_pointer adjustment, value, lower, upper, step_increment, page_increment, page_size;
+  _p = args;
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_configure", 1, adjustment, "GtkAdjustment*");
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(value)) s7_wrong_type_arg_error(sc, "gtk_adjustment_configure", 2, value, "gdouble");
+  lower = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(lower)) s7_wrong_type_arg_error(sc, "gtk_adjustment_configure", 3, lower, "gdouble");
+  upper = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(upper)) s7_wrong_type_arg_error(sc, "gtk_adjustment_configure", 4, upper, "gdouble");
+  step_increment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(step_increment)) s7_wrong_type_arg_error(sc, "gtk_adjustment_configure", 5, step_increment, "gdouble");
+  page_increment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(page_increment)) s7_wrong_type_arg_error(sc, "gtk_adjustment_configure", 6, page_increment, "gdouble");
+  page_size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(page_size)) s7_wrong_type_arg_error(sc, "gtk_adjustment_configure", 7, page_size, "gdouble");
+  gtk_adjustment_configure(s7_c_pointer(adjustment), s7_real(value), s7_real(lower), s7_real(upper), s7_real(step_increment), s7_real(page_increment), s7_real(page_size));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_set_button_sensitivity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_set_button_sensitivity "void gtk_combo_box_set_button_sensitivity(GtkComboBox* combo_box, \
+GtkSensitivityType sensitivity)"
+  s7_pointer _p;
+  s7_pointer combo_box, sensitivity;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_button_sensitivity", 1, combo_box, "GtkComboBox*");
+  sensitivity = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(sensitivity)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_button_sensitivity", 2, sensitivity, "GtkSensitivityType");
+  gtk_combo_box_set_button_sensitivity(s7_c_pointer(combo_box), s7_integer(sensitivity));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_get_button_sensitivity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_get_button_sensitivity "GtkSensitivityType gtk_combo_box_get_button_sensitivity(GtkComboBox* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_get_button_sensitivity", 1, combo_box, "GtkComboBox*");
+  return(s7_make_integer(sc, gtk_combo_box_get_button_sensitivity(s7_c_pointer(combo_box))));
+}
+
+static s7_pointer lg_gtk_file_chooser_get_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_file "GFile* gtk_file_chooser_get_file(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_file", 1, chooser, "GtkFileChooser*");
+  return(s7_make_type_with_c_pointer(sc, GFile__sym, gtk_file_chooser_get_file(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_file_chooser_set_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_file "gboolean gtk_file_chooser_set_file(GtkFileChooser* chooser, GFile* file, \
+GError** [error])"
+  s7_pointer _p;
+  s7_pointer chooser, file;
+  GError* ref_error = NULL;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_file", 1, chooser, "GtkFileChooser*");
+  file = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(file, GFile__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_file", 2, file, "GFile*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_file_chooser_set_file(s7_c_pointer(chooser), s7_c_pointer(file), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_file_chooser_select_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_select_file "gboolean gtk_file_chooser_select_file(GtkFileChooser* chooser, \
+GFile* file, GError** [error])"
+  s7_pointer _p;
+  s7_pointer chooser, file;
+  GError* ref_error = NULL;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_select_file", 1, chooser, "GtkFileChooser*");
+  file = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(file, GFile__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_select_file", 2, file, "GFile*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_file_chooser_select_file(s7_c_pointer(chooser), s7_c_pointer(file), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_file_chooser_unselect_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_unselect_file "void gtk_file_chooser_unselect_file(GtkFileChooser* chooser, \
+GFile* file)"
+  s7_pointer _p;
+  s7_pointer chooser, file;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_unselect_file", 1, chooser, "GtkFileChooser*");
+  file = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(file, GFile__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_unselect_file", 2, file, "GFile*");
+  gtk_file_chooser_unselect_file(s7_c_pointer(chooser), s7_c_pointer(file));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_files(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_files "GSList* gtk_file_chooser_get_files(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_files", 1, chooser, "GtkFileChooser*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_file_chooser_get_files(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_file_chooser_set_current_folder_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_current_folder_file "gboolean gtk_file_chooser_set_current_folder_file(GtkFileChooser* chooser, \
+GFile* file, GError** [error])"
+  s7_pointer _p;
+  s7_pointer chooser, file;
+  GError* ref_error = NULL;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_current_folder_file", 1, chooser, "GtkFileChooser*");
+  file = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(file, GFile__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_current_folder_file", 2, file, "GFile*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_file_chooser_set_current_folder_file(s7_c_pointer(chooser), s7_c_pointer(file), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_file_chooser_get_current_folder_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_current_folder_file "GFile* gtk_file_chooser_get_current_folder_file(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_current_folder_file", 1, chooser, "GtkFileChooser*");
+  return(s7_make_type_with_c_pointer(sc, GFile__sym, gtk_file_chooser_get_current_folder_file(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_file_chooser_get_preview_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_preview_file "GFile* gtk_file_chooser_get_preview_file(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_preview_file", 1, chooser, "GtkFileChooser*");
+  return(s7_make_type_with_c_pointer(sc, GFile__sym, gtk_file_chooser_get_preview_file(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_window_get_default_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_default_widget "GtkWidget* gtk_window_get_default_widget(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_default_widget", 1, window, "GtkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_window_get_default_widget(s7_c_pointer(window))));
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(2, 16, 0)
+static s7_pointer lg_gtk_link_button_get_visited(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_link_button_get_visited "gboolean gtk_link_button_get_visited(GtkLinkButton* link_button)"
+  s7_pointer link_button;
+  link_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(link_button, GtkLinkButton__sym)) s7_wrong_type_arg_error(sc, "gtk_link_button_get_visited", 1, link_button, "GtkLinkButton*");
+  return(s7_make_boolean(sc, gtk_link_button_get_visited(s7_c_pointer(link_button))));
+}
+
+static s7_pointer lg_gtk_link_button_set_visited(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_link_button_set_visited "void gtk_link_button_set_visited(GtkLinkButton* link_button, \
+bool visited)"
+  s7_pointer _p;
+  s7_pointer link_button, visited;
+  _p = args;
+  link_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(link_button, GtkLinkButton__sym)) s7_wrong_type_arg_error(sc, "gtk_link_button_set_visited", 1, link_button, "GtkLinkButton*");
+  visited = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(visited)) s7_wrong_type_arg_error(sc, "gtk_link_button_set_visited", 2, visited, "bool");
+  gtk_link_button_set_visited(s7_c_pointer(link_button), lg_boolean(visited));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_keymap_get_caps_lock_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keymap_get_caps_lock_state "gboolean gdk_keymap_get_caps_lock_state(GdkKeymap* keymap)"
+  s7_pointer keymap;
+  keymap = s7_car(args);
+  if (!s7_is_c_pointer_of_type(keymap, GdkKeymap__sym)) s7_wrong_type_arg_error(sc, "gdk_keymap_get_caps_lock_state", 1, keymap, "GdkKeymap*");
+  return(s7_make_boolean(sc, gdk_keymap_get_caps_lock_state(s7_c_pointer(keymap))));
+}
+
+static s7_pointer lg_gtk_cell_view_get_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_view_get_model "GtkTreeModel* gtk_cell_view_get_model(GtkCellView* cell_view)"
+  s7_pointer cell_view;
+  cell_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cell_view, GtkCellView__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_view_get_model", 1, cell_view, "GtkCellView*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeModel__sym, gtk_cell_view_get_model(s7_c_pointer(cell_view))));
+}
+
+static s7_pointer lg_gtk_entry_unset_invisible_char(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_unset_invisible_char "void gtk_entry_unset_invisible_char(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_unset_invisible_char", 1, entry, "GtkEntry*");
+  gtk_entry_unset_invisible_char(s7_c_pointer(entry));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_set_progress_fraction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_progress_fraction "void gtk_entry_set_progress_fraction(GtkEntry* entry, gdouble fraction)"
+  s7_pointer _p;
+  s7_pointer entry, fraction;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_progress_fraction", 1, entry, "GtkEntry*");
+  fraction = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(fraction)) s7_wrong_type_arg_error(sc, "gtk_entry_set_progress_fraction", 2, fraction, "gdouble");
+  gtk_entry_set_progress_fraction(s7_c_pointer(entry), s7_real(fraction));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_progress_fraction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_progress_fraction "gdouble gtk_entry_get_progress_fraction(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_progress_fraction", 1, entry, "GtkEntry*");
+  return(s7_make_real(sc, gtk_entry_get_progress_fraction(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_set_progress_pulse_step(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_progress_pulse_step "void gtk_entry_set_progress_pulse_step(GtkEntry* entry, \
+gdouble fraction)"
+  s7_pointer _p;
+  s7_pointer entry, fraction;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_progress_pulse_step", 1, entry, "GtkEntry*");
+  fraction = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(fraction)) s7_wrong_type_arg_error(sc, "gtk_entry_set_progress_pulse_step", 2, fraction, "gdouble");
+  gtk_entry_set_progress_pulse_step(s7_c_pointer(entry), s7_real(fraction));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_progress_pulse_step(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_progress_pulse_step "gdouble gtk_entry_get_progress_pulse_step(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_progress_pulse_step", 1, entry, "GtkEntry*");
+  return(s7_make_real(sc, gtk_entry_get_progress_pulse_step(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_progress_pulse(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_progress_pulse "void gtk_entry_progress_pulse(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_progress_pulse", 1, entry, "GtkEntry*");
+  gtk_entry_progress_pulse(s7_c_pointer(entry));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_set_icon_from_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_icon_from_pixbuf "void gtk_entry_set_icon_from_pixbuf(GtkEntry* entry, GtkEntryIconPosition icon_pos, \
+GdkPixbuf* pixbuf)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos, pixbuf;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_from_pixbuf", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_from_pixbuf", 2, icon_pos, "GtkEntryIconPosition");
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_from_pixbuf", 3, pixbuf, "GdkPixbuf*");
+  gtk_entry_set_icon_from_pixbuf(s7_c_pointer(entry), s7_integer(icon_pos), s7_c_pointer(pixbuf));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_set_icon_from_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_icon_from_icon_name "void gtk_entry_set_icon_from_icon_name(GtkEntry* entry, \
+GtkEntryIconPosition icon_pos, gchar* icon_name)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos, icon_name;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_from_icon_name", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_from_icon_name", 2, icon_pos, "GtkEntryIconPosition");
+  icon_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(icon_name)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_from_icon_name", 3, icon_name, "gchar*");
+  gtk_entry_set_icon_from_icon_name(s7_c_pointer(entry), s7_integer(icon_pos), s7_string(icon_name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_set_icon_from_gicon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_icon_from_gicon "void gtk_entry_set_icon_from_gicon(GtkEntry* entry, GtkEntryIconPosition icon_pos, \
+GIcon* icon)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos, icon;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_from_gicon", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_from_gicon", 2, icon_pos, "GtkEntryIconPosition");
+  icon = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon, GIcon__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_from_gicon", 3, icon, "GIcon*");
+  gtk_entry_set_icon_from_gicon(s7_c_pointer(entry), s7_integer(icon_pos), s7_c_pointer(icon));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_icon_name "gchar* gtk_entry_get_icon_name(GtkEntry* entry, GtkEntryIconPosition icon_pos)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_name", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_name", 2, icon_pos, "GtkEntryIconPosition");
+  return(s7_make_string(sc, gtk_entry_get_icon_name(s7_c_pointer(entry), s7_integer(icon_pos))));
+}
+
+static s7_pointer lg_gtk_entry_set_icon_activatable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_icon_activatable "void gtk_entry_set_icon_activatable(GtkEntry* entry, GtkEntryIconPosition icon_pos, \
+gboolean activatable)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos, activatable;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_activatable", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_activatable", 2, icon_pos, "GtkEntryIconPosition");
+  activatable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(activatable)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_activatable", 3, activatable, "gboolean");
+  gtk_entry_set_icon_activatable(s7_c_pointer(entry), s7_integer(icon_pos), lg_boolean(activatable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_icon_activatable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_icon_activatable "gboolean gtk_entry_get_icon_activatable(GtkEntry* entry, \
+GtkEntryIconPosition icon_pos)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_activatable", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_activatable", 2, icon_pos, "GtkEntryIconPosition");
+  return(s7_make_boolean(sc, gtk_entry_get_icon_activatable(s7_c_pointer(entry), s7_integer(icon_pos))));
+}
+
+static s7_pointer lg_gtk_entry_set_icon_sensitive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_icon_sensitive "void gtk_entry_set_icon_sensitive(GtkEntry* entry, GtkEntryIconPosition icon_pos, \
+gboolean sensitive)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos, sensitive;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_sensitive", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_sensitive", 2, icon_pos, "GtkEntryIconPosition");
+  sensitive = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(sensitive)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_sensitive", 3, sensitive, "gboolean");
+  gtk_entry_set_icon_sensitive(s7_c_pointer(entry), s7_integer(icon_pos), lg_boolean(sensitive));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_icon_sensitive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_icon_sensitive "gboolean gtk_entry_get_icon_sensitive(GtkEntry* entry, GtkEntryIconPosition icon_pos)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_sensitive", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_sensitive", 2, icon_pos, "GtkEntryIconPosition");
+  return(s7_make_boolean(sc, gtk_entry_get_icon_sensitive(s7_c_pointer(entry), s7_integer(icon_pos))));
+}
+
+static s7_pointer lg_gtk_entry_get_icon_at_pos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_icon_at_pos "gint gtk_entry_get_icon_at_pos(GtkEntry* entry, gint x, gint y)"
+  s7_pointer _p;
+  s7_pointer entry, x, y;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_at_pos", 1, entry, "GtkEntry*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_at_pos", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_at_pos", 3, y, "gint");
+  return(s7_make_integer(sc, gtk_entry_get_icon_at_pos(s7_c_pointer(entry), s7_integer(x), s7_integer(y))));
+}
+
+static s7_pointer lg_gtk_entry_set_icon_tooltip_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_icon_tooltip_text "void gtk_entry_set_icon_tooltip_text(GtkEntry* entry, GtkEntryIconPosition icon_pos, \
+gchar* tooltip)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos, tooltip;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_tooltip_text", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_tooltip_text", 2, icon_pos, "GtkEntryIconPosition");
+  tooltip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(tooltip)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_tooltip_text", 3, tooltip, "gchar*");
+  gtk_entry_set_icon_tooltip_text(s7_c_pointer(entry), s7_integer(icon_pos), s7_string(tooltip));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_set_icon_tooltip_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_icon_tooltip_markup "void gtk_entry_set_icon_tooltip_markup(GtkEntry* entry, \
+GtkEntryIconPosition icon_pos, gchar* tooltip)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos, tooltip;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_tooltip_markup", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_tooltip_markup", 2, icon_pos, "GtkEntryIconPosition");
+  tooltip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(tooltip)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_tooltip_markup", 3, tooltip, "gchar*");
+  gtk_entry_set_icon_tooltip_markup(s7_c_pointer(entry), s7_integer(icon_pos), s7_string(tooltip));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_set_icon_drag_source(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_icon_drag_source "void gtk_entry_set_icon_drag_source(GtkEntry* entry, GtkEntryIconPosition icon_pos, \
+GtkTargetList* target_list, GdkDragAction actions)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos, target_list, actions;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_drag_source", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_drag_source", 2, icon_pos, "GtkEntryIconPosition");
+  target_list = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target_list, GtkTargetList__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_drag_source", 3, target_list, "GtkTargetList*");
+  actions = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(actions)) s7_wrong_type_arg_error(sc, "gtk_entry_set_icon_drag_source", 4, actions, "GdkDragAction");
+  gtk_entry_set_icon_drag_source(s7_c_pointer(entry), s7_integer(icon_pos), s7_c_pointer(target_list), s7_integer(actions));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_current_icon_drag_source(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_current_icon_drag_source "gint gtk_entry_get_current_icon_drag_source(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_current_icon_drag_source", 1, entry, "GtkEntry*");
+  return(s7_make_integer(sc, gtk_entry_get_current_icon_drag_source(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_menu_item_set_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_set_label "void gtk_menu_item_set_label(GtkMenuItem* menu_item, gchar* label)"
+  s7_pointer _p;
+  s7_pointer menu_item, label;
+  _p = args;
+  menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_set_label", 1, menu_item, "GtkMenuItem*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_menu_item_set_label", 2, label, "gchar*");
+  gtk_menu_item_set_label(s7_c_pointer(menu_item), s7_string(label));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_item_get_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_get_label "gchar* gtk_menu_item_get_label(GtkMenuItem* menu_item)"
+  s7_pointer menu_item;
+  menu_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_get_label", 1, menu_item, "GtkMenuItem*");
+  return(s7_make_string(sc, gtk_menu_item_get_label(s7_c_pointer(menu_item))));
+}
+
+static s7_pointer lg_gtk_menu_item_set_use_underline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_set_use_underline "void gtk_menu_item_set_use_underline(GtkMenuItem* menu_item, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer menu_item, setting;
+  _p = args;
+  menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_set_use_underline", 1, menu_item, "GtkMenuItem*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_menu_item_set_use_underline", 2, setting, "gboolean");
+  gtk_menu_item_set_use_underline(s7_c_pointer(menu_item), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_item_get_use_underline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_get_use_underline "gboolean gtk_menu_item_get_use_underline(GtkMenuItem* menu_item)"
+  s7_pointer menu_item;
+  menu_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_get_use_underline", 1, menu_item, "GtkMenuItem*");
+  return(s7_make_boolean(sc, gtk_menu_item_get_use_underline(s7_c_pointer(menu_item))));
+}
+
+static s7_pointer lg_gtk_selection_data_get_selection(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_get_selection "GdkAtom gtk_selection_data_get_selection(GtkSelectionData* selection_data)"
+  s7_pointer selection_data;
+  selection_data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_get_selection", 1, selection_data, "GtkSelectionData*");
+  return(s7_make_type_with_c_pointer(sc, GdkAtom_sym, gtk_selection_data_get_selection(s7_c_pointer(selection_data))));
+}
+
+static s7_pointer lg_gtk_entry_get_icon_tooltip_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_icon_tooltip_text "gchar* gtk_entry_get_icon_tooltip_text(GtkEntry* entry, \
+GtkEntryIconPosition icon_pos)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_tooltip_text", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_tooltip_text", 2, icon_pos, "GtkEntryIconPosition");
+  return(s7_make_string(sc, gtk_entry_get_icon_tooltip_text(s7_c_pointer(entry), s7_integer(icon_pos))));
+}
+
+static s7_pointer lg_gtk_entry_get_icon_tooltip_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_icon_tooltip_markup "gchar* gtk_entry_get_icon_tooltip_markup(GtkEntry* entry, \
+GtkEntryIconPosition icon_pos)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_tooltip_markup", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_tooltip_markup", 2, icon_pos, "GtkEntryIconPosition");
+  return(s7_make_string(sc, gtk_entry_get_icon_tooltip_markup(s7_c_pointer(entry), s7_integer(icon_pos))));
+}
+
+static s7_pointer lg_gtk_scale_add_mark(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_add_mark "void gtk_scale_add_mark(GtkScale* scale, gdouble value, GtkPositionType position, \
+gchar* markup)"
+  s7_pointer _p;
+  s7_pointer scale, value, position, markup;
+  _p = args;
+  scale = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scale, GtkScale__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_add_mark", 1, scale, "GtkScale*");
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(value)) s7_wrong_type_arg_error(sc, "gtk_scale_add_mark", 2, value, "gdouble");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_scale_add_mark", 3, position, "GtkPositionType");
+  markup = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(markup)) s7_wrong_type_arg_error(sc, "gtk_scale_add_mark", 4, markup, "gchar*");
+  gtk_scale_add_mark(s7_c_pointer(scale), s7_real(value), s7_integer(position), s7_string(markup));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scale_clear_marks(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_clear_marks "void gtk_scale_clear_marks(GtkScale* scale)"
+  s7_pointer scale;
+  scale = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scale, GtkScale__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_clear_marks", 1, scale, "GtkScale*");
+  gtk_scale_clear_marks(s7_c_pointer(scale));
+  return(lg_false);
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(2, 18, 0)
+static s7_pointer lg_gtk_window_get_default_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_default_icon_name "gchar* gtk_window_get_default_icon_name( void)"
+  return(s7_make_string(sc, gtk_window_get_default_icon_name()));
+}
+
+static s7_pointer lg_gtk_label_get_current_uri(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_current_uri "gchar* gtk_label_get_current_uri(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_current_uri", 1, label, "GtkLabel*");
+  return(s7_make_string(sc, gtk_label_get_current_uri(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_info_bar_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_info_bar_new "GtkWidget* gtk_info_bar_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_info_bar_new()));
+}
+
+static s7_pointer lg_gtk_info_bar_get_action_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_info_bar_get_action_area "GtkWidget* gtk_info_bar_get_action_area(GtkInfoBar* info_bar)"
+  s7_pointer info_bar;
+  info_bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info_bar, GtkInfoBar__sym)) s7_wrong_type_arg_error(sc, "gtk_info_bar_get_action_area", 1, info_bar, "GtkInfoBar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_info_bar_get_action_area(s7_c_pointer(info_bar))));
+}
+
+static s7_pointer lg_gtk_info_bar_get_content_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_info_bar_get_content_area "GtkWidget* gtk_info_bar_get_content_area(GtkInfoBar* info_bar)"
+  s7_pointer info_bar;
+  info_bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info_bar, GtkInfoBar__sym)) s7_wrong_type_arg_error(sc, "gtk_info_bar_get_content_area", 1, info_bar, "GtkInfoBar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_info_bar_get_content_area(s7_c_pointer(info_bar))));
+}
+
+static s7_pointer lg_gtk_info_bar_add_action_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_info_bar_add_action_widget "void gtk_info_bar_add_action_widget(GtkInfoBar* info_bar, \
+GtkWidget* child, gint response_id)"
+  s7_pointer _p;
+  s7_pointer info_bar, child, response_id;
+  _p = args;
+  info_bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info_bar, GtkInfoBar__sym)) s7_wrong_type_arg_error(sc, "gtk_info_bar_add_action_widget", 1, info_bar, "GtkInfoBar*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_info_bar_add_action_widget", 2, child, "GtkWidget*");
+  response_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(response_id)) s7_wrong_type_arg_error(sc, "gtk_info_bar_add_action_widget", 3, response_id, "gint");
+  gtk_info_bar_add_action_widget(s7_c_pointer(info_bar), s7_c_pointer(child), s7_integer(response_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_info_bar_add_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_info_bar_add_button "GtkWidget* gtk_info_bar_add_button(GtkInfoBar* info_bar, gchar* button_text, \
+gint response_id)"
+  s7_pointer _p;
+  s7_pointer info_bar, button_text, response_id;
+  _p = args;
+  info_bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info_bar, GtkInfoBar__sym)) s7_wrong_type_arg_error(sc, "gtk_info_bar_add_button", 1, info_bar, "GtkInfoBar*");
+  button_text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(button_text)) s7_wrong_type_arg_error(sc, "gtk_info_bar_add_button", 2, button_text, "gchar*");
+  response_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(response_id)) s7_wrong_type_arg_error(sc, "gtk_info_bar_add_button", 3, response_id, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_info_bar_add_button(s7_c_pointer(info_bar), s7_string(button_text), s7_integer(response_id))));
+}
+
+static s7_pointer lg_gtk_info_bar_set_response_sensitive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_info_bar_set_response_sensitive "void gtk_info_bar_set_response_sensitive(GtkInfoBar* info_bar, \
+gint response_id, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer info_bar, response_id, setting;
+  _p = args;
+  info_bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info_bar, GtkInfoBar__sym)) s7_wrong_type_arg_error(sc, "gtk_info_bar_set_response_sensitive", 1, info_bar, "GtkInfoBar*");
+  response_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(response_id)) s7_wrong_type_arg_error(sc, "gtk_info_bar_set_response_sensitive", 2, response_id, "gint");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_info_bar_set_response_sensitive", 3, setting, "gboolean");
+  gtk_info_bar_set_response_sensitive(s7_c_pointer(info_bar), s7_integer(response_id), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_info_bar_set_default_response(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_info_bar_set_default_response "void gtk_info_bar_set_default_response(GtkInfoBar* info_bar, \
+gint response_id)"
+  s7_pointer _p;
+  s7_pointer info_bar, response_id;
+  _p = args;
+  info_bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info_bar, GtkInfoBar__sym)) s7_wrong_type_arg_error(sc, "gtk_info_bar_set_default_response", 1, info_bar, "GtkInfoBar*");
+  response_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(response_id)) s7_wrong_type_arg_error(sc, "gtk_info_bar_set_default_response", 2, response_id, "gint");
+  gtk_info_bar_set_default_response(s7_c_pointer(info_bar), s7_integer(response_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_info_bar_response(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_info_bar_response "void gtk_info_bar_response(GtkInfoBar* info_bar, gint response_id)"
+  s7_pointer _p;
+  s7_pointer info_bar, response_id;
+  _p = args;
+  info_bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info_bar, GtkInfoBar__sym)) s7_wrong_type_arg_error(sc, "gtk_info_bar_response", 1, info_bar, "GtkInfoBar*");
+  response_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(response_id)) s7_wrong_type_arg_error(sc, "gtk_info_bar_response", 2, response_id, "gint");
+  gtk_info_bar_response(s7_c_pointer(info_bar), s7_integer(response_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_info_bar_set_message_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_info_bar_set_message_type "void gtk_info_bar_set_message_type(GtkInfoBar* info_bar, GtkMessageType message_type)"
+  s7_pointer _p;
+  s7_pointer info_bar, message_type;
+  _p = args;
+  info_bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info_bar, GtkInfoBar__sym)) s7_wrong_type_arg_error(sc, "gtk_info_bar_set_message_type", 1, info_bar, "GtkInfoBar*");
+  message_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(message_type)) s7_wrong_type_arg_error(sc, "gtk_info_bar_set_message_type", 2, message_type, "GtkMessageType");
+  gtk_info_bar_set_message_type(s7_c_pointer(info_bar), s7_integer(message_type));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_info_bar_get_message_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_info_bar_get_message_type "GtkMessageType gtk_info_bar_get_message_type(GtkInfoBar* info_bar)"
+  s7_pointer info_bar;
+  info_bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info_bar, GtkInfoBar__sym)) s7_wrong_type_arg_error(sc, "gtk_info_bar_get_message_type", 1, info_bar, "GtkInfoBar*");
+  return(s7_make_integer(sc, gtk_info_bar_get_message_type(s7_c_pointer(info_bar))));
+}
+
+static s7_pointer lg_gdk_window_get_root_coords(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_root_coords "void gdk_window_get_root_coords(GdkWindow* window, gint x, gint y, \
+gint* [root_x], gint* [root_y])"
+  s7_pointer _p;
+  s7_pointer window, x, y;
+  gint ref_root_x;
+  gint ref_root_y;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_root_coords", 1, window, "GdkWindow*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gdk_window_get_root_coords", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gdk_window_get_root_coords", 3, y, "gint");
+  gdk_window_get_root_coords(s7_c_pointer(window), s7_integer(x), s7_integer(y), &ref_root_x, &ref_root_y);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_root_x), s7_make_integer(sc, ref_root_y)));
+}
+
+static s7_pointer lg_gtk_menu_set_reserve_toggle_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_set_reserve_toggle_size "void gtk_menu_set_reserve_toggle_size(GtkMenu* menu, gboolean reserve_toggle_size)"
+  s7_pointer _p;
+  s7_pointer menu, reserve_toggle_size;
+  _p = args;
+  menu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_set_reserve_toggle_size", 1, menu, "GtkMenu*");
+  reserve_toggle_size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(reserve_toggle_size)) s7_wrong_type_arg_error(sc, "gtk_menu_set_reserve_toggle_size", 2, reserve_toggle_size, "gboolean");
+  gtk_menu_set_reserve_toggle_size(s7_c_pointer(menu), lg_boolean(reserve_toggle_size));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_get_reserve_toggle_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_get_reserve_toggle_size "gboolean gtk_menu_get_reserve_toggle_size(GtkMenu* menu)"
+  s7_pointer menu;
+  menu = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_get_reserve_toggle_size", 1, menu, "GtkMenu*");
+  return(s7_make_boolean(sc, gtk_menu_get_reserve_toggle_size(s7_c_pointer(menu))));
+}
+
+static s7_pointer lg_gtk_entry_new_with_buffer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_new_with_buffer "GtkWidget* gtk_entry_new_with_buffer(GtkEntryBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkEntryBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_new_with_buffer", 1, buffer, "GtkEntryBuffer*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_entry_new_with_buffer(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_entry_get_buffer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_buffer "GtkEntryBuffer* gtk_entry_get_buffer(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_buffer", 1, entry, "GtkEntry*");
+  return(s7_make_type_with_c_pointer(sc, GtkEntryBuffer__sym, gtk_entry_get_buffer(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_set_buffer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_buffer "void gtk_entry_set_buffer(GtkEntry* entry, GtkEntryBuffer* buffer)"
+  s7_pointer _p;
+  s7_pointer entry, buffer;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_buffer", 1, entry, "GtkEntry*");
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkEntryBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_buffer", 2, buffer, "GtkEntryBuffer*");
+  gtk_entry_set_buffer(s7_c_pointer(entry), s7_c_pointer(buffer));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_set_track_visited_links(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_track_visited_links "void gtk_label_set_track_visited_links(GtkLabel* label, \
+gboolean track_links)"
+  s7_pointer _p;
+  s7_pointer label, track_links;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_track_visited_links", 1, label, "GtkLabel*");
+  track_links = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(track_links)) s7_wrong_type_arg_error(sc, "gtk_label_set_track_visited_links", 2, track_links, "gboolean");
+  gtk_label_set_track_visited_links(s7_c_pointer(label), lg_boolean(track_links));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_track_visited_links(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_track_visited_links "gboolean gtk_label_get_track_visited_links(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_track_visited_links", 1, label, "GtkLabel*");
+  return(s7_make_boolean(sc, gtk_label_get_track_visited_links(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_print_operation_set_embed_page_setup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_set_embed_page_setup "void gtk_print_operation_set_embed_page_setup(GtkPrintOperation* op, \
+gboolean embed)"
+  s7_pointer _p;
+  s7_pointer op, embed;
+  _p = args;
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_embed_page_setup", 1, op, "GtkPrintOperation*");
+  embed = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(embed)) s7_wrong_type_arg_error(sc, "gtk_print_operation_set_embed_page_setup", 2, embed, "gboolean");
+  gtk_print_operation_set_embed_page_setup(s7_c_pointer(op), lg_boolean(embed));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_print_operation_get_embed_page_setup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_print_operation_get_embed_page_setup "gboolean gtk_print_operation_get_embed_page_setup(GtkPrintOperation* op)"
+  s7_pointer op;
+  op = s7_car(args);
+  if (!s7_is_c_pointer_of_type(op, GtkPrintOperation__sym)) s7_wrong_type_arg_error(sc, "gtk_print_operation_get_embed_page_setup", 1, op, "GtkPrintOperation*");
+  return(s7_make_boolean(sc, gtk_print_operation_get_embed_page_setup(s7_c_pointer(op))));
+}
+
+static s7_pointer lg_gtk_entry_buffer_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_buffer_new "GtkEntryBuffer* gtk_entry_buffer_new(gchar* initial_chars, gint n_initial_chars)"
+  s7_pointer _p;
+  s7_pointer initial_chars, n_initial_chars;
+  _p = args;
+  initial_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(initial_chars)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_new", 1, initial_chars, "gchar*");
+  n_initial_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_initial_chars)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_new", 2, n_initial_chars, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkEntryBuffer__sym, gtk_entry_buffer_new(s7_string(initial_chars), s7_integer(n_initial_chars))));
+}
+
+static s7_pointer lg_gtk_entry_buffer_get_bytes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_buffer_get_bytes "gsize gtk_entry_buffer_get_bytes(GtkEntryBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkEntryBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_get_bytes", 1, buffer, "GtkEntryBuffer*");
+  return(s7_make_integer(sc, gtk_entry_buffer_get_bytes(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_entry_buffer_get_length(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_buffer_get_length "guint gtk_entry_buffer_get_length(GtkEntryBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkEntryBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_get_length", 1, buffer, "GtkEntryBuffer*");
+  return(s7_make_integer(sc, gtk_entry_buffer_get_length(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_entry_buffer_get_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_buffer_get_text "gchar* gtk_entry_buffer_get_text(GtkEntryBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkEntryBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_get_text", 1, buffer, "GtkEntryBuffer*");
+  return(s7_make_string(sc, gtk_entry_buffer_get_text(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_entry_buffer_set_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_buffer_set_text "void gtk_entry_buffer_set_text(GtkEntryBuffer* buffer, gchar* chars, \
+gint n_chars)"
+  s7_pointer _p;
+  s7_pointer buffer, chars, n_chars;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkEntryBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_set_text", 1, buffer, "GtkEntryBuffer*");
+  chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(chars)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_set_text", 2, chars, "gchar*");
+  n_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_chars)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_set_text", 3, n_chars, "gint");
+  gtk_entry_buffer_set_text(s7_c_pointer(buffer), s7_string(chars), s7_integer(n_chars));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_buffer_set_max_length(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_buffer_set_max_length "void gtk_entry_buffer_set_max_length(GtkEntryBuffer* buffer, \
+guint max_length)"
+  s7_pointer _p;
+  s7_pointer buffer, max_length;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkEntryBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_set_max_length", 1, buffer, "GtkEntryBuffer*");
+  max_length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(max_length)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_set_max_length", 2, max_length, "guint");
+  gtk_entry_buffer_set_max_length(s7_c_pointer(buffer), s7_integer(max_length));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_buffer_get_max_length(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_buffer_get_max_length "guint gtk_entry_buffer_get_max_length(GtkEntryBuffer* buffer)"
+  s7_pointer buffer;
+  buffer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(buffer, GtkEntryBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_get_max_length", 1, buffer, "GtkEntryBuffer*");
+  return(s7_make_integer(sc, gtk_entry_buffer_get_max_length(s7_c_pointer(buffer))));
+}
+
+static s7_pointer lg_gtk_entry_buffer_insert_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_buffer_insert_text "guint gtk_entry_buffer_insert_text(GtkEntryBuffer* buffer, \
+guint position, gchar* chars, gint n_chars)"
+  s7_pointer _p;
+  s7_pointer buffer, position, chars, n_chars;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkEntryBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_insert_text", 1, buffer, "GtkEntryBuffer*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_insert_text", 2, position, "guint");
+  chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(chars)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_insert_text", 3, chars, "gchar*");
+  n_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_chars)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_insert_text", 4, n_chars, "gint");
+  return(s7_make_integer(sc, gtk_entry_buffer_insert_text(s7_c_pointer(buffer), s7_integer(position), s7_string(chars), s7_integer(n_chars))));
+}
+
+static s7_pointer lg_gtk_entry_buffer_delete_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_buffer_delete_text "guint gtk_entry_buffer_delete_text(GtkEntryBuffer* buffer, \
+guint position, gint n_chars)"
+  s7_pointer _p;
+  s7_pointer buffer, position, n_chars;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkEntryBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_delete_text", 1, buffer, "GtkEntryBuffer*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_delete_text", 2, position, "guint");
+  n_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_chars)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_delete_text", 3, n_chars, "gint");
+  return(s7_make_integer(sc, gtk_entry_buffer_delete_text(s7_c_pointer(buffer), s7_integer(position), s7_integer(n_chars))));
+}
+
+static s7_pointer lg_gtk_entry_buffer_emit_inserted_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_buffer_emit_inserted_text "void gtk_entry_buffer_emit_inserted_text(GtkEntryBuffer* buffer, \
+guint position, gchar* chars, guint n_chars)"
+  s7_pointer _p;
+  s7_pointer buffer, position, chars, n_chars;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkEntryBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_emit_inserted_text", 1, buffer, "GtkEntryBuffer*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_emit_inserted_text", 2, position, "guint");
+  chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(chars)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_emit_inserted_text", 3, chars, "gchar*");
+  n_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_chars)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_emit_inserted_text", 4, n_chars, "guint");
+  gtk_entry_buffer_emit_inserted_text(s7_c_pointer(buffer), s7_integer(position), s7_string(chars), s7_integer(n_chars));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_buffer_emit_deleted_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_buffer_emit_deleted_text "void gtk_entry_buffer_emit_deleted_text(GtkEntryBuffer* buffer, \
+guint position, guint n_chars)"
+  s7_pointer _p;
+  s7_pointer buffer, position, n_chars;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkEntryBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_emit_deleted_text", 1, buffer, "GtkEntryBuffer*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_emit_deleted_text", 2, position, "guint");
+  n_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_chars)) s7_wrong_type_arg_error(sc, "gtk_entry_buffer_emit_deleted_text", 3, n_chars, "guint");
+  gtk_entry_buffer_emit_deleted_text(s7_c_pointer(buffer), s7_integer(position), s7_integer(n_chars));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_renderer_set_alignment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_set_alignment "void gtk_cell_renderer_set_alignment(GtkCellRenderer* cell, \
+gfloat xalign, gfloat yalign)"
+  s7_pointer _p;
+  s7_pointer cell, xalign, yalign;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_set_alignment", 1, cell, "GtkCellRenderer*");
+  xalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xalign)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_set_alignment", 2, xalign, "gfloat");
+  yalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(yalign)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_set_alignment", 3, yalign, "gfloat");
+  gtk_cell_renderer_set_alignment(s7_c_pointer(cell), s7_real(xalign), s7_real(yalign));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_renderer_get_alignment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_get_alignment "void gtk_cell_renderer_get_alignment(GtkCellRenderer* cell, \
+gfloat* [xalign], gfloat* [yalign])"
+  s7_pointer _p;
+  s7_pointer cell;
+  gfloat ref_xalign;
+  gfloat ref_yalign;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_alignment", 1, cell, "GtkCellRenderer*");
+  gtk_cell_renderer_get_alignment(s7_c_pointer(cell), &ref_xalign, &ref_yalign);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_xalign), s7_make_real(sc, ref_yalign)));
+}
+
+static s7_pointer lg_gtk_cell_renderer_set_padding(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_set_padding "void gtk_cell_renderer_set_padding(GtkCellRenderer* cell, \
+gint xpad, gint ypad)"
+  s7_pointer _p;
+  s7_pointer cell, xpad, ypad;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_set_padding", 1, cell, "GtkCellRenderer*");
+  xpad = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(xpad)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_set_padding", 2, xpad, "gint");
+  ypad = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(ypad)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_set_padding", 3, ypad, "gint");
+  gtk_cell_renderer_set_padding(s7_c_pointer(cell), s7_integer(xpad), s7_integer(ypad));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_renderer_get_padding(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_get_padding "void gtk_cell_renderer_get_padding(GtkCellRenderer* cell, \
+gint* [xpad], gint* [ypad])"
+  s7_pointer _p;
+  s7_pointer cell;
+  gint ref_xpad;
+  gint ref_ypad;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_padding", 1, cell, "GtkCellRenderer*");
+  gtk_cell_renderer_get_padding(s7_c_pointer(cell), &ref_xpad, &ref_ypad);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_xpad), s7_make_integer(sc, ref_ypad)));
+}
+
+static s7_pointer lg_gtk_cell_renderer_set_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_set_visible "void gtk_cell_renderer_set_visible(GtkCellRenderer* cell, \
+gboolean visible)"
+  s7_pointer _p;
+  s7_pointer cell, visible;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_set_visible", 1, cell, "GtkCellRenderer*");
+  visible = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(visible)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_set_visible", 2, visible, "gboolean");
+  gtk_cell_renderer_set_visible(s7_c_pointer(cell), lg_boolean(visible));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_renderer_get_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_get_visible "gboolean gtk_cell_renderer_get_visible(GtkCellRenderer* cell)"
+  s7_pointer cell;
+  cell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_visible", 1, cell, "GtkCellRenderer*");
+  return(s7_make_boolean(sc, gtk_cell_renderer_get_visible(s7_c_pointer(cell))));
+}
+
+static s7_pointer lg_gtk_cell_renderer_set_sensitive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_set_sensitive "void gtk_cell_renderer_set_sensitive(GtkCellRenderer* cell, \
+gboolean sensitive)"
+  s7_pointer _p;
+  s7_pointer cell, sensitive;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_set_sensitive", 1, cell, "GtkCellRenderer*");
+  sensitive = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(sensitive)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_set_sensitive", 2, sensitive, "gboolean");
+  gtk_cell_renderer_set_sensitive(s7_c_pointer(cell), lg_boolean(sensitive));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_renderer_get_sensitive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_get_sensitive "gboolean gtk_cell_renderer_get_sensitive(GtkCellRenderer* cell)"
+  s7_pointer cell;
+  cell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_sensitive", 1, cell, "GtkCellRenderer*");
+  return(s7_make_boolean(sc, gtk_cell_renderer_get_sensitive(s7_c_pointer(cell))));
+}
+
+static s7_pointer lg_gtk_cell_renderer_toggle_get_activatable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_toggle_get_activatable "gboolean gtk_cell_renderer_toggle_get_activatable(GtkCellRendererToggle* toggle)"
+  s7_pointer toggle;
+  toggle = s7_car(args);
+  if (!s7_is_c_pointer_of_type(toggle, GtkCellRendererToggle__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_toggle_get_activatable", 1, toggle, "GtkCellRendererToggle*");
+  return(s7_make_boolean(sc, gtk_cell_renderer_toggle_get_activatable(s7_c_pointer(toggle))));
+}
+
+static s7_pointer lg_gtk_cell_renderer_toggle_set_activatable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_toggle_set_activatable "void gtk_cell_renderer_toggle_set_activatable(GtkCellRendererToggle* toggle, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer toggle, setting;
+  _p = args;
+  toggle = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(toggle, GtkCellRendererToggle__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_toggle_set_activatable", 1, toggle, "GtkCellRendererToggle*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_toggle_set_activatable", 2, setting, "gboolean");
+  gtk_cell_renderer_toggle_set_activatable(s7_c_pointer(toggle), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_set_can_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_can_focus "void gtk_widget_set_can_focus(GtkWidget* widget, gboolean can_focus)"
+  s7_pointer _p;
+  s7_pointer widget, can_focus;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_can_focus", 1, widget, "GtkWidget*");
+  can_focus = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(can_focus)) s7_wrong_type_arg_error(sc, "gtk_widget_set_can_focus", 2, can_focus, "gboolean");
+  gtk_widget_set_can_focus(s7_c_pointer(widget), lg_boolean(can_focus));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_can_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_can_focus "gboolean gtk_widget_get_can_focus(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_can_focus", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_can_focus(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_has_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_has_focus "gboolean gtk_widget_has_focus(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_has_focus", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_has_focus(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_can_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_can_default "void gtk_widget_set_can_default(GtkWidget* widget, gboolean can_default)"
+  s7_pointer _p;
+  s7_pointer widget, can_default;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_can_default", 1, widget, "GtkWidget*");
+  can_default = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(can_default)) s7_wrong_type_arg_error(sc, "gtk_widget_set_can_default", 2, can_default, "gboolean");
+  gtk_widget_set_can_default(s7_c_pointer(widget), lg_boolean(can_default));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_can_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_can_default "gboolean gtk_widget_get_can_default(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_can_default", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_can_default(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_has_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_has_default "gboolean gtk_widget_has_default(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_has_default", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_has_default(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_sensitive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_sensitive "gboolean gtk_widget_get_sensitive(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_sensitive", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_sensitive(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_is_sensitive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_is_sensitive "gboolean gtk_widget_is_sensitive(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_is_sensitive", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_is_sensitive(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_has_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_has_window "void gtk_widget_set_has_window(GtkWidget* widget, gboolean has_window)"
+  s7_pointer _p;
+  s7_pointer widget, has_window;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_has_window", 1, widget, "GtkWidget*");
+  has_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(has_window)) s7_wrong_type_arg_error(sc, "gtk_widget_set_has_window", 2, has_window, "gboolean");
+  gtk_widget_set_has_window(s7_c_pointer(widget), lg_boolean(has_window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_has_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_has_window "gboolean gtk_widget_get_has_window(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_has_window", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_has_window(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gdk_window_get_cursor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_cursor "GdkCursor* gdk_window_get_cursor(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_cursor", 1, window, "GdkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GdkCursor__sym, gdk_window_get_cursor(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_file_chooser_set_create_folders(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_create_folders "void gtk_file_chooser_set_create_folders(GtkFileChooser* chooser, \
+gboolean create_folders)"
+  s7_pointer _p;
+  s7_pointer chooser, create_folders;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_create_folders", 1, chooser, "GtkFileChooser*");
+  create_folders = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(create_folders)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_create_folders", 2, create_folders, "gboolean");
+  gtk_file_chooser_set_create_folders(s7_c_pointer(chooser), lg_boolean(create_folders));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_create_folders(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_create_folders "gboolean gtk_file_chooser_get_create_folders(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_create_folders", 1, chooser, "GtkFileChooser*");
+  return(s7_make_boolean(sc, gtk_file_chooser_get_create_folders(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_icon_view_set_item_padding(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_item_padding "void gtk_icon_view_set_item_padding(GtkIconView* icon_view, \
+gint item_padding)"
+  s7_pointer _p;
+  s7_pointer icon_view, item_padding;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_item_padding", 1, icon_view, "GtkIconView*");
+  item_padding = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(item_padding)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_item_padding", 2, item_padding, "gint");
+  gtk_icon_view_set_item_padding(s7_c_pointer(icon_view), s7_integer(item_padding));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_item_padding(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_item_padding "gint gtk_icon_view_get_item_padding(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_item_padding", 1, icon_view, "GtkIconView*");
+  return(s7_make_integer(sc, gtk_icon_view_get_item_padding(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_widget_has_grab(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_has_grab "gboolean gtk_widget_has_grab(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_has_grab", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_has_grab(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_visible "void gtk_widget_set_visible(GtkWidget* widget, gboolean visible)"
+  s7_pointer _p;
+  s7_pointer widget, visible;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_visible", 1, widget, "GtkWidget*");
+  visible = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(visible)) s7_wrong_type_arg_error(sc, "gtk_widget_set_visible", 2, visible, "gboolean");
+  gtk_widget_set_visible(s7_c_pointer(widget), lg_boolean(visible));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_visible "gboolean gtk_widget_get_visible(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_visible", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_visible(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_range_set_flippable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_set_flippable "void gtk_range_set_flippable(GtkRange* range, gboolean flippable)"
+  s7_pointer _p;
+  s7_pointer range, flippable;
+  _p = args;
+  range = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_set_flippable", 1, range, "GtkRange*");
+  flippable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(flippable)) s7_wrong_type_arg_error(sc, "gtk_range_set_flippable", 2, flippable, "gboolean");
+  gtk_range_set_flippable(s7_c_pointer(range), lg_boolean(flippable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_get_flippable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_get_flippable "gboolean gtk_range_get_flippable(GtkRange* range)"
+  s7_pointer range;
+  range = s7_car(args);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_get_flippable", 1, range, "GtkRange*");
+  return(s7_make_boolean(sc, gtk_range_get_flippable(s7_c_pointer(range))));
+}
+
+static s7_pointer lg_gtk_widget_is_toplevel(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_is_toplevel "gboolean gtk_widget_is_toplevel(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_is_toplevel", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_is_toplevel(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_is_drawable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_is_drawable "gboolean gtk_widget_is_drawable(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_is_drawable", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_is_drawable(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_window "void gtk_widget_set_window(GtkWidget* widget, GdkWindow* window)"
+  s7_pointer _p;
+  s7_pointer widget, window;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_window", 1, widget, "GtkWidget*");
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_window", 2, window, "GdkWindow*");
+  gtk_widget_set_window(s7_c_pointer(widget), s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_is_destroyed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_is_destroyed "gboolean gdk_window_is_destroyed(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_is_destroyed", 1, window, "GdkWindow*");
+  return(s7_make_boolean(sc, gdk_window_is_destroyed(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_restack(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_restack "void gdk_window_restack(GdkWindow* window, GdkWindow* sibling, gboolean above)"
+  s7_pointer _p;
+  s7_pointer window, sibling, above;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_restack", 1, window, "GdkWindow*");
+  sibling = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sibling, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_restack", 2, sibling, "GdkWindow*");
+  above = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(above)) s7_wrong_type_arg_error(sc, "gdk_window_restack", 3, above, "gboolean");
+  gdk_window_restack(s7_c_pointer(window), s7_c_pointer(sibling), lg_boolean(above));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_set_receives_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_receives_default "void gtk_widget_set_receives_default(GtkWidget* widget, \
+gboolean receives_default)"
+  s7_pointer _p;
+  s7_pointer widget, receives_default;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_receives_default", 1, widget, "GtkWidget*");
+  receives_default = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(receives_default)) s7_wrong_type_arg_error(sc, "gtk_widget_set_receives_default", 2, receives_default, "gboolean");
+  gtk_widget_set_receives_default(s7_c_pointer(widget), lg_boolean(receives_default));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_receives_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_receives_default "gboolean gtk_widget_get_receives_default(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_receives_default", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_receives_default(s7_c_pointer(widget))));
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(2, 20, 0)
+static s7_pointer lg_gtk_dialog_get_widget_for_response(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_dialog_get_widget_for_response "GtkWidget* gtk_dialog_get_widget_for_response(GtkDialog* dialog, \
+gint response_id)"
+  s7_pointer _p;
+  s7_pointer dialog, response_id;
+  _p = args;
+  dialog = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dialog, GtkDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_dialog_get_widget_for_response", 1, dialog, "GtkDialog*");
+  response_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(response_id)) s7_wrong_type_arg_error(sc, "gtk_dialog_get_widget_for_response", 2, response_id, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_dialog_get_widget_for_response(s7_c_pointer(dialog), s7_integer(response_id))));
+}
+
+static s7_pointer lg_gtk_spinner_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spinner_new "GtkWidget* gtk_spinner_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_spinner_new()));
+}
+
+static s7_pointer lg_gtk_spinner_start(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spinner_start "void gtk_spinner_start(GtkSpinner* spinner)"
+  s7_pointer spinner;
+  spinner = s7_car(args);
+  if (!s7_is_c_pointer_of_type(spinner, GtkSpinner__sym)) s7_wrong_type_arg_error(sc, "gtk_spinner_start", 1, spinner, "GtkSpinner*");
+  gtk_spinner_start(s7_c_pointer(spinner));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_spinner_stop(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_spinner_stop "void gtk_spinner_stop(GtkSpinner* spinner)"
+  s7_pointer spinner;
+  spinner = s7_car(args);
+  if (!s7_is_c_pointer_of_type(spinner, GtkSpinner__sym)) s7_wrong_type_arg_error(sc, "gtk_spinner_stop", 1, spinner, "GtkSpinner*");
+  gtk_spinner_stop(s7_c_pointer(spinner));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_renderer_spinner_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_spinner_new "GtkCellRenderer* gtk_cell_renderer_spinner_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkCellRenderer__sym, gtk_cell_renderer_spinner_new()));
+}
+
+static s7_pointer lg_gtk_notebook_get_action_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_action_widget "GtkWidget* gtk_notebook_get_action_widget(GtkNotebook* notebook, \
+GtkPackType pack_type)"
+  s7_pointer _p;
+  s7_pointer notebook, pack_type;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_action_widget", 1, notebook, "GtkNotebook*");
+  pack_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pack_type)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_action_widget", 2, pack_type, "GtkPackType");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_notebook_get_action_widget(s7_c_pointer(notebook), s7_integer(pack_type))));
+}
+
+static s7_pointer lg_gtk_notebook_set_action_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_set_action_widget "void gtk_notebook_set_action_widget(GtkNotebook* notebook, \
+GtkWidget* widget, GtkPackType pack_type)"
+  s7_pointer _p;
+  s7_pointer notebook, widget, pack_type;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_action_widget", 1, notebook, "GtkNotebook*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_action_widget", 2, widget, "GtkWidget*");
+  pack_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pack_type)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_action_widget", 3, pack_type, "GtkPackType");
+  gtk_notebook_set_action_widget(s7_c_pointer(notebook), s7_c_pointer(widget), s7_integer(pack_type));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_statusbar_get_message_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_statusbar_get_message_area "GtkWidget* gtk_statusbar_get_message_area(GtkStatusbar* statusbar)"
+  s7_pointer statusbar;
+  statusbar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(statusbar, GtkStatusbar__sym)) s7_wrong_type_arg_error(sc, "gtk_statusbar_get_message_area", 1, statusbar, "GtkStatusbar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_statusbar_get_message_area(s7_c_pointer(statusbar))));
+}
+
+static s7_pointer lg_gtk_tool_item_get_ellipsize_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_get_ellipsize_mode "PangoEllipsizeMode gtk_tool_item_get_ellipsize_mode(GtkToolItem* tool_item)"
+  s7_pointer tool_item;
+  tool_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_get_ellipsize_mode", 1, tool_item, "GtkToolItem*");
+  return(s7_make_integer(sc, gtk_tool_item_get_ellipsize_mode(s7_c_pointer(tool_item))));
+}
+
+static s7_pointer lg_gtk_tool_item_get_text_alignment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_get_text_alignment "gfloat gtk_tool_item_get_text_alignment(GtkToolItem* tool_item)"
+  s7_pointer tool_item;
+  tool_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_get_text_alignment", 1, tool_item, "GtkToolItem*");
+  return(s7_make_real(sc, gtk_tool_item_get_text_alignment(s7_c_pointer(tool_item))));
+}
+
+static s7_pointer lg_gtk_tool_item_get_text_orientation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_get_text_orientation "GtkOrientation gtk_tool_item_get_text_orientation(GtkToolItem* tool_item)"
+  s7_pointer tool_item;
+  tool_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_get_text_orientation", 1, tool_item, "GtkToolItem*");
+  return(s7_make_integer(sc, gtk_tool_item_get_text_orientation(s7_c_pointer(tool_item))));
+}
+
+static s7_pointer lg_gtk_tool_item_get_text_size_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_get_text_size_group "GtkSizeGroup* gtk_tool_item_get_text_size_group(GtkToolItem* tool_item)"
+  s7_pointer tool_item;
+  tool_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_get_text_size_group", 1, tool_item, "GtkToolItem*");
+  return(s7_make_type_with_c_pointer(sc, GtkSizeGroup__sym, gtk_tool_item_get_text_size_group(s7_c_pointer(tool_item))));
+}
+
+static s7_pointer lg_gtk_tool_palette_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_new "GtkWidget* gtk_tool_palette_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_tool_palette_new()));
+}
+
+static s7_pointer lg_gtk_tool_palette_set_group_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_set_group_position "void gtk_tool_palette_set_group_position(GtkToolPalette* palette, \
+GtkToolItemGroup* group, gint position)"
+  s7_pointer _p;
+  s7_pointer palette, group, position;
+  _p = args;
+  palette = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_set_group_position", 1, palette, "GtkToolPalette*");
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_set_group_position", 2, group, "GtkToolItemGroup*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_set_group_position", 3, position, "gint");
+  gtk_tool_palette_set_group_position(s7_c_pointer(palette), s7_c_pointer(group), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_palette_set_exclusive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_set_exclusive "void gtk_tool_palette_set_exclusive(GtkToolPalette* palette, \
+GtkToolItemGroup* group, gboolean exclusive)"
+  s7_pointer _p;
+  s7_pointer palette, group, exclusive;
+  _p = args;
+  palette = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_set_exclusive", 1, palette, "GtkToolPalette*");
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_set_exclusive", 2, group, "GtkToolItemGroup*");
+  exclusive = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(exclusive)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_set_exclusive", 3, exclusive, "gboolean");
+  gtk_tool_palette_set_exclusive(s7_c_pointer(palette), s7_c_pointer(group), lg_boolean(exclusive));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_palette_set_expand(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_set_expand "void gtk_tool_palette_set_expand(GtkToolPalette* palette, GtkToolItemGroup* group, \
+gboolean expand)"
+  s7_pointer _p;
+  s7_pointer palette, group, expand;
+  _p = args;
+  palette = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_set_expand", 1, palette, "GtkToolPalette*");
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_set_expand", 2, group, "GtkToolItemGroup*");
+  expand = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(expand)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_set_expand", 3, expand, "gboolean");
+  gtk_tool_palette_set_expand(s7_c_pointer(palette), s7_c_pointer(group), lg_boolean(expand));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_palette_get_group_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_get_group_position "gint gtk_tool_palette_get_group_position(GtkToolPalette* palette, \
+GtkToolItemGroup* group)"
+  s7_pointer _p;
+  s7_pointer palette, group;
+  _p = args;
+  palette = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_group_position", 1, palette, "GtkToolPalette*");
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_group_position", 2, group, "GtkToolItemGroup*");
+  return(s7_make_integer(sc, gtk_tool_palette_get_group_position(s7_c_pointer(palette), s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_tool_palette_get_exclusive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_get_exclusive "gboolean gtk_tool_palette_get_exclusive(GtkToolPalette* palette, \
+GtkToolItemGroup* group)"
+  s7_pointer _p;
+  s7_pointer palette, group;
+  _p = args;
+  palette = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_exclusive", 1, palette, "GtkToolPalette*");
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_exclusive", 2, group, "GtkToolItemGroup*");
+  return(s7_make_boolean(sc, gtk_tool_palette_get_exclusive(s7_c_pointer(palette), s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_tool_palette_get_expand(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_get_expand "gboolean gtk_tool_palette_get_expand(GtkToolPalette* palette, \
+GtkToolItemGroup* group)"
+  s7_pointer _p;
+  s7_pointer palette, group;
+  _p = args;
+  palette = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_expand", 1, palette, "GtkToolPalette*");
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_expand", 2, group, "GtkToolItemGroup*");
+  return(s7_make_boolean(sc, gtk_tool_palette_get_expand(s7_c_pointer(palette), s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_tool_palette_unset_icon_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_unset_icon_size "void gtk_tool_palette_unset_icon_size(GtkToolPalette* palette)"
+  s7_pointer palette;
+  palette = s7_car(args);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_unset_icon_size", 1, palette, "GtkToolPalette*");
+  gtk_tool_palette_unset_icon_size(s7_c_pointer(palette));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_palette_set_style(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_set_style "void gtk_tool_palette_set_style(GtkToolPalette* palette, GtkToolbarStyle style)"
+  s7_pointer _p;
+  s7_pointer palette, style;
+  _p = args;
+  palette = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_set_style", 1, palette, "GtkToolPalette*");
+  style = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(style)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_set_style", 2, style, "GtkToolbarStyle");
+  gtk_tool_palette_set_style(s7_c_pointer(palette), s7_integer(style));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_palette_unset_style(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_unset_style "void gtk_tool_palette_unset_style(GtkToolPalette* palette)"
+  s7_pointer palette;
+  palette = s7_car(args);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_unset_style", 1, palette, "GtkToolPalette*");
+  gtk_tool_palette_unset_style(s7_c_pointer(palette));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_palette_get_style(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_get_style "GtkToolbarStyle gtk_tool_palette_get_style(GtkToolPalette* palette)"
+  s7_pointer palette;
+  palette = s7_car(args);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_style", 1, palette, "GtkToolPalette*");
+  return(s7_make_integer(sc, gtk_tool_palette_get_style(s7_c_pointer(palette))));
+}
+
+static s7_pointer lg_gtk_tool_palette_get_drop_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_get_drop_item "GtkToolItem* gtk_tool_palette_get_drop_item(GtkToolPalette* palette, \
+gint x, gint y)"
+  s7_pointer _p;
+  s7_pointer palette, x, y;
+  _p = args;
+  palette = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_drop_item", 1, palette, "GtkToolPalette*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_drop_item", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_drop_item", 3, y, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkToolItem__sym, gtk_tool_palette_get_drop_item(s7_c_pointer(palette), s7_integer(x), s7_integer(y))));
+}
+
+static s7_pointer lg_gtk_tool_palette_get_drop_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_get_drop_group "GtkToolItemGroup* gtk_tool_palette_get_drop_group(GtkToolPalette* palette, \
+gint x, gint y)"
+  s7_pointer _p;
+  s7_pointer palette, x, y;
+  _p = args;
+  palette = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_drop_group", 1, palette, "GtkToolPalette*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_drop_group", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_drop_group", 3, y, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkToolItemGroup__sym, gtk_tool_palette_get_drop_group(s7_c_pointer(palette), s7_integer(x), s7_integer(y))));
+}
+
+static s7_pointer lg_gtk_tool_palette_get_drag_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_get_drag_item "GtkWidget* gtk_tool_palette_get_drag_item(GtkToolPalette* palette, \
+GtkSelectionData* selection)"
+  s7_pointer _p;
+  s7_pointer palette, selection;
+  _p = args;
+  palette = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_drag_item", 1, palette, "GtkToolPalette*");
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_get_drag_item", 2, selection, "GtkSelectionData*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_tool_palette_get_drag_item(s7_c_pointer(palette), s7_c_pointer(selection))));
+}
+
+static s7_pointer lg_gtk_tool_palette_set_drag_source(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_set_drag_source "void gtk_tool_palette_set_drag_source(GtkToolPalette* palette, \
+GtkToolPaletteDragTargets targets)"
+  s7_pointer _p;
+  s7_pointer palette, targets;
+  _p = args;
+  palette = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_set_drag_source", 1, palette, "GtkToolPalette*");
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(targets)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_set_drag_source", 2, targets, "GtkToolPaletteDragTargets");
+  gtk_tool_palette_set_drag_source(s7_c_pointer(palette), s7_integer(targets));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_palette_add_drag_dest(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_add_drag_dest "void gtk_tool_palette_add_drag_dest(GtkToolPalette* palette, \
+GtkWidget* widget, GtkDestDefaults flags, GtkToolPaletteDragTargets targets, GdkDragAction actions)"
+  s7_pointer _p;
+  s7_pointer palette, widget, flags, targets, actions;
+  _p = args;
+  palette = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(palette, GtkToolPalette__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_add_drag_dest", 1, palette, "GtkToolPalette*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_add_drag_dest", 2, widget, "GtkWidget*");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_add_drag_dest", 3, flags, "GtkDestDefaults");
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(targets)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_add_drag_dest", 4, targets, "GtkToolPaletteDragTargets");
+  actions = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(actions)) s7_wrong_type_arg_error(sc, "gtk_tool_palette_add_drag_dest", 5, actions, "GdkDragAction");
+  gtk_tool_palette_add_drag_dest(s7_c_pointer(palette), s7_c_pointer(widget), s7_integer(flags), s7_integer(targets), s7_integer(actions));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_palette_get_drag_target_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_get_drag_target_item "GtkTargetEntry* gtk_tool_palette_get_drag_target_item( void)"
+    return(s7_make_type_with_c_pointer(sc, GtkTargetEntry__sym, (GtkTargetEntry*)gtk_tool_palette_get_drag_target_item()));
+}
+
+static s7_pointer lg_gtk_tool_palette_get_drag_target_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_palette_get_drag_target_group "GtkTargetEntry* gtk_tool_palette_get_drag_target_group( void)"
+    return(s7_make_type_with_c_pointer(sc, GtkTargetEntry__sym, (GtkTargetEntry*)gtk_tool_palette_get_drag_target_group()));
+}
+
+static s7_pointer lg_gtk_tool_item_group_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_new "GtkWidget* gtk_tool_item_group_new(gchar* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_new", 1, label, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_tool_item_group_new((const gchar*)s7_string(label))));
+}
+
+static s7_pointer lg_gtk_tool_item_group_set_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_set_label "void gtk_tool_item_group_set_label(GtkToolItemGroup* group, \
+gchar* label)"
+  s7_pointer _p;
+  s7_pointer group, label;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_set_label", 1, group, "GtkToolItemGroup*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_set_label", 2, label, "gchar*");
+  gtk_tool_item_group_set_label(s7_c_pointer(group), (const gchar*)s7_string(label));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_group_set_label_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_set_label_widget "void gtk_tool_item_group_set_label_widget(GtkToolItemGroup* group, \
+GtkWidget* label_widget)"
+  s7_pointer _p;
+  s7_pointer group, label_widget;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_set_label_widget", 1, group, "GtkToolItemGroup*");
+  label_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_set_label_widget", 2, label_widget, "GtkWidget*");
+  gtk_tool_item_group_set_label_widget(s7_c_pointer(group), s7_c_pointer(label_widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_group_set_collapsed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_set_collapsed "void gtk_tool_item_group_set_collapsed(GtkToolItemGroup* group, \
+gboolean collapsed)"
+  s7_pointer _p;
+  s7_pointer group, collapsed;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_set_collapsed", 1, group, "GtkToolItemGroup*");
+  collapsed = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(collapsed)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_set_collapsed", 2, collapsed, "gboolean");
+  gtk_tool_item_group_set_collapsed(s7_c_pointer(group), lg_boolean(collapsed));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_group_set_ellipsize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_set_ellipsize "void gtk_tool_item_group_set_ellipsize(GtkToolItemGroup* group, \
+PangoEllipsizeMode ellipsize)"
+  s7_pointer _p;
+  s7_pointer group, ellipsize;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_set_ellipsize", 1, group, "GtkToolItemGroup*");
+  ellipsize = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(ellipsize)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_set_ellipsize", 2, ellipsize, "PangoEllipsizeMode");
+  gtk_tool_item_group_set_ellipsize(s7_c_pointer(group), s7_integer(ellipsize));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_group_set_header_relief(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_set_header_relief "void gtk_tool_item_group_set_header_relief(GtkToolItemGroup* group, \
+GtkReliefStyle style)"
+  s7_pointer _p;
+  s7_pointer group, style;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_set_header_relief", 1, group, "GtkToolItemGroup*");
+  style = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(style)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_set_header_relief", 2, style, "GtkReliefStyle");
+  gtk_tool_item_group_set_header_relief(s7_c_pointer(group), s7_integer(style));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_group_get_label(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_get_label "gchar* gtk_tool_item_group_get_label(GtkToolItemGroup* group)"
+  s7_pointer group;
+  group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_get_label", 1, group, "GtkToolItemGroup*");
+  return(s7_make_string(sc, gtk_tool_item_group_get_label(s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_tool_item_group_get_label_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_get_label_widget "GtkWidget* gtk_tool_item_group_get_label_widget(GtkToolItemGroup* group)"
+  s7_pointer group;
+  group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_get_label_widget", 1, group, "GtkToolItemGroup*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_tool_item_group_get_label_widget(s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_tool_item_group_get_collapsed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_get_collapsed "gboolean gtk_tool_item_group_get_collapsed(GtkToolItemGroup* group)"
+  s7_pointer group;
+  group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_get_collapsed", 1, group, "GtkToolItemGroup*");
+  return(s7_make_boolean(sc, gtk_tool_item_group_get_collapsed(s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_tool_item_group_get_ellipsize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_get_ellipsize "PangoEllipsizeMode gtk_tool_item_group_get_ellipsize(GtkToolItemGroup* group)"
+  s7_pointer group;
+  group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_get_ellipsize", 1, group, "GtkToolItemGroup*");
+  return(s7_make_integer(sc, gtk_tool_item_group_get_ellipsize(s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_tool_item_group_get_header_relief(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_get_header_relief "GtkReliefStyle gtk_tool_item_group_get_header_relief(GtkToolItemGroup* group)"
+  s7_pointer group;
+  group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_get_header_relief", 1, group, "GtkToolItemGroup*");
+  return(s7_make_integer(sc, gtk_tool_item_group_get_header_relief(s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_tool_item_group_insert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_insert "void gtk_tool_item_group_insert(GtkToolItemGroup* group, GtkToolItem* item, \
+gint position)"
+  s7_pointer _p;
+  s7_pointer group, item, position;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_insert", 1, group, "GtkToolItemGroup*");
+  item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_insert", 2, item, "GtkToolItem*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_insert", 3, position, "gint");
+  gtk_tool_item_group_insert(s7_c_pointer(group), s7_c_pointer(item), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_group_set_item_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_set_item_position "void gtk_tool_item_group_set_item_position(GtkToolItemGroup* group, \
+GtkToolItem* item, gint position)"
+  s7_pointer _p;
+  s7_pointer group, item, position;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_set_item_position", 1, group, "GtkToolItemGroup*");
+  item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_set_item_position", 2, item, "GtkToolItem*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_set_item_position", 3, position, "gint");
+  gtk_tool_item_group_set_item_position(s7_c_pointer(group), s7_c_pointer(item), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_group_get_item_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_get_item_position "gint gtk_tool_item_group_get_item_position(GtkToolItemGroup* group, \
+GtkToolItem* item)"
+  s7_pointer _p;
+  s7_pointer group, item;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_get_item_position", 1, group, "GtkToolItemGroup*");
+  item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_get_item_position", 2, item, "GtkToolItem*");
+  return(s7_make_integer(sc, gtk_tool_item_group_get_item_position(s7_c_pointer(group), s7_c_pointer(item))));
+}
+
+static s7_pointer lg_gtk_tool_item_group_get_n_items(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_get_n_items "guint gtk_tool_item_group_get_n_items(GtkToolItemGroup* group)"
+  s7_pointer group;
+  group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_get_n_items", 1, group, "GtkToolItemGroup*");
+  return(s7_make_integer(sc, gtk_tool_item_group_get_n_items(s7_c_pointer(group))));
+}
+
+static s7_pointer lg_gtk_tool_item_group_get_nth_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_get_nth_item "GtkToolItem* gtk_tool_item_group_get_nth_item(GtkToolItemGroup* group, \
+guint index)"
+  s7_pointer _p;
+  s7_pointer group, index;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_get_nth_item", 1, group, "GtkToolItemGroup*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_get_nth_item", 2, index, "guint");
+  return(s7_make_type_with_c_pointer(sc, GtkToolItem__sym, gtk_tool_item_group_get_nth_item(s7_c_pointer(group), s7_integer(index))));
+}
+
+static s7_pointer lg_gtk_tool_item_group_get_drop_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_group_get_drop_item "GtkToolItem* gtk_tool_item_group_get_drop_item(GtkToolItemGroup* group, \
+gint x, gint y)"
+  s7_pointer _p;
+  s7_pointer group, x, y;
+  _p = args;
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GtkToolItemGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_get_drop_item", 1, group, "GtkToolItemGroup*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_get_drop_item", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_tool_item_group_get_drop_item", 3, y, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkToolItem__sym, gtk_tool_item_group_get_drop_item(s7_c_pointer(group), s7_integer(x), s7_integer(y))));
+}
+
+static s7_pointer lg_gtk_window_set_mnemonics_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_mnemonics_visible "void gtk_window_set_mnemonics_visible(GtkWindow* window, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_mnemonics_visible", 1, window, "GtkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_window_set_mnemonics_visible", 2, setting, "gboolean");
+  gtk_window_set_mnemonics_visible(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_mnemonics_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_mnemonics_visible "gboolean gtk_window_get_mnemonics_visible(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_mnemonics_visible", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_get_mnemonics_visible(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_range_set_slider_size_fixed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_set_slider_size_fixed "void gtk_range_set_slider_size_fixed(GtkRange* range, gboolean size_fixed)"
+  s7_pointer _p;
+  s7_pointer range, size_fixed;
+  _p = args;
+  range = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_set_slider_size_fixed", 1, range, "GtkRange*");
+  size_fixed = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(size_fixed)) s7_wrong_type_arg_error(sc, "gtk_range_set_slider_size_fixed", 2, size_fixed, "gboolean");
+  gtk_range_set_slider_size_fixed(s7_c_pointer(range), lg_boolean(size_fixed));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_get_slider_size_fixed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_get_slider_size_fixed "gboolean gtk_range_get_slider_size_fixed(GtkRange* range)"
+  s7_pointer range;
+  range = s7_car(args);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_get_slider_size_fixed", 1, range, "GtkRange*");
+  return(s7_make_boolean(sc, gtk_range_get_slider_size_fixed(s7_c_pointer(range))));
+}
+
+static s7_pointer lg_gtk_range_get_range_rect(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_get_range_rect "void gtk_range_get_range_rect(GtkRange* range, GdkRectangle* range_rect)"
+  s7_pointer _p;
+  s7_pointer range, range_rect;
+  _p = args;
+  range = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_get_range_rect", 1, range, "GtkRange*");
+  range_rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range_rect, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_range_get_range_rect", 2, range_rect, "GdkRectangle*");
+  gtk_range_get_range_rect(s7_c_pointer(range), s7_c_pointer(range_rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_range_get_slider_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_range_get_slider_range "void gtk_range_get_slider_range(GtkRange* range, gint* [slider_start], \
+gint* [slider_end])"
+  s7_pointer _p;
+  s7_pointer range;
+  gint ref_slider_start;
+  gint ref_slider_end;
+  _p = args;
+  range = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(range, GtkRange__sym)) s7_wrong_type_arg_error(sc, "gtk_range_get_slider_range", 1, range, "GtkRange*");
+  gtk_range_get_slider_range(s7_c_pointer(range), &ref_slider_start, &ref_slider_end);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_slider_start), s7_make_integer(sc, ref_slider_end)));
+}
+
+static s7_pointer lg_gtk_paned_get_handle_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_paned_get_handle_window "GdkWindow* gtk_paned_get_handle_window(GtkPaned* paned)"
+  s7_pointer paned;
+  paned = s7_car(args);
+  if (!s7_is_c_pointer_of_type(paned, GtkPaned__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_get_handle_window", 1, paned, "GtkPaned*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gtk_paned_get_handle_window(s7_c_pointer(paned))));
+}
+
+static s7_pointer lg_gtk_widget_set_realized(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_realized "void gtk_widget_set_realized(GtkWidget* widget, gboolean realized)"
+  s7_pointer _p;
+  s7_pointer widget, realized;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_realized", 1, widget, "GtkWidget*");
+  realized = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(realized)) s7_wrong_type_arg_error(sc, "gtk_widget_set_realized", 2, realized, "gboolean");
+  gtk_widget_set_realized(s7_c_pointer(widget), lg_boolean(realized));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_realized(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_realized "gboolean gtk_widget_get_realized(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_realized", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_realized(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_mapped(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_mapped "gboolean gtk_widget_get_mapped(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_mapped", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_mapped(s7_c_pointer(widget))));
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(3, 0, 0)
+static s7_pointer lg_gdk_window_get_geometry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_geometry "void gdk_window_get_geometry(GdkWindow* window, gint* [x], gint* [y], \
+gint* [width], gint* [height])"
+  s7_pointer _p;
+  s7_pointer window;
+  gint ref_x;
+  gint ref_y;
+  gint ref_width;
+  gint ref_height;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_geometry", 1, window, "GdkWindow*");
+  gdk_window_get_geometry(s7_c_pointer(window), &ref_x, &ref_y, &ref_width, &ref_height);
+    return(s7_list(sc, 4, s7_make_integer(sc, ref_x), s7_make_integer(sc, ref_y), s7_make_integer(sc, ref_width), s7_make_integer(sc, ref_height)));
+}
+
+static s7_pointer lg_gdk_keymap_add_virtual_modifiers(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keymap_add_virtual_modifiers "void gdk_keymap_add_virtual_modifiers(GdkKeymap* keymap, \
+GdkModifierType* state)"
+  s7_pointer _p;
+  s7_pointer keymap, state;
+  _p = args;
+  keymap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(keymap, GdkKeymap__sym)) s7_wrong_type_arg_error(sc, "gdk_keymap_add_virtual_modifiers", 1, keymap, "GdkKeymap*");
+  state = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(state, GdkModifierType__sym)) s7_wrong_type_arg_error(sc, "gdk_keymap_add_virtual_modifiers", 2, state, "GdkModifierType*");
+  gdk_keymap_add_virtual_modifiers(s7_c_pointer(keymap), s7_c_pointer(state));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_coords_to_parent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_coords_to_parent "void gdk_window_coords_to_parent(GdkWindow* window, gdouble x, \
+gdouble y, gdouble* [parent_x], gdouble* [parent_y])"
+  s7_pointer _p;
+  s7_pointer window, x, y;
+  gdouble ref_parent_x;
+  gdouble ref_parent_y;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_coords_to_parent", 1, window, "GdkWindow*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gdk_window_coords_to_parent", 2, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gdk_window_coords_to_parent", 3, y, "gdouble");
+  gdk_window_coords_to_parent(s7_c_pointer(window), s7_real(x), s7_real(y), &ref_parent_x, &ref_parent_y);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_parent_x), s7_make_real(sc, ref_parent_y)));
+}
+
+static s7_pointer lg_gdk_window_coords_from_parent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_coords_from_parent "void gdk_window_coords_from_parent(GdkWindow* window, gdouble parent_x, \
+gdouble parent_y, gdouble* [x], gdouble* [y])"
+  s7_pointer _p;
+  s7_pointer window, parent_x, parent_y;
+  gdouble ref_x;
+  gdouble ref_y;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_coords_from_parent", 1, window, "GdkWindow*");
+  parent_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(parent_x)) s7_wrong_type_arg_error(sc, "gdk_window_coords_from_parent", 2, parent_x, "gdouble");
+  parent_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(parent_y)) s7_wrong_type_arg_error(sc, "gdk_window_coords_from_parent", 3, parent_y, "gdouble");
+  gdk_window_coords_from_parent(s7_c_pointer(window), s7_real(parent_x), s7_real(parent_y), &ref_x, &ref_y);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_x), s7_make_real(sc, ref_y)));
+}
+
+static s7_pointer lg_gtk_accessible_get_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accessible_get_widget "GtkWidget* gtk_accessible_get_widget(GtkAccessible* accessible)"
+  s7_pointer accessible;
+  accessible = s7_car(args);
+  if (!s7_is_c_pointer_of_type(accessible, GtkAccessible__sym)) s7_wrong_type_arg_error(sc, "gtk_accessible_get_widget", 1, accessible, "GtkAccessible*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_accessible_get_widget(s7_c_pointer(accessible))));
+}
+
+static s7_pointer lg_gtk_widget_send_focus_change(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_send_focus_change "gboolean gtk_widget_send_focus_change(GtkWidget* widget, GdkEvent* event)"
+  s7_pointer _p;
+  s7_pointer widget, event;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_send_focus_change", 1, widget, "GtkWidget*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_send_focus_change", 2, event, "GdkEvent*");
+  return(s7_make_boolean(sc, gtk_widget_send_focus_change(s7_c_pointer(widget), s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gdk_drag_context_set_device(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_context_set_device "void gdk_drag_context_set_device(GdkDragContext* context, GdkDevice* device)"
+  s7_pointer _p;
+  s7_pointer context, device;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_context_set_device", 1, context, "GdkDragContext*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_context_set_device", 2, device, "GdkDevice*");
+  gdk_drag_context_set_device(s7_c_pointer(context), s7_c_pointer(device));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_drag_context_get_device(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_context_get_device "GdkDevice* gdk_drag_context_get_device(GdkDragContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_context_get_device", 1, context, "GdkDragContext*");
+  return(s7_make_type_with_c_pointer(sc, GdkDevice__sym, gdk_drag_context_get_device(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_drag_context_list_targets(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_context_list_targets "GList* gdk_drag_context_list_targets(GdkDragContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_context_list_targets", 1, context, "GdkDragContext*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gdk_drag_context_list_targets(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_event_set_device(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_set_device "void gdk_event_set_device(GdkEvent* event, GdkDevice* device)"
+  s7_pointer _p;
+  s7_pointer event, device;
+  _p = args;
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_set_device", 1, event, "GdkEvent*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_event_set_device", 2, device, "GdkDevice*");
+  gdk_event_set_device(s7_c_pointer(event), s7_c_pointer(device));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_event_get_device(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_device "GdkDevice* gdk_event_get_device(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_device", 1, event, "GdkEvent*");
+  return(s7_make_type_with_c_pointer(sc, GdkDevice__sym, gdk_event_get_device(s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gdk_events_get_distance(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_events_get_distance "gboolean gdk_events_get_distance(GdkEvent* event1, GdkEvent* event2, \
+gdouble* [distance])"
+  s7_pointer _p;
+  s7_pointer event1, event2;
+  gdouble ref_distance;
+  _p = args;
+  event1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event1, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_events_get_distance", 1, event1, "GdkEvent*");
+  event2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event2, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_events_get_distance", 2, event2, "GdkEvent*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_events_get_distance(s7_c_pointer(event1), s7_c_pointer(event2), &ref_distance));
+      return(s7_list(sc, 2, result, s7_make_real(sc, ref_distance)));
+   }
+}
+
+static s7_pointer lg_gdk_events_get_angle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_events_get_angle "gboolean gdk_events_get_angle(GdkEvent* event1, GdkEvent* event2, gdouble* [angle])"
+  s7_pointer _p;
+  s7_pointer event1, event2;
+  gdouble ref_angle;
+  _p = args;
+  event1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event1, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_events_get_angle", 1, event1, "GdkEvent*");
+  event2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event2, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_events_get_angle", 2, event2, "GdkEvent*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_events_get_angle(s7_c_pointer(event1), s7_c_pointer(event2), &ref_angle));
+      return(s7_list(sc, 2, result, s7_make_real(sc, ref_angle)));
+   }
+}
+
+static s7_pointer lg_gdk_events_get_center(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_events_get_center "gboolean gdk_events_get_center(GdkEvent* event1, GdkEvent* event2, \
+gdouble* [x], gdouble* [y])"
+  s7_pointer _p;
+  s7_pointer event1, event2;
+  gdouble ref_x;
+  gdouble ref_y;
+  _p = args;
+  event1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event1, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_events_get_center", 1, event1, "GdkEvent*");
+  event2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event2, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_events_get_center", 2, event2, "GdkEvent*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_events_get_center(s7_c_pointer(event1), s7_c_pointer(event2), &ref_x, &ref_y));
+      return(s7_list(sc, 3, result, s7_make_real(sc, ref_x), s7_make_real(sc, ref_y)));
+   }
+}
+
+static s7_pointer lg_gdk_window_get_accept_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_accept_focus "gboolean gdk_window_get_accept_focus(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_accept_focus", 1, window, "GdkWindow*");
+  return(s7_make_boolean(sc, gdk_window_get_accept_focus(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_get_focus_on_map(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_focus_on_map "gboolean gdk_window_get_focus_on_map(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_focus_on_map", 1, window, "GdkWindow*");
+  return(s7_make_boolean(sc, gdk_window_get_focus_on_map(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_is_input_only(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_is_input_only "gboolean gdk_window_is_input_only(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_is_input_only", 1, window, "GdkWindow*");
+  return(s7_make_boolean(sc, gdk_window_is_input_only(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_is_shaped(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_is_shaped "gboolean gdk_window_is_shaped(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_is_shaped", 1, window, "GdkWindow*");
+  return(s7_make_boolean(sc, gdk_window_is_shaped(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_get_modal_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_modal_hint "gboolean gdk_window_get_modal_hint(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_modal_hint", 1, window, "GdkWindow*");
+  return(s7_make_boolean(sc, gdk_window_get_modal_hint(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_set_device_cursor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_device_cursor "void gdk_window_set_device_cursor(GdkWindow* window, GdkDevice* device, \
+GdkCursor* cursor)"
+  s7_pointer _p;
+  s7_pointer window, device, cursor;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_device_cursor", 1, window, "GdkWindow*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_device_cursor", 2, device, "GdkDevice*");
+  cursor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cursor, GdkCursor__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_device_cursor", 3, cursor, "GdkCursor*");
+  gdk_window_set_device_cursor(s7_c_pointer(window), s7_c_pointer(device), s7_c_pointer(cursor));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_get_device_cursor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_device_cursor "GdkCursor* gdk_window_get_device_cursor(GdkWindow* window, \
+GdkDevice* device)"
+  s7_pointer _p;
+  s7_pointer window, device;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_device_cursor", 1, window, "GdkWindow*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_device_cursor", 2, device, "GdkDevice*");
+  return(s7_make_type_with_c_pointer(sc, GdkCursor__sym, gdk_window_get_device_cursor(s7_c_pointer(window), s7_c_pointer(device))));
+}
+
+static s7_pointer lg_gdk_window_get_device_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_device_position "GdkWindow* gdk_window_get_device_position(GdkWindow* window, \
+GdkDevice* device, gint* [x], gint* [y], GdkModifierType* [mask])"
+  s7_pointer _p;
+  s7_pointer window, device;
+  gint ref_x;
+  gint ref_y;
+  GdkModifierType ref_mask;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_device_position", 1, window, "GdkWindow*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_device_position", 2, device, "GdkDevice*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_window_get_device_position(s7_c_pointer(window), s7_c_pointer(device), &ref_x, &ref_y, &ref_mask));
+      return(s7_list(sc, 4, result, s7_make_integer(sc, ref_x), s7_make_integer(sc, ref_y), s7_make_integer(sc, ref_mask)));
+   }
+}
+
+static s7_pointer lg_gdk_window_set_device_events(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_device_events "void gdk_window_set_device_events(GdkWindow* window, GdkDevice* device, \
+GdkEventMask event_mask)"
+  s7_pointer _p;
+  s7_pointer window, device, event_mask;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_device_events", 1, window, "GdkWindow*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_device_events", 2, device, "GdkDevice*");
+  event_mask = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(event_mask)) s7_wrong_type_arg_error(sc, "gdk_window_set_device_events", 3, event_mask, "GdkEventMask");
+  gdk_window_set_device_events(s7_c_pointer(window), s7_c_pointer(device), s7_integer(event_mask));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_get_device_events(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_device_events "GdkEventMask gdk_window_get_device_events(GdkWindow* window, \
+GdkDevice* device)"
+  s7_pointer _p;
+  s7_pointer window, device;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_device_events", 1, window, "GdkWindow*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_device_events", 2, device, "GdkDevice*");
+  return(s7_make_integer(sc, gdk_window_get_device_events(s7_c_pointer(window), s7_c_pointer(device))));
+}
+
+static s7_pointer lg_gtk_combo_box_popup_for_device(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_popup_for_device "void gtk_combo_box_popup_for_device(GtkComboBox* combo_box, \
+GdkDevice* device)"
+  s7_pointer _p;
+  s7_pointer combo_box, device;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_popup_for_device", 1, combo_box, "GtkComboBox*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_popup_for_device", 2, device, "GdkDevice*");
+  gtk_combo_box_popup_for_device(s7_c_pointer(combo_box), s7_c_pointer(device));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_device_grab_add(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_device_grab_add "void gtk_device_grab_add(GtkWidget* widget, GdkDevice* device, gboolean block_others)"
+  s7_pointer _p;
+  s7_pointer widget, device, block_others;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_device_grab_add", 1, widget, "GtkWidget*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gtk_device_grab_add", 2, device, "GdkDevice*");
+  block_others = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(block_others)) s7_wrong_type_arg_error(sc, "gtk_device_grab_add", 3, block_others, "gboolean");
+  gtk_device_grab_add(s7_c_pointer(widget), s7_c_pointer(device), lg_boolean(block_others));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_device_grab_remove(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_device_grab_remove "void gtk_device_grab_remove(GtkWidget* widget, GdkDevice* device)"
+  s7_pointer _p;
+  s7_pointer widget, device;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_device_grab_remove", 1, widget, "GtkWidget*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gtk_device_grab_remove", 2, device, "GdkDevice*");
+  gtk_device_grab_remove(s7_c_pointer(widget), s7_c_pointer(device));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_get_current_event_device(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_get_current_event_device "GdkDevice* gtk_get_current_event_device( void)"
+  return(s7_make_type_with_c_pointer(sc, GdkDevice__sym, gtk_get_current_event_device()));
+}
+
+static s7_pointer lg_gtk_paned_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_paned_new "GtkWidget* gtk_paned_new(GtkOrientation orientation)"
+  s7_pointer orientation;
+  orientation = s7_car(args);
+  if (!s7_is_integer(orientation)) s7_wrong_type_arg_error(sc, "gtk_paned_new", 1, orientation, "GtkOrientation");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_paned_new(s7_integer(orientation))));
+}
+
+static s7_pointer lg_gtk_scale_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_new "GtkWidget* gtk_scale_new(GtkOrientation orientation, GtkAdjustment* adjustment)"
+  s7_pointer _p;
+  s7_pointer orientation, adjustment;
+  _p = args;
+  orientation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(orientation)) s7_wrong_type_arg_error(sc, "gtk_scale_new", 1, orientation, "GtkOrientation");
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_new", 2, adjustment, "GtkAdjustment*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_scale_new(s7_integer(orientation), s7_c_pointer(adjustment))));
+}
+
+static s7_pointer lg_gtk_scale_new_with_range(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_new_with_range "GtkWidget* gtk_scale_new_with_range(GtkOrientation orientation, \
+gdouble min, gdouble max, gdouble step)"
+  s7_pointer _p;
+  s7_pointer orientation, min, max, step;
+  _p = args;
+  orientation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(orientation)) s7_wrong_type_arg_error(sc, "gtk_scale_new_with_range", 1, orientation, "GtkOrientation");
+  min = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(min)) s7_wrong_type_arg_error(sc, "gtk_scale_new_with_range", 2, min, "gdouble");
+  max = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(max)) s7_wrong_type_arg_error(sc, "gtk_scale_new_with_range", 3, max, "gdouble");
+  step = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(step)) s7_wrong_type_arg_error(sc, "gtk_scale_new_with_range", 4, step, "gdouble");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_scale_new_with_range(s7_integer(orientation), s7_real(min), s7_real(max), s7_real(step))));
+}
+
+static s7_pointer lg_gtk_scrollbar_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrollbar_new "GtkWidget* gtk_scrollbar_new(GtkOrientation orientation, GtkAdjustment* adjustment)"
+  s7_pointer _p;
+  s7_pointer orientation, adjustment;
+  _p = args;
+  orientation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(orientation)) s7_wrong_type_arg_error(sc, "gtk_scrollbar_new", 1, orientation, "GtkOrientation");
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_scrollbar_new", 2, adjustment, "GtkAdjustment*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_scrollbar_new(s7_integer(orientation), s7_c_pointer(adjustment))));
+}
+
+static s7_pointer lg_gtk_separator_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_separator_new "GtkWidget* gtk_separator_new(GtkOrientation orientation)"
+  s7_pointer orientation;
+  orientation = s7_car(args);
+  if (!s7_is_integer(orientation)) s7_wrong_type_arg_error(sc, "gtk_separator_new", 1, orientation, "GtkOrientation");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_separator_new(s7_integer(orientation))));
+}
+
+static s7_pointer lg_gtk_widget_device_is_shadowed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_device_is_shadowed "gboolean gtk_widget_device_is_shadowed(GtkWidget* widget, \
+GdkDevice* device)"
+  s7_pointer _p;
+  s7_pointer widget, device;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_device_is_shadowed", 1, widget, "GtkWidget*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_device_is_shadowed", 2, device, "GdkDevice*");
+  return(s7_make_boolean(sc, gtk_widget_device_is_shadowed(s7_c_pointer(widget), s7_c_pointer(device))));
+}
+
+static s7_pointer lg_gtk_widget_get_support_multidevice(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_support_multidevice "gboolean gtk_widget_get_support_multidevice(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_support_multidevice", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_support_multidevice(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_support_multidevice(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_support_multidevice "void gtk_widget_set_support_multidevice(GtkWidget* widget, \
+gboolean support_multidevice)"
+  s7_pointer _p;
+  s7_pointer widget, support_multidevice;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_support_multidevice", 1, widget, "GtkWidget*");
+  support_multidevice = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(support_multidevice)) s7_wrong_type_arg_error(sc, "gtk_widget_set_support_multidevice", 2, support_multidevice, "gboolean");
+  gtk_widget_set_support_multidevice(s7_c_pointer(widget), lg_boolean(support_multidevice));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_item_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_item_row "gint gtk_icon_view_get_item_row(GtkIconView* icon_view, GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer icon_view, path;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_item_row", 1, icon_view, "GtkIconView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_item_row", 2, path, "GtkTreePath*");
+  return(s7_make_integer(sc, gtk_icon_view_get_item_row(s7_c_pointer(icon_view), s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_icon_view_get_item_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_item_column "gint gtk_icon_view_get_item_column(GtkIconView* icon_view, \
+GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer icon_view, path;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_item_column", 1, icon_view, "GtkIconView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_item_column", 2, path, "GtkTreePath*");
+  return(s7_make_integer(sc, gtk_icon_view_get_item_column(s7_c_pointer(icon_view), s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_statusbar_remove_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_statusbar_remove_all "void gtk_statusbar_remove_all(GtkStatusbar* statusbar, guint context_id)"
+  s7_pointer _p;
+  s7_pointer statusbar, context_id;
+  _p = args;
+  statusbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(statusbar, GtkStatusbar__sym)) s7_wrong_type_arg_error(sc, "gtk_statusbar_remove_all", 1, statusbar, "GtkStatusbar*");
+  context_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(context_id)) s7_wrong_type_arg_error(sc, "gtk_statusbar_remove_all", 2, context_id, "guint");
+  gtk_statusbar_remove_all(s7_c_pointer(statusbar), s7_integer(context_id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_has_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_has_group "gboolean gtk_window_has_group(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_has_group", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_has_group(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_calendar_select_month(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_select_month "void gtk_calendar_select_month(GtkCalendar* calendar, guint month, \
+guint year)"
+  s7_pointer _p;
+  s7_pointer calendar, month, year;
+  _p = args;
+  calendar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(calendar, GtkCalendar__sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_select_month", 1, calendar, "GtkCalendar*");
+  month = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(month)) s7_wrong_type_arg_error(sc, "gtk_calendar_select_month", 2, month, "guint");
+  year = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(year)) s7_wrong_type_arg_error(sc, "gtk_calendar_select_month", 3, year, "guint");
+  gtk_calendar_select_month(s7_c_pointer(calendar), s7_integer(month), s7_integer(year));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_calendar_mark_day(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_mark_day "void gtk_calendar_mark_day(GtkCalendar* calendar, guint day)"
+  s7_pointer _p;
+  s7_pointer calendar, day;
+  _p = args;
+  calendar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(calendar, GtkCalendar__sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_mark_day", 1, calendar, "GtkCalendar*");
+  day = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(day)) s7_wrong_type_arg_error(sc, "gtk_calendar_mark_day", 2, day, "guint");
+  gtk_calendar_mark_day(s7_c_pointer(calendar), s7_integer(day));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_calendar_unmark_day(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_unmark_day "void gtk_calendar_unmark_day(GtkCalendar* calendar, guint day)"
+  s7_pointer _p;
+  s7_pointer calendar, day;
+  _p = args;
+  calendar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(calendar, GtkCalendar__sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_unmark_day", 1, calendar, "GtkCalendar*");
+  day = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(day)) s7_wrong_type_arg_error(sc, "gtk_calendar_unmark_day", 2, day, "guint");
+  gtk_calendar_unmark_day(s7_c_pointer(calendar), s7_integer(day));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_drag_context_get_source_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_context_get_source_window "GdkWindow* gdk_drag_context_get_source_window(GdkDragContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_context_get_source_window", 1, context, "GdkDragContext*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_drag_context_get_source_window(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gtk_accessible_set_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accessible_set_widget "void gtk_accessible_set_widget(GtkAccessible* accessible, GtkWidget* widget)"
+  s7_pointer _p;
+  s7_pointer accessible, widget;
+  _p = args;
+  accessible = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accessible, GtkAccessible__sym)) s7_wrong_type_arg_error(sc, "gtk_accessible_set_widget", 1, accessible, "GtkAccessible*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_accessible_set_widget", 2, widget, "GtkWidget*");
+  gtk_accessible_set_widget(s7_c_pointer(accessible), s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_message_dialog_get_message_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_message_dialog_get_message_area "GtkWidget* gtk_message_dialog_get_message_area(GtkMessageDialog* message_dialog)"
+  s7_pointer message_dialog;
+  message_dialog = s7_car(args);
+  if (!s7_is_c_pointer_of_type(message_dialog, GtkMessageDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_message_dialog_get_message_area", 1, message_dialog, "GtkMessageDialog*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_message_dialog_get_message_area(s7_c_pointer(message_dialog))));
+}
+
+static s7_pointer lg_gtk_selection_data_get_length(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_get_length "gint gtk_selection_data_get_length(GtkSelectionData* selection_data)"
+  s7_pointer selection_data;
+  selection_data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_get_length", 1, selection_data, "GtkSelectionData*");
+  return(s7_make_integer(sc, gtk_selection_data_get_length(s7_c_pointer(selection_data))));
+}
+
+static s7_pointer lg_gdk_pango_layout_line_get_clip_region(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pango_layout_line_get_clip_region "cairo_region_t* gdk_pango_layout_line_get_clip_region(PangoLayoutLine* line, \
+gint x_origin, gint y_origin, gint* index_ranges, gint n_ranges)"
+  s7_pointer _p;
+  s7_pointer line, x_origin, y_origin, index_ranges, n_ranges;
+  _p = args;
+  line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(line, PangoLayoutLine__sym)) s7_wrong_type_arg_error(sc, "gdk_pango_layout_line_get_clip_region", 1, line, "PangoLayoutLine*");
+  x_origin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x_origin)) s7_wrong_type_arg_error(sc, "gdk_pango_layout_line_get_clip_region", 2, x_origin, "gint");
+  y_origin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y_origin)) s7_wrong_type_arg_error(sc, "gdk_pango_layout_line_get_clip_region", 3, y_origin, "gint");
+  index_ranges = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(index_ranges, gint__sym)) s7_wrong_type_arg_error(sc, "gdk_pango_layout_line_get_clip_region", 4, index_ranges, "gint*");
+  n_ranges = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_ranges)) s7_wrong_type_arg_error(sc, "gdk_pango_layout_line_get_clip_region", 5, n_ranges, "gint");
+  return(s7_make_type_with_c_pointer(sc, cairo_region_t__sym, gdk_pango_layout_line_get_clip_region(s7_c_pointer(line), s7_integer(x_origin), s7_integer(y_origin), s7_c_pointer(index_ranges), s7_integer(n_ranges))));
+}
+
+static s7_pointer lg_gdk_pango_layout_get_clip_region(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pango_layout_get_clip_region "cairo_region_t* gdk_pango_layout_get_clip_region(PangoLayout* layout, \
+gint x_origin, gint y_origin, gint* index_ranges, gint n_ranges)"
+  s7_pointer _p;
+  s7_pointer layout, x_origin, y_origin, index_ranges, n_ranges;
+  _p = args;
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "gdk_pango_layout_get_clip_region", 1, layout, "PangoLayout*");
+  x_origin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x_origin)) s7_wrong_type_arg_error(sc, "gdk_pango_layout_get_clip_region", 2, x_origin, "gint");
+  y_origin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y_origin)) s7_wrong_type_arg_error(sc, "gdk_pango_layout_get_clip_region", 3, y_origin, "gint");
+  index_ranges = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(index_ranges, gint__sym)) s7_wrong_type_arg_error(sc, "gdk_pango_layout_get_clip_region", 4, index_ranges, "gint*");
+  n_ranges = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_ranges)) s7_wrong_type_arg_error(sc, "gdk_pango_layout_get_clip_region", 5, n_ranges, "gint");
+  return(s7_make_type_with_c_pointer(sc, cairo_region_t__sym, gdk_pango_layout_get_clip_region(s7_c_pointer(layout), s7_integer(x_origin), s7_integer(y_origin), s7_c_pointer(index_ranges), s7_integer(n_ranges))));
+}
+
+static s7_pointer lg_gdk_window_shape_combine_region(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_shape_combine_region "void gdk_window_shape_combine_region(GdkWindow* window, \
+cairo_region_t* shape_region, gint offset_x, gint offset_y)"
+  s7_pointer _p;
+  s7_pointer window, shape_region, offset_x, offset_y;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_shape_combine_region", 1, window, "GdkWindow*");
+  shape_region = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(shape_region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "gdk_window_shape_combine_region", 2, shape_region, "cairo_region_t*");
+  offset_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(offset_x)) s7_wrong_type_arg_error(sc, "gdk_window_shape_combine_region", 3, offset_x, "gint");
+  offset_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(offset_y)) s7_wrong_type_arg_error(sc, "gdk_window_shape_combine_region", 4, offset_y, "gint");
+  gdk_window_shape_combine_region(s7_c_pointer(window), s7_c_pointer(shape_region), s7_integer(offset_x), s7_integer(offset_y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_invalidate_region(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_invalidate_region "void gdk_window_invalidate_region(GdkWindow* window, cairo_region_t* region, \
+gboolean invalidate_children)"
+  s7_pointer _p;
+  s7_pointer window, region, invalidate_children;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_invalidate_region", 1, window, "GdkWindow*");
+  region = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "gdk_window_invalidate_region", 2, region, "cairo_region_t*");
+  invalidate_children = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(invalidate_children)) s7_wrong_type_arg_error(sc, "gdk_window_invalidate_region", 3, invalidate_children, "gboolean");
+  gdk_window_invalidate_region(s7_c_pointer(window), s7_c_pointer(region), lg_boolean(invalidate_children));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_get_update_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_update_area "cairo_region_t* gdk_window_get_update_area(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_update_area", 1, window, "GdkWindow*");
+  return(s7_make_type_with_c_pointer(sc, cairo_region_t__sym, gdk_window_get_update_area(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_move_region(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_move_region "void gdk_window_move_region(GdkWindow* window, cairo_region_t* region, \
+gint dx, gint dy)"
+  s7_pointer _p;
+  s7_pointer window, region, dx, dy;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_move_region", 1, window, "GdkWindow*");
+  region = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "gdk_window_move_region", 2, region, "cairo_region_t*");
+  dx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dx)) s7_wrong_type_arg_error(sc, "gdk_window_move_region", 3, dx, "gint");
+  dy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dy)) s7_wrong_type_arg_error(sc, "gdk_window_move_region", 4, dy, "gint");
+  gdk_window_move_region(s7_c_pointer(window), s7_c_pointer(region), s7_integer(dx), s7_integer(dy));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_keymap_get_num_lock_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keymap_get_num_lock_state "gboolean gdk_keymap_get_num_lock_state(GdkKeymap* keymap)"
+  s7_pointer keymap;
+  keymap = s7_car(args);
+  if (!s7_is_c_pointer_of_type(keymap, GdkKeymap__sym)) s7_wrong_type_arg_error(sc, "gdk_keymap_get_num_lock_state", 1, keymap, "GdkKeymap*");
+  return(s7_make_boolean(sc, gdk_keymap_get_num_lock_state(s7_c_pointer(keymap))));
+}
+
+static s7_pointer lg_gdk_window_has_native(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_has_native "gboolean gdk_window_has_native(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_has_native", 1, window, "GdkWindow*");
+  return(s7_make_boolean(sc, gdk_window_has_native(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_cursor_get_cursor_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cursor_get_cursor_type "GdkCursorType gdk_cursor_get_cursor_type(GdkCursor* cursor)"
+  s7_pointer cursor;
+  cursor = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cursor, GdkCursor__sym)) s7_wrong_type_arg_error(sc, "gdk_cursor_get_cursor_type", 1, cursor, "GdkCursor*");
+  return(s7_make_integer(sc, gdk_cursor_get_cursor_type(s7_c_pointer(cursor))));
+}
+
+static s7_pointer lg_gdk_display_is_closed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_is_closed "gboolean gdk_display_is_closed(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_is_closed", 1, display, "GdkDisplay*");
+  return(s7_make_boolean(sc, gdk_display_is_closed(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_window_create_similar_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_create_similar_surface "cairo_surface_t* gdk_window_create_similar_surface(GdkWindow* window, \
+cairo_content_t content, int width, int height)"
+  s7_pointer _p;
+  s7_pointer window, content, width, height;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_create_similar_surface", 1, window, "GdkWindow*");
+  content = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(content)) s7_wrong_type_arg_error(sc, "gdk_window_create_similar_surface", 2, content, "cairo_content_t");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gdk_window_create_similar_surface", 3, width, "int");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gdk_window_create_similar_surface", 4, height, "int");
+  return(s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, gdk_window_create_similar_surface(s7_c_pointer(window), s7_integer(content), s7_integer(width), s7_integer(height))));
+}
+
+static s7_pointer lg_gtk_expander_set_label_fill(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_set_label_fill "void gtk_expander_set_label_fill(GtkExpander* expander, gboolean label_fill)"
+  s7_pointer _p;
+  s7_pointer expander, label_fill;
+  _p = args;
+  expander = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(expander, GtkExpander__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_set_label_fill", 1, expander, "GtkExpander*");
+  label_fill = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(label_fill)) s7_wrong_type_arg_error(sc, "gtk_expander_set_label_fill", 2, label_fill, "gboolean");
+  gtk_expander_set_label_fill(s7_c_pointer(expander), lg_boolean(label_fill));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_expander_get_label_fill(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_get_label_fill "gboolean gtk_expander_get_label_fill(GtkExpander* expander)"
+  s7_pointer expander;
+  expander = s7_car(args);
+  if (!s7_is_c_pointer_of_type(expander, GtkExpander__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_get_label_fill", 1, expander, "GtkExpander*");
+  return(s7_make_boolean(sc, gtk_expander_get_label_fill(s7_c_pointer(expander))));
+}
+
+static s7_pointer lg_gtk_calendar_get_day_is_marked(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_calendar_get_day_is_marked "gboolean gtk_calendar_get_day_is_marked(GtkCalendar* calendar, \
+guint day)"
+  s7_pointer _p;
+  s7_pointer calendar, day;
+  _p = args;
+  calendar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(calendar, GtkCalendar__sym)) s7_wrong_type_arg_error(sc, "gtk_calendar_get_day_is_marked", 1, calendar, "GtkCalendar*");
+  day = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(day)) s7_wrong_type_arg_error(sc, "gtk_calendar_get_day_is_marked", 2, day, "guint");
+  return(s7_make_boolean(sc, gtk_calendar_get_day_is_marked(s7_c_pointer(calendar), s7_integer(day))));
+}
+
+static s7_pointer lg_gtk_progress_bar_set_inverted(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_progress_bar_set_inverted "void gtk_progress_bar_set_inverted(GtkProgressBar* pbar, gboolean inverted)"
+  s7_pointer _p;
+  s7_pointer pbar, inverted;
+  _p = args;
+  pbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pbar, GtkProgressBar__sym)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_set_inverted", 1, pbar, "GtkProgressBar*");
+  inverted = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(inverted)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_set_inverted", 2, inverted, "gboolean");
+  gtk_progress_bar_set_inverted(s7_c_pointer(pbar), lg_boolean(inverted));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_progress_bar_get_inverted(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_progress_bar_get_inverted "gboolean gtk_progress_bar_get_inverted(GtkProgressBar* pbar)"
+  s7_pointer pbar;
+  pbar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pbar, GtkProgressBar__sym)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_get_inverted", 1, pbar, "GtkProgressBar*");
+  return(s7_make_boolean(sc, gtk_progress_bar_get_inverted(s7_c_pointer(pbar))));
+}
+
+static s7_pointer lg_gtk_radio_button_join_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_button_join_group "void gtk_radio_button_join_group(GtkRadioButton* radio_button, \
+GtkRadioButton* group_source)"
+  s7_pointer _p;
+  s7_pointer radio_button, group_source;
+  _p = args;
+  radio_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(radio_button, GtkRadioButton__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_button_join_group", 1, radio_button, "GtkRadioButton*");
+  group_source = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group_source, GtkRadioButton__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_button_join_group", 2, group_source, "GtkRadioButton*");
+  gtk_radio_button_join_group(s7_c_pointer(radio_button), s7_c_pointer(group_source));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_adjustment_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_new "GtkAdjustment* gtk_adjustment_new(gdouble value, gdouble lower, gdouble upper, \
+gdouble step_increment, gdouble page_increment, gdouble page_size)"
+  s7_pointer _p;
+  s7_pointer value, lower, upper, step_increment, page_increment, page_size;
+  _p = args;
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(value)) s7_wrong_type_arg_error(sc, "gtk_adjustment_new", 1, value, "gdouble");
+  lower = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(lower)) s7_wrong_type_arg_error(sc, "gtk_adjustment_new", 2, lower, "gdouble");
+  upper = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(upper)) s7_wrong_type_arg_error(sc, "gtk_adjustment_new", 3, upper, "gdouble");
+  step_increment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(step_increment)) s7_wrong_type_arg_error(sc, "gtk_adjustment_new", 4, step_increment, "gdouble");
+  page_increment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(page_increment)) s7_wrong_type_arg_error(sc, "gtk_adjustment_new", 5, page_increment, "gdouble");
+  page_size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(page_size)) s7_wrong_type_arg_error(sc, "gtk_adjustment_new", 6, page_size, "gdouble");
+  return(s7_make_type_with_c_pointer(sc, GtkAdjustment__sym, gtk_adjustment_new(s7_real(value), s7_real(lower), s7_real(upper), s7_real(step_increment), s7_real(page_increment), s7_real(page_size))));
+}
+
+static s7_pointer lg_gtk_binding_set_activate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_binding_set_activate "gboolean gtk_binding_set_activate(GtkBindingSet* binding_set, guint keyval, \
+GdkModifierType modifiers, GObject* object)"
+  s7_pointer _p;
+  s7_pointer binding_set, keyval, modifiers, object;
+  _p = args;
+  binding_set = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(binding_set, GtkBindingSet__sym)) s7_wrong_type_arg_error(sc, "gtk_binding_set_activate", 1, binding_set, "GtkBindingSet*");
+  keyval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gtk_binding_set_activate", 2, keyval, "guint");
+  modifiers = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(modifiers)) s7_wrong_type_arg_error(sc, "gtk_binding_set_activate", 3, modifiers, "GdkModifierType");
+  object = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(object, GObject__sym)) s7_wrong_type_arg_error(sc, "gtk_binding_set_activate", 4, object, "GObject*");
+  return(s7_make_boolean(sc, gtk_binding_set_activate(s7_c_pointer(binding_set), s7_integer(keyval), s7_integer(modifiers), s7_c_pointer(object))));
+}
+
+static s7_pointer lg_gtk_bindings_activate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_bindings_activate "gboolean gtk_bindings_activate(GObject* object, guint keyval, GdkModifierType modifiers)"
+  s7_pointer _p;
+  s7_pointer object, keyval, modifiers;
+  _p = args;
+  object = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(object, GObject__sym)) s7_wrong_type_arg_error(sc, "gtk_bindings_activate", 1, object, "GObject*");
+  keyval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(keyval)) s7_wrong_type_arg_error(sc, "gtk_bindings_activate", 2, keyval, "guint");
+  modifiers = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(modifiers)) s7_wrong_type_arg_error(sc, "gtk_bindings_activate", 3, modifiers, "GdkModifierType");
+  return(s7_make_boolean(sc, gtk_bindings_activate(s7_c_pointer(object), s7_integer(keyval), s7_integer(modifiers))));
+}
+
+static s7_pointer lg_gtk_icon_view_create_drag_icon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_create_drag_icon "cairo_surface_t* gtk_icon_view_create_drag_icon(GtkIconView* icon_view, \
+GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer icon_view, path;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_create_drag_icon", 1, icon_view, "GtkIconView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_create_drag_icon", 2, path, "GtkTreePath*");
+  return(s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, gtk_icon_view_create_drag_icon(s7_c_pointer(icon_view), s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_tree_view_create_row_drag_icon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_create_row_drag_icon "cairo_surface_t* gtk_tree_view_create_row_drag_icon(GtkTreeView* tree_view, \
+GtkTreePath* path)"
+  s7_pointer _p;
+  s7_pointer tree_view, path;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_create_row_drag_icon", 1, tree_view, "GtkTreeView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_create_row_drag_icon", 2, path, "GtkTreePath*");
+  return(s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, gtk_tree_view_create_row_drag_icon(s7_c_pointer(tree_view), s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gdk_cairo_get_clip_rectangle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cairo_get_clip_rectangle "gboolean gdk_cairo_get_clip_rectangle(cairo_t* cr, GdkRectangle* rect)"
+  s7_pointer _p;
+  s7_pointer cr, rect;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gdk_cairo_get_clip_rectangle", 1, cr, "cairo_t*");
+  rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rect, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_cairo_get_clip_rectangle", 2, rect, "GdkRectangle*");
+  return(s7_make_boolean(sc, gdk_cairo_get_clip_rectangle(s7_c_pointer(cr), s7_c_pointer(rect))));
+}
+
+static s7_pointer lg_gdk_cairo_region_create_from_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cairo_region_create_from_surface "cairo_region_t* gdk_cairo_region_create_from_surface(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "gdk_cairo_region_create_from_surface", 1, surface, "cairo_surface_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_region_t__sym, gdk_cairo_region_create_from_surface(s7_c_pointer(surface))));
+}
+
+static s7_pointer lg_gdk_window_get_screen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_screen "GdkScreen* gdk_window_get_screen(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_screen", 1, window, "GdkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GdkScreen__sym, gdk_window_get_screen(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_get_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_display "GdkDisplay* gdk_window_get_display(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_display", 1, window, "GdkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GdkDisplay__sym, gdk_window_get_display(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_get_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_width "int gdk_window_get_width(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_width", 1, window, "GdkWindow*");
+  return(s7_make_integer(sc, gdk_window_get_width(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_get_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_height "int gdk_window_get_height(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_height", 1, window, "GdkWindow*");
+  return(s7_make_integer(sc, gdk_window_get_height(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_cell_renderer_get_request_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_get_request_mode "GtkSizeRequestMode gtk_cell_renderer_get_request_mode(GtkCellRenderer* cell)"
+  s7_pointer cell;
+  cell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_request_mode", 1, cell, "GtkCellRenderer*");
+  return(s7_make_integer(sc, gtk_cell_renderer_get_request_mode(s7_c_pointer(cell))));
+}
+
+static s7_pointer lg_gtk_cell_renderer_get_preferred_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_get_preferred_width "void gtk_cell_renderer_get_preferred_width(GtkCellRenderer* cell, \
+GtkWidget* widget, gint* [minimum_size], gint* [natural_size])"
+  s7_pointer _p;
+  s7_pointer cell, widget;
+  gint ref_minimum_size;
+  gint ref_natural_size;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_preferred_width", 1, cell, "GtkCellRenderer*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_preferred_width", 2, widget, "GtkWidget*");
+  gtk_cell_renderer_get_preferred_width(s7_c_pointer(cell), s7_c_pointer(widget), &ref_minimum_size, &ref_natural_size);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_minimum_size), s7_make_integer(sc, ref_natural_size)));
+}
+
+static s7_pointer lg_gtk_cell_renderer_get_preferred_height_for_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_get_preferred_height_for_width "void gtk_cell_renderer_get_preferred_height_for_width(GtkCellRenderer* cell, \
+GtkWidget* widget, gint width, gint* [minimum_height], gint* [natural_height])"
+  s7_pointer _p;
+  s7_pointer cell, widget, width;
+  gint ref_minimum_height;
+  gint ref_natural_height;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_preferred_height_for_width", 1, cell, "GtkCellRenderer*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_preferred_height_for_width", 2, widget, "GtkWidget*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_preferred_height_for_width", 3, width, "gint");
+  gtk_cell_renderer_get_preferred_height_for_width(s7_c_pointer(cell), s7_c_pointer(widget), s7_integer(width), &ref_minimum_height, &ref_natural_height);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_minimum_height), s7_make_integer(sc, ref_natural_height)));
+}
+
+static s7_pointer lg_gtk_cell_renderer_get_preferred_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_get_preferred_height "void gtk_cell_renderer_get_preferred_height(GtkCellRenderer* cell, \
+GtkWidget* widget, gint* [minimum_size], gint* [natural_size])"
+  s7_pointer _p;
+  s7_pointer cell, widget;
+  gint ref_minimum_size;
+  gint ref_natural_size;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_preferred_height", 1, cell, "GtkCellRenderer*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_preferred_height", 2, widget, "GtkWidget*");
+  gtk_cell_renderer_get_preferred_height(s7_c_pointer(cell), s7_c_pointer(widget), &ref_minimum_size, &ref_natural_size);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_minimum_size), s7_make_integer(sc, ref_natural_size)));
+}
+
+static s7_pointer lg_gtk_cell_renderer_get_preferred_width_for_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_renderer_get_preferred_width_for_height "void gtk_cell_renderer_get_preferred_width_for_height(GtkCellRenderer* cell, \
+GtkWidget* widget, gint height, gint* [minimum_width], gint* [natural_width])"
+  s7_pointer _p;
+  s7_pointer cell, widget, height;
+  gint ref_minimum_width;
+  gint ref_natural_width;
+  _p = args;
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_preferred_width_for_height", 1, cell, "GtkCellRenderer*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_preferred_width_for_height", 2, widget, "GtkWidget*");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gtk_cell_renderer_get_preferred_width_for_height", 3, height, "gint");
+  gtk_cell_renderer_get_preferred_width_for_height(s7_c_pointer(cell), s7_c_pointer(widget), s7_integer(height), &ref_minimum_width, &ref_natural_width);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_minimum_width), s7_make_integer(sc, ref_natural_width)));
+}
+
+static s7_pointer lg_gtk_drag_set_icon_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_set_icon_surface "void gtk_drag_set_icon_surface(GdkDragContext* context, cairo_surface_t* surface)"
+  s7_pointer _p;
+  s7_pointer context, surface;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_surface", 1, context, "GdkDragContext*");
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_surface", 2, surface, "cairo_surface_t*");
+  gtk_drag_set_icon_surface(s7_c_pointer(context), s7_c_pointer(surface));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_set_group_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_set_group_name "void gtk_notebook_set_group_name(GtkNotebook* notebook, gchar* group_name)"
+  s7_pointer _p;
+  s7_pointer notebook, group_name;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_group_name", 1, notebook, "GtkNotebook*");
+  group_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(group_name)) s7_wrong_type_arg_error(sc, "gtk_notebook_set_group_name", 2, group_name, "gchar*");
+  gtk_notebook_set_group_name(s7_c_pointer(notebook), (const gchar*)s7_string(group_name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_notebook_get_group_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_get_group_name "gchar* gtk_notebook_get_group_name(GtkNotebook* notebook)"
+  s7_pointer notebook;
+  notebook = s7_car(args);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_get_group_name", 1, notebook, "GtkNotebook*");
+    return(s7_make_string(sc, (gchar*)gtk_notebook_get_group_name(s7_c_pointer(notebook))));
+}
+
+static s7_pointer lg_gtk_widget_draw(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_draw "void gtk_widget_draw(GtkWidget* widget, cairo_t* cr)"
+  s7_pointer _p;
+  s7_pointer widget, cr;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_draw", 1, widget, "GtkWidget*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_draw", 2, cr, "cairo_t*");
+  gtk_widget_draw(s7_c_pointer(widget), s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_request_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_request_mode "GtkSizeRequestMode gtk_widget_get_request_mode(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_request_mode", 1, widget, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_widget_get_request_mode(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_allocated_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_allocated_width "int gtk_widget_get_allocated_width(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_allocated_width", 1, widget, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_widget_get_allocated_width(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_allocated_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_allocated_height "int gtk_widget_get_allocated_height(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_allocated_height", 1, widget, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_widget_get_allocated_height(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_halign(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_halign "GtkAlign gtk_widget_get_halign(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_halign", 1, widget, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_widget_get_halign(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_halign(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_halign "void gtk_widget_set_halign(GtkWidget* widget, GtkAlign align)"
+  s7_pointer _p;
+  s7_pointer widget, align;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_halign", 1, widget, "GtkWidget*");
+  align = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(align)) s7_wrong_type_arg_error(sc, "gtk_widget_set_halign", 2, align, "GtkAlign");
+  gtk_widget_set_halign(s7_c_pointer(widget), s7_integer(align));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_valign(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_valign "GtkAlign gtk_widget_get_valign(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_valign", 1, widget, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_widget_get_valign(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_valign(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_valign "void gtk_widget_set_valign(GtkWidget* widget, GtkAlign align)"
+  s7_pointer _p;
+  s7_pointer widget, align;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_valign", 1, widget, "GtkWidget*");
+  align = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(align)) s7_wrong_type_arg_error(sc, "gtk_widget_set_valign", 2, align, "GtkAlign");
+  gtk_widget_set_valign(s7_c_pointer(widget), s7_integer(align));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_margin_top(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_margin_top "gint gtk_widget_get_margin_top(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_margin_top", 1, widget, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_widget_get_margin_top(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_margin_top(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_margin_top "void gtk_widget_set_margin_top(GtkWidget* widget, gint margin)"
+  s7_pointer _p;
+  s7_pointer widget, margin;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_margin_top", 1, widget, "GtkWidget*");
+  margin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(margin)) s7_wrong_type_arg_error(sc, "gtk_widget_set_margin_top", 2, margin, "gint");
+  gtk_widget_set_margin_top(s7_c_pointer(widget), s7_integer(margin));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_margin_bottom(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_margin_bottom "gint gtk_widget_get_margin_bottom(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_margin_bottom", 1, widget, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_widget_get_margin_bottom(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_margin_bottom(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_margin_bottom "void gtk_widget_set_margin_bottom(GtkWidget* widget, gint margin)"
+  s7_pointer _p;
+  s7_pointer widget, margin;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_margin_bottom", 1, widget, "GtkWidget*");
+  margin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(margin)) s7_wrong_type_arg_error(sc, "gtk_widget_set_margin_bottom", 2, margin, "gint");
+  gtk_widget_set_margin_bottom(s7_c_pointer(widget), s7_integer(margin));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_shape_combine_region(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_shape_combine_region "void gtk_widget_shape_combine_region(GtkWidget* widget, \
+cairo_region_t* region)"
+  s7_pointer _p;
+  s7_pointer widget, region;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_shape_combine_region", 1, widget, "GtkWidget*");
+  region = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_shape_combine_region", 2, region, "cairo_region_t*");
+  gtk_widget_shape_combine_region(s7_c_pointer(widget), s7_c_pointer(region));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_input_shape_combine_region(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_input_shape_combine_region "void gtk_widget_input_shape_combine_region(GtkWidget* widget, \
+cairo_region_t* region)"
+  s7_pointer _p;
+  s7_pointer widget, region;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_input_shape_combine_region", 1, widget, "GtkWidget*");
+  region = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_input_shape_combine_region", 2, region, "cairo_region_t*");
+  gtk_widget_input_shape_combine_region(s7_c_pointer(widget), s7_c_pointer(region));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cairo_transform_to_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cairo_transform_to_window "void gtk_cairo_transform_to_window(cairo_t* cr, GtkWidget* widget, \
+GdkWindow* window)"
+  s7_pointer _p;
+  s7_pointer cr, widget, window;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_cairo_transform_to_window", 1, cr, "cairo_t*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_cairo_transform_to_window", 2, widget, "GtkWidget*");
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_cairo_transform_to_window", 3, window, "GdkWindow*");
+  gtk_cairo_transform_to_window(s7_c_pointer(cr), s7_c_pointer(widget), s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_new_with_entry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_new_with_entry "GtkWidget* gtk_combo_box_new_with_entry( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_combo_box_new_with_entry()));
+}
+
+static s7_pointer lg_gtk_combo_box_get_has_entry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_get_has_entry "gboolean gtk_combo_box_get_has_entry(GtkComboBox* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_get_has_entry", 1, combo_box, "GtkComboBox*");
+  return(s7_make_boolean(sc, gtk_combo_box_get_has_entry(s7_c_pointer(combo_box))));
+}
+
+static s7_pointer lg_gtk_combo_box_set_entry_text_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_set_entry_text_column "void gtk_combo_box_set_entry_text_column(GtkComboBox* combo_box, \
+gint text_column)"
+  s7_pointer _p;
+  s7_pointer combo_box, text_column;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_entry_text_column", 1, combo_box, "GtkComboBox*");
+  text_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(text_column)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_entry_text_column", 2, text_column, "gint");
+  gtk_combo_box_set_entry_text_column(s7_c_pointer(combo_box), s7_integer(text_column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_get_entry_text_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_get_entry_text_column "gint gtk_combo_box_get_entry_text_column(GtkComboBox* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_get_entry_text_column", 1, combo_box, "GtkComboBox*");
+  return(s7_make_integer(sc, gtk_combo_box_get_entry_text_column(s7_c_pointer(combo_box))));
+}
+
+static s7_pointer lg_gtk_target_entry_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_entry_new "GtkTargetEntry* gtk_target_entry_new(char* target, guint flags, guint info)"
+  s7_pointer _p;
+  s7_pointer target, flags, info;
+  _p = args;
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(target)) s7_wrong_type_arg_error(sc, "gtk_target_entry_new", 1, target, "char*");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_target_entry_new", 2, flags, "guint");
+  info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(info)) s7_wrong_type_arg_error(sc, "gtk_target_entry_new", 3, info, "guint");
+  return(s7_make_type_with_c_pointer(sc, GtkTargetEntry__sym, gtk_target_entry_new((const char*)(char*)s7_string(target), s7_integer(flags), s7_integer(info))));
+}
+
+static s7_pointer lg_gtk_target_entry_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_entry_copy "GtkTargetEntry* gtk_target_entry_copy(GtkTargetEntry* data)"
+  s7_pointer data;
+  data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(data, GtkTargetEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_target_entry_copy", 1, data, "GtkTargetEntry*");
+  return(s7_make_type_with_c_pointer(sc, GtkTargetEntry__sym, gtk_target_entry_copy(s7_c_pointer(data))));
+}
+
+static s7_pointer lg_gtk_target_entry_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_target_entry_free "void gtk_target_entry_free(GtkTargetEntry* data)"
+  s7_pointer data;
+  data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(data, GtkTargetEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_target_entry_free", 1, data, "GtkTargetEntry*");
+  gtk_target_entry_free(s7_c_pointer(data));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_hexpand(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_hexpand "gboolean gtk_widget_get_hexpand(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_hexpand", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_hexpand(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_hexpand(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_hexpand "void gtk_widget_set_hexpand(GtkWidget* widget, gboolean expand)"
+  s7_pointer _p;
+  s7_pointer widget, expand;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_hexpand", 1, widget, "GtkWidget*");
+  expand = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(expand)) s7_wrong_type_arg_error(sc, "gtk_widget_set_hexpand", 2, expand, "gboolean");
+  gtk_widget_set_hexpand(s7_c_pointer(widget), lg_boolean(expand));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_hexpand_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_hexpand_set "gboolean gtk_widget_get_hexpand_set(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_hexpand_set", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_hexpand_set(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_hexpand_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_hexpand_set "void gtk_widget_set_hexpand_set(GtkWidget* widget, gboolean set)"
+  s7_pointer _p;
+  s7_pointer widget, set;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_hexpand_set", 1, widget, "GtkWidget*");
+  set = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(set)) s7_wrong_type_arg_error(sc, "gtk_widget_set_hexpand_set", 2, set, "gboolean");
+  gtk_widget_set_hexpand_set(s7_c_pointer(widget), lg_boolean(set));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_vexpand(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_vexpand "gboolean gtk_widget_get_vexpand(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_vexpand", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_vexpand(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_vexpand(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_vexpand "void gtk_widget_set_vexpand(GtkWidget* widget, gboolean expand)"
+  s7_pointer _p;
+  s7_pointer widget, expand;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_vexpand", 1, widget, "GtkWidget*");
+  expand = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(expand)) s7_wrong_type_arg_error(sc, "gtk_widget_set_vexpand", 2, expand, "gboolean");
+  gtk_widget_set_vexpand(s7_c_pointer(widget), lg_boolean(expand));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_vexpand_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_vexpand_set "gboolean gtk_widget_get_vexpand_set(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_vexpand_set", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_vexpand_set(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_vexpand_set(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_vexpand_set "void gtk_widget_set_vexpand_set(GtkWidget* widget, gboolean set)"
+  s7_pointer _p;
+  s7_pointer widget, set;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_vexpand_set", 1, widget, "GtkWidget*");
+  set = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(set)) s7_wrong_type_arg_error(sc, "gtk_widget_set_vexpand_set", 2, set, "gboolean");
+  gtk_widget_set_vexpand_set(s7_c_pointer(widget), lg_boolean(set));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_queue_compute_expand(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_queue_compute_expand "void gtk_widget_queue_compute_expand(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_queue_compute_expand", 1, widget, "GtkWidget*");
+  gtk_widget_queue_compute_expand(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_compute_expand(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_compute_expand "gboolean gtk_widget_compute_expand(GtkWidget* widget, GtkOrientation orientation)"
+  s7_pointer _p;
+  s7_pointer widget, orientation;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_compute_expand", 1, widget, "GtkWidget*");
+  orientation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(orientation)) s7_wrong_type_arg_error(sc, "gtk_widget_compute_expand", 2, orientation, "GtkOrientation");
+  return(s7_make_boolean(sc, gtk_widget_compute_expand(s7_c_pointer(widget), s7_integer(orientation))));
+}
+
+static s7_pointer lg_gtk_combo_box_text_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_text_new "GtkWidget* gtk_combo_box_text_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_combo_box_text_new()));
+}
+
+static s7_pointer lg_gtk_combo_box_text_new_with_entry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_text_new_with_entry "GtkWidget* gtk_combo_box_text_new_with_entry( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_combo_box_text_new_with_entry()));
+}
+
+static s7_pointer lg_gtk_combo_box_text_append_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_text_append_text "void gtk_combo_box_text_append_text(GtkComboBoxText* combo_box, \
+gchar* text)"
+  s7_pointer _p;
+  s7_pointer combo_box, text;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBoxText__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_append_text", 1, combo_box, "GtkComboBoxText*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_append_text", 2, text, "gchar*");
+  gtk_combo_box_text_append_text(s7_c_pointer(combo_box), (const gchar*)s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_text_insert_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_text_insert_text "void gtk_combo_box_text_insert_text(GtkComboBoxText* combo_box, \
+gint position, gchar* text)"
+  s7_pointer _p;
+  s7_pointer combo_box, position, text;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBoxText__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_insert_text", 1, combo_box, "GtkComboBoxText*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_insert_text", 2, position, "gint");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_insert_text", 3, text, "gchar*");
+  gtk_combo_box_text_insert_text(s7_c_pointer(combo_box), s7_integer(position), (const gchar*)s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_text_prepend_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_text_prepend_text "void gtk_combo_box_text_prepend_text(GtkComboBoxText* combo_box, \
+gchar* text)"
+  s7_pointer _p;
+  s7_pointer combo_box, text;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBoxText__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_prepend_text", 1, combo_box, "GtkComboBoxText*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_prepend_text", 2, text, "gchar*");
+  gtk_combo_box_text_prepend_text(s7_c_pointer(combo_box), (const gchar*)s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_text_remove(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_text_remove "void gtk_combo_box_text_remove(GtkComboBoxText* combo_box, gint position)"
+  s7_pointer _p;
+  s7_pointer combo_box, position;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBoxText__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_remove", 1, combo_box, "GtkComboBoxText*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_remove", 2, position, "gint");
+  gtk_combo_box_text_remove(s7_c_pointer(combo_box), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_text_get_active_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_text_get_active_text "gchar* gtk_combo_box_text_get_active_text(GtkComboBoxText* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBoxText__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_get_active_text", 1, combo_box, "GtkComboBoxText*");
+  return(s7_make_string(sc, gtk_combo_box_text_get_active_text(s7_c_pointer(combo_box))));
+}
+
+static s7_pointer lg_gdk_cairo_set_source_rgba(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cairo_set_source_rgba "void gdk_cairo_set_source_rgba(cairo_t* cr, GdkRGBA* rgba)"
+  s7_pointer _p;
+  s7_pointer cr, rgba;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gdk_cairo_set_source_rgba", 1, cr, "cairo_t*");
+  rgba = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rgba, GdkRGBA__sym)) s7_wrong_type_arg_error(sc, "gdk_cairo_set_source_rgba", 2, rgba, "GdkRGBA*");
+  gdk_cairo_set_source_rgba(s7_c_pointer(cr), s7_c_pointer(rgba));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_text_remove_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_text_remove_all "void gtk_combo_box_text_remove_all(GtkComboBoxText* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBoxText__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_remove_all", 1, combo_box, "GtkComboBoxText*");
+  gtk_combo_box_text_remove_all(s7_c_pointer(combo_box));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_set_popup_fixed_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_set_popup_fixed_width "void gtk_combo_box_set_popup_fixed_width(GtkComboBox* combo_box, \
+gboolean fixed)"
+  s7_pointer _p;
+  s7_pointer combo_box, fixed;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_popup_fixed_width", 1, combo_box, "GtkComboBox*");
+  fixed = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(fixed)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_popup_fixed_width", 2, fixed, "gboolean");
+  gtk_combo_box_set_popup_fixed_width(s7_c_pointer(combo_box), lg_boolean(fixed));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_get_popup_fixed_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_get_popup_fixed_width "gboolean gtk_combo_box_get_popup_fixed_width(GtkComboBox* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_get_popup_fixed_width", 1, combo_box, "GtkComboBox*");
+  return(s7_make_boolean(sc, gtk_combo_box_get_popup_fixed_width(s7_c_pointer(combo_box))));
+}
+
+static s7_pointer lg_gtk_scrolled_window_get_min_content_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_get_min_content_width "gint gtk_scrolled_window_get_min_content_width(GtkScrolledWindow* scrolled_window)"
+  s7_pointer scrolled_window;
+  scrolled_window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_get_min_content_width", 1, scrolled_window, "GtkScrolledWindow*");
+  return(s7_make_integer(sc, gtk_scrolled_window_get_min_content_width(s7_c_pointer(scrolled_window))));
+}
+
+static s7_pointer lg_gtk_scrolled_window_set_min_content_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_set_min_content_width "void gtk_scrolled_window_set_min_content_width(GtkScrolledWindow* scrolled_window, \
+gint width)"
+  s7_pointer _p;
+  s7_pointer scrolled_window, width;
+  _p = args;
+  scrolled_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_min_content_width", 1, scrolled_window, "GtkScrolledWindow*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_min_content_width", 2, width, "gint");
+  gtk_scrolled_window_set_min_content_width(s7_c_pointer(scrolled_window), s7_integer(width));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrolled_window_get_min_content_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_get_min_content_height "gint gtk_scrolled_window_get_min_content_height(GtkScrolledWindow* scrolled_window)"
+  s7_pointer scrolled_window;
+  scrolled_window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_get_min_content_height", 1, scrolled_window, "GtkScrolledWindow*");
+  return(s7_make_integer(sc, gtk_scrolled_window_get_min_content_height(s7_c_pointer(scrolled_window))));
+}
+
+static s7_pointer lg_gtk_scrolled_window_set_min_content_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_set_min_content_height "void gtk_scrolled_window_set_min_content_height(GtkScrolledWindow* scrolled_window, \
+gint height)"
+  s7_pointer _p;
+  s7_pointer scrolled_window, height;
+  _p = args;
+  scrolled_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_min_content_height", 1, scrolled_window, "GtkScrolledWindow*");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_min_content_height", 2, height, "gint");
+  gtk_scrolled_window_set_min_content_height(s7_c_pointer(scrolled_window), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_grid_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_new "GtkWidget* gtk_grid_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_grid_new()));
+}
+
+static s7_pointer lg_gtk_grid_attach(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_attach "void gtk_grid_attach(GtkGrid* grid, GtkWidget* child, gint left, gint top, \
+gint width, gint height)"
+  s7_pointer _p;
+  s7_pointer grid, child, left, top, width, height;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_attach", 1, grid, "GtkGrid*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_attach", 2, child, "GtkWidget*");
+  left = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(left)) s7_wrong_type_arg_error(sc, "gtk_grid_attach", 3, left, "gint");
+  top = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(top)) s7_wrong_type_arg_error(sc, "gtk_grid_attach", 4, top, "gint");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gtk_grid_attach", 5, width, "gint");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gtk_grid_attach", 6, height, "gint");
+  gtk_grid_attach(s7_c_pointer(grid), s7_c_pointer(child), s7_integer(left), s7_integer(top), s7_integer(width), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_grid_attach_next_to(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_attach_next_to "void gtk_grid_attach_next_to(GtkGrid* grid, GtkWidget* child, GtkWidget* sibling, \
+GtkPositionType side, gint width, gint height)"
+  s7_pointer _p;
+  s7_pointer grid, child, sibling, side, width, height;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_attach_next_to", 1, grid, "GtkGrid*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_attach_next_to", 2, child, "GtkWidget*");
+  sibling = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sibling, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_attach_next_to", 3, sibling, "GtkWidget*");
+  side = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(side)) s7_wrong_type_arg_error(sc, "gtk_grid_attach_next_to", 4, side, "GtkPositionType");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gtk_grid_attach_next_to", 5, width, "gint");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gtk_grid_attach_next_to", 6, height, "gint");
+  gtk_grid_attach_next_to(s7_c_pointer(grid), s7_c_pointer(child), s7_c_pointer(sibling), s7_integer(side), s7_integer(width), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_grid_set_row_homogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_set_row_homogeneous "void gtk_grid_set_row_homogeneous(GtkGrid* grid, gboolean homogeneous)"
+  s7_pointer _p;
+  s7_pointer grid, homogeneous;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_set_row_homogeneous", 1, grid, "GtkGrid*");
+  homogeneous = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(homogeneous)) s7_wrong_type_arg_error(sc, "gtk_grid_set_row_homogeneous", 2, homogeneous, "gboolean");
+  gtk_grid_set_row_homogeneous(s7_c_pointer(grid), lg_boolean(homogeneous));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_grid_get_row_homogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_get_row_homogeneous "gboolean gtk_grid_get_row_homogeneous(GtkGrid* grid)"
+  s7_pointer grid;
+  grid = s7_car(args);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_get_row_homogeneous", 1, grid, "GtkGrid*");
+  return(s7_make_boolean(sc, gtk_grid_get_row_homogeneous(s7_c_pointer(grid))));
+}
+
+static s7_pointer lg_gtk_grid_set_row_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_set_row_spacing "void gtk_grid_set_row_spacing(GtkGrid* grid, guint spacing)"
+  s7_pointer _p;
+  s7_pointer grid, spacing;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_set_row_spacing", 1, grid, "GtkGrid*");
+  spacing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(spacing)) s7_wrong_type_arg_error(sc, "gtk_grid_set_row_spacing", 2, spacing, "guint");
+  gtk_grid_set_row_spacing(s7_c_pointer(grid), s7_integer(spacing));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_grid_get_row_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_get_row_spacing "guint gtk_grid_get_row_spacing(GtkGrid* grid)"
+  s7_pointer grid;
+  grid = s7_car(args);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_get_row_spacing", 1, grid, "GtkGrid*");
+  return(s7_make_integer(sc, gtk_grid_get_row_spacing(s7_c_pointer(grid))));
+}
+
+static s7_pointer lg_gtk_grid_set_column_homogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_set_column_homogeneous "void gtk_grid_set_column_homogeneous(GtkGrid* grid, gboolean homogeneous)"
+  s7_pointer _p;
+  s7_pointer grid, homogeneous;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_set_column_homogeneous", 1, grid, "GtkGrid*");
+  homogeneous = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(homogeneous)) s7_wrong_type_arg_error(sc, "gtk_grid_set_column_homogeneous", 2, homogeneous, "gboolean");
+  gtk_grid_set_column_homogeneous(s7_c_pointer(grid), lg_boolean(homogeneous));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_grid_get_column_homogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_get_column_homogeneous "gboolean gtk_grid_get_column_homogeneous(GtkGrid* grid)"
+  s7_pointer grid;
+  grid = s7_car(args);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_get_column_homogeneous", 1, grid, "GtkGrid*");
+  return(s7_make_boolean(sc, gtk_grid_get_column_homogeneous(s7_c_pointer(grid))));
+}
+
+static s7_pointer lg_gtk_grid_set_column_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_set_column_spacing "void gtk_grid_set_column_spacing(GtkGrid* grid, guint spacing)"
+  s7_pointer _p;
+  s7_pointer grid, spacing;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_set_column_spacing", 1, grid, "GtkGrid*");
+  spacing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(spacing)) s7_wrong_type_arg_error(sc, "gtk_grid_set_column_spacing", 2, spacing, "guint");
+  gtk_grid_set_column_spacing(s7_c_pointer(grid), s7_integer(spacing));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_grid_get_column_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_get_column_spacing "guint gtk_grid_get_column_spacing(GtkGrid* grid)"
+  s7_pointer grid;
+  grid = s7_car(args);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_get_column_spacing", 1, grid, "GtkGrid*");
+  return(s7_make_integer(sc, gtk_grid_get_column_spacing(s7_c_pointer(grid))));
+}
+
+static s7_pointer lg_gtk_scrollable_get_hadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrollable_get_hadjustment "GtkAdjustment* gtk_scrollable_get_hadjustment(GtkScrollable* scrollable)"
+  s7_pointer scrollable;
+  scrollable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrollable, GtkScrollable__sym)) s7_wrong_type_arg_error(sc, "gtk_scrollable_get_hadjustment", 1, scrollable, "GtkScrollable*");
+  return(s7_make_type_with_c_pointer(sc, GtkAdjustment__sym, gtk_scrollable_get_hadjustment(s7_c_pointer(scrollable))));
+}
+
+static s7_pointer lg_gtk_scrollable_set_hadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrollable_set_hadjustment "void gtk_scrollable_set_hadjustment(GtkScrollable* scrollable, \
+GtkAdjustment* hadjustment)"
+  s7_pointer _p;
+  s7_pointer scrollable, hadjustment;
+  _p = args;
+  scrollable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrollable, GtkScrollable__sym)) s7_wrong_type_arg_error(sc, "gtk_scrollable_set_hadjustment", 1, scrollable, "GtkScrollable*");
+  hadjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(hadjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_scrollable_set_hadjustment", 2, hadjustment, "GtkAdjustment*");
+  gtk_scrollable_set_hadjustment(s7_c_pointer(scrollable), s7_c_pointer(hadjustment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrollable_get_vadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrollable_get_vadjustment "GtkAdjustment* gtk_scrollable_get_vadjustment(GtkScrollable* scrollable)"
+  s7_pointer scrollable;
+  scrollable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrollable, GtkScrollable__sym)) s7_wrong_type_arg_error(sc, "gtk_scrollable_get_vadjustment", 1, scrollable, "GtkScrollable*");
+  return(s7_make_type_with_c_pointer(sc, GtkAdjustment__sym, gtk_scrollable_get_vadjustment(s7_c_pointer(scrollable))));
+}
+
+static s7_pointer lg_gtk_scrollable_set_vadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrollable_set_vadjustment "void gtk_scrollable_set_vadjustment(GtkScrollable* scrollable, \
+GtkAdjustment* vadjustment)"
+  s7_pointer _p;
+  s7_pointer scrollable, vadjustment;
+  _p = args;
+  scrollable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrollable, GtkScrollable__sym)) s7_wrong_type_arg_error(sc, "gtk_scrollable_set_vadjustment", 1, scrollable, "GtkScrollable*");
+  vadjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(vadjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_scrollable_set_vadjustment", 2, vadjustment, "GtkAdjustment*");
+  gtk_scrollable_set_vadjustment(s7_c_pointer(scrollable), s7_c_pointer(vadjustment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_assistant_next_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_next_page "void gtk_assistant_next_page(GtkAssistant* assistant)"
+  s7_pointer assistant;
+  assistant = s7_car(args);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_next_page", 1, assistant, "GtkAssistant*");
+  gtk_assistant_next_page(s7_c_pointer(assistant));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_assistant_previous_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_previous_page "void gtk_assistant_previous_page(GtkAssistant* assistant)"
+  s7_pointer assistant;
+  assistant = s7_car(args);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_previous_page", 1, assistant, "GtkAssistant*");
+  gtk_assistant_previous_page(s7_c_pointer(assistant));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_new_with_model_and_entry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_new_with_model_and_entry "GtkWidget* gtk_combo_box_new_with_model_and_entry(GtkTreeModel* model)"
+  s7_pointer model;
+  model = s7_car(args);
+  if (!s7_is_c_pointer_of_type(model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_new_with_model_and_entry", 1, model, "GtkTreeModel*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_combo_box_new_with_model_and_entry(s7_c_pointer(model))));
+}
+
+static s7_pointer lg_gtk_scrollable_get_hscroll_policy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrollable_get_hscroll_policy "GtkScrollablePolicy gtk_scrollable_get_hscroll_policy(GtkScrollable* scrollable)"
+  s7_pointer scrollable;
+  scrollable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrollable, GtkScrollable__sym)) s7_wrong_type_arg_error(sc, "gtk_scrollable_get_hscroll_policy", 1, scrollable, "GtkScrollable*");
+  return(s7_make_integer(sc, gtk_scrollable_get_hscroll_policy(s7_c_pointer(scrollable))));
+}
+
+static s7_pointer lg_gtk_scrollable_set_hscroll_policy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrollable_set_hscroll_policy "void gtk_scrollable_set_hscroll_policy(GtkScrollable* scrollable, \
+GtkScrollablePolicy policy)"
+  s7_pointer _p;
+  s7_pointer scrollable, policy;
+  _p = args;
+  scrollable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrollable, GtkScrollable__sym)) s7_wrong_type_arg_error(sc, "gtk_scrollable_set_hscroll_policy", 1, scrollable, "GtkScrollable*");
+  policy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(policy)) s7_wrong_type_arg_error(sc, "gtk_scrollable_set_hscroll_policy", 2, policy, "GtkScrollablePolicy");
+  gtk_scrollable_set_hscroll_policy(s7_c_pointer(scrollable), s7_integer(policy));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrollable_get_vscroll_policy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrollable_get_vscroll_policy "GtkScrollablePolicy gtk_scrollable_get_vscroll_policy(GtkScrollable* scrollable)"
+  s7_pointer scrollable;
+  scrollable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrollable, GtkScrollable__sym)) s7_wrong_type_arg_error(sc, "gtk_scrollable_get_vscroll_policy", 1, scrollable, "GtkScrollable*");
+  return(s7_make_integer(sc, gtk_scrollable_get_vscroll_policy(s7_c_pointer(scrollable))));
+}
+
+static s7_pointer lg_gtk_scrollable_set_vscroll_policy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrollable_set_vscroll_policy "void gtk_scrollable_set_vscroll_policy(GtkScrollable* scrollable, \
+GtkScrollablePolicy policy)"
+  s7_pointer _p;
+  s7_pointer scrollable, policy;
+  _p = args;
+  scrollable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrollable, GtkScrollable__sym)) s7_wrong_type_arg_error(sc, "gtk_scrollable_set_vscroll_policy", 1, scrollable, "GtkScrollable*");
+  policy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(policy)) s7_wrong_type_arg_error(sc, "gtk_scrollable_set_vscroll_policy", 2, policy, "GtkScrollablePolicy");
+  gtk_scrollable_set_vscroll_policy(s7_c_pointer(scrollable), s7_integer(policy));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_switch_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_switch_new "GtkWidget* gtk_switch_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_switch_new()));
+}
+
+static s7_pointer lg_gtk_switch_set_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_switch_set_active "void gtk_switch_set_active(GtkSwitch* sw, gboolean is_active)"
+  s7_pointer _p;
+  s7_pointer sw, is_active;
+  _p = args;
+  sw = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sw, GtkSwitch__sym)) s7_wrong_type_arg_error(sc, "gtk_switch_set_active", 1, sw, "GtkSwitch*");
+  is_active = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(is_active)) s7_wrong_type_arg_error(sc, "gtk_switch_set_active", 2, is_active, "gboolean");
+  gtk_switch_set_active(s7_c_pointer(sw), lg_boolean(is_active));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_switch_get_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_switch_get_active "gboolean gtk_switch_get_active(GtkSwitch* sw)"
+  s7_pointer sw;
+  sw = s7_car(args);
+  if (!s7_is_c_pointer_of_type(sw, GtkSwitch__sym)) s7_wrong_type_arg_error(sc, "gtk_switch_get_active", 1, sw, "GtkSwitch*");
+  return(s7_make_boolean(sc, gtk_switch_get_active(s7_c_pointer(sw))));
+}
+
+static s7_pointer lg_gdk_window_get_clip_region(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_clip_region "cairo_region_t* gdk_window_get_clip_region(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_clip_region", 1, window, "GdkWindow*");
+  return(s7_make_type_with_c_pointer(sc, cairo_region_t__sym, gdk_window_get_clip_region(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_get_visible_region(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_visible_region "cairo_region_t* gdk_window_get_visible_region(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_visible_region", 1, window, "GdkWindow*");
+  return(s7_make_type_with_c_pointer(sc, cairo_region_t__sym, gdk_window_get_visible_region(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_border_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_border_new "GtkBorder* gtk_border_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkBorder__sym, gtk_border_new()));
+}
+
+static s7_pointer lg_gtk_border_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_border_copy "GtkBorder* gtk_border_copy(GtkBorder* border_)"
+  s7_pointer border_;
+  border_ = s7_car(args);
+  if (!s7_is_c_pointer_of_type(border_, GtkBorder__sym)) s7_wrong_type_arg_error(sc, "gtk_border_copy", 1, border_, "GtkBorder*");
+  return(s7_make_type_with_c_pointer(sc, GtkBorder__sym, gtk_border_copy(s7_c_pointer(border_))));
+}
+
+static s7_pointer lg_gtk_border_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_border_free "void gtk_border_free(GtkBorder* border_)"
+  s7_pointer border_;
+  border_ = s7_car(args);
+  if (!s7_is_c_pointer_of_type(border_, GtkBorder__sym)) s7_wrong_type_arg_error(sc, "gtk_border_free", 1, border_, "GtkBorder*");
+  gtk_border_free(s7_c_pointer(border_));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_get_id_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_get_id_column "gint gtk_combo_box_get_id_column(GtkComboBox* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_get_id_column", 1, combo_box, "GtkComboBox*");
+  return(s7_make_integer(sc, gtk_combo_box_get_id_column(s7_c_pointer(combo_box))));
+}
+
+static s7_pointer lg_gtk_combo_box_set_id_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_set_id_column "void gtk_combo_box_set_id_column(GtkComboBox* combo_box, gint id_column)"
+  s7_pointer _p;
+  s7_pointer combo_box, id_column;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_id_column", 1, combo_box, "GtkComboBox*");
+  id_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(id_column)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_id_column", 2, id_column, "gint");
+  gtk_combo_box_set_id_column(s7_c_pointer(combo_box), s7_integer(id_column));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_get_active_id(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_get_active_id "gchar* gtk_combo_box_get_active_id(GtkComboBox* combo_box)"
+  s7_pointer combo_box;
+  combo_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_get_active_id", 1, combo_box, "GtkComboBox*");
+  return(s7_make_string(sc, gtk_combo_box_get_active_id(s7_c_pointer(combo_box))));
+}
+
+static s7_pointer lg_gtk_combo_box_text_insert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_text_insert "void gtk_combo_box_text_insert(GtkComboBoxText* combo_box, gint position, \
+gchar* id, gchar* text)"
+  s7_pointer _p;
+  s7_pointer combo_box, position, id, text;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBoxText__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_insert", 1, combo_box, "GtkComboBoxText*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_insert", 2, position, "gint");
+  id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(id)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_insert", 3, id, "gchar*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_insert", 4, text, "gchar*");
+  gtk_combo_box_text_insert(s7_c_pointer(combo_box), s7_integer(position), (const gchar*)s7_string(id), (const gchar*)s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_text_append(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_text_append "void gtk_combo_box_text_append(GtkComboBoxText* combo_box, gchar* id, \
+gchar* text)"
+  s7_pointer _p;
+  s7_pointer combo_box, id, text;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBoxText__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_append", 1, combo_box, "GtkComboBoxText*");
+  id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(id)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_append", 2, id, "gchar*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_append", 3, text, "gchar*");
+  gtk_combo_box_text_append(s7_c_pointer(combo_box), (const gchar*)s7_string(id), (const gchar*)s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_text_prepend(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_text_prepend "void gtk_combo_box_text_prepend(GtkComboBoxText* combo_box, gchar* id, \
+gchar* text)"
+  s7_pointer _p;
+  s7_pointer combo_box, id, text;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBoxText__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_prepend", 1, combo_box, "GtkComboBoxText*");
+  id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(id)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_prepend", 2, id, "gchar*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_combo_box_text_prepend", 3, text, "gchar*");
+  gtk_combo_box_text_prepend(s7_c_pointer(combo_box), (const gchar*)s7_string(id), (const gchar*)s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_button_box_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_box_new "GtkWidget* gtk_button_box_new(GtkOrientation orientation)"
+  s7_pointer orientation;
+  orientation = s7_car(args);
+  if (!s7_is_integer(orientation)) s7_wrong_type_arg_error(sc, "gtk_button_box_new", 1, orientation, "GtkOrientation");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_button_box_new(s7_integer(orientation))));
+}
+
+static s7_pointer lg_gtk_box_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_box_new "GtkWidget* gtk_box_new(GtkOrientation orientation, gint spacing)"
+  s7_pointer _p;
+  s7_pointer orientation, spacing;
+  _p = args;
+  orientation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(orientation)) s7_wrong_type_arg_error(sc, "gtk_box_new", 1, orientation, "GtkOrientation");
+  spacing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(spacing)) s7_wrong_type_arg_error(sc, "gtk_box_new", 2, spacing, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_box_new(s7_integer(orientation), s7_integer(spacing))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_cursor_on_cell(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_cursor_on_cell "void gtk_tree_view_set_cursor_on_cell(GtkTreeView* tree_view, \
+GtkTreePath* path, GtkTreeViewColumn* focus_column, GtkCellRenderer* focus_cell, gboolean start_editing)"
+  s7_pointer _p;
+  s7_pointer tree_view, path, focus_column, focus_cell, start_editing;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_cursor_on_cell", 1, tree_view, "GtkTreeView*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_cursor_on_cell", 2, path, "GtkTreePath*");
+  focus_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(focus_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_cursor_on_cell", 3, focus_column, "GtkTreeViewColumn*");
+  focus_cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(focus_cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_cursor_on_cell", 4, focus_cell, "GtkCellRenderer*");
+  start_editing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(start_editing)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_cursor_on_cell", 5, start_editing, "gboolean");
+  gtk_tree_view_set_cursor_on_cell(s7_c_pointer(tree_view), s7_c_pointer(path), s7_c_pointer(focus_column), s7_c_pointer(focus_cell), lg_boolean(start_editing));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_set_rubber_banding(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_rubber_banding "void gtk_tree_view_set_rubber_banding(GtkTreeView* tree_view, \
+gboolean enable)"
+  s7_pointer _p;
+  s7_pointer tree_view, enable;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_rubber_banding", 1, tree_view, "GtkTreeView*");
+  enable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(enable)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_rubber_banding", 2, enable, "gboolean");
+  gtk_tree_view_set_rubber_banding(s7_c_pointer(tree_view), lg_boolean(enable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_rubber_banding(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_rubber_banding "gboolean gtk_tree_view_get_rubber_banding(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_rubber_banding", 1, tree_view, "GtkTreeView*");
+  return(s7_make_boolean(sc, gtk_tree_view_get_rubber_banding(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tooltip_set_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tooltip_set_markup "void gtk_tooltip_set_markup(GtkTooltip* tooltip, gchar* markup)"
+  s7_pointer _p;
+  s7_pointer tooltip, markup;
+  _p = args;
+  tooltip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tooltip, GtkTooltip__sym)) s7_wrong_type_arg_error(sc, "gtk_tooltip_set_markup", 1, tooltip, "GtkTooltip*");
+  markup = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(markup)) s7_wrong_type_arg_error(sc, "gtk_tooltip_set_markup", 2, markup, "gchar*");
+  gtk_tooltip_set_markup(s7_c_pointer(tooltip), (const gchar*)s7_string(markup));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tooltip_set_icon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tooltip_set_icon "void gtk_tooltip_set_icon(GtkTooltip* tooltip, GdkPixbuf* pixbuf)"
+  s7_pointer _p;
+  s7_pointer tooltip, pixbuf;
+  _p = args;
+  tooltip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tooltip, GtkTooltip__sym)) s7_wrong_type_arg_error(sc, "gtk_tooltip_set_icon", 1, tooltip, "GtkTooltip*");
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gtk_tooltip_set_icon", 2, pixbuf, "GdkPixbuf*");
+  gtk_tooltip_set_icon(s7_c_pointer(tooltip), s7_c_pointer(pixbuf));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tooltip_set_custom(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tooltip_set_custom "void gtk_tooltip_set_custom(GtkTooltip* tooltip, GtkWidget* custom_widget)"
+  s7_pointer _p;
+  s7_pointer tooltip, custom_widget;
+  _p = args;
+  tooltip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tooltip, GtkTooltip__sym)) s7_wrong_type_arg_error(sc, "gtk_tooltip_set_custom", 1, tooltip, "GtkTooltip*");
+  custom_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(custom_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_tooltip_set_custom", 2, custom_widget, "GtkWidget*");
+  gtk_tooltip_set_custom(s7_c_pointer(tooltip), s7_c_pointer(custom_widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tooltip_trigger_tooltip_query(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tooltip_trigger_tooltip_query "void gtk_tooltip_trigger_tooltip_query(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gtk_tooltip_trigger_tooltip_query", 1, display, "GdkDisplay*");
+  gtk_tooltip_trigger_tooltip_query(s7_c_pointer(display));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_column_new_with_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_new_with_area "GtkTreeViewColumn* gtk_tree_view_column_new_with_area(GtkCellArea* area)"
+  s7_pointer area;
+  area = s7_car(args);
+  if (!s7_is_c_pointer_of_type(area, GtkCellArea__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_new_with_area", 1, area, "GtkCellArea*");
+  return(s7_make_type_with_c_pointer(sc, GtkTreeViewColumn__sym, gtk_tree_view_column_new_with_area(s7_c_pointer(area))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_button "GtkWidget* gtk_tree_view_column_get_button(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_button", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_tree_view_column_get_button(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_focus_cell(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_focus_cell "void gtk_tree_view_column_focus_cell(GtkTreeViewColumn* tree_column, \
+GtkCellRenderer* cell)"
+  s7_pointer _p;
+  s7_pointer tree_column, cell;
+  _p = args;
+  tree_column = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_focus_cell", 1, tree_column, "GtkTreeViewColumn*");
+  cell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell, GtkCellRenderer__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_focus_cell", 2, cell, "GtkCellRenderer*");
+  gtk_tree_view_column_focus_cell(s7_c_pointer(tree_column), s7_c_pointer(cell));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_clipboard_wait_is_uris_available(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_wait_is_uris_available "gboolean gtk_clipboard_wait_is_uris_available(GtkClipboard* clipboard)"
+  s7_pointer clipboard;
+  clipboard = s7_car(args);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_wait_is_uris_available", 1, clipboard, "GtkClipboard*");
+  return(s7_make_boolean(sc, gtk_clipboard_wait_is_uris_available(s7_c_pointer(clipboard))));
+}
+
+static s7_pointer lg_gtk_toolbar_set_drop_highlight_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_toolbar_set_drop_highlight_item "void gtk_toolbar_set_drop_highlight_item(GtkToolbar* toolbar, \
+GtkToolItem* tool_item, gint index)"
+  s7_pointer _p;
+  s7_pointer toolbar, tool_item, index;
+  _p = args;
+  toolbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(toolbar, GtkToolbar__sym)) s7_wrong_type_arg_error(sc, "gtk_toolbar_set_drop_highlight_item", 1, toolbar, "GtkToolbar*");
+  tool_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_toolbar_set_drop_highlight_item", 2, tool_item, "GtkToolItem*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "gtk_toolbar_set_drop_highlight_item", 3, index, "gint");
+  gtk_toolbar_set_drop_highlight_item(s7_c_pointer(toolbar), s7_c_pointer(tool_item), s7_integer(index));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tool_item_toolbar_reconfigured(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_item_toolbar_reconfigured "void gtk_tool_item_toolbar_reconfigured(GtkToolItem* tool_item)"
+  s7_pointer tool_item;
+  tool_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tool_item, GtkToolItem__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_item_toolbar_reconfigured", 1, tool_item, "GtkToolItem*");
+  gtk_tool_item_toolbar_reconfigured(s7_c_pointer(tool_item));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_orientable_set_orientation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_orientable_set_orientation "void gtk_orientable_set_orientation(GtkOrientable* orientable, \
+GtkOrientation orientation)"
+  s7_pointer _p;
+  s7_pointer orientable, orientation;
+  _p = args;
+  orientable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(orientable, GtkOrientable__sym)) s7_wrong_type_arg_error(sc, "gtk_orientable_set_orientation", 1, orientable, "GtkOrientable*");
+  orientation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(orientation)) s7_wrong_type_arg_error(sc, "gtk_orientable_set_orientation", 2, orientation, "GtkOrientation");
+  gtk_orientable_set_orientation(s7_c_pointer(orientable), s7_integer(orientation));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_orientable_get_orientation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_orientable_get_orientation "GtkOrientation gtk_orientable_get_orientation(GtkOrientable* orientable)"
+  s7_pointer orientable;
+  orientable = s7_car(args);
+  if (!s7_is_c_pointer_of_type(orientable, GtkOrientable__sym)) s7_wrong_type_arg_error(sc, "gtk_orientable_get_orientation", 1, orientable, "GtkOrientable*");
+  return(s7_make_integer(sc, gtk_orientable_get_orientation(s7_c_pointer(orientable))));
+}
+
+static s7_pointer lg_gtk_get_major_version(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_get_major_version "guint gtk_get_major_version( void)"
+    return(s7_make_integer(sc, (guint)gtk_get_major_version()));
+}
+
+static s7_pointer lg_gtk_get_minor_version(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_get_minor_version "guint gtk_get_minor_version( void)"
+    return(s7_make_integer(sc, (guint)gtk_get_minor_version()));
+}
+
+static s7_pointer lg_gtk_get_micro_version(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_get_micro_version "guint gtk_get_micro_version( void)"
+    return(s7_make_integer(sc, (guint)gtk_get_micro_version()));
+}
+
+static s7_pointer lg_gtk_get_binary_age(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_get_binary_age "guint gtk_get_binary_age( void)"
+    return(s7_make_integer(sc, (guint)gtk_get_binary_age()));
+}
+
+static s7_pointer lg_gtk_get_interface_age(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_get_interface_age "guint gtk_get_interface_age( void)"
+    return(s7_make_integer(sc, (guint)gtk_get_interface_age()));
+}
+
+static s7_pointer lg_gtk_progress_bar_set_show_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_progress_bar_set_show_text "void gtk_progress_bar_set_show_text(GtkProgressBar* pbar, \
+gboolean show_text)"
+  s7_pointer _p;
+  s7_pointer pbar, show_text;
+  _p = args;
+  pbar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pbar, GtkProgressBar__sym)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_set_show_text", 1, pbar, "GtkProgressBar*");
+  show_text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_text)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_set_show_text", 2, show_text, "gboolean");
+  gtk_progress_bar_set_show_text(s7_c_pointer(pbar), lg_boolean(show_text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_progress_bar_get_show_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_progress_bar_get_show_text "gboolean gtk_progress_bar_get_show_text(GtkProgressBar* pbar)"
+  s7_pointer pbar;
+  pbar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pbar, GtkProgressBar__sym)) s7_wrong_type_arg_error(sc, "gtk_progress_bar_get_show_text", 1, pbar, "GtkProgressBar*");
+  return(s7_make_boolean(sc, gtk_progress_bar_get_show_text(s7_c_pointer(pbar))));
+}
+
+static s7_pointer lg_gtk_invisible_new_for_screen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_invisible_new_for_screen "GtkWidget* gtk_invisible_new_for_screen(GdkScreen* screen)"
+  s7_pointer screen;
+  screen = s7_car(args);
+  if (!s7_is_c_pointer_of_type(screen, GdkScreen__sym)) s7_wrong_type_arg_error(sc, "gtk_invisible_new_for_screen", 1, screen, "GdkScreen*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_invisible_new_for_screen(s7_c_pointer(screen))));
+}
+
+static s7_pointer lg_gtk_invisible_set_screen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_invisible_set_screen "void gtk_invisible_set_screen(GtkInvisible* invisible, GdkScreen* screen)"
+  s7_pointer _p;
+  s7_pointer invisible, screen;
+  _p = args;
+  invisible = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(invisible, GtkInvisible__sym)) s7_wrong_type_arg_error(sc, "gtk_invisible_set_screen", 1, invisible, "GtkInvisible*");
+  screen = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(screen, GdkScreen__sym)) s7_wrong_type_arg_error(sc, "gtk_invisible_set_screen", 2, screen, "GdkScreen*");
+  gtk_invisible_set_screen(s7_c_pointer(invisible), s7_c_pointer(screen));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_invisible_get_screen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_invisible_get_screen "GdkScreen* gtk_invisible_get_screen(GtkInvisible* invisible)"
+  s7_pointer invisible;
+  invisible = s7_car(args);
+  if (!s7_is_c_pointer_of_type(invisible, GtkInvisible__sym)) s7_wrong_type_arg_error(sc, "gtk_invisible_get_screen", 1, invisible, "GtkInvisible*");
+  return(s7_make_type_with_c_pointer(sc, GdkScreen__sym, gtk_invisible_get_screen(s7_c_pointer(invisible))));
+}
+
+static s7_pointer lg_gtk_entry_get_icon_storage_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_icon_storage_type "GtkImageType gtk_entry_get_icon_storage_type(GtkEntry* entry, \
+GtkEntryIconPosition icon_pos)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_storage_type", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_storage_type", 2, icon_pos, "GtkEntryIconPosition");
+  return(s7_make_integer(sc, gtk_entry_get_icon_storage_type(s7_c_pointer(entry), s7_integer(icon_pos))));
+}
+
+static s7_pointer lg_gtk_entry_get_icon_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_icon_pixbuf "GdkPixbuf* gtk_entry_get_icon_pixbuf(GtkEntry* entry, GtkEntryIconPosition icon_pos)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_pixbuf", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_pixbuf", 2, icon_pos, "GtkEntryIconPosition");
+  return(s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gtk_entry_get_icon_pixbuf(s7_c_pointer(entry), s7_integer(icon_pos))));
+}
+
+static s7_pointer lg_gtk_entry_get_icon_gicon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_icon_gicon "GIcon* gtk_entry_get_icon_gicon(GtkEntry* entry, GtkEntryIconPosition icon_pos)"
+  s7_pointer _p;
+  s7_pointer entry, icon_pos;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_gicon", 1, entry, "GtkEntry*");
+  icon_pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(icon_pos)) s7_wrong_type_arg_error(sc, "gtk_entry_get_icon_gicon", 2, icon_pos, "GtkEntryIconPosition");
+  return(s7_make_type_with_c_pointer(sc, GIcon__sym, gtk_entry_get_icon_gicon(s7_c_pointer(entry), s7_integer(icon_pos))));
+}
+
+static s7_pointer lg_gtk_container_propagate_draw(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_container_propagate_draw "void gtk_container_propagate_draw(GtkContainer* container, \
+GtkWidget* child, cairo_t* cr)"
+  s7_pointer _p;
+  s7_pointer container, child, cr;
+  _p = args;
+  container = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(container, GtkContainer__sym)) s7_wrong_type_arg_error(sc, "gtk_container_propagate_draw", 1, container, "GtkContainer*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_container_propagate_draw", 2, child, "GtkWidget*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_container_propagate_draw", 3, cr, "cairo_t*");
+  gtk_container_propagate_draw(s7_c_pointer(container), s7_c_pointer(child), s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_container_set_focus_chain(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_container_set_focus_chain "void gtk_container_set_focus_chain(GtkContainer* container, \
+GList* focusable_widgets)"
+  s7_pointer _p;
+  s7_pointer container, focusable_widgets;
+  _p = args;
+  container = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(container, GtkContainer__sym)) s7_wrong_type_arg_error(sc, "gtk_container_set_focus_chain", 1, container, "GtkContainer*");
+  focusable_widgets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(focusable_widgets, GList__sym)) s7_wrong_type_arg_error(sc, "gtk_container_set_focus_chain", 2, focusable_widgets, "GList*");
+  gtk_container_set_focus_chain(s7_c_pointer(container), s7_c_pointer(focusable_widgets));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_container_get_focus_chain(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_container_get_focus_chain "gboolean gtk_container_get_focus_chain(GtkContainer* container, \
+GList** [focusable_widgets])"
+  s7_pointer _p;
+  s7_pointer container;
+  GList* ref_focusable_widgets = NULL;
+  _p = args;
+  container = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(container, GtkContainer__sym)) s7_wrong_type_arg_error(sc, "gtk_container_get_focus_chain", 1, container, "GtkContainer*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_container_get_focus_chain(s7_c_pointer(container), &ref_focusable_widgets));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_focusable_widgets)));
+   }
+}
+
+static s7_pointer lg_gtk_container_unset_focus_chain(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_container_unset_focus_chain "void gtk_container_unset_focus_chain(GtkContainer* container)"
+  s7_pointer container;
+  container = s7_car(args);
+  if (!s7_is_c_pointer_of_type(container, GtkContainer__sym)) s7_wrong_type_arg_error(sc, "gtk_container_unset_focus_chain", 1, container, "GtkContainer*");
+  gtk_container_unset_focus_chain(s7_c_pointer(container));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_container_set_focus_vadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_container_set_focus_vadjustment "void gtk_container_set_focus_vadjustment(GtkContainer* container, \
+GtkAdjustment* adjustment)"
+  s7_pointer _p;
+  s7_pointer container, adjustment;
+  _p = args;
+  container = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(container, GtkContainer__sym)) s7_wrong_type_arg_error(sc, "gtk_container_set_focus_vadjustment", 1, container, "GtkContainer*");
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_container_set_focus_vadjustment", 2, adjustment, "GtkAdjustment*");
+  gtk_container_set_focus_vadjustment(s7_c_pointer(container), s7_c_pointer(adjustment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_container_get_focus_vadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_container_get_focus_vadjustment "GtkAdjustment* gtk_container_get_focus_vadjustment(GtkContainer* container)"
+  s7_pointer container;
+  container = s7_car(args);
+  if (!s7_is_c_pointer_of_type(container, GtkContainer__sym)) s7_wrong_type_arg_error(sc, "gtk_container_get_focus_vadjustment", 1, container, "GtkContainer*");
+  return(s7_make_type_with_c_pointer(sc, GtkAdjustment__sym, gtk_container_get_focus_vadjustment(s7_c_pointer(container))));
+}
+
+static s7_pointer lg_gtk_container_set_focus_hadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_container_set_focus_hadjustment "void gtk_container_set_focus_hadjustment(GtkContainer* container, \
+GtkAdjustment* adjustment)"
+  s7_pointer _p;
+  s7_pointer container, adjustment;
+  _p = args;
+  container = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(container, GtkContainer__sym)) s7_wrong_type_arg_error(sc, "gtk_container_set_focus_hadjustment", 1, container, "GtkContainer*");
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_container_set_focus_hadjustment", 2, adjustment, "GtkAdjustment*");
+  gtk_container_set_focus_hadjustment(s7_c_pointer(container), s7_c_pointer(adjustment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_container_get_focus_hadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_container_get_focus_hadjustment "GtkAdjustment* gtk_container_get_focus_hadjustment(GtkContainer* container)"
+  s7_pointer container;
+  container = s7_car(args);
+  if (!s7_is_c_pointer_of_type(container, GtkContainer__sym)) s7_wrong_type_arg_error(sc, "gtk_container_get_focus_hadjustment", 1, container, "GtkContainer*");
+  return(s7_make_type_with_c_pointer(sc, GtkAdjustment__sym, gtk_container_get_focus_hadjustment(s7_c_pointer(container))));
+}
+
+static s7_pointer lg_gtk_assistant_commit(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_assistant_commit "void gtk_assistant_commit(GtkAssistant* assistant)"
+  s7_pointer assistant;
+  assistant = s7_car(args);
+  if (!s7_is_c_pointer_of_type(assistant, GtkAssistant__sym)) s7_wrong_type_arg_error(sc, "gtk_assistant_commit", 1, assistant, "GtkAssistant*");
+  gtk_assistant_commit(s7_c_pointer(assistant));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_set_skip_taskbar_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_skip_taskbar_hint "void gtk_window_set_skip_taskbar_hint(GtkWindow* window, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_skip_taskbar_hint", 1, window, "GtkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_window_set_skip_taskbar_hint", 2, setting, "gboolean");
+  gtk_window_set_skip_taskbar_hint(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_skip_taskbar_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_skip_taskbar_hint "gboolean gtk_window_get_skip_taskbar_hint(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_skip_taskbar_hint", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_get_skip_taskbar_hint(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_skip_pager_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_skip_pager_hint "void gtk_window_set_skip_pager_hint(GtkWindow* window, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_skip_pager_hint", 1, window, "GtkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_window_set_skip_pager_hint", 2, setting, "gboolean");
+  gtk_window_set_skip_pager_hint(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_skip_pager_hint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_skip_pager_hint "gboolean gtk_window_get_skip_pager_hint(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_skip_pager_hint", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_get_skip_pager_hint(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_screen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_screen "void gtk_window_set_screen(GtkWindow* window, GdkScreen* screen)"
+  s7_pointer _p;
+  s7_pointer window, screen;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_screen", 1, window, "GtkWindow*");
+  screen = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(screen, GdkScreen__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_screen", 2, screen, "GdkScreen*");
+  gtk_window_set_screen(s7_c_pointer(window), s7_c_pointer(screen));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_screen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_screen "GdkScreen* gtk_window_get_screen(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_screen", 1, window, "GtkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GdkScreen__sym, gtk_window_get_screen(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_set_icon_from_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_icon_from_file "gboolean gtk_window_set_icon_from_file(GtkWindow* window, \
+gchar* filename, GError** [err])"
+  s7_pointer _p;
+  s7_pointer window, filename;
+  GError* ref_err = NULL;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_icon_from_file", 1, window, "GtkWindow*");
+  filename = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(filename)) s7_wrong_type_arg_error(sc, "gtk_window_set_icon_from_file", 2, filename, "gchar*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_window_set_icon_from_file(s7_c_pointer(window), (const gchar*)s7_string(filename), &ref_err));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_err)));
+   }
+}
+
+static s7_pointer lg_gtk_window_set_default_icon_from_file(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_default_icon_from_file "gboolean gtk_window_set_default_icon_from_file(gchar* filename, \
+GError** [err])"
+  s7_pointer _p;
+  s7_pointer filename;
+  GError* ref_err = NULL;
+  _p = args;
+  filename = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(filename)) s7_wrong_type_arg_error(sc, "gtk_window_set_default_icon_from_file", 1, filename, "gchar*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_window_set_default_icon_from_file((const gchar*)s7_string(filename), &ref_err));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_err)));
+   }
+}
+
+static s7_pointer lg_gtk_window_fullscreen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_fullscreen "void gtk_window_fullscreen(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_fullscreen", 1, window, "GtkWindow*");
+  gtk_window_fullscreen(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_unfullscreen(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_unfullscreen "void gtk_window_unfullscreen(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_unfullscreen", 1, window, "GtkWindow*");
+  gtk_window_unfullscreen(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_window_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_window_type "GtkWindowType gtk_window_get_window_type(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_window_type", 1, window, "GtkWindow*");
+  return(s7_make_integer(sc, gtk_window_get_window_type(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_group_add_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_group_add_window "void gtk_window_group_add_window(GtkWindowGroup* window_group, \
+GtkWindow* window)"
+  s7_pointer _p;
+  s7_pointer window_group, window;
+  _p = args;
+  window_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window_group, GtkWindowGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_window_group_add_window", 1, window_group, "GtkWindowGroup*");
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_group_add_window", 2, window, "GtkWindow*");
+  gtk_window_group_add_window(s7_c_pointer(window_group), s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_group_remove_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_group_remove_window "void gtk_window_group_remove_window(GtkWindowGroup* window_group, \
+GtkWindow* window)"
+  s7_pointer _p;
+  s7_pointer window_group, window;
+  _p = args;
+  window_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window_group, GtkWindowGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_window_group_remove_window", 1, window_group, "GtkWindowGroup*");
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_group_remove_window", 2, window, "GtkWindow*");
+  gtk_window_group_remove_window(s7_c_pointer(window_group), s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_group_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_group_new "GtkWindowGroup* gtk_window_group_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWindowGroup__sym, gtk_window_group_new()));
+}
+
+static s7_pointer lg_gtk_window_get_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_group "GtkWindowGroup* gtk_window_get_group(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_group", 1, window, "GtkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GtkWindowGroup__sym, gtk_window_get_group(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_window_group_list_windows(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_group_list_windows "GList* gtk_window_group_list_windows(GtkWindowGroup* window_group)"
+  s7_pointer window_group;
+  window_group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window_group, GtkWindowGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_window_group_list_windows", 1, window_group, "GtkWindowGroup*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_window_group_list_windows(s7_c_pointer(window_group))));
+}
+
+static s7_pointer lg_gtk_window_group_get_current_device_grab(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_group_get_current_device_grab "GtkWidget* gtk_window_group_get_current_device_grab(GtkWindowGroup* window_group, \
+GdkDevice* device)"
+  s7_pointer _p;
+  s7_pointer window_group, device;
+  _p = args;
+  window_group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window_group, GtkWindowGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_window_group_get_current_device_grab", 1, window_group, "GtkWindowGroup*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gtk_window_group_get_current_device_grab", 2, device, "GdkDevice*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_window_group_get_current_device_grab(s7_c_pointer(window_group), s7_c_pointer(device))));
+}
+
+static s7_pointer lg_gtk_window_group_get_current_grab(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_group_get_current_grab "GtkWidget* gtk_window_group_get_current_grab(GtkWindowGroup* window_group)"
+  s7_pointer window_group;
+  window_group = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window_group, GtkWindowGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_window_group_get_current_grab", 1, window_group, "GtkWindowGroup*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_window_group_get_current_grab(s7_c_pointer(window_group))));
+}
+
+static s7_pointer lg_gtk_selection_data_get_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_get_data "guchar* gtk_selection_data_get_data(GtkSelectionData* selection_data)"
+  s7_pointer selection_data;
+  selection_data = s7_car(args);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_get_data", 1, selection_data, "GtkSelectionData*");
+  return(s7_make_type_with_c_pointer(sc, guchar__sym, (void *)gtk_selection_data_get_data(s7_c_pointer(selection_data))));
+}
+
+static s7_pointer lg_gtk_selection_owner_set_for_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_owner_set_for_display "gboolean gtk_selection_owner_set_for_display(GdkDisplay* display, \
+GtkWidget* widget, GdkAtom selection, guint32 time)"
+  s7_pointer _p;
+  s7_pointer display, widget, selection, time;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_owner_set_for_display", 1, display, "GdkDisplay*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_owner_set_for_display", 2, widget, "GtkWidget*");
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gtk_selection_owner_set_for_display", 3, selection, "GdkAtom");
+  time = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(time)) s7_wrong_type_arg_error(sc, "gtk_selection_owner_set_for_display", 4, time, "guint32");
+  return(s7_make_boolean(sc, gtk_selection_owner_set_for_display(s7_c_pointer(display), s7_c_pointer(widget), s7_c_pointer(selection), s7_integer(time))));
+}
+
+static s7_pointer lg_gtk_tool_shell_get_text_orientation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_shell_get_text_orientation "GtkOrientation gtk_tool_shell_get_text_orientation(GtkToolShell* shell)"
+  s7_pointer shell;
+  shell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(shell, GtkToolShell__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_shell_get_text_orientation", 1, shell, "GtkToolShell*");
+  return(s7_make_integer(sc, gtk_tool_shell_get_text_orientation(s7_c_pointer(shell))));
+}
+
+static s7_pointer lg_gtk_tool_shell_get_text_alignment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_shell_get_text_alignment "gfloat gtk_tool_shell_get_text_alignment(GtkToolShell* shell)"
+  s7_pointer shell;
+  shell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(shell, GtkToolShell__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_shell_get_text_alignment", 1, shell, "GtkToolShell*");
+  return(s7_make_real(sc, gtk_tool_shell_get_text_alignment(s7_c_pointer(shell))));
+}
+
+static s7_pointer lg_gtk_tool_shell_get_ellipsize_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_shell_get_ellipsize_mode "PangoEllipsizeMode gtk_tool_shell_get_ellipsize_mode(GtkToolShell* shell)"
+  s7_pointer shell;
+  shell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(shell, GtkToolShell__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_shell_get_ellipsize_mode", 1, shell, "GtkToolShell*");
+  return(s7_make_integer(sc, gtk_tool_shell_get_ellipsize_mode(s7_c_pointer(shell))));
+}
+
+static s7_pointer lg_gtk_tool_shell_get_text_size_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_shell_get_text_size_group "GtkSizeGroup* gtk_tool_shell_get_text_size_group(GtkToolShell* shell)"
+  s7_pointer shell;
+  shell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(shell, GtkToolShell__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_shell_get_text_size_group", 1, shell, "GtkToolShell*");
+  return(s7_make_type_with_c_pointer(sc, GtkSizeGroup__sym, gtk_tool_shell_get_text_size_group(s7_c_pointer(shell))));
+}
+
+static s7_pointer lg_gtk_tool_shell_get_orientation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_shell_get_orientation "GtkOrientation gtk_tool_shell_get_orientation(GtkToolShell* shell)"
+  s7_pointer shell;
+  shell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(shell, GtkToolShell__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_shell_get_orientation", 1, shell, "GtkToolShell*");
+  return(s7_make_integer(sc, gtk_tool_shell_get_orientation(s7_c_pointer(shell))));
+}
+
+static s7_pointer lg_gtk_tool_shell_get_style(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_shell_get_style "GtkToolbarStyle gtk_tool_shell_get_style(GtkToolShell* shell)"
+  s7_pointer shell;
+  shell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(shell, GtkToolShell__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_shell_get_style", 1, shell, "GtkToolShell*");
+  return(s7_make_integer(sc, gtk_tool_shell_get_style(s7_c_pointer(shell))));
+}
+
+static s7_pointer lg_gtk_tool_shell_rebuild_menu(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tool_shell_rebuild_menu "void gtk_tool_shell_rebuild_menu(GtkToolShell* shell)"
+  s7_pointer shell;
+  shell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(shell, GtkToolShell__sym)) s7_wrong_type_arg_error(sc, "gtk_tool_shell_rebuild_menu", 1, shell, "GtkToolShell*");
+  gtk_tool_shell_rebuild_menu(s7_c_pointer(shell));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_map_lock_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_map_lock_path "void gtk_accel_map_lock_path(gchar* accel_path)"
+  s7_pointer accel_path;
+  accel_path = s7_car(args);
+  if (!s7_is_string(accel_path)) s7_wrong_type_arg_error(sc, "gtk_accel_map_lock_path", 1, accel_path, "gchar*");
+  gtk_accel_map_lock_path((const gchar*)s7_string(accel_path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_map_unlock_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_map_unlock_path "void gtk_accel_map_unlock_path(gchar* accel_path)"
+  s7_pointer accel_path;
+  accel_path = s7_car(args);
+  if (!s7_is_string(accel_path)) s7_wrong_type_arg_error(sc, "gtk_accel_map_unlock_path", 1, accel_path, "gchar*");
+  gtk_accel_map_unlock_path((const gchar*)s7_string(accel_path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_theme_lookup_by_gicon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_lookup_by_gicon "GtkIconInfo* gtk_icon_theme_lookup_by_gicon(GtkIconTheme* icon_theme, \
+GIcon* icon, gint size, GtkIconLookupFlags flags)"
+  s7_pointer _p;
+  s7_pointer icon_theme, icon, size, flags;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_by_gicon", 1, icon_theme, "GtkIconTheme*");
+  icon = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon, GIcon__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_by_gicon", 2, icon, "GIcon*");
+  size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(size)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_by_gicon", 3, size, "gint");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_by_gicon", 4, flags, "GtkIconLookupFlags");
+  return(s7_make_type_with_c_pointer(sc, GtkIconInfo__sym, gtk_icon_theme_lookup_by_gicon(s7_c_pointer(icon_theme), s7_c_pointer(icon), s7_integer(size), s7_integer(flags))));
+}
+
+static s7_pointer lg_gtk_icon_info_new_for_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_info_new_for_pixbuf "GtkIconInfo* gtk_icon_info_new_for_pixbuf(GtkIconTheme* icon_theme, \
+GdkPixbuf* pixbuf)"
+  s7_pointer _p;
+  s7_pointer icon_theme, pixbuf;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_info_new_for_pixbuf", 1, icon_theme, "GtkIconTheme*");
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_info_new_for_pixbuf", 2, pixbuf, "GdkPixbuf*");
+  return(s7_make_type_with_c_pointer(sc, GtkIconInfo__sym, gtk_icon_info_new_for_pixbuf(s7_c_pointer(icon_theme), s7_c_pointer(pixbuf))));
+}
+
+static s7_pointer lg_gtk_icon_view_set_item_orientation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_item_orientation "void gtk_icon_view_set_item_orientation(GtkIconView* icon_view, \
+GtkOrientation orientation)"
+  s7_pointer _p;
+  s7_pointer icon_view, orientation;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_item_orientation", 1, icon_view, "GtkIconView*");
+  orientation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(orientation)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_item_orientation", 2, orientation, "GtkOrientation");
+  gtk_icon_view_set_item_orientation(s7_c_pointer(icon_view), s7_integer(orientation));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_item_orientation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_item_orientation "GtkOrientation gtk_icon_view_get_item_orientation(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_item_orientation", 1, icon_view, "GtkIconView*");
+  return(s7_make_integer(sc, gtk_icon_view_get_item_orientation(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_text_view_im_context_filter_keypress(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_im_context_filter_keypress "gboolean gtk_text_view_im_context_filter_keypress(GtkTextView* text_view, \
+GdkEventKey* event)"
+  s7_pointer _p;
+  s7_pointer text_view, event;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_im_context_filter_keypress", 1, text_view, "GtkTextView*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEventKey__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_im_context_filter_keypress", 2, event, "GdkEventKey*");
+  return(s7_make_boolean(sc, gtk_text_view_im_context_filter_keypress(s7_c_pointer(text_view), s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gtk_text_view_reset_im_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_reset_im_context "void gtk_text_view_reset_im_context(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_reset_im_context", 1, text_view, "GtkTextView*");
+  gtk_text_view_reset_im_context(s7_c_pointer(text_view));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_device_get_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_device_get_position "void gdk_device_get_position(GdkDevice* device, GdkScreen** screen, \
+gint* [x], gint* [y])"
+  s7_pointer _p;
+  s7_pointer device, screen;
+  gint ref_x;
+  gint ref_y;
+  _p = args;
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_device_get_position", 1, device, "GdkDevice*");
+  screen = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(screen, GdkScreen___sym)) s7_wrong_type_arg_error(sc, "gdk_device_get_position", 2, screen, "GdkScreen**");
+  gdk_device_get_position(s7_c_pointer(device), s7_c_pointer(screen), &ref_x, &ref_y);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_x), s7_make_integer(sc, ref_y)));
+}
+
+static s7_pointer lg_gdk_device_get_window_at_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_device_get_window_at_position "GdkWindow* gdk_device_get_window_at_position(GdkDevice* device, \
+gint* [win_x], gint* [win_y])"
+  s7_pointer _p;
+  s7_pointer device;
+  gint ref_win_x;
+  gint ref_win_y;
+  _p = args;
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_device_get_window_at_position", 1, device, "GdkDevice*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_device_get_window_at_position(s7_c_pointer(device), &ref_win_x, &ref_win_y));
+      return(s7_list(sc, 3, result, s7_make_integer(sc, ref_win_x), s7_make_integer(sc, ref_win_y)));
+   }
+}
+
+static s7_pointer lg_gtk_cell_view_get_draw_sensitive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_view_get_draw_sensitive "gboolean gtk_cell_view_get_draw_sensitive(GtkCellView* cell_view)"
+  s7_pointer cell_view;
+  cell_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cell_view, GtkCellView__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_view_get_draw_sensitive", 1, cell_view, "GtkCellView*");
+  return(s7_make_boolean(sc, gtk_cell_view_get_draw_sensitive(s7_c_pointer(cell_view))));
+}
+
+static s7_pointer lg_gtk_cell_view_set_draw_sensitive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_view_set_draw_sensitive "void gtk_cell_view_set_draw_sensitive(GtkCellView* cell_view, \
+gboolean draw_sensitive)"
+  s7_pointer _p;
+  s7_pointer cell_view, draw_sensitive;
+  _p = args;
+  cell_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_view, GtkCellView__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_view_set_draw_sensitive", 1, cell_view, "GtkCellView*");
+  draw_sensitive = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(draw_sensitive)) s7_wrong_type_arg_error(sc, "gtk_cell_view_set_draw_sensitive", 2, draw_sensitive, "gboolean");
+  gtk_cell_view_set_draw_sensitive(s7_c_pointer(cell_view), lg_boolean(draw_sensitive));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_cell_view_get_fit_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_view_get_fit_model "gboolean gtk_cell_view_get_fit_model(GtkCellView* cell_view)"
+  s7_pointer cell_view;
+  cell_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cell_view, GtkCellView__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_view_get_fit_model", 1, cell_view, "GtkCellView*");
+  return(s7_make_boolean(sc, gtk_cell_view_get_fit_model(s7_c_pointer(cell_view))));
+}
+
+static s7_pointer lg_gtk_cell_view_set_fit_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_cell_view_set_fit_model "void gtk_cell_view_set_fit_model(GtkCellView* cell_view, gboolean fit_model)"
+  s7_pointer _p;
+  s7_pointer cell_view, fit_model;
+  _p = args;
+  cell_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cell_view, GtkCellView__sym)) s7_wrong_type_arg_error(sc, "gtk_cell_view_set_fit_model", 1, cell_view, "GtkCellView*");
+  fit_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(fit_model)) s7_wrong_type_arg_error(sc, "gtk_cell_view_set_fit_model", 2, fit_model, "gboolean");
+  gtk_cell_view_set_fit_model(s7_c_pointer(cell_view), lg_boolean(fit_model));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_new_with_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_new_with_area "GtkWidget* gtk_icon_view_new_with_area(GtkCellArea* area)"
+  s7_pointer area;
+  area = s7_car(args);
+  if (!s7_is_c_pointer_of_type(area, GtkCellArea__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_new_with_area", 1, area, "GtkCellArea*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_icon_view_new_with_area(s7_c_pointer(area))));
+}
+
+static s7_pointer lg_gtk_menu_item_set_reserve_indicator(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_set_reserve_indicator "void gtk_menu_item_set_reserve_indicator(GtkMenuItem* menu_item, \
+gboolean reserve)"
+  s7_pointer _p;
+  s7_pointer menu_item, reserve;
+  _p = args;
+  menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_set_reserve_indicator", 1, menu_item, "GtkMenuItem*");
+  reserve = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(reserve)) s7_wrong_type_arg_error(sc, "gtk_menu_item_set_reserve_indicator", 2, reserve, "gboolean");
+  gtk_menu_item_set_reserve_indicator(s7_c_pointer(menu_item), lg_boolean(reserve));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_item_get_reserve_indicator(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_item_get_reserve_indicator "gboolean gtk_menu_item_get_reserve_indicator(GtkMenuItem* menu_item)"
+  s7_pointer menu_item;
+  menu_item = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_item, GtkMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_item_get_reserve_indicator", 1, menu_item, "GtkMenuItem*");
+  return(s7_make_boolean(sc, gtk_menu_item_get_reserve_indicator(s7_c_pointer(menu_item))));
+}
+
+static s7_pointer lg_gtk_menu_shell_get_selected_item(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_shell_get_selected_item "GtkWidget* gtk_menu_shell_get_selected_item(GtkMenuShell* menu_shell)"
+  s7_pointer menu_shell;
+  menu_shell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_shell, GtkMenuShell__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_get_selected_item", 1, menu_shell, "GtkMenuShell*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_menu_shell_get_selected_item(s7_c_pointer(menu_shell))));
+}
+
+static s7_pointer lg_gtk_menu_shell_get_parent_shell(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_shell_get_parent_shell "GtkWidget* gtk_menu_shell_get_parent_shell(GtkMenuShell* menu_shell)"
+  s7_pointer menu_shell;
+  menu_shell = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_shell, GtkMenuShell__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_get_parent_shell", 1, menu_shell, "GtkMenuShell*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_menu_shell_get_parent_shell(s7_c_pointer(menu_shell))));
+}
+
+static s7_pointer lg_gtk_selection_data_get_data_with_length(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_selection_data_get_data_with_length "guchar* gtk_selection_data_get_data_with_length(GtkSelectionData* selection_data, \
+gint* [length])"
+  s7_pointer _p;
+  s7_pointer selection_data;
+  gint ref_length;
+  _p = args;
+  selection_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection_data, GtkSelectionData__sym)) s7_wrong_type_arg_error(sc, "gtk_selection_data_get_data_with_length", 1, selection_data, "GtkSelectionData*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, guchar__sym, (void *)gtk_selection_data_get_data_with_length(s7_c_pointer(selection_data), &ref_length));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_length)));
+   }
+}
+
+static s7_pointer lg_gtk_tree_model_iter_previous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_iter_previous "gboolean gtk_tree_model_iter_previous(GtkTreeModel* tree_model, \
+GtkTreeIter* iter)"
+  s7_pointer _p;
+  s7_pointer tree_model, iter;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_previous", 1, tree_model, "GtkTreeModel*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_iter_previous", 2, iter, "GtkTreeIter*");
+  return(s7_make_boolean(sc, gtk_tree_model_iter_previous(s7_c_pointer(tree_model), s7_c_pointer(iter))));
+}
+
+static s7_pointer lg_gtk_tree_view_is_blank_at_pos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_is_blank_at_pos "gboolean gtk_tree_view_is_blank_at_pos(GtkTreeView* tree_view, \
+gint x, gint y, GtkTreePath** [path], GtkTreeViewColumn** [column], gint* [cell_x], gint* [cell_y])"
+  s7_pointer _p;
+  s7_pointer tree_view, x, y;
+  GtkTreePath* ref_path = NULL;
+  GtkTreeViewColumn* ref_column = NULL;
+  gint ref_cell_x;
+  gint ref_cell_y;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_is_blank_at_pos", 1, tree_view, "GtkTreeView*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_tree_view_is_blank_at_pos", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_tree_view_is_blank_at_pos", 3, y, "gint");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_tree_view_is_blank_at_pos(s7_c_pointer(tree_view), s7_integer(x), s7_integer(y), &ref_path, &ref_column, &ref_cell_x, &ref_cell_y));
+      return(s7_list(sc, 5, result, s7_make_c_pointer(sc, ref_path), s7_make_c_pointer(sc, ref_column), s7_make_integer(sc, ref_cell_x), s7_make_integer(sc, ref_cell_y)));
+   }
+}
+
+static s7_pointer lg_gtk_widget_set_device_enabled(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_device_enabled "void gtk_widget_set_device_enabled(GtkWidget* widget, GdkDevice* device, \
+gboolean enabled)"
+  s7_pointer _p;
+  s7_pointer widget, device, enabled;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_device_enabled", 1, widget, "GtkWidget*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_device_enabled", 2, device, "GdkDevice*");
+  enabled = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(enabled)) s7_wrong_type_arg_error(sc, "gtk_widget_set_device_enabled", 3, enabled, "gboolean");
+  gtk_widget_set_device_enabled(s7_c_pointer(widget), s7_c_pointer(device), lg_boolean(enabled));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_device_enabled(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_device_enabled "gboolean gtk_widget_get_device_enabled(GtkWidget* widget, \
+GdkDevice* device)"
+  s7_pointer _p;
+  s7_pointer widget, device;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_device_enabled", 1, widget, "GtkWidget*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_device_enabled", 2, device, "GdkDevice*");
+  return(s7_make_boolean(sc, gtk_widget_get_device_enabled(s7_c_pointer(widget), s7_c_pointer(device))));
+}
+
+static s7_pointer lg_gtk_window_set_has_user_ref_count(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_has_user_ref_count "void gtk_window_set_has_user_ref_count(GtkWindow* window, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_has_user_ref_count", 1, window, "GtkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_window_set_has_user_ref_count", 2, setting, "gboolean");
+  gtk_window_set_has_user_ref_count(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_selection_send_notify(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_selection_send_notify "void gdk_selection_send_notify(GdkWindow* requestor, GdkAtom selection, \
+GdkAtom target, GdkAtom property, guint32 time_)"
+  s7_pointer _p;
+  s7_pointer requestor, selection, target, property, time_;
+  _p = args;
+  requestor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(requestor, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_selection_send_notify", 1, requestor, "GdkWindow*");
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_selection_send_notify", 2, selection, "GdkAtom");
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_selection_send_notify", 3, target, "GdkAtom");
+  property = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(property, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_selection_send_notify", 4, property, "GdkAtom");
+  time_ = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(time_)) s7_wrong_type_arg_error(sc, "gdk_selection_send_notify", 5, time_, "guint32");
+  gdk_selection_send_notify(s7_c_pointer(requestor), s7_c_pointer(selection), s7_c_pointer(target), s7_c_pointer(property), s7_integer(time_));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_selection_send_notify_for_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_selection_send_notify_for_display "void gdk_selection_send_notify_for_display(GdkDisplay* display, \
+GdkWindow* requestor, GdkAtom selection, GdkAtom target, GdkAtom property, guint32 time_)"
+  s7_pointer _p;
+  s7_pointer display, requestor, selection, target, property, time_;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_selection_send_notify_for_display", 1, display, "GdkDisplay*");
+  requestor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(requestor, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_selection_send_notify_for_display", 2, requestor, "GdkWindow*");
+  selection = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(selection, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_selection_send_notify_for_display", 3, selection, "GdkAtom");
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_selection_send_notify_for_display", 4, target, "GdkAtom");
+  property = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(property, GdkAtom_sym)) s7_wrong_type_arg_error(sc, "gdk_selection_send_notify_for_display", 5, property, "GdkAtom");
+  time_ = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(time_)) s7_wrong_type_arg_error(sc, "gdk_selection_send_notify_for_display", 6, time_, "guint32");
+  gdk_selection_send_notify_for_display(s7_c_pointer(display), s7_c_pointer(requestor), s7_c_pointer(selection), s7_c_pointer(target), s7_c_pointer(property), s7_integer(time_));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_rgba_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_rgba_copy "GdkRGBA* gdk_rgba_copy(GdkRGBA* rgba)"
+  s7_pointer rgba;
+  rgba = s7_car(args);
+  if (!s7_is_c_pointer_of_type(rgba, GdkRGBA__sym)) s7_wrong_type_arg_error(sc, "gdk_rgba_copy", 1, rgba, "GdkRGBA*");
+  return(s7_make_type_with_c_pointer(sc, GdkRGBA__sym, gdk_rgba_copy(s7_c_pointer(rgba))));
+}
+
+static s7_pointer lg_gdk_rgba_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_rgba_free "void gdk_rgba_free(GdkRGBA* rgba)"
+  s7_pointer rgba;
+  rgba = s7_car(args);
+  if (!s7_is_c_pointer_of_type(rgba, GdkRGBA__sym)) s7_wrong_type_arg_error(sc, "gdk_rgba_free", 1, rgba, "GdkRGBA*");
+  gdk_rgba_free(s7_c_pointer(rgba));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_rgba_parse(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_rgba_parse "gboolean gdk_rgba_parse(GdkRGBA* rgba, gchar* spec)"
+  s7_pointer _p;
+  s7_pointer rgba, spec;
+  _p = args;
+  rgba = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rgba, GdkRGBA__sym)) s7_wrong_type_arg_error(sc, "gdk_rgba_parse", 1, rgba, "GdkRGBA*");
+  spec = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(spec)) s7_wrong_type_arg_error(sc, "gdk_rgba_parse", 2, spec, "gchar*");
+  return(s7_make_boolean(sc, gdk_rgba_parse(s7_c_pointer(rgba), (const gchar*)s7_string(spec))));
+}
+
+static s7_pointer lg_gdk_rgba_to_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_rgba_to_string "gchar* gdk_rgba_to_string(GdkRGBA* rgba)"
+  s7_pointer rgba;
+  rgba = s7_car(args);
+  if (!s7_is_c_pointer_of_type(rgba, GdkRGBA__sym)) s7_wrong_type_arg_error(sc, "gdk_rgba_to_string", 1, rgba, "GdkRGBA*");
+  return(s7_make_string(sc, gdk_rgba_to_string(s7_c_pointer(rgba))));
+}
+
+static s7_pointer lg_gtk_widget_set_state_flags(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_state_flags "void gtk_widget_set_state_flags(GtkWidget* widget, GtkStateFlags flags, \
+gboolean clear)"
+  s7_pointer _p;
+  s7_pointer widget, flags, clear;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_state_flags", 1, widget, "GtkWidget*");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_widget_set_state_flags", 2, flags, "GtkStateFlags");
+  clear = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(clear)) s7_wrong_type_arg_error(sc, "gtk_widget_set_state_flags", 3, clear, "gboolean");
+  gtk_widget_set_state_flags(s7_c_pointer(widget), s7_integer(flags), lg_boolean(clear));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_unset_state_flags(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_unset_state_flags "void gtk_widget_unset_state_flags(GtkWidget* widget, GtkStateFlags flags)"
+  s7_pointer _p;
+  s7_pointer widget, flags;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_unset_state_flags", 1, widget, "GtkWidget*");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_widget_unset_state_flags", 2, flags, "GtkStateFlags");
+  gtk_widget_unset_state_flags(s7_c_pointer(widget), s7_integer(flags));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_state_flags(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_state_flags "GtkStateFlags gtk_widget_get_state_flags(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_state_flags", 1, widget, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_widget_get_state_flags(s7_c_pointer(widget))));
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(3, 2, 0)
+static s7_pointer lg_gtk_entry_get_placeholder_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_placeholder_text "gchar* gtk_entry_get_placeholder_text(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_placeholder_text", 1, entry, "GtkEntry*");
+  return(s7_make_string(sc, gtk_entry_get_placeholder_text(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_set_placeholder_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_placeholder_text "void gtk_entry_set_placeholder_text(GtkEntry* entry, gchar* text)"
+  s7_pointer _p;
+  s7_pointer entry, text;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_placeholder_text", 1, entry, "GtkEntry*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_entry_set_placeholder_text", 2, text, "gchar*");
+  gtk_entry_set_placeholder_text(s7_c_pointer(entry), (const gchar*)s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_expander_set_resize_toplevel(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_set_resize_toplevel "void gtk_expander_set_resize_toplevel(GtkExpander* expander, \
+gboolean resize_toplevel)"
+  s7_pointer _p;
+  s7_pointer expander, resize_toplevel;
+  _p = args;
+  expander = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(expander, GtkExpander__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_set_resize_toplevel", 1, expander, "GtkExpander*");
+  resize_toplevel = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(resize_toplevel)) s7_wrong_type_arg_error(sc, "gtk_expander_set_resize_toplevel", 2, resize_toplevel, "gboolean");
+  gtk_expander_set_resize_toplevel(s7_c_pointer(expander), lg_boolean(resize_toplevel));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_expander_get_resize_toplevel(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_expander_get_resize_toplevel "gboolean gtk_expander_get_resize_toplevel(GtkExpander* expander)"
+  s7_pointer expander;
+  expander = s7_car(args);
+  if (!s7_is_c_pointer_of_type(expander, GtkExpander__sym)) s7_wrong_type_arg_error(sc, "gtk_expander_get_resize_toplevel", 1, expander, "GtkExpander*");
+  return(s7_make_boolean(sc, gtk_expander_get_resize_toplevel(s7_c_pointer(expander))));
+}
+
+static s7_pointer lg_gtk_widget_path_to_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_path_to_string "char* gtk_widget_path_to_string(GtkWidgetPath* path)"
+  s7_pointer path;
+  path = s7_car(args);
+  if (!s7_is_c_pointer_of_type(path, GtkWidgetPath__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_path_to_string", 1, path, "GtkWidgetPath*");
+  return(s7_make_string(sc, gtk_widget_path_to_string(s7_c_pointer(path))));
+}
+
+static s7_pointer lg_gtk_button_box_get_child_non_homogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_box_get_child_non_homogeneous "gboolean gtk_button_box_get_child_non_homogeneous(GtkButtonBox* widget, \
+GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer widget, child;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkButtonBox__sym)) s7_wrong_type_arg_error(sc, "gtk_button_box_get_child_non_homogeneous", 1, widget, "GtkButtonBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_button_box_get_child_non_homogeneous", 2, child, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_button_box_get_child_non_homogeneous(s7_c_pointer(widget), s7_c_pointer(child))));
+}
+
+static s7_pointer lg_gtk_button_box_set_child_non_homogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_box_set_child_non_homogeneous "void gtk_button_box_set_child_non_homogeneous(GtkButtonBox* widget, \
+GtkWidget* child, gboolean non_homogeneous)"
+  s7_pointer _p;
+  s7_pointer widget, child, non_homogeneous;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkButtonBox__sym)) s7_wrong_type_arg_error(sc, "gtk_button_box_set_child_non_homogeneous", 1, widget, "GtkButtonBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_button_box_set_child_non_homogeneous", 2, child, "GtkWidget*");
+  non_homogeneous = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(non_homogeneous)) s7_wrong_type_arg_error(sc, "gtk_button_box_set_child_non_homogeneous", 3, non_homogeneous, "gboolean");
+  gtk_button_box_set_child_non_homogeneous(s7_c_pointer(widget), s7_c_pointer(child), lg_boolean(non_homogeneous));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_container_child_notify(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_container_child_notify "void gtk_container_child_notify(GtkContainer* container, GtkWidget* child, \
+gchar* property_name)"
+  s7_pointer _p;
+  s7_pointer container, child, property_name;
+  _p = args;
+  container = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(container, GtkContainer__sym)) s7_wrong_type_arg_error(sc, "gtk_container_child_notify", 1, container, "GtkContainer*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_container_child_notify", 2, child, "GtkWidget*");
+  property_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(property_name)) s7_wrong_type_arg_error(sc, "gtk_container_child_notify", 3, property_name, "gchar*");
+  gtk_container_child_notify(s7_c_pointer(container), s7_c_pointer(child), (const gchar*)s7_string(property_name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_source_set_icon_gicon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_source_set_icon_gicon "void gtk_drag_source_set_icon_gicon(GtkWidget* widget, GIcon* icon)"
+  s7_pointer _p;
+  s7_pointer widget, icon;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_source_set_icon_gicon", 1, widget, "GtkWidget*");
+  icon = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon, GIcon__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_source_set_icon_gicon", 2, icon, "GIcon*");
+  gtk_drag_source_set_icon_gicon(s7_c_pointer(widget), s7_c_pointer(icon));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drag_set_icon_gicon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_set_icon_gicon "void gtk_drag_set_icon_gicon(GdkDragContext* context, GIcon* icon, \
+gint hot_x, gint hot_y)"
+  s7_pointer _p;
+  s7_pointer context, icon, hot_x, hot_y;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_gicon", 1, context, "GdkDragContext*");
+  icon = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon, GIcon__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_gicon", 2, icon, "GIcon*");
+  hot_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hot_x)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_gicon", 3, hot_x, "gint");
+  hot_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hot_y)) s7_wrong_type_arg_error(sc, "gtk_drag_set_icon_gicon", 4, hot_y, "gint");
+  gtk_drag_set_icon_gicon(s7_c_pointer(context), s7_c_pointer(icon), s7_integer(hot_x), s7_integer(hot_y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_combo_box_set_active_id(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_combo_box_set_active_id "gboolean gtk_combo_box_set_active_id(GtkComboBox* combo_box, \
+gchar* active_id)"
+  s7_pointer _p;
+  s7_pointer combo_box, active_id;
+  _p = args;
+  combo_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(combo_box, GtkComboBox__sym)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_active_id", 1, combo_box, "GtkComboBox*");
+  active_id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(active_id)) s7_wrong_type_arg_error(sc, "gtk_combo_box_set_active_id", 2, active_id, "gchar*");
+  return(s7_make_boolean(sc, gtk_combo_box_set_active_id(s7_c_pointer(combo_box), (const gchar*)s7_string(active_id))));
+}
+
+static s7_pointer lg_gtk_tree_view_column_get_x_offset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_column_get_x_offset "gint gtk_tree_view_column_get_x_offset(GtkTreeViewColumn* tree_column)"
+  s7_pointer tree_column;
+  tree_column = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_column, GtkTreeViewColumn__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_column_get_x_offset", 1, tree_column, "GtkTreeViewColumn*");
+  return(s7_make_integer(sc, gtk_tree_view_column_get_x_offset(s7_c_pointer(tree_column))));
+}
+
+static s7_pointer lg_gtk_overlay_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_overlay_new "GtkWidget* gtk_overlay_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_overlay_new()));
+}
+
+static s7_pointer lg_gtk_overlay_add_overlay(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_overlay_add_overlay "void gtk_overlay_add_overlay(GtkOverlay* overlay, GtkWidget* widget)"
+  s7_pointer _p;
+  s7_pointer overlay, widget;
+  _p = args;
+  overlay = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(overlay, GtkOverlay__sym)) s7_wrong_type_arg_error(sc, "gtk_overlay_add_overlay", 1, overlay, "GtkOverlay*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_overlay_add_overlay", 2, widget, "GtkWidget*");
+  gtk_overlay_add_overlay(s7_c_pointer(overlay), s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_adjustment_get_minimum_increment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_adjustment_get_minimum_increment "gdouble gtk_adjustment_get_minimum_increment(GtkAdjustment* adjustment)"
+  s7_pointer adjustment;
+  adjustment = s7_car(args);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_adjustment_get_minimum_increment", 1, adjustment, "GtkAdjustment*");
+  return(s7_make_real(sc, gtk_adjustment_get_minimum_increment(s7_c_pointer(adjustment))));
+}
+
+static s7_pointer lg_gtk_grid_insert_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_insert_row "void gtk_grid_insert_row(GtkGrid* grid, gint position)"
+  s7_pointer _p;
+  s7_pointer grid, position;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_insert_row", 1, grid, "GtkGrid*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_grid_insert_row", 2, position, "gint");
+  gtk_grid_insert_row(s7_c_pointer(grid), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_grid_insert_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_insert_column "void gtk_grid_insert_column(GtkGrid* grid, gint position)"
+  s7_pointer _p;
+  s7_pointer grid, position;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_insert_column", 1, grid, "GtkGrid*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_grid_insert_column", 2, position, "gint");
+  gtk_grid_insert_column(s7_c_pointer(grid), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_grid_insert_next_to(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_insert_next_to "void gtk_grid_insert_next_to(GtkGrid* grid, GtkWidget* sibling, \
+GtkPositionType side)"
+  s7_pointer _p;
+  s7_pointer grid, sibling, side;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_insert_next_to", 1, grid, "GtkGrid*");
+  sibling = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sibling, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_insert_next_to", 2, sibling, "GtkWidget*");
+  side = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(side)) s7_wrong_type_arg_error(sc, "gtk_grid_insert_next_to", 3, side, "GtkPositionType");
+  gtk_grid_insert_next_to(s7_c_pointer(grid), s7_c_pointer(sibling), s7_integer(side));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_iter_assign(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_assign "void gtk_text_iter_assign(GtkTextIter* iter, GtkTextIter* other)"
+  s7_pointer _p;
+  s7_pointer iter, other;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_assign", 1, iter, "GtkTextIter*");
+  other = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(other, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_assign", 2, other, "GtkTextIter*");
+  gtk_text_iter_assign(s7_c_pointer(iter), s7_c_pointer(other));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_has_visible_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_has_visible_focus "gboolean gtk_widget_has_visible_focus(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_has_visible_focus", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_has_visible_focus(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_window_set_focus_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_focus_visible "void gtk_window_set_focus_visible(GtkWindow* window, gboolean setting)"
+  s7_pointer _p;
+  s7_pointer window, setting;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_focus_visible", 1, window, "GtkWindow*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_window_set_focus_visible", 2, setting, "gboolean");
+  gtk_window_set_focus_visible(s7_c_pointer(window), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_focus_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_focus_visible "gboolean gtk_window_get_focus_visible(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_focus_visible", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_get_focus_visible(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_font_chooser_dialog_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_dialog_new "GtkWidget* gtk_font_chooser_dialog_new(gchar* title, GtkWindow* window)"
+  s7_pointer _p;
+  s7_pointer title, window;
+  _p = args;
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_dialog_new", 1, title, "gchar*");
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_dialog_new", 2, window, "GtkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_font_chooser_dialog_new((const gchar*)s7_string(title), s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_event_get_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_button "gboolean gdk_event_get_button(GdkEvent* event, guint* button)"
+  s7_pointer _p;
+  s7_pointer event, button;
+  _p = args;
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_button", 1, event, "GdkEvent*");
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, guint__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_button", 2, button, "guint*");
+  return(s7_make_boolean(sc, gdk_event_get_button(s7_c_pointer(event), s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gdk_event_get_click_count(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_click_count "gboolean gdk_event_get_click_count(GdkEvent* event, guint* click_count)"
+  s7_pointer _p;
+  s7_pointer event, click_count;
+  _p = args;
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_click_count", 1, event, "GdkEvent*");
+  click_count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(click_count, guint__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_click_count", 2, click_count, "guint*");
+  return(s7_make_boolean(sc, gdk_event_get_click_count(s7_c_pointer(event), s7_c_pointer(click_count))));
+}
+
+static s7_pointer lg_gdk_event_get_keyval(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_keyval "gboolean gdk_event_get_keyval(GdkEvent* event, guint* keyval)"
+  s7_pointer _p;
+  s7_pointer event, keyval;
+  _p = args;
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_keyval", 1, event, "GdkEvent*");
+  keyval = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(keyval, guint__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_keyval", 2, keyval, "guint*");
+  return(s7_make_boolean(sc, gdk_event_get_keyval(s7_c_pointer(event), s7_c_pointer(keyval))));
+}
+
+static s7_pointer lg_gdk_event_get_keycode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_keycode "gboolean gdk_event_get_keycode(GdkEvent* event, guint16* keycode)"
+  s7_pointer _p;
+  s7_pointer event, keycode;
+  _p = args;
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_keycode", 1, event, "GdkEvent*");
+  keycode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(keycode, guint16__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_keycode", 2, keycode, "guint16*");
+  return(s7_make_boolean(sc, gdk_event_get_keycode(s7_c_pointer(event), s7_c_pointer(keycode))));
+}
+
+static s7_pointer lg_gdk_event_get_scroll_direction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_scroll_direction "gboolean gdk_event_get_scroll_direction(GdkEvent* event, \
+GdkScrollDirection* [direction])"
+  s7_pointer _p;
+  s7_pointer event;
+  GdkScrollDirection ref_direction;
+  _p = args;
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_scroll_direction", 1, event, "GdkEvent*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_event_get_scroll_direction(s7_c_pointer(event), &ref_direction));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_direction)));
+   }
+}
+
+static s7_pointer lg_gtk_grid_get_child_at(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_get_child_at "GtkWidget* gtk_grid_get_child_at(GtkGrid* grid, gint left, gint top)"
+  s7_pointer _p;
+  s7_pointer grid, left, top;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_get_child_at", 1, grid, "GtkGrid*");
+  left = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(left)) s7_wrong_type_arg_error(sc, "gtk_grid_get_child_at", 2, left, "gint");
+  top = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(top)) s7_wrong_type_arg_error(sc, "gtk_grid_get_child_at", 3, top, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_grid_get_child_at(s7_c_pointer(grid), s7_integer(left), s7_integer(top))));
+}
+
+static s7_pointer lg_gtk_font_chooser_get_font_family(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_get_font_family "PangoFontFamily* gtk_font_chooser_get_font_family(GtkFontChooser* fontchooser)"
+  s7_pointer fontchooser;
+  fontchooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(fontchooser, GtkFontChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_get_font_family", 1, fontchooser, "GtkFontChooser*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontFamily__sym, gtk_font_chooser_get_font_family(s7_c_pointer(fontchooser))));
+}
+
+static s7_pointer lg_gtk_font_chooser_get_font_face(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_get_font_face "PangoFontFace* gtk_font_chooser_get_font_face(GtkFontChooser* fontchooser)"
+  s7_pointer fontchooser;
+  fontchooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(fontchooser, GtkFontChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_get_font_face", 1, fontchooser, "GtkFontChooser*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontFace__sym, gtk_font_chooser_get_font_face(s7_c_pointer(fontchooser))));
+}
+
+static s7_pointer lg_gtk_font_chooser_get_font_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_get_font_size "gint gtk_font_chooser_get_font_size(GtkFontChooser* fontchooser)"
+  s7_pointer fontchooser;
+  fontchooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(fontchooser, GtkFontChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_get_font_size", 1, fontchooser, "GtkFontChooser*");
+  return(s7_make_integer(sc, gtk_font_chooser_get_font_size(s7_c_pointer(fontchooser))));
+}
+
+static s7_pointer lg_gtk_font_chooser_get_font_desc(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_get_font_desc "PangoFontDescription* gtk_font_chooser_get_font_desc(GtkFontChooser* fontchooser)"
+  s7_pointer fontchooser;
+  fontchooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(fontchooser, GtkFontChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_get_font_desc", 1, fontchooser, "GtkFontChooser*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontDescription__sym, gtk_font_chooser_get_font_desc(s7_c_pointer(fontchooser))));
+}
+
+static s7_pointer lg_gtk_font_chooser_set_font_desc(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_set_font_desc "void gtk_font_chooser_set_font_desc(GtkFontChooser* fontchooser, \
+PangoFontDescription* font_desc)"
+  s7_pointer _p;
+  s7_pointer fontchooser, font_desc;
+  _p = args;
+  fontchooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(fontchooser, GtkFontChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_set_font_desc", 1, fontchooser, "GtkFontChooser*");
+  font_desc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font_desc, PangoFontDescription__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_set_font_desc", 2, font_desc, "PangoFontDescription*");
+  gtk_font_chooser_set_font_desc(s7_c_pointer(fontchooser), s7_c_pointer(font_desc));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_font_chooser_get_font(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_get_font "gchar* gtk_font_chooser_get_font(GtkFontChooser* fontchooser)"
+  s7_pointer fontchooser;
+  fontchooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(fontchooser, GtkFontChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_get_font", 1, fontchooser, "GtkFontChooser*");
+  return(s7_make_string(sc, gtk_font_chooser_get_font(s7_c_pointer(fontchooser))));
+}
+
+static s7_pointer lg_gtk_font_chooser_set_font(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_set_font "void gtk_font_chooser_set_font(GtkFontChooser* fontchooser, gchar* fontname)"
+  s7_pointer _p;
+  s7_pointer fontchooser, fontname;
+  _p = args;
+  fontchooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(fontchooser, GtkFontChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_set_font", 1, fontchooser, "GtkFontChooser*");
+  fontname = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(fontname)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_set_font", 2, fontname, "gchar*");
+  gtk_font_chooser_set_font(s7_c_pointer(fontchooser), (const gchar*)s7_string(fontname));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_font_chooser_get_preview_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_get_preview_text "gchar* gtk_font_chooser_get_preview_text(GtkFontChooser* fontchooser)"
+  s7_pointer fontchooser;
+  fontchooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(fontchooser, GtkFontChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_get_preview_text", 1, fontchooser, "GtkFontChooser*");
+  return(s7_make_string(sc, gtk_font_chooser_get_preview_text(s7_c_pointer(fontchooser))));
+}
+
+static s7_pointer lg_gtk_font_chooser_set_preview_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_set_preview_text "void gtk_font_chooser_set_preview_text(GtkFontChooser* fontchooser, \
+gchar* text)"
+  s7_pointer _p;
+  s7_pointer fontchooser, text;
+  _p = args;
+  fontchooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(fontchooser, GtkFontChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_set_preview_text", 1, fontchooser, "GtkFontChooser*");
+  text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(text)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_set_preview_text", 2, text, "gchar*");
+  gtk_font_chooser_set_preview_text(s7_c_pointer(fontchooser), (const gchar*)s7_string(text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_font_chooser_get_show_preview_entry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_get_show_preview_entry "gboolean gtk_font_chooser_get_show_preview_entry(GtkFontChooser* fontchooser)"
+  s7_pointer fontchooser;
+  fontchooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(fontchooser, GtkFontChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_get_show_preview_entry", 1, fontchooser, "GtkFontChooser*");
+  return(s7_make_boolean(sc, gtk_font_chooser_get_show_preview_entry(s7_c_pointer(fontchooser))));
+}
+
+static s7_pointer lg_gtk_font_chooser_set_show_preview_entry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_set_show_preview_entry "void gtk_font_chooser_set_show_preview_entry(GtkFontChooser* fontchooser, \
+gboolean show_preview_entry)"
+  s7_pointer _p;
+  s7_pointer fontchooser, show_preview_entry;
+  _p = args;
+  fontchooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(fontchooser, GtkFontChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_set_show_preview_entry", 1, fontchooser, "GtkFontChooser*");
+  show_preview_entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_preview_entry)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_set_show_preview_entry", 2, show_preview_entry, "gboolean");
+  gtk_font_chooser_set_show_preview_entry(s7_c_pointer(fontchooser), lg_boolean(show_preview_entry));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_font_chooser_widget_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_widget_new "GtkWidget* gtk_font_chooser_widget_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_font_chooser_widget_new()));
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(3, 4, 0)
+static s7_pointer lg_gdk_keymap_get_modifier_mask(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keymap_get_modifier_mask "GdkModifierType gdk_keymap_get_modifier_mask(GdkKeymap* keymap, \
+GdkModifierIntent intent)"
+  s7_pointer _p;
+  s7_pointer keymap, intent;
+  _p = args;
+  keymap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(keymap, GdkKeymap__sym)) s7_wrong_type_arg_error(sc, "gdk_keymap_get_modifier_mask", 1, keymap, "GdkKeymap*");
+  intent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(intent)) s7_wrong_type_arg_error(sc, "gdk_keymap_get_modifier_mask", 2, intent, "GdkModifierIntent");
+  return(s7_make_integer(sc, gdk_keymap_get_modifier_mask(s7_c_pointer(keymap), s7_integer(intent))));
+}
+
+static s7_pointer lg_gdk_window_begin_resize_drag_for_device(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_begin_resize_drag_for_device "void gdk_window_begin_resize_drag_for_device(GdkWindow* window, \
+GdkWindowEdge edge, GdkDevice* device, gint button, gint root_x, gint root_y, guint32 timestamp)"
+  s7_pointer _p;
+  s7_pointer window, edge, device, button, root_x, root_y, timestamp;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_begin_resize_drag_for_device", 1, window, "GdkWindow*");
+  edge = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(edge)) s7_wrong_type_arg_error(sc, "gdk_window_begin_resize_drag_for_device", 2, edge, "GdkWindowEdge");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_window_begin_resize_drag_for_device", 3, device, "GdkDevice*");
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(button)) s7_wrong_type_arg_error(sc, "gdk_window_begin_resize_drag_for_device", 4, button, "gint");
+  root_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(root_x)) s7_wrong_type_arg_error(sc, "gdk_window_begin_resize_drag_for_device", 5, root_x, "gint");
+  root_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(root_y)) s7_wrong_type_arg_error(sc, "gdk_window_begin_resize_drag_for_device", 6, root_y, "gint");
+  timestamp = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(timestamp)) s7_wrong_type_arg_error(sc, "gdk_window_begin_resize_drag_for_device", 7, timestamp, "guint32");
+  gdk_window_begin_resize_drag_for_device(s7_c_pointer(window), s7_integer(edge), s7_c_pointer(device), s7_integer(button), s7_integer(root_x), s7_integer(root_y), s7_integer(timestamp));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_begin_move_drag_for_device(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_begin_move_drag_for_device "void gdk_window_begin_move_drag_for_device(GdkWindow* window, \
+GdkDevice* device, gint button, gint root_x, gint root_y, guint32 timestamp)"
+  s7_pointer _p;
+  s7_pointer window, device, button, root_x, root_y, timestamp;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_begin_move_drag_for_device", 1, window, "GdkWindow*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_window_begin_move_drag_for_device", 2, device, "GdkDevice*");
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(button)) s7_wrong_type_arg_error(sc, "gdk_window_begin_move_drag_for_device", 3, button, "gint");
+  root_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(root_x)) s7_wrong_type_arg_error(sc, "gdk_window_begin_move_drag_for_device", 4, root_x, "gint");
+  root_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(root_y)) s7_wrong_type_arg_error(sc, "gdk_window_begin_move_drag_for_device", 5, root_y, "gint");
+  timestamp = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(timestamp)) s7_wrong_type_arg_error(sc, "gdk_window_begin_move_drag_for_device", 6, timestamp, "guint32");
+  gdk_window_begin_move_drag_for_device(s7_c_pointer(window), s7_c_pointer(device), s7_integer(button), s7_integer(root_x), s7_integer(root_y), s7_integer(timestamp));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accelerator_parse_with_keycode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accelerator_parse_with_keycode "void gtk_accelerator_parse_with_keycode(gchar* accelerator, \
+guint* accelerator_key, guint** accelerator_codes, GdkModifierType* accelerator_mods)"
+  s7_pointer _p;
+  s7_pointer accelerator, accelerator_key, accelerator_codes, accelerator_mods;
+  _p = args;
+  accelerator = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(accelerator)) s7_wrong_type_arg_error(sc, "gtk_accelerator_parse_with_keycode", 1, accelerator, "gchar*");
+  accelerator_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accelerator_key, guint__sym)) s7_wrong_type_arg_error(sc, "gtk_accelerator_parse_with_keycode", 2, accelerator_key, "guint*");
+  accelerator_codes = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accelerator_codes, guint___sym)) s7_wrong_type_arg_error(sc, "gtk_accelerator_parse_with_keycode", 3, accelerator_codes, "guint**");
+  accelerator_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accelerator_mods, GdkModifierType__sym)) s7_wrong_type_arg_error(sc, "gtk_accelerator_parse_with_keycode", 4, accelerator_mods, "GdkModifierType*");
+  gtk_accelerator_parse_with_keycode((const gchar*)s7_string(accelerator), s7_c_pointer(accelerator_key), s7_c_pointer(accelerator_codes), s7_c_pointer(accelerator_mods));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accelerator_name_with_keycode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accelerator_name_with_keycode "gchar* gtk_accelerator_name_with_keycode(GdkDisplay* display, \
+guint accelerator_key, guint keycode, GdkModifierType accelerator_mods)"
+  s7_pointer _p;
+  s7_pointer display, accelerator_key, keycode, accelerator_mods;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gtk_accelerator_name_with_keycode", 1, display, "GdkDisplay*");
+  accelerator_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accelerator_key)) s7_wrong_type_arg_error(sc, "gtk_accelerator_name_with_keycode", 2, accelerator_key, "guint");
+  keycode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(keycode)) s7_wrong_type_arg_error(sc, "gtk_accelerator_name_with_keycode", 3, keycode, "guint");
+  accelerator_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accelerator_mods)) s7_wrong_type_arg_error(sc, "gtk_accelerator_name_with_keycode", 4, accelerator_mods, "GdkModifierType");
+  return(s7_make_string(sc, gtk_accelerator_name_with_keycode(s7_c_pointer(display), s7_integer(accelerator_key), s7_integer(keycode), s7_integer(accelerator_mods))));
+}
+
+static s7_pointer lg_gtk_accelerator_get_label_with_keycode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accelerator_get_label_with_keycode "gchar* gtk_accelerator_get_label_with_keycode(GdkDisplay* display, \
+guint accelerator_key, guint keycode, GdkModifierType accelerator_mods)"
+  s7_pointer _p;
+  s7_pointer display, accelerator_key, keycode, accelerator_mods;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gtk_accelerator_get_label_with_keycode", 1, display, "GdkDisplay*");
+  accelerator_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accelerator_key)) s7_wrong_type_arg_error(sc, "gtk_accelerator_get_label_with_keycode", 2, accelerator_key, "guint");
+  keycode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(keycode)) s7_wrong_type_arg_error(sc, "gtk_accelerator_get_label_with_keycode", 3, keycode, "guint");
+  accelerator_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accelerator_mods)) s7_wrong_type_arg_error(sc, "gtk_accelerator_get_label_with_keycode", 4, accelerator_mods, "GdkModifierType");
+  return(s7_make_string(sc, gtk_accelerator_get_label_with_keycode(s7_c_pointer(display), s7_integer(accelerator_key), s7_integer(keycode), s7_integer(accelerator_mods))));
+}
+
+static s7_pointer lg_gtk_application_get_app_menu(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_application_get_app_menu "GMenuModel* gtk_application_get_app_menu(GtkApplication* application)"
+  s7_pointer application;
+  application = s7_car(args);
+  if (!s7_is_c_pointer_of_type(application, GtkApplication__sym)) s7_wrong_type_arg_error(sc, "gtk_application_get_app_menu", 1, application, "GtkApplication*");
+  return(s7_make_type_with_c_pointer(sc, GMenuModel__sym, gtk_application_get_app_menu(s7_c_pointer(application))));
+}
+
+static s7_pointer lg_gtk_application_set_app_menu(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_application_set_app_menu "void gtk_application_set_app_menu(GtkApplication* application, \
+GMenuModel* model)"
+  s7_pointer _p;
+  s7_pointer application, model;
+  _p = args;
+  application = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(application, GtkApplication__sym)) s7_wrong_type_arg_error(sc, "gtk_application_set_app_menu", 1, application, "GtkApplication*");
+  model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(model, GMenuModel__sym)) s7_wrong_type_arg_error(sc, "gtk_application_set_app_menu", 2, model, "GMenuModel*");
+  gtk_application_set_app_menu(s7_c_pointer(application), s7_c_pointer(model));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_application_get_menubar(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_application_get_menubar "GMenuModel* gtk_application_get_menubar(GtkApplication* application)"
+  s7_pointer application;
+  application = s7_car(args);
+  if (!s7_is_c_pointer_of_type(application, GtkApplication__sym)) s7_wrong_type_arg_error(sc, "gtk_application_get_menubar", 1, application, "GtkApplication*");
+  return(s7_make_type_with_c_pointer(sc, GMenuModel__sym, gtk_application_get_menubar(s7_c_pointer(application))));
+}
+
+static s7_pointer lg_gtk_application_set_menubar(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_application_set_menubar "void gtk_application_set_menubar(GtkApplication* application, \
+GMenuModel* model)"
+  s7_pointer _p;
+  s7_pointer application, model;
+  _p = args;
+  application = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(application, GtkApplication__sym)) s7_wrong_type_arg_error(sc, "gtk_application_set_menubar", 1, application, "GtkApplication*");
+  model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(model, GMenuModel__sym)) s7_wrong_type_arg_error(sc, "gtk_application_set_menubar", 2, model, "GMenuModel*");
+  gtk_application_set_menubar(s7_c_pointer(application), s7_c_pointer(model));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_completion_compute_prefix(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_completion_compute_prefix "gchar* gtk_entry_completion_compute_prefix(GtkEntryCompletion* completion, \
+char* key)"
+  s7_pointer _p;
+  s7_pointer completion, key;
+  _p = args;
+  completion = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(completion, GtkEntryCompletion__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_compute_prefix", 1, completion, "GtkEntryCompletion*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(key)) s7_wrong_type_arg_error(sc, "gtk_entry_completion_compute_prefix", 2, key, "char*");
+  return(s7_make_string(sc, gtk_entry_completion_compute_prefix(s7_c_pointer(completion), (const char*)(char*)s7_string(key))));
+}
+
+static s7_pointer lg_gtk_scale_set_has_origin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_set_has_origin "void gtk_scale_set_has_origin(GtkScale* scale, gboolean has_origin)"
+  s7_pointer _p;
+  s7_pointer scale, has_origin;
+  _p = args;
+  scale = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scale, GtkScale__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_set_has_origin", 1, scale, "GtkScale*");
+  has_origin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(has_origin)) s7_wrong_type_arg_error(sc, "gtk_scale_set_has_origin", 2, has_origin, "gboolean");
+  gtk_scale_set_has_origin(s7_c_pointer(scale), lg_boolean(has_origin));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scale_get_has_origin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scale_get_has_origin "gboolean gtk_scale_get_has_origin(GtkScale* scale)"
+  s7_pointer scale;
+  scale = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scale, GtkScale__sym)) s7_wrong_type_arg_error(sc, "gtk_scale_get_has_origin", 1, scale, "GtkScale*");
+  return(s7_make_boolean(sc, gtk_scale_get_has_origin(s7_c_pointer(scale))));
+}
+
+static s7_pointer lg_gtk_application_window_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_application_window_new "GtkWidget* gtk_application_window_new(GtkApplication* application)"
+  s7_pointer application;
+  application = s7_car(args);
+  if (!s7_is_c_pointer_of_type(application, GtkApplication__sym)) s7_wrong_type_arg_error(sc, "gtk_application_window_new", 1, application, "GtkApplication*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_application_window_new(s7_c_pointer(application))));
+}
+
+static s7_pointer lg_gtk_application_window_set_show_menubar(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_application_window_set_show_menubar "void gtk_application_window_set_show_menubar(GtkApplicationWindow* window, \
+gboolean show_menubar)"
+  s7_pointer _p;
+  s7_pointer window, show_menubar;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkApplicationWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_application_window_set_show_menubar", 1, window, "GtkApplicationWindow*");
+  show_menubar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_menubar)) s7_wrong_type_arg_error(sc, "gtk_application_window_set_show_menubar", 2, show_menubar, "gboolean");
+  gtk_application_window_set_show_menubar(s7_c_pointer(window), lg_boolean(show_menubar));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_application_window_get_show_menubar(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_application_window_get_show_menubar "gboolean gtk_application_window_get_show_menubar(GtkApplicationWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkApplicationWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_application_window_get_show_menubar", 1, window, "GtkApplicationWindow*");
+  return(s7_make_boolean(sc, gtk_application_window_get_show_menubar(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_image_new_from_resource(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_new_from_resource "GtkWidget* gtk_image_new_from_resource(gchar* resource_path)"
+  s7_pointer resource_path;
+  resource_path = s7_car(args);
+  if (!s7_is_string(resource_path)) s7_wrong_type_arg_error(sc, "gtk_image_new_from_resource", 1, resource_path, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_image_new_from_resource((const gchar*)s7_string(resource_path))));
+}
+
+static s7_pointer lg_gtk_image_set_from_resource(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_set_from_resource "void gtk_image_set_from_resource(GtkImage* image, gchar* resource_path)"
+  s7_pointer _p;
+  s7_pointer image, resource_path;
+  _p = args;
+  image = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(image, GtkImage__sym)) s7_wrong_type_arg_error(sc, "gtk_image_set_from_resource", 1, image, "GtkImage*");
+  resource_path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(resource_path)) s7_wrong_type_arg_error(sc, "gtk_image_set_from_resource", 2, resource_path, "gchar*");
+  gtk_image_set_from_resource(s7_c_pointer(image), (const gchar*)s7_string(resource_path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_set_attached_to(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_attached_to "void gtk_window_set_attached_to(GtkWindow* window, GtkWidget* attach_widget)"
+  s7_pointer _p;
+  s7_pointer window, attach_widget;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_attached_to", 1, window, "GtkWindow*");
+  attach_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(attach_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_attached_to", 2, attach_widget, "GtkWidget*");
+  gtk_window_set_attached_to(s7_c_pointer(window), s7_c_pointer(attach_widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_get_attached_to(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_attached_to "GtkWidget* gtk_window_get_attached_to(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_attached_to", 1, window, "GtkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_window_get_attached_to(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_about_dialog_add_credit_section(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_add_credit_section "void gtk_about_dialog_add_credit_section(GtkAboutDialog* about, \
+gchar* section_name, gchar** people)"
+  s7_pointer _p;
+  s7_pointer about, section_name, people;
+  _p = args;
+  about = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_add_credit_section", 1, about, "GtkAboutDialog*");
+  section_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(section_name)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_add_credit_section", 2, section_name, "gchar*");
+  people = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(people, gchar___sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_add_credit_section", 3, people, "gchar**");
+  gtk_about_dialog_add_credit_section(s7_c_pointer(about), (const gchar*)s7_string(section_name), (const gchar**)s7_c_pointer(people));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_keymap_get_modifier_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keymap_get_modifier_state "guint gdk_keymap_get_modifier_state(GdkKeymap* keymap)"
+  s7_pointer keymap;
+  keymap = s7_car(args);
+  if (!s7_is_c_pointer_of_type(keymap, GdkKeymap__sym)) s7_wrong_type_arg_error(sc, "gdk_keymap_get_modifier_state", 1, keymap, "GdkKeymap*");
+  return(s7_make_integer(sc, gdk_keymap_get_modifier_state(s7_c_pointer(keymap))));
+}
+
+static s7_pointer lg_gtk_hsv_to_rgb(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_hsv_to_rgb "void gtk_hsv_to_rgb(gdouble h, gdouble s, gdouble v, gdouble* [r], gdouble* [g], \
+gdouble* [b])"
+  s7_pointer _p;
+  s7_pointer h, s, v;
+  gdouble ref_r;
+  gdouble ref_g;
+  gdouble ref_b;
+  _p = args;
+  h = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(h)) s7_wrong_type_arg_error(sc, "gtk_hsv_to_rgb", 1, h, "gdouble");
+  s = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(s)) s7_wrong_type_arg_error(sc, "gtk_hsv_to_rgb", 2, s, "gdouble");
+  v = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(v)) s7_wrong_type_arg_error(sc, "gtk_hsv_to_rgb", 3, v, "gdouble");
+  gtk_hsv_to_rgb(s7_real(h), s7_real(s), s7_real(v), &ref_r, &ref_g, &ref_b);
+    return(s7_list(sc, 3, s7_make_real(sc, ref_r), s7_make_real(sc, ref_g), s7_make_real(sc, ref_b)));
+}
+
+static s7_pointer lg_gtk_rgb_to_hsv(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_rgb_to_hsv "void gtk_rgb_to_hsv(gdouble r, gdouble g, gdouble b, gdouble* [h], gdouble* [s], \
+gdouble* [v])"
+  s7_pointer _p;
+  s7_pointer r, g, b;
+  gdouble ref_h;
+  gdouble ref_s;
+  gdouble ref_v;
+  _p = args;
+  r = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(r)) s7_wrong_type_arg_error(sc, "gtk_rgb_to_hsv", 1, r, "gdouble");
+  g = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(g)) s7_wrong_type_arg_error(sc, "gtk_rgb_to_hsv", 2, g, "gdouble");
+  b = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(b)) s7_wrong_type_arg_error(sc, "gtk_rgb_to_hsv", 3, b, "gdouble");
+  gtk_rgb_to_hsv(s7_real(r), s7_real(g), s7_real(b), &ref_h, &ref_s, &ref_v);
+    return(s7_list(sc, 3, s7_make_real(sc, ref_h), s7_make_real(sc, ref_s), s7_make_real(sc, ref_v)));
+}
+
+static s7_pointer lg_gtk_color_chooser_get_rgba(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_color_chooser_get_rgba "void gtk_color_chooser_get_rgba(GtkColorChooser* chooser, GdkRGBA* color)"
+  s7_pointer _p;
+  s7_pointer chooser, color;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkColorChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_color_chooser_get_rgba", 1, chooser, "GtkColorChooser*");
+  color = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(color, GdkRGBA__sym)) s7_wrong_type_arg_error(sc, "gtk_color_chooser_get_rgba", 2, color, "GdkRGBA*");
+  gtk_color_chooser_get_rgba(s7_c_pointer(chooser), s7_c_pointer(color));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_color_chooser_set_rgba(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_color_chooser_set_rgba "void gtk_color_chooser_set_rgba(GtkColorChooser* chooser, GdkRGBA* color)"
+  s7_pointer _p;
+  s7_pointer chooser, color;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkColorChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_color_chooser_set_rgba", 1, chooser, "GtkColorChooser*");
+  color = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(color, GdkRGBA__sym)) s7_wrong_type_arg_error(sc, "gtk_color_chooser_set_rgba", 2, color, "GdkRGBA*");
+  gtk_color_chooser_set_rgba(s7_c_pointer(chooser), s7_c_pointer(color));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_color_chooser_get_use_alpha(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_color_chooser_get_use_alpha "gboolean gtk_color_chooser_get_use_alpha(GtkColorChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkColorChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_color_chooser_get_use_alpha", 1, chooser, "GtkColorChooser*");
+  return(s7_make_boolean(sc, gtk_color_chooser_get_use_alpha(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gtk_color_chooser_set_use_alpha(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_color_chooser_set_use_alpha "void gtk_color_chooser_set_use_alpha(GtkColorChooser* chooser, \
+gboolean use_alpha)"
+  s7_pointer _p;
+  s7_pointer chooser, use_alpha;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkColorChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_color_chooser_set_use_alpha", 1, chooser, "GtkColorChooser*");
+  use_alpha = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_alpha)) s7_wrong_type_arg_error(sc, "gtk_color_chooser_set_use_alpha", 2, use_alpha, "gboolean");
+  gtk_color_chooser_set_use_alpha(s7_c_pointer(chooser), lg_boolean(use_alpha));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_color_chooser_dialog_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_color_chooser_dialog_new "GtkWidget* gtk_color_chooser_dialog_new(gchar* title, GtkWindow* parent)"
+  s7_pointer _p;
+  s7_pointer title, parent;
+  _p = args;
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gtk_color_chooser_dialog_new", 1, title, "gchar*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(parent, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_color_chooser_dialog_new", 2, parent, "GtkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_color_chooser_dialog_new((const gchar*)s7_string(title), s7_c_pointer(parent))));
+}
+
+static s7_pointer lg_gtk_color_chooser_widget_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_color_chooser_widget_new "GtkWidget* gtk_color_chooser_widget_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_color_chooser_widget_new()));
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(3, 6, 0)
+static s7_pointer lg_gdk_event_get_scroll_deltas(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_scroll_deltas "gboolean gdk_event_get_scroll_deltas(GdkEvent* event, gdouble* [delta_x], \
+gdouble* [delta_y])"
+  s7_pointer _p;
+  s7_pointer event;
+  gdouble ref_delta_x;
+  gdouble ref_delta_y;
+  _p = args;
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_scroll_deltas", 1, event, "GdkEvent*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_event_get_scroll_deltas(s7_c_pointer(event), &ref_delta_x, &ref_delta_y));
+      return(s7_list(sc, 3, result, s7_make_real(sc, ref_delta_x), s7_make_real(sc, ref_delta_y)));
+   }
+}
+
+static s7_pointer lg_gtk_color_chooser_add_palette(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_color_chooser_add_palette "void gtk_color_chooser_add_palette(GtkColorChooser* chooser, \
+GtkOrientation horizontal, gint colors_per_line, gint n_colors, GdkRGBA* colors)"
+  s7_pointer _p;
+  s7_pointer chooser, horizontal, colors_per_line, n_colors, colors;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkColorChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_color_chooser_add_palette", 1, chooser, "GtkColorChooser*");
+  horizontal = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(horizontal)) s7_wrong_type_arg_error(sc, "gtk_color_chooser_add_palette", 2, horizontal, "GtkOrientation");
+  colors_per_line = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(colors_per_line)) s7_wrong_type_arg_error(sc, "gtk_color_chooser_add_palette", 3, colors_per_line, "gint");
+  n_colors = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_colors)) s7_wrong_type_arg_error(sc, "gtk_color_chooser_add_palette", 4, n_colors, "gint");
+  colors = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(colors, GdkRGBA__sym)) s7_wrong_type_arg_error(sc, "gtk_color_chooser_add_palette", 5, colors, "GdkRGBA*");
+  gtk_color_chooser_add_palette(s7_c_pointer(chooser), s7_integer(horizontal), s7_integer(colors_per_line), s7_integer(n_colors), s7_c_pointer(colors));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_tree_view_get_n_columns(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_n_columns "guint gtk_tree_view_get_n_columns(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_n_columns", 1, tree_view, "GtkTreeView*");
+  return(s7_make_integer(sc, gtk_tree_view_get_n_columns(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_menu_button_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_button_new "GtkWidget* gtk_menu_button_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_menu_button_new()));
+}
+
+static s7_pointer lg_gtk_menu_button_set_menu_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_button_set_menu_model "void gtk_menu_button_set_menu_model(GtkMenuButton* menu_button, \
+GMenuModel* menu_model)"
+  s7_pointer _p;
+  s7_pointer menu_button, menu_model;
+  _p = args;
+  menu_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_button, GtkMenuButton__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_button_set_menu_model", 1, menu_button, "GtkMenuButton*");
+  menu_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_model, GMenuModel__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_button_set_menu_model", 2, menu_model, "GMenuModel*");
+  gtk_menu_button_set_menu_model(s7_c_pointer(menu_button), s7_c_pointer(menu_model));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_button_get_menu_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_button_get_menu_model "GMenuModel* gtk_menu_button_get_menu_model(GtkMenuButton* menu_button)"
+  s7_pointer menu_button;
+  menu_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_button, GtkMenuButton__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_button_get_menu_model", 1, menu_button, "GtkMenuButton*");
+  return(s7_make_type_with_c_pointer(sc, GMenuModel__sym, gtk_menu_button_get_menu_model(s7_c_pointer(menu_button))));
+}
+
+static s7_pointer lg_gtk_menu_button_set_align_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_button_set_align_widget "void gtk_menu_button_set_align_widget(GtkMenuButton* menu_button, \
+GtkWidget* align_widget)"
+  s7_pointer _p;
+  s7_pointer menu_button, align_widget;
+  _p = args;
+  menu_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_button, GtkMenuButton__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_button_set_align_widget", 1, menu_button, "GtkMenuButton*");
+  align_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(align_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_button_set_align_widget", 2, align_widget, "GtkWidget*");
+  gtk_menu_button_set_align_widget(s7_c_pointer(menu_button), s7_c_pointer(align_widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_button_get_align_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_button_get_align_widget "GtkWidget* gtk_menu_button_get_align_widget(GtkMenuButton* menu_button)"
+  s7_pointer menu_button;
+  menu_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_button, GtkMenuButton__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_button_get_align_widget", 1, menu_button, "GtkMenuButton*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_menu_button_get_align_widget(s7_c_pointer(menu_button))));
+}
+
+static s7_pointer lg_gtk_search_entry_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_search_entry_new "GtkWidget* gtk_search_entry_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_search_entry_new()));
+}
+
+static s7_pointer lg_gtk_level_bar_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_new "GtkWidget* gtk_level_bar_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_level_bar_new()));
+}
+
+static s7_pointer lg_gtk_level_bar_new_for_interval(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_new_for_interval "GtkWidget* gtk_level_bar_new_for_interval(gdouble min_value, \
+gdouble max_value)"
+  s7_pointer _p;
+  s7_pointer min_value, max_value;
+  _p = args;
+  min_value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(min_value)) s7_wrong_type_arg_error(sc, "gtk_level_bar_new_for_interval", 1, min_value, "gdouble");
+  max_value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(max_value)) s7_wrong_type_arg_error(sc, "gtk_level_bar_new_for_interval", 2, max_value, "gdouble");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_level_bar_new_for_interval(s7_real(min_value), s7_real(max_value))));
+}
+
+static s7_pointer lg_gtk_level_bar_set_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_set_mode "void gtk_level_bar_set_mode(GtkLevelBar* self, GtkLevelBarMode mode)"
+  s7_pointer _p;
+  s7_pointer self, mode;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkLevelBar__sym)) s7_wrong_type_arg_error(sc, "gtk_level_bar_set_mode", 1, self, "GtkLevelBar*");
+  mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mode)) s7_wrong_type_arg_error(sc, "gtk_level_bar_set_mode", 2, mode, "GtkLevelBarMode");
+  gtk_level_bar_set_mode(s7_c_pointer(self), s7_integer(mode));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_level_bar_get_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_get_mode "GtkLevelBarMode gtk_level_bar_get_mode(GtkLevelBar* self)"
+  s7_pointer self;
+  self = s7_car(args);
+  if (!s7_is_c_pointer_of_type(self, GtkLevelBar__sym)) s7_wrong_type_arg_error(sc, "gtk_level_bar_get_mode", 1, self, "GtkLevelBar*");
+  return(s7_make_integer(sc, gtk_level_bar_get_mode(s7_c_pointer(self))));
+}
+
+static s7_pointer lg_gtk_level_bar_set_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_set_value "void gtk_level_bar_set_value(GtkLevelBar* self, gdouble value)"
+  s7_pointer _p;
+  s7_pointer self, value;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkLevelBar__sym)) s7_wrong_type_arg_error(sc, "gtk_level_bar_set_value", 1, self, "GtkLevelBar*");
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(value)) s7_wrong_type_arg_error(sc, "gtk_level_bar_set_value", 2, value, "gdouble");
+  gtk_level_bar_set_value(s7_c_pointer(self), s7_real(value));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_level_bar_get_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_get_value "gdouble gtk_level_bar_get_value(GtkLevelBar* self)"
+  s7_pointer self;
+  self = s7_car(args);
+  if (!s7_is_c_pointer_of_type(self, GtkLevelBar__sym)) s7_wrong_type_arg_error(sc, "gtk_level_bar_get_value", 1, self, "GtkLevelBar*");
+  return(s7_make_real(sc, gtk_level_bar_get_value(s7_c_pointer(self))));
+}
+
+static s7_pointer lg_gtk_level_bar_set_min_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_set_min_value "void gtk_level_bar_set_min_value(GtkLevelBar* self, gdouble value)"
+  s7_pointer _p;
+  s7_pointer self, value;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkLevelBar__sym)) s7_wrong_type_arg_error(sc, "gtk_level_bar_set_min_value", 1, self, "GtkLevelBar*");
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(value)) s7_wrong_type_arg_error(sc, "gtk_level_bar_set_min_value", 2, value, "gdouble");
+  gtk_level_bar_set_min_value(s7_c_pointer(self), s7_real(value));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_level_bar_get_min_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_get_min_value "gdouble gtk_level_bar_get_min_value(GtkLevelBar* self)"
+  s7_pointer self;
+  self = s7_car(args);
+  if (!s7_is_c_pointer_of_type(self, GtkLevelBar__sym)) s7_wrong_type_arg_error(sc, "gtk_level_bar_get_min_value", 1, self, "GtkLevelBar*");
+  return(s7_make_real(sc, gtk_level_bar_get_min_value(s7_c_pointer(self))));
+}
+
+static s7_pointer lg_gtk_level_bar_set_max_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_set_max_value "void gtk_level_bar_set_max_value(GtkLevelBar* self, gdouble value)"
+  s7_pointer _p;
+  s7_pointer self, value;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkLevelBar__sym)) s7_wrong_type_arg_error(sc, "gtk_level_bar_set_max_value", 1, self, "GtkLevelBar*");
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(value)) s7_wrong_type_arg_error(sc, "gtk_level_bar_set_max_value", 2, value, "gdouble");
+  gtk_level_bar_set_max_value(s7_c_pointer(self), s7_real(value));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_level_bar_get_max_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_get_max_value "gdouble gtk_level_bar_get_max_value(GtkLevelBar* self)"
+  s7_pointer self;
+  self = s7_car(args);
+  if (!s7_is_c_pointer_of_type(self, GtkLevelBar__sym)) s7_wrong_type_arg_error(sc, "gtk_level_bar_get_max_value", 1, self, "GtkLevelBar*");
+  return(s7_make_real(sc, gtk_level_bar_get_max_value(s7_c_pointer(self))));
+}
+
+static s7_pointer lg_gtk_level_bar_add_offset_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_add_offset_value "void gtk_level_bar_add_offset_value(GtkLevelBar* self, gchar* name, \
+gdouble value)"
+  s7_pointer _p;
+  s7_pointer self, name, value;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkLevelBar__sym)) s7_wrong_type_arg_error(sc, "gtk_level_bar_add_offset_value", 1, self, "GtkLevelBar*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_level_bar_add_offset_value", 2, name, "gchar*");
+  value = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(value)) s7_wrong_type_arg_error(sc, "gtk_level_bar_add_offset_value", 3, value, "gdouble");
+  gtk_level_bar_add_offset_value(s7_c_pointer(self), (const gchar*)s7_string(name), s7_real(value));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_level_bar_remove_offset_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_remove_offset_value "void gtk_level_bar_remove_offset_value(GtkLevelBar* self, \
+gchar* name)"
+  s7_pointer _p;
+  s7_pointer self, name;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkLevelBar__sym)) s7_wrong_type_arg_error(sc, "gtk_level_bar_remove_offset_value", 1, self, "GtkLevelBar*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_level_bar_remove_offset_value", 2, name, "gchar*");
+  gtk_level_bar_remove_offset_value(s7_c_pointer(self), (const gchar*)s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_level_bar_get_offset_value(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_get_offset_value "gboolean gtk_level_bar_get_offset_value(GtkLevelBar* self, \
+gchar* name, gdouble* [value])"
+  s7_pointer _p;
+  s7_pointer self, name;
+  gdouble ref_value;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkLevelBar__sym)) s7_wrong_type_arg_error(sc, "gtk_level_bar_get_offset_value", 1, self, "GtkLevelBar*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_level_bar_get_offset_value", 2, name, "gchar*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_level_bar_get_offset_value(s7_c_pointer(self), (const gchar*)s7_string(name), &ref_value));
+      return(s7_list(sc, 2, result, s7_make_real(sc, ref_value)));
+   }
+}
+
+static s7_pointer lg_gtk_application_get_active_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_application_get_active_window "GtkWindow* gtk_application_get_active_window(GtkApplication* application)"
+  s7_pointer application;
+  application = s7_car(args);
+  if (!s7_is_c_pointer_of_type(application, GtkApplication__sym)) s7_wrong_type_arg_error(sc, "gtk_application_get_active_window", 1, application, "GtkApplication*");
+  return(s7_make_type_with_c_pointer(sc, GtkWindow__sym, gtk_application_get_active_window(s7_c_pointer(application))));
+}
+
+static s7_pointer lg_gtk_entry_set_input_purpose(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_input_purpose "void gtk_entry_set_input_purpose(GtkEntry* entry, GtkInputPurpose purpose)"
+  s7_pointer _p;
+  s7_pointer entry, purpose;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_input_purpose", 1, entry, "GtkEntry*");
+  purpose = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(purpose)) s7_wrong_type_arg_error(sc, "gtk_entry_set_input_purpose", 2, purpose, "GtkInputPurpose");
+  gtk_entry_set_input_purpose(s7_c_pointer(entry), s7_integer(purpose));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_input_purpose(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_input_purpose "GtkInputPurpose gtk_entry_get_input_purpose(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_input_purpose", 1, entry, "GtkEntry*");
+  return(s7_make_integer(sc, gtk_entry_get_input_purpose(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_entry_set_input_hints(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_input_hints "void gtk_entry_set_input_hints(GtkEntry* entry, GtkInputHints hints)"
+  s7_pointer _p;
+  s7_pointer entry, hints;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_input_hints", 1, entry, "GtkEntry*");
+  hints = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hints)) s7_wrong_type_arg_error(sc, "gtk_entry_set_input_hints", 2, hints, "GtkInputHints");
+  gtk_entry_set_input_hints(s7_c_pointer(entry), s7_integer(hints));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_input_hints(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_input_hints "GtkInputHints gtk_entry_get_input_hints(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_input_hints", 1, entry, "GtkEntry*");
+  return(s7_make_integer(sc, gtk_entry_get_input_hints(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_menu_button_get_popup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_button_get_popup "GtkMenu* gtk_menu_button_get_popup(GtkMenuButton* menu_button)"
+  s7_pointer menu_button;
+  menu_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(menu_button, GtkMenuButton__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_button_get_popup", 1, menu_button, "GtkMenuButton*");
+  return(s7_make_type_with_c_pointer(sc, GtkMenu__sym, gtk_menu_button_get_popup(s7_c_pointer(menu_button))));
+}
+
+static s7_pointer lg_gtk_text_view_set_input_purpose(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_input_purpose "void gtk_text_view_set_input_purpose(GtkTextView* text_view, \
+GtkInputPurpose purpose)"
+  s7_pointer _p;
+  s7_pointer text_view, purpose;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_input_purpose", 1, text_view, "GtkTextView*");
+  purpose = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(purpose)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_input_purpose", 2, purpose, "GtkInputPurpose");
+  gtk_text_view_set_input_purpose(s7_c_pointer(text_view), s7_integer(purpose));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_input_purpose(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_input_purpose "GtkInputPurpose gtk_text_view_get_input_purpose(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_input_purpose", 1, text_view, "GtkTextView*");
+  return(s7_make_integer(sc, gtk_text_view_get_input_purpose(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_set_input_hints(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_input_hints "void gtk_text_view_set_input_hints(GtkTextView* text_view, \
+GtkInputHints hints)"
+  s7_pointer _p;
+  s7_pointer text_view, hints;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_input_hints", 1, text_view, "GtkTextView*");
+  hints = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hints)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_input_hints", 2, hints, "GtkInputHints");
+  gtk_text_view_set_input_hints(s7_c_pointer(text_view), s7_integer(hints));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_input_hints(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_input_hints "GtkInputHints gtk_text_view_get_input_hints(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_input_hints", 1, text_view, "GtkTextView*");
+  return(s7_make_integer(sc, gtk_text_view_get_input_hints(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_entry_set_attributes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_attributes "void gtk_entry_set_attributes(GtkEntry* entry, PangoAttrList* attrs)"
+  s7_pointer _p;
+  s7_pointer entry, attrs;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_attributes", 1, entry, "GtkEntry*");
+  attrs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(attrs, PangoAttrList__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_attributes", 2, attrs, "PangoAttrList*");
+  gtk_entry_set_attributes(s7_c_pointer(entry), s7_c_pointer(attrs));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_attributes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_attributes "PangoAttrList* gtk_entry_get_attributes(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_attributes", 1, entry, "GtkEntry*");
+  return(s7_make_type_with_c_pointer(sc, PangoAttrList__sym, gtk_entry_get_attributes(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_accel_label_set_accel(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_label_set_accel "void gtk_accel_label_set_accel(GtkAccelLabel* accel_label, guint accelerator_key, \
+GdkModifierType accelerator_mods)"
+  s7_pointer _p;
+  s7_pointer accel_label, accelerator_key, accelerator_mods;
+  _p = args;
+  accel_label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_label, GtkAccelLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_label_set_accel", 1, accel_label, "GtkAccelLabel*");
+  accelerator_key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accelerator_key)) s7_wrong_type_arg_error(sc, "gtk_accel_label_set_accel", 2, accelerator_key, "guint");
+  accelerator_mods = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(accelerator_mods)) s7_wrong_type_arg_error(sc, "gtk_accel_label_set_accel", 3, accelerator_mods, "GdkModifierType");
+  gtk_accel_label_set_accel(s7_c_pointer(accel_label), s7_integer(accelerator_key), s7_integer(accelerator_mods));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_shell_bind_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_shell_bind_model "void gtk_menu_shell_bind_model(GtkMenuShell* menu_shell, GMenuModel* model, \
+gchar* action_namespace, gboolean with_separators)"
+  s7_pointer _p;
+  s7_pointer menu_shell, model, action_namespace, with_separators;
+  _p = args;
+  menu_shell = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu_shell, GtkMenuShell__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_bind_model", 1, menu_shell, "GtkMenuShell*");
+  model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(model, GMenuModel__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_bind_model", 2, model, "GMenuModel*");
+  action_namespace = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(action_namespace)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_bind_model", 3, action_namespace, "gchar*");
+  with_separators = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(with_separators)) s7_wrong_type_arg_error(sc, "gtk_menu_shell_bind_model", 4, with_separators, "gboolean");
+  gtk_menu_shell_bind_model(s7_c_pointer(menu_shell), s7_c_pointer(model), (const gchar*)s7_string(action_namespace), lg_boolean(with_separators));
+  return(lg_false);
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(3, 8, 0)
+static s7_pointer lg_gtk_level_bar_set_inverted(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_set_inverted "void gtk_level_bar_set_inverted(GtkLevelBar* self, gboolean inverted)"
+  s7_pointer _p;
+  s7_pointer self, inverted;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkLevelBar__sym)) s7_wrong_type_arg_error(sc, "gtk_level_bar_set_inverted", 1, self, "GtkLevelBar*");
+  inverted = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(inverted)) s7_wrong_type_arg_error(sc, "gtk_level_bar_set_inverted", 2, inverted, "gboolean");
+  gtk_level_bar_set_inverted(s7_c_pointer(self), lg_boolean(inverted));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_level_bar_get_inverted(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_level_bar_get_inverted "gboolean gtk_level_bar_get_inverted(GtkLevelBar* self)"
+  s7_pointer self;
+  self = s7_car(args);
+  if (!s7_is_c_pointer_of_type(self, GtkLevelBar__sym)) s7_wrong_type_arg_error(sc, "gtk_level_bar_get_inverted", 1, self, "GtkLevelBar*");
+  return(s7_make_boolean(sc, gtk_level_bar_get_inverted(s7_c_pointer(self))));
+}
+
+static s7_pointer lg_gtk_widget_is_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_is_visible "gboolean gtk_widget_is_visible(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_is_visible", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_is_visible(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gdk_window_set_fullscreen_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_fullscreen_mode "void gdk_window_set_fullscreen_mode(GdkWindow* window, GdkFullscreenMode mode)"
+  s7_pointer _p;
+  s7_pointer window, mode;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_fullscreen_mode", 1, window, "GdkWindow*");
+  mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mode)) s7_wrong_type_arg_error(sc, "gdk_window_set_fullscreen_mode", 2, mode, "GdkFullscreenMode");
+  gdk_window_set_fullscreen_mode(s7_c_pointer(window), s7_integer(mode));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_get_fullscreen_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_fullscreen_mode "GdkFullscreenMode gdk_window_get_fullscreen_mode(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_fullscreen_mode", 1, window, "GdkWindow*");
+  return(s7_make_integer(sc, gdk_window_get_fullscreen_mode(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_icon_view_set_activate_on_single_click(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_set_activate_on_single_click "void gtk_icon_view_set_activate_on_single_click(GtkIconView* icon_view, \
+gboolean single)"
+  s7_pointer _p;
+  s7_pointer icon_view, single;
+  _p = args;
+  icon_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_activate_on_single_click", 1, icon_view, "GtkIconView*");
+  single = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(single)) s7_wrong_type_arg_error(sc, "gtk_icon_view_set_activate_on_single_click", 2, single, "gboolean");
+  gtk_icon_view_set_activate_on_single_click(s7_c_pointer(icon_view), lg_boolean(single));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_view_get_activate_on_single_click(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_view_get_activate_on_single_click "gboolean gtk_icon_view_get_activate_on_single_click(GtkIconView* icon_view)"
+  s7_pointer icon_view;
+  icon_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_view, GtkIconView__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_view_get_activate_on_single_click", 1, icon_view, "GtkIconView*");
+  return(s7_make_boolean(sc, gtk_icon_view_get_activate_on_single_click(s7_c_pointer(icon_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_get_activate_on_single_click(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_get_activate_on_single_click "gboolean gtk_tree_view_get_activate_on_single_click(GtkTreeView* tree_view)"
+  s7_pointer tree_view;
+  tree_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_get_activate_on_single_click", 1, tree_view, "GtkTreeView*");
+  return(s7_make_boolean(sc, gtk_tree_view_get_activate_on_single_click(s7_c_pointer(tree_view))));
+}
+
+static s7_pointer lg_gtk_tree_view_set_activate_on_single_click(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_view_set_activate_on_single_click "void gtk_tree_view_set_activate_on_single_click(GtkTreeView* tree_view, \
+gboolean single)"
+  s7_pointer _p;
+  s7_pointer tree_view, single;
+  _p = args;
+  tree_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_view, GtkTreeView__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_activate_on_single_click", 1, tree_view, "GtkTreeView*");
+  single = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(single)) s7_wrong_type_arg_error(sc, "gtk_tree_view_set_activate_on_single_click", 2, single, "gboolean");
+  gtk_tree_view_set_activate_on_single_click(s7_c_pointer(tree_view), lg_boolean(single));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_register_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_register_window "void gtk_widget_register_window(GtkWidget* widget, GdkWindow* window)"
+  s7_pointer _p;
+  s7_pointer widget, window;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_register_window", 1, widget, "GtkWidget*");
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_register_window", 2, window, "GdkWindow*");
+  gtk_widget_register_window(s7_c_pointer(widget), s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_unregister_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_unregister_window "void gtk_widget_unregister_window(GtkWidget* widget, GdkWindow* window)"
+  s7_pointer _p;
+  s7_pointer widget, window;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_unregister_window", 1, widget, "GtkWidget*");
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_unregister_window", 2, window, "GdkWindow*");
+  gtk_widget_unregister_window(s7_c_pointer(widget), s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_set_opacity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_opacity "void gtk_widget_set_opacity(GtkWidget* widget, double opacity)"
+  s7_pointer _p;
+  s7_pointer widget, opacity;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_opacity", 1, widget, "GtkWidget*");
+  opacity = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(opacity)) s7_wrong_type_arg_error(sc, "gtk_widget_set_opacity", 2, opacity, "double");
+  gtk_widget_set_opacity(s7_c_pointer(widget), s7_real(opacity));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_opacity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_opacity "double gtk_widget_get_opacity(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_opacity", 1, widget, "GtkWidget*");
+  return(s7_make_real(sc, gtk_widget_get_opacity(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_pango_font_map_changed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_pango_font_map_changed "void pango_font_map_changed(PangoFontMap* fontmap)"
+  s7_pointer fontmap;
+  fontmap = s7_car(args);
+  if (!s7_is_c_pointer_of_type(fontmap, PangoFontMap__sym)) s7_wrong_type_arg_error(sc, "pango_font_map_changed", 1, fontmap, "PangoFontMap*");
+  pango_font_map_changed(s7_c_pointer(fontmap));
+  return(lg_false);
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(3, 10, 0)
+static s7_pointer lg_gdk_set_allowed_backends(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_set_allowed_backends "void gdk_set_allowed_backends(gchar* backends)"
+  s7_pointer backends;
+  backends = s7_car(args);
+  if (!s7_is_string(backends)) s7_wrong_type_arg_error(sc, "gdk_set_allowed_backends", 1, backends, "gchar*");
+  gdk_set_allowed_backends((const gchar*)s7_string(backends));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_box_set_baseline_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_box_set_baseline_position "void gtk_box_set_baseline_position(GtkBox* box, GtkBaselinePosition position)"
+  s7_pointer _p;
+  s7_pointer box, position;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkBox__sym)) s7_wrong_type_arg_error(sc, "gtk_box_set_baseline_position", 1, box, "GtkBox*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_box_set_baseline_position", 2, position, "GtkBaselinePosition");
+  gtk_box_set_baseline_position(s7_c_pointer(box), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_box_get_baseline_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_box_get_baseline_position "GtkBaselinePosition gtk_box_get_baseline_position(GtkBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkBox__sym)) s7_wrong_type_arg_error(sc, "gtk_box_get_baseline_position", 1, box, "GtkBox*");
+  return(s7_make_integer(sc, gtk_box_get_baseline_position(s7_c_pointer(box))));
+}
+
+static s7_pointer lg_gtk_grid_remove_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_remove_row "void gtk_grid_remove_row(GtkGrid* grid, gint position)"
+  s7_pointer _p;
+  s7_pointer grid, position;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_remove_row", 1, grid, "GtkGrid*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_grid_remove_row", 2, position, "gint");
+  gtk_grid_remove_row(s7_c_pointer(grid), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_grid_remove_column(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_remove_column "void gtk_grid_remove_column(GtkGrid* grid, gint position)"
+  s7_pointer _p;
+  s7_pointer grid, position;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_remove_column", 1, grid, "GtkGrid*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_grid_remove_column", 2, position, "gint");
+  gtk_grid_remove_column(s7_c_pointer(grid), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_grid_set_row_baseline_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_set_row_baseline_position "void gtk_grid_set_row_baseline_position(GtkGrid* grid, \
+gint row, GtkBaselinePosition pos)"
+  s7_pointer _p;
+  s7_pointer grid, row, pos;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_set_row_baseline_position", 1, grid, "GtkGrid*");
+  row = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(row)) s7_wrong_type_arg_error(sc, "gtk_grid_set_row_baseline_position", 2, row, "gint");
+  pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pos)) s7_wrong_type_arg_error(sc, "gtk_grid_set_row_baseline_position", 3, pos, "GtkBaselinePosition");
+  gtk_grid_set_row_baseline_position(s7_c_pointer(grid), s7_integer(row), s7_integer(pos));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_grid_get_row_baseline_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_get_row_baseline_position "GtkBaselinePosition gtk_grid_get_row_baseline_position(GtkGrid* grid, \
+gint row)"
+  s7_pointer _p;
+  s7_pointer grid, row;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_get_row_baseline_position", 1, grid, "GtkGrid*");
+  row = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(row)) s7_wrong_type_arg_error(sc, "gtk_grid_get_row_baseline_position", 2, row, "gint");
+  return(s7_make_integer(sc, gtk_grid_get_row_baseline_position(s7_c_pointer(grid), s7_integer(row))));
+}
+
+static s7_pointer lg_gtk_grid_set_baseline_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_set_baseline_row "void gtk_grid_set_baseline_row(GtkGrid* grid, gint row)"
+  s7_pointer _p;
+  s7_pointer grid, row;
+  _p = args;
+  grid = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_set_baseline_row", 1, grid, "GtkGrid*");
+  row = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(row)) s7_wrong_type_arg_error(sc, "gtk_grid_set_baseline_row", 2, row, "gint");
+  gtk_grid_set_baseline_row(s7_c_pointer(grid), s7_integer(row));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_grid_get_baseline_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_grid_get_baseline_row "gint gtk_grid_get_baseline_row(GtkGrid* grid)"
+  s7_pointer grid;
+  grid = s7_car(args);
+  if (!s7_is_c_pointer_of_type(grid, GtkGrid__sym)) s7_wrong_type_arg_error(sc, "gtk_grid_get_baseline_row", 1, grid, "GtkGrid*");
+  return(s7_make_integer(sc, gtk_grid_get_baseline_row(s7_c_pointer(grid))));
+}
+
+static s7_pointer lg_gtk_widget_size_allocate_with_baseline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_size_allocate_with_baseline "void gtk_widget_size_allocate_with_baseline(GtkWidget* widget, \
+GtkAllocation* allocation, gint baseline)"
+  s7_pointer _p;
+  s7_pointer widget, allocation, baseline;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_size_allocate_with_baseline", 1, widget, "GtkWidget*");
+  allocation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(allocation, GtkAllocation__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_size_allocate_with_baseline", 2, allocation, "GtkAllocation*");
+  baseline = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(baseline)) s7_wrong_type_arg_error(sc, "gtk_widget_size_allocate_with_baseline", 3, baseline, "gint");
+  gtk_widget_size_allocate_with_baseline(s7_c_pointer(widget), s7_c_pointer(allocation), s7_integer(baseline));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_allocated_baseline(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_allocated_baseline "int gtk_widget_get_allocated_baseline(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_allocated_baseline", 1, widget, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_widget_get_allocated_baseline(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_init_template(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_init_template "void gtk_widget_init_template(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_init_template", 1, widget, "GtkWidget*");
+  gtk_widget_init_template(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_set_titlebar(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_set_titlebar "void gtk_window_set_titlebar(GtkWindow* window, GtkWidget* titlebar)"
+  s7_pointer _p;
+  s7_pointer window, titlebar;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_titlebar", 1, window, "GtkWindow*");
+  titlebar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(titlebar, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_window_set_titlebar", 2, titlebar, "GtkWidget*");
+  gtk_window_set_titlebar(s7_c_pointer(window), s7_c_pointer(titlebar));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_places_sidebar_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_new "GtkWidget* gtk_places_sidebar_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_places_sidebar_new()));
+}
+
+static s7_pointer lg_gtk_places_sidebar_get_open_flags(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_get_open_flags "GtkPlacesOpenFlags gtk_places_sidebar_get_open_flags(GtkPlacesSidebar* sidebar)"
+  s7_pointer sidebar;
+  sidebar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_get_open_flags", 1, sidebar, "GtkPlacesSidebar*");
+  return(s7_make_integer(sc, gtk_places_sidebar_get_open_flags(s7_c_pointer(sidebar))));
+}
+
+static s7_pointer lg_gtk_places_sidebar_set_open_flags(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_set_open_flags "void gtk_places_sidebar_set_open_flags(GtkPlacesSidebar* sidebar, \
+GtkPlacesOpenFlags flags)"
+  s7_pointer _p;
+  s7_pointer sidebar, flags;
+  _p = args;
+  sidebar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_open_flags", 1, sidebar, "GtkPlacesSidebar*");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_open_flags", 2, flags, "GtkPlacesOpenFlags");
+  gtk_places_sidebar_set_open_flags(s7_c_pointer(sidebar), s7_integer(flags));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_places_sidebar_get_location(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_get_location "GFile* gtk_places_sidebar_get_location(GtkPlacesSidebar* sidebar)"
+  s7_pointer sidebar;
+  sidebar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_get_location", 1, sidebar, "GtkPlacesSidebar*");
+  return(s7_make_type_with_c_pointer(sc, GFile__sym, gtk_places_sidebar_get_location(s7_c_pointer(sidebar))));
+}
+
+static s7_pointer lg_gtk_places_sidebar_set_location(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_set_location "void gtk_places_sidebar_set_location(GtkPlacesSidebar* sidebar, \
+GFile* location)"
+  s7_pointer _p;
+  s7_pointer sidebar, location;
+  _p = args;
+  sidebar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_location", 1, sidebar, "GtkPlacesSidebar*");
+  location = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(location, GFile__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_location", 2, location, "GFile*");
+  gtk_places_sidebar_set_location(s7_c_pointer(sidebar), s7_c_pointer(location));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_places_sidebar_get_show_desktop(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_get_show_desktop "gboolean gtk_places_sidebar_get_show_desktop(GtkPlacesSidebar* sidebar)"
+  s7_pointer sidebar;
+  sidebar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_get_show_desktop", 1, sidebar, "GtkPlacesSidebar*");
+  return(s7_make_boolean(sc, gtk_places_sidebar_get_show_desktop(s7_c_pointer(sidebar))));
+}
+
+static s7_pointer lg_gtk_places_sidebar_set_show_desktop(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_set_show_desktop "void gtk_places_sidebar_set_show_desktop(GtkPlacesSidebar* sidebar, \
+gboolean show_desktop)"
+  s7_pointer _p;
+  s7_pointer sidebar, show_desktop;
+  _p = args;
+  sidebar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_show_desktop", 1, sidebar, "GtkPlacesSidebar*");
+  show_desktop = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_desktop)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_show_desktop", 2, show_desktop, "gboolean");
+  gtk_places_sidebar_set_show_desktop(s7_c_pointer(sidebar), lg_boolean(show_desktop));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_places_sidebar_add_shortcut(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_add_shortcut "void gtk_places_sidebar_add_shortcut(GtkPlacesSidebar* sidebar, \
+GFile* location)"
+  s7_pointer _p;
+  s7_pointer sidebar, location;
+  _p = args;
+  sidebar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_add_shortcut", 1, sidebar, "GtkPlacesSidebar*");
+  location = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(location, GFile__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_add_shortcut", 2, location, "GFile*");
+  gtk_places_sidebar_add_shortcut(s7_c_pointer(sidebar), s7_c_pointer(location));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_places_sidebar_remove_shortcut(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_remove_shortcut "void gtk_places_sidebar_remove_shortcut(GtkPlacesSidebar* sidebar, \
+GFile* location)"
+  s7_pointer _p;
+  s7_pointer sidebar, location;
+  _p = args;
+  sidebar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_remove_shortcut", 1, sidebar, "GtkPlacesSidebar*");
+  location = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(location, GFile__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_remove_shortcut", 2, location, "GFile*");
+  gtk_places_sidebar_remove_shortcut(s7_c_pointer(sidebar), s7_c_pointer(location));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_places_sidebar_list_shortcuts(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_list_shortcuts "GSList* gtk_places_sidebar_list_shortcuts(GtkPlacesSidebar* sidebar)"
+  s7_pointer sidebar;
+  sidebar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_list_shortcuts", 1, sidebar, "GtkPlacesSidebar*");
+  return(s7_make_type_with_c_pointer(sc, GSList__sym, gtk_places_sidebar_list_shortcuts(s7_c_pointer(sidebar))));
+}
+
+static s7_pointer lg_gtk_places_sidebar_get_nth_bookmark(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_get_nth_bookmark "GFile* gtk_places_sidebar_get_nth_bookmark(GtkPlacesSidebar* sidebar, \
+gint n)"
+  s7_pointer _p;
+  s7_pointer sidebar, n;
+  _p = args;
+  sidebar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_get_nth_bookmark", 1, sidebar, "GtkPlacesSidebar*");
+  n = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_get_nth_bookmark", 2, n, "gint");
+  return(s7_make_type_with_c_pointer(sc, GFile__sym, gtk_places_sidebar_get_nth_bookmark(s7_c_pointer(sidebar), s7_integer(n))));
+}
+
+static s7_pointer lg_gtk_stack_switcher_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_switcher_new "GtkWidget* gtk_stack_switcher_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_stack_switcher_new()));
+}
+
+static s7_pointer lg_gtk_stack_switcher_set_stack(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_switcher_set_stack "void gtk_stack_switcher_set_stack(GtkStackSwitcher* switcher, \
+GtkStack* stack)"
+  s7_pointer _p;
+  s7_pointer switcher, stack;
+  _p = args;
+  switcher = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(switcher, GtkStackSwitcher__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_switcher_set_stack", 1, switcher, "GtkStackSwitcher*");
+  stack = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_switcher_set_stack", 2, stack, "GtkStack*");
+  gtk_stack_switcher_set_stack(s7_c_pointer(switcher), s7_c_pointer(stack));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_switcher_get_stack(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_switcher_get_stack "GtkStack* gtk_stack_switcher_get_stack(GtkStackSwitcher* switcher)"
+  s7_pointer switcher;
+  switcher = s7_car(args);
+  if (!s7_is_c_pointer_of_type(switcher, GtkStackSwitcher__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_switcher_get_stack", 1, switcher, "GtkStackSwitcher*");
+  return(s7_make_type_with_c_pointer(sc, GtkStack__sym, gtk_stack_switcher_get_stack(s7_c_pointer(switcher))));
+}
+
+static s7_pointer lg_gtk_stack_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_new "GtkWidget* gtk_stack_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_stack_new()));
+}
+
+static s7_pointer lg_gtk_stack_add_named(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_add_named "void gtk_stack_add_named(GtkStack* stack, GtkWidget* child, gchar* name)"
+  s7_pointer _p;
+  s7_pointer stack, child, name;
+  _p = args;
+  stack = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_add_named", 1, stack, "GtkStack*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_add_named", 2, child, "GtkWidget*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_stack_add_named", 3, name, "gchar*");
+  gtk_stack_add_named(s7_c_pointer(stack), s7_c_pointer(child), (const gchar*)s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_add_titled(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_add_titled "void gtk_stack_add_titled(GtkStack* stack, GtkWidget* child, gchar* name, \
+gchar* title)"
+  s7_pointer _p;
+  s7_pointer stack, child, name, title;
+  _p = args;
+  stack = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_add_titled", 1, stack, "GtkStack*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_add_titled", 2, child, "GtkWidget*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_stack_add_titled", 3, name, "gchar*");
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gtk_stack_add_titled", 4, title, "gchar*");
+  gtk_stack_add_titled(s7_c_pointer(stack), s7_c_pointer(child), (const gchar*)s7_string(name), (const gchar*)s7_string(title));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_set_visible_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_set_visible_child "void gtk_stack_set_visible_child(GtkStack* stack, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer stack, child;
+  _p = args;
+  stack = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_set_visible_child", 1, stack, "GtkStack*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_set_visible_child", 2, child, "GtkWidget*");
+  gtk_stack_set_visible_child(s7_c_pointer(stack), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_get_visible_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_get_visible_child "GtkWidget* gtk_stack_get_visible_child(GtkStack* stack)"
+  s7_pointer stack;
+  stack = s7_car(args);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_get_visible_child", 1, stack, "GtkStack*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_stack_get_visible_child(s7_c_pointer(stack))));
+}
+
+static s7_pointer lg_gtk_stack_set_visible_child_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_set_visible_child_name "void gtk_stack_set_visible_child_name(GtkStack* stack, \
+gchar* name)"
+  s7_pointer _p;
+  s7_pointer stack, name;
+  _p = args;
+  stack = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_set_visible_child_name", 1, stack, "GtkStack*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_stack_set_visible_child_name", 2, name, "gchar*");
+  gtk_stack_set_visible_child_name(s7_c_pointer(stack), (const gchar*)s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_get_visible_child_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_get_visible_child_name "gchar* gtk_stack_get_visible_child_name(GtkStack* stack)"
+  s7_pointer stack;
+  stack = s7_car(args);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_get_visible_child_name", 1, stack, "GtkStack*");
+  return(s7_make_string(sc, gtk_stack_get_visible_child_name(s7_c_pointer(stack))));
+}
+
+static s7_pointer lg_gtk_stack_set_visible_child_full(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_set_visible_child_full "void gtk_stack_set_visible_child_full(GtkStack* stack, \
+gchar* name, GtkStackTransitionType transition)"
+  s7_pointer _p;
+  s7_pointer stack, name, transition;
+  _p = args;
+  stack = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_set_visible_child_full", 1, stack, "GtkStack*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_stack_set_visible_child_full", 2, name, "gchar*");
+  transition = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(transition)) s7_wrong_type_arg_error(sc, "gtk_stack_set_visible_child_full", 3, transition, "GtkStackTransitionType");
+  gtk_stack_set_visible_child_full(s7_c_pointer(stack), (const gchar*)s7_string(name), s7_integer(transition));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_set_homogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_set_homogeneous "void gtk_stack_set_homogeneous(GtkStack* stack, gboolean homogeneous)"
+  s7_pointer _p;
+  s7_pointer stack, homogeneous;
+  _p = args;
+  stack = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_set_homogeneous", 1, stack, "GtkStack*");
+  homogeneous = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(homogeneous)) s7_wrong_type_arg_error(sc, "gtk_stack_set_homogeneous", 2, homogeneous, "gboolean");
+  gtk_stack_set_homogeneous(s7_c_pointer(stack), lg_boolean(homogeneous));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_get_homogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_get_homogeneous "gboolean gtk_stack_get_homogeneous(GtkStack* stack)"
+  s7_pointer stack;
+  stack = s7_car(args);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_get_homogeneous", 1, stack, "GtkStack*");
+  return(s7_make_boolean(sc, gtk_stack_get_homogeneous(s7_c_pointer(stack))));
+}
+
+static s7_pointer lg_gtk_stack_set_transition_duration(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_set_transition_duration "void gtk_stack_set_transition_duration(GtkStack* stack, \
+guint duration)"
+  s7_pointer _p;
+  s7_pointer stack, duration;
+  _p = args;
+  stack = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_set_transition_duration", 1, stack, "GtkStack*");
+  duration = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(duration)) s7_wrong_type_arg_error(sc, "gtk_stack_set_transition_duration", 2, duration, "guint");
+  gtk_stack_set_transition_duration(s7_c_pointer(stack), s7_integer(duration));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_get_transition_duration(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_get_transition_duration "guint gtk_stack_get_transition_duration(GtkStack* stack)"
+  s7_pointer stack;
+  stack = s7_car(args);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_get_transition_duration", 1, stack, "GtkStack*");
+  return(s7_make_integer(sc, gtk_stack_get_transition_duration(s7_c_pointer(stack))));
+}
+
+static s7_pointer lg_gtk_stack_set_transition_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_set_transition_type "void gtk_stack_set_transition_type(GtkStack* stack, GtkStackTransitionType transition)"
+  s7_pointer _p;
+  s7_pointer stack, transition;
+  _p = args;
+  stack = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_set_transition_type", 1, stack, "GtkStack*");
+  transition = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(transition)) s7_wrong_type_arg_error(sc, "gtk_stack_set_transition_type", 2, transition, "GtkStackTransitionType");
+  gtk_stack_set_transition_type(s7_c_pointer(stack), s7_integer(transition));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_get_transition_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_get_transition_type "GtkStackTransitionType gtk_stack_get_transition_type(GtkStack* stack)"
+  s7_pointer stack;
+  stack = s7_car(args);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_get_transition_type", 1, stack, "GtkStack*");
+  return(s7_make_integer(sc, gtk_stack_get_transition_type(s7_c_pointer(stack))));
+}
+
+static s7_pointer lg_gtk_revealer_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_revealer_new "GtkWidget* gtk_revealer_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_revealer_new()));
+}
+
+static s7_pointer lg_gtk_revealer_get_reveal_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_revealer_get_reveal_child "gboolean gtk_revealer_get_reveal_child(GtkRevealer* revealer)"
+  s7_pointer revealer;
+  revealer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(revealer, GtkRevealer__sym)) s7_wrong_type_arg_error(sc, "gtk_revealer_get_reveal_child", 1, revealer, "GtkRevealer*");
+  return(s7_make_boolean(sc, gtk_revealer_get_reveal_child(s7_c_pointer(revealer))));
+}
+
+static s7_pointer lg_gtk_revealer_set_reveal_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_revealer_set_reveal_child "void gtk_revealer_set_reveal_child(GtkRevealer* revealer, \
+gboolean reveal_child)"
+  s7_pointer _p;
+  s7_pointer revealer, reveal_child;
+  _p = args;
+  revealer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(revealer, GtkRevealer__sym)) s7_wrong_type_arg_error(sc, "gtk_revealer_set_reveal_child", 1, revealer, "GtkRevealer*");
+  reveal_child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(reveal_child)) s7_wrong_type_arg_error(sc, "gtk_revealer_set_reveal_child", 2, reveal_child, "gboolean");
+  gtk_revealer_set_reveal_child(s7_c_pointer(revealer), lg_boolean(reveal_child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_revealer_get_child_revealed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_revealer_get_child_revealed "gboolean gtk_revealer_get_child_revealed(GtkRevealer* revealer)"
+  s7_pointer revealer;
+  revealer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(revealer, GtkRevealer__sym)) s7_wrong_type_arg_error(sc, "gtk_revealer_get_child_revealed", 1, revealer, "GtkRevealer*");
+  return(s7_make_boolean(sc, gtk_revealer_get_child_revealed(s7_c_pointer(revealer))));
+}
+
+static s7_pointer lg_gtk_revealer_get_transition_duration(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_revealer_get_transition_duration "guint gtk_revealer_get_transition_duration(GtkRevealer* revealer)"
+  s7_pointer revealer;
+  revealer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(revealer, GtkRevealer__sym)) s7_wrong_type_arg_error(sc, "gtk_revealer_get_transition_duration", 1, revealer, "GtkRevealer*");
+  return(s7_make_integer(sc, gtk_revealer_get_transition_duration(s7_c_pointer(revealer))));
+}
+
+static s7_pointer lg_gtk_revealer_set_transition_duration(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_revealer_set_transition_duration "void gtk_revealer_set_transition_duration(GtkRevealer* revealer, \
+guint duration)"
+  s7_pointer _p;
+  s7_pointer revealer, duration;
+  _p = args;
+  revealer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(revealer, GtkRevealer__sym)) s7_wrong_type_arg_error(sc, "gtk_revealer_set_transition_duration", 1, revealer, "GtkRevealer*");
+  duration = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(duration)) s7_wrong_type_arg_error(sc, "gtk_revealer_set_transition_duration", 2, duration, "guint");
+  gtk_revealer_set_transition_duration(s7_c_pointer(revealer), s7_integer(duration));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_revealer_set_transition_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_revealer_set_transition_type "void gtk_revealer_set_transition_type(GtkRevealer* revealer, \
+GtkRevealerTransitionType transition)"
+  s7_pointer _p;
+  s7_pointer revealer, transition;
+  _p = args;
+  revealer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(revealer, GtkRevealer__sym)) s7_wrong_type_arg_error(sc, "gtk_revealer_set_transition_type", 1, revealer, "GtkRevealer*");
+  transition = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(transition)) s7_wrong_type_arg_error(sc, "gtk_revealer_set_transition_type", 2, transition, "GtkRevealerTransitionType");
+  gtk_revealer_set_transition_type(s7_c_pointer(revealer), s7_integer(transition));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_revealer_get_transition_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_revealer_get_transition_type "GtkRevealerTransitionType gtk_revealer_get_transition_type(GtkRevealer* revealer)"
+  s7_pointer revealer;
+  revealer = s7_car(args);
+  if (!s7_is_c_pointer_of_type(revealer, GtkRevealer__sym)) s7_wrong_type_arg_error(sc, "gtk_revealer_get_transition_type", 1, revealer, "GtkRevealer*");
+  return(s7_make_integer(sc, gtk_revealer_get_transition_type(s7_c_pointer(revealer))));
+}
+
+static s7_pointer lg_gtk_header_bar_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_new "GtkWidget* gtk_header_bar_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_header_bar_new()));
+}
+
+static s7_pointer lg_gtk_header_bar_set_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_set_title "void gtk_header_bar_set_title(GtkHeaderBar* bar, gchar* title)"
+  s7_pointer _p;
+  s7_pointer bar, title;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkHeaderBar__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_set_title", 1, bar, "GtkHeaderBar*");
+  title = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(title)) s7_wrong_type_arg_error(sc, "gtk_header_bar_set_title", 2, title, "gchar*");
+  gtk_header_bar_set_title(s7_c_pointer(bar), (const gchar*)s7_string(title));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_header_bar_get_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_get_title "gchar* gtk_header_bar_get_title(GtkHeaderBar* bar)"
+  s7_pointer bar;
+  bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(bar, GtkHeaderBar__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_get_title", 1, bar, "GtkHeaderBar*");
+  return(s7_make_string(sc, gtk_header_bar_get_title(s7_c_pointer(bar))));
+}
+
+static s7_pointer lg_gtk_header_bar_set_subtitle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_set_subtitle "void gtk_header_bar_set_subtitle(GtkHeaderBar* bar, gchar* subtitle)"
+  s7_pointer _p;
+  s7_pointer bar, subtitle;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkHeaderBar__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_set_subtitle", 1, bar, "GtkHeaderBar*");
+  subtitle = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(subtitle)) s7_wrong_type_arg_error(sc, "gtk_header_bar_set_subtitle", 2, subtitle, "gchar*");
+  gtk_header_bar_set_subtitle(s7_c_pointer(bar), (const gchar*)s7_string(subtitle));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_header_bar_get_subtitle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_get_subtitle "gchar* gtk_header_bar_get_subtitle(GtkHeaderBar* bar)"
+  s7_pointer bar;
+  bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(bar, GtkHeaderBar__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_get_subtitle", 1, bar, "GtkHeaderBar*");
+  return(s7_make_string(sc, gtk_header_bar_get_subtitle(s7_c_pointer(bar))));
+}
+
+static s7_pointer lg_gtk_header_bar_set_custom_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_set_custom_title "void gtk_header_bar_set_custom_title(GtkHeaderBar* bar, \
+GtkWidget* title_widget)"
+  s7_pointer _p;
+  s7_pointer bar, title_widget;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkHeaderBar__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_set_custom_title", 1, bar, "GtkHeaderBar*");
+  title_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(title_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_set_custom_title", 2, title_widget, "GtkWidget*");
+  gtk_header_bar_set_custom_title(s7_c_pointer(bar), s7_c_pointer(title_widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_header_bar_get_custom_title(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_get_custom_title "GtkWidget* gtk_header_bar_get_custom_title(GtkHeaderBar* bar)"
+  s7_pointer bar;
+  bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(bar, GtkHeaderBar__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_get_custom_title", 1, bar, "GtkHeaderBar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_header_bar_get_custom_title(s7_c_pointer(bar))));
+}
+
+static s7_pointer lg_gtk_header_bar_pack_start(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_pack_start "void gtk_header_bar_pack_start(GtkHeaderBar* bar, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer bar, child;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkHeaderBar__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_pack_start", 1, bar, "GtkHeaderBar*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_pack_start", 2, child, "GtkWidget*");
+  gtk_header_bar_pack_start(s7_c_pointer(bar), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_header_bar_pack_end(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_pack_end "void gtk_header_bar_pack_end(GtkHeaderBar* bar, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer bar, child;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkHeaderBar__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_pack_end", 1, bar, "GtkHeaderBar*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_pack_end", 2, child, "GtkWidget*");
+  gtk_header_bar_pack_end(s7_c_pointer(bar), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_row_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_row_new "GtkWidget* gtk_list_box_row_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_list_box_row_new()));
+}
+
+static s7_pointer lg_gtk_list_box_row_get_header(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_row_get_header "GtkWidget* gtk_list_box_row_get_header(GtkListBoxRow* row)"
+  s7_pointer row;
+  row = s7_car(args);
+  if (!s7_is_c_pointer_of_type(row, GtkListBoxRow__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_row_get_header", 1, row, "GtkListBoxRow*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_list_box_row_get_header(s7_c_pointer(row))));
+}
+
+static s7_pointer lg_gtk_list_box_row_set_header(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_row_set_header "void gtk_list_box_row_set_header(GtkListBoxRow* row, GtkWidget* header)"
+  s7_pointer _p;
+  s7_pointer row, header;
+  _p = args;
+  row = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(row, GtkListBoxRow__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_row_set_header", 1, row, "GtkListBoxRow*");
+  header = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(header, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_row_set_header", 2, header, "GtkWidget*");
+  gtk_list_box_row_set_header(s7_c_pointer(row), s7_c_pointer(header));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_row_changed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_row_changed "void gtk_list_box_row_changed(GtkListBoxRow* row)"
+  s7_pointer row;
+  row = s7_car(args);
+  if (!s7_is_c_pointer_of_type(row, GtkListBoxRow__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_row_changed", 1, row, "GtkListBoxRow*");
+  gtk_list_box_row_changed(s7_c_pointer(row));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_get_selected_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_get_selected_row "GtkListBoxRow* gtk_list_box_get_selected_row(GtkListBox* list_box)"
+  s7_pointer list_box;
+  list_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_get_selected_row", 1, list_box, "GtkListBox*");
+  return(s7_make_type_with_c_pointer(sc, GtkListBoxRow__sym, gtk_list_box_get_selected_row(s7_c_pointer(list_box))));
+}
+
+static s7_pointer lg_gtk_list_box_get_row_at_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_get_row_at_index "GtkListBoxRow* gtk_list_box_get_row_at_index(GtkListBox* list_box, \
+gint index_)"
+  s7_pointer _p;
+  s7_pointer list_box, index_;
+  _p = args;
+  list_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_get_row_at_index", 1, list_box, "GtkListBox*");
+  index_ = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index_)) s7_wrong_type_arg_error(sc, "gtk_list_box_get_row_at_index", 2, index_, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkListBoxRow__sym, gtk_list_box_get_row_at_index(s7_c_pointer(list_box), s7_integer(index_))));
+}
+
+static s7_pointer lg_gtk_list_box_get_row_at_y(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_get_row_at_y "GtkListBoxRow* gtk_list_box_get_row_at_y(GtkListBox* list_box, \
+gint y)"
+  s7_pointer _p;
+  s7_pointer list_box, y;
+  _p = args;
+  list_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_get_row_at_y", 1, list_box, "GtkListBox*");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_list_box_get_row_at_y", 2, y, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkListBoxRow__sym, gtk_list_box_get_row_at_y(s7_c_pointer(list_box), s7_integer(y))));
+}
+
+static s7_pointer lg_gtk_list_box_select_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_select_row "void gtk_list_box_select_row(GtkListBox* list_box, GtkListBoxRow* row)"
+  s7_pointer _p;
+  s7_pointer list_box, row;
+  _p = args;
+  list_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_select_row", 1, list_box, "GtkListBox*");
+  row = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(row, GtkListBoxRow__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_select_row", 2, row, "GtkListBoxRow*");
+  gtk_list_box_select_row(s7_c_pointer(list_box), s7_c_pointer(row));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_set_placeholder(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_set_placeholder "void gtk_list_box_set_placeholder(GtkListBox* list_box, GtkWidget* placeholder)"
+  s7_pointer _p;
+  s7_pointer list_box, placeholder;
+  _p = args;
+  list_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_set_placeholder", 1, list_box, "GtkListBox*");
+  placeholder = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(placeholder, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_set_placeholder", 2, placeholder, "GtkWidget*");
+  gtk_list_box_set_placeholder(s7_c_pointer(list_box), s7_c_pointer(placeholder));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_set_adjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_set_adjustment "void gtk_list_box_set_adjustment(GtkListBox* list_box, GtkAdjustment* adjustment)"
+  s7_pointer _p;
+  s7_pointer list_box, adjustment;
+  _p = args;
+  list_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_set_adjustment", 1, list_box, "GtkListBox*");
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_set_adjustment", 2, adjustment, "GtkAdjustment*");
+  gtk_list_box_set_adjustment(s7_c_pointer(list_box), s7_c_pointer(adjustment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_get_adjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_get_adjustment "GtkAdjustment* gtk_list_box_get_adjustment(GtkListBox* list_box)"
+  s7_pointer list_box;
+  list_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_get_adjustment", 1, list_box, "GtkListBox*");
+  return(s7_make_type_with_c_pointer(sc, GtkAdjustment__sym, gtk_list_box_get_adjustment(s7_c_pointer(list_box))));
+}
+
+static s7_pointer lg_gtk_list_box_set_selection_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_set_selection_mode "void gtk_list_box_set_selection_mode(GtkListBox* list_box, \
+GtkSelectionMode mode)"
+  s7_pointer _p;
+  s7_pointer list_box, mode;
+  _p = args;
+  list_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_set_selection_mode", 1, list_box, "GtkListBox*");
+  mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mode)) s7_wrong_type_arg_error(sc, "gtk_list_box_set_selection_mode", 2, mode, "GtkSelectionMode");
+  gtk_list_box_set_selection_mode(s7_c_pointer(list_box), s7_integer(mode));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_get_selection_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_get_selection_mode "GtkSelectionMode gtk_list_box_get_selection_mode(GtkListBox* list_box)"
+  s7_pointer list_box;
+  list_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_get_selection_mode", 1, list_box, "GtkListBox*");
+  return(s7_make_integer(sc, gtk_list_box_get_selection_mode(s7_c_pointer(list_box))));
+}
+
+static s7_pointer lg_gtk_list_box_invalidate_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_invalidate_filter "void gtk_list_box_invalidate_filter(GtkListBox* list_box)"
+  s7_pointer list_box;
+  list_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_invalidate_filter", 1, list_box, "GtkListBox*");
+  gtk_list_box_invalidate_filter(s7_c_pointer(list_box));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_invalidate_sort(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_invalidate_sort "void gtk_list_box_invalidate_sort(GtkListBox* list_box)"
+  s7_pointer list_box;
+  list_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_invalidate_sort", 1, list_box, "GtkListBox*");
+  gtk_list_box_invalidate_sort(s7_c_pointer(list_box));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_invalidate_headers(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_invalidate_headers "void gtk_list_box_invalidate_headers(GtkListBox* list_box)"
+  s7_pointer list_box;
+  list_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_invalidate_headers", 1, list_box, "GtkListBox*");
+  gtk_list_box_invalidate_headers(s7_c_pointer(list_box));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_set_activate_on_single_click(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_set_activate_on_single_click "void gtk_list_box_set_activate_on_single_click(GtkListBox* list_box, \
+gboolean single)"
+  s7_pointer _p;
+  s7_pointer list_box, single;
+  _p = args;
+  list_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_set_activate_on_single_click", 1, list_box, "GtkListBox*");
+  single = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(single)) s7_wrong_type_arg_error(sc, "gtk_list_box_set_activate_on_single_click", 2, single, "gboolean");
+  gtk_list_box_set_activate_on_single_click(s7_c_pointer(list_box), lg_boolean(single));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_get_activate_on_single_click(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_get_activate_on_single_click "gboolean gtk_list_box_get_activate_on_single_click(GtkListBox* list_box)"
+  s7_pointer list_box;
+  list_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_get_activate_on_single_click", 1, list_box, "GtkListBox*");
+  return(s7_make_boolean(sc, gtk_list_box_get_activate_on_single_click(s7_c_pointer(list_box))));
+}
+
+static s7_pointer lg_gtk_list_box_drag_unhighlight_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_drag_unhighlight_row "void gtk_list_box_drag_unhighlight_row(GtkListBox* list_box)"
+  s7_pointer list_box;
+  list_box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_drag_unhighlight_row", 1, list_box, "GtkListBox*");
+  gtk_list_box_drag_unhighlight_row(s7_c_pointer(list_box));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_drag_highlight_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_drag_highlight_row "void gtk_list_box_drag_highlight_row(GtkListBox* list_box, \
+GtkListBoxRow* row)"
+  s7_pointer _p;
+  s7_pointer list_box, row;
+  _p = args;
+  list_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_drag_highlight_row", 1, list_box, "GtkListBox*");
+  row = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(row, GtkListBoxRow__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_drag_highlight_row", 2, row, "GtkListBoxRow*");
+  gtk_list_box_drag_highlight_row(s7_c_pointer(list_box), s7_c_pointer(row));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_new "GtkWidget* gtk_list_box_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_list_box_new()));
+}
+
+static s7_pointer lg_gtk_search_bar_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_search_bar_new "GtkWidget* gtk_search_bar_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_search_bar_new()));
+}
+
+static s7_pointer lg_gtk_search_bar_connect_entry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_search_bar_connect_entry "void gtk_search_bar_connect_entry(GtkSearchBar* bar, GtkEntry* entry)"
+  s7_pointer _p;
+  s7_pointer bar, entry;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkSearchBar__sym)) s7_wrong_type_arg_error(sc, "gtk_search_bar_connect_entry", 1, bar, "GtkSearchBar*");
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_search_bar_connect_entry", 2, entry, "GtkEntry*");
+  gtk_search_bar_connect_entry(s7_c_pointer(bar), s7_c_pointer(entry));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_search_bar_get_search_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_search_bar_get_search_mode "gboolean gtk_search_bar_get_search_mode(GtkSearchBar* bar)"
+  s7_pointer bar;
+  bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(bar, GtkSearchBar__sym)) s7_wrong_type_arg_error(sc, "gtk_search_bar_get_search_mode", 1, bar, "GtkSearchBar*");
+  return(s7_make_boolean(sc, gtk_search_bar_get_search_mode(s7_c_pointer(bar))));
+}
+
+static s7_pointer lg_gtk_search_bar_set_search_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_search_bar_set_search_mode "void gtk_search_bar_set_search_mode(GtkSearchBar* bar, gboolean search_mode)"
+  s7_pointer _p;
+  s7_pointer bar, search_mode;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkSearchBar__sym)) s7_wrong_type_arg_error(sc, "gtk_search_bar_set_search_mode", 1, bar, "GtkSearchBar*");
+  search_mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(search_mode)) s7_wrong_type_arg_error(sc, "gtk_search_bar_set_search_mode", 2, search_mode, "gboolean");
+  gtk_search_bar_set_search_mode(s7_c_pointer(bar), lg_boolean(search_mode));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_search_bar_get_show_close_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_search_bar_get_show_close_button "gboolean gtk_search_bar_get_show_close_button(GtkSearchBar* bar)"
+  s7_pointer bar;
+  bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(bar, GtkSearchBar__sym)) s7_wrong_type_arg_error(sc, "gtk_search_bar_get_show_close_button", 1, bar, "GtkSearchBar*");
+  return(s7_make_boolean(sc, gtk_search_bar_get_show_close_button(s7_c_pointer(bar))));
+}
+
+static s7_pointer lg_gtk_search_bar_set_show_close_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_search_bar_set_show_close_button "void gtk_search_bar_set_show_close_button(GtkSearchBar* bar, \
+gboolean visible)"
+  s7_pointer _p;
+  s7_pointer bar, visible;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkSearchBar__sym)) s7_wrong_type_arg_error(sc, "gtk_search_bar_set_show_close_button", 1, bar, "GtkSearchBar*");
+  visible = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(visible)) s7_wrong_type_arg_error(sc, "gtk_search_bar_set_show_close_button", 2, visible, "gboolean");
+  gtk_search_bar_set_show_close_button(s7_c_pointer(bar), lg_boolean(visible));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_search_bar_handle_event(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_search_bar_handle_event "gboolean gtk_search_bar_handle_event(GtkSearchBar* bar, GdkEvent* event)"
+  s7_pointer _p;
+  s7_pointer bar, event;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkSearchBar__sym)) s7_wrong_type_arg_error(sc, "gtk_search_bar_handle_event", 1, bar, "GtkSearchBar*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gtk_search_bar_handle_event", 2, event, "GdkEvent*");
+  return(s7_make_boolean(sc, gtk_search_bar_handle_event(s7_c_pointer(bar), s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gtk_file_chooser_get_current_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_current_name "gchar* gtk_file_chooser_get_current_name(GtkFileChooser* chooser)"
+  s7_pointer chooser;
+  chooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_current_name", 1, chooser, "GtkFileChooser*");
+  return(s7_make_string(sc, gtk_file_chooser_get_current_name(s7_c_pointer(chooser))));
+}
+
+static s7_pointer lg_gdk_cairo_surface_create_from_pixbuf(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cairo_surface_create_from_pixbuf "cairo_surface_t* gdk_cairo_surface_create_from_pixbuf(GdkPixbuf* pixbuf, \
+int scale, GdkWindow* for_window)"
+  s7_pointer _p;
+  s7_pointer pixbuf, scale, for_window;
+  _p = args;
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gdk_cairo_surface_create_from_pixbuf", 1, pixbuf, "GdkPixbuf*");
+  scale = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(scale)) s7_wrong_type_arg_error(sc, "gdk_cairo_surface_create_from_pixbuf", 2, scale, "int");
+  for_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(for_window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_cairo_surface_create_from_pixbuf", 3, for_window, "GdkWindow*");
+  return(s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, gdk_cairo_surface_create_from_pixbuf(s7_c_pointer(pixbuf), s7_integer(scale), s7_c_pointer(for_window))));
+}
+
+static s7_pointer lg_gdk_device_get_position_double(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_device_get_position_double "void gdk_device_get_position_double(GdkDevice* device, GdkScreen** [screen], \
+gdouble* [x], gdouble* [y])"
+  s7_pointer _p;
+  s7_pointer device;
+  GdkScreen* ref_screen = NULL;
+  gdouble ref_x;
+  gdouble ref_y;
+  _p = args;
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_device_get_position_double", 1, device, "GdkDevice*");
+  gdk_device_get_position_double(s7_c_pointer(device), &ref_screen, &ref_x, &ref_y);
+    return(s7_list(sc, 3, s7_make_c_pointer(sc, ref_screen), s7_make_real(sc, ref_x), s7_make_real(sc, ref_y)));
+}
+
+static s7_pointer lg_gdk_device_get_window_at_position_double(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_device_get_window_at_position_double "GdkWindow* gdk_device_get_window_at_position_double(GdkDevice* device, \
+gdouble* [win_x], gdouble* [win_y])"
+  s7_pointer _p;
+  s7_pointer device;
+  gdouble ref_win_x;
+  gdouble ref_win_y;
+  _p = args;
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_device_get_window_at_position_double", 1, device, "GdkDevice*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_device_get_window_at_position_double(s7_c_pointer(device), &ref_win_x, &ref_win_y));
+      return(s7_list(sc, 3, result, s7_make_real(sc, ref_win_x), s7_make_real(sc, ref_win_y)));
+   }
+}
+
+static s7_pointer lg_gdk_window_get_scale_factor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_scale_factor "gint gdk_window_get_scale_factor(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_scale_factor", 1, window, "GdkWindow*");
+  return(s7_make_integer(sc, gdk_window_get_scale_factor(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_window_get_device_position_double(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_device_position_double "GdkWindow* gdk_window_get_device_position_double(GdkWindow* window, \
+GdkDevice* device, gdouble* [x], gdouble* [y], GdkModifierType* [mask])"
+  s7_pointer _p;
+  s7_pointer window, device;
+  gdouble ref_x;
+  gdouble ref_y;
+  GdkModifierType ref_mask;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_device_position_double", 1, window, "GdkWindow*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_device_position_double", 2, device, "GdkDevice*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_window_get_device_position_double(s7_c_pointer(window), s7_c_pointer(device), &ref_x, &ref_y, &ref_mask));
+      return(s7_list(sc, 4, result, s7_make_real(sc, ref_x), s7_make_real(sc, ref_y), s7_make_integer(sc, ref_mask)));
+   }
+}
+
+static s7_pointer lg_gdk_window_create_similar_image_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_create_similar_image_surface "cairo_surface_t* gdk_window_create_similar_image_surface(GdkWindow* window, \
+cairo_format_t format, int width, int height, int scale)"
+  s7_pointer _p;
+  s7_pointer window, format, width, height, scale;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_create_similar_image_surface", 1, window, "GdkWindow*");
+  format = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(format)) s7_wrong_type_arg_error(sc, "gdk_window_create_similar_image_surface", 2, format, "cairo_format_t");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gdk_window_create_similar_image_surface", 3, width, "int");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gdk_window_create_similar_image_surface", 4, height, "int");
+  scale = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(scale)) s7_wrong_type_arg_error(sc, "gdk_window_create_similar_image_surface", 5, scale, "int");
+  return(s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, gdk_window_create_similar_image_surface(s7_c_pointer(window), s7_integer(format), s7_integer(width), s7_integer(height), s7_integer(scale))));
+}
+
+static s7_pointer lg_gtk_icon_theme_lookup_icon_for_scale(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_lookup_icon_for_scale "GtkIconInfo* gtk_icon_theme_lookup_icon_for_scale(GtkIconTheme* icon_theme, \
+gchar* icon_name, gint size, gint scale, GtkIconLookupFlags flags)"
+  s7_pointer _p;
+  s7_pointer icon_theme, icon_name, size, scale, flags;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_icon_for_scale", 1, icon_theme, "GtkIconTheme*");
+  icon_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(icon_name)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_icon_for_scale", 2, icon_name, "gchar*");
+  size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(size)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_icon_for_scale", 3, size, "gint");
+  scale = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(scale)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_icon_for_scale", 4, scale, "gint");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_icon_for_scale", 5, flags, "GtkIconLookupFlags");
+  return(s7_make_type_with_c_pointer(sc, GtkIconInfo__sym, gtk_icon_theme_lookup_icon_for_scale(s7_c_pointer(icon_theme), (const gchar*)s7_string(icon_name), s7_integer(size), s7_integer(scale), s7_integer(flags))));
+}
+
+static s7_pointer lg_gtk_icon_theme_load_icon_for_scale(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_load_icon_for_scale "GdkPixbuf* gtk_icon_theme_load_icon_for_scale(GtkIconTheme* icon_theme, \
+gchar* icon_name, gint size, gint scale, GtkIconLookupFlags flags, GError** [error])"
+  s7_pointer _p;
+  s7_pointer icon_theme, icon_name, size, scale, flags;
+  GError* ref_error = NULL;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_icon_for_scale", 1, icon_theme, "GtkIconTheme*");
+  icon_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(icon_name)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_icon_for_scale", 2, icon_name, "gchar*");
+  size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(size)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_icon_for_scale", 3, size, "gint");
+  scale = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(scale)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_icon_for_scale", 4, scale, "gint");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_icon_for_scale", 5, flags, "GtkIconLookupFlags");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, GdkPixbuf__sym, gtk_icon_theme_load_icon_for_scale(s7_c_pointer(icon_theme), (const gchar*)s7_string(icon_name), s7_integer(size), s7_integer(scale), s7_integer(flags), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_icon_theme_load_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_load_surface "cairo_surface_t* gtk_icon_theme_load_surface(GtkIconTheme* icon_theme, \
+gchar* icon_name, gint size, gint scale, GdkWindow* for_window, GtkIconLookupFlags flags, GError** [error])"
+  s7_pointer _p;
+  s7_pointer icon_theme, icon_name, size, scale, for_window, flags;
+  GError* ref_error = NULL;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_surface", 1, icon_theme, "GtkIconTheme*");
+  icon_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(icon_name)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_surface", 2, icon_name, "gchar*");
+  size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(size)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_surface", 3, size, "gint");
+  scale = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(scale)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_surface", 4, scale, "gint");
+  for_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(for_window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_surface", 5, for_window, "GdkWindow*");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_load_surface", 6, flags, "GtkIconLookupFlags");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, gtk_icon_theme_load_surface(s7_c_pointer(icon_theme), (const gchar*)s7_string(icon_name), s7_integer(size), s7_integer(scale), s7_c_pointer(for_window), s7_integer(flags), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_icon_theme_lookup_by_gicon_for_scale(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_lookup_by_gicon_for_scale "GtkIconInfo* gtk_icon_theme_lookup_by_gicon_for_scale(GtkIconTheme* icon_theme, \
+GIcon* icon, gint size, gint scale, GtkIconLookupFlags flags)"
+  s7_pointer _p;
+  s7_pointer icon_theme, icon, size, scale, flags;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_by_gicon_for_scale", 1, icon_theme, "GtkIconTheme*");
+  icon = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon, GIcon__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_by_gicon_for_scale", 2, icon, "GIcon*");
+  size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(size)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_by_gicon_for_scale", 3, size, "gint");
+  scale = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(scale)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_by_gicon_for_scale", 4, scale, "gint");
+  flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(flags)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_lookup_by_gicon_for_scale", 5, flags, "GtkIconLookupFlags");
+  return(s7_make_type_with_c_pointer(sc, GtkIconInfo__sym, gtk_icon_theme_lookup_by_gicon_for_scale(s7_c_pointer(icon_theme), s7_c_pointer(icon), s7_integer(size), s7_integer(scale), s7_integer(flags))));
+}
+
+static s7_pointer lg_gtk_icon_info_get_base_scale(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_info_get_base_scale "gint gtk_icon_info_get_base_scale(GtkIconInfo* icon_info)"
+  s7_pointer icon_info;
+  icon_info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_info, GtkIconInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_info_get_base_scale", 1, icon_info, "GtkIconInfo*");
+  return(s7_make_integer(sc, gtk_icon_info_get_base_scale(s7_c_pointer(icon_info))));
+}
+
+static s7_pointer lg_gtk_icon_info_load_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_info_load_surface "cairo_surface_t* gtk_icon_info_load_surface(GtkIconInfo* icon_info, \
+GdkWindow* for_window, GError** [error])"
+  s7_pointer _p;
+  s7_pointer icon_info, for_window;
+  GError* ref_error = NULL;
+  _p = args;
+  icon_info = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_info, GtkIconInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_info_load_surface", 1, icon_info, "GtkIconInfo*");
+  for_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(for_window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_info_load_surface", 2, for_window, "GdkWindow*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, gtk_icon_info_load_surface(s7_c_pointer(icon_info), s7_c_pointer(for_window), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_image_new_from_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_new_from_surface "GtkWidget* gtk_image_new_from_surface(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "gtk_image_new_from_surface", 1, surface, "cairo_surface_t*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_image_new_from_surface(s7_c_pointer(surface))));
+}
+
+static s7_pointer lg_gtk_image_set_from_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_image_set_from_surface "void gtk_image_set_from_surface(GtkImage* image, cairo_surface_t* surface)"
+  s7_pointer _p;
+  s7_pointer image, surface;
+  _p = args;
+  image = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(image, GtkImage__sym)) s7_wrong_type_arg_error(sc, "gtk_image_set_from_surface", 1, image, "GtkImage*");
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "gtk_image_set_from_surface", 2, surface, "cairo_surface_t*");
+  gtk_image_set_from_surface(s7_c_pointer(image), s7_c_pointer(surface));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_row_get_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_row_get_index "gint gtk_list_box_row_get_index(GtkListBoxRow* row)"
+  s7_pointer row;
+  row = s7_car(args);
+  if (!s7_is_c_pointer_of_type(row, GtkListBoxRow__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_row_get_index", 1, row, "GtkListBoxRow*");
+  return(s7_make_integer(sc, gtk_list_box_row_get_index(s7_c_pointer(row))));
+}
+
+static s7_pointer lg_gtk_widget_get_scale_factor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_scale_factor "gint gtk_widget_get_scale_factor(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_scale_factor", 1, widget, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_widget_get_scale_factor(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_window_close(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_close "void gtk_window_close(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_close", 1, window, "GtkWindow*");
+  gtk_window_close(s7_c_pointer(window));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_info_bar_set_show_close_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_info_bar_set_show_close_button "void gtk_info_bar_set_show_close_button(GtkInfoBar* info_bar, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer info_bar, setting;
+  _p = args;
+  info_bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info_bar, GtkInfoBar__sym)) s7_wrong_type_arg_error(sc, "gtk_info_bar_set_show_close_button", 1, info_bar, "GtkInfoBar*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_info_bar_set_show_close_button", 2, setting, "gboolean");
+  gtk_info_bar_set_show_close_button(s7_c_pointer(info_bar), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_info_bar_get_show_close_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_info_bar_get_show_close_button "gboolean gtk_info_bar_get_show_close_button(GtkInfoBar* info_bar)"
+  s7_pointer info_bar;
+  info_bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info_bar, GtkInfoBar__sym)) s7_wrong_type_arg_error(sc, "gtk_info_bar_get_show_close_button", 1, info_bar, "GtkInfoBar*");
+  return(s7_make_boolean(sc, gtk_info_bar_get_show_close_button(s7_c_pointer(info_bar))));
+}
+
+static s7_pointer lg_gtk_tree_model_rows_reordered_with_length(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_tree_model_rows_reordered_with_length "void gtk_tree_model_rows_reordered_with_length(GtkTreeModel* tree_model, \
+GtkTreePath* path, GtkTreeIter* iter, gint* new_order, gint length)"
+  s7_pointer _p;
+  s7_pointer tree_model, path, iter, new_order, length;
+  _p = args;
+  tree_model = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tree_model, GtkTreeModel__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_rows_reordered_with_length", 1, tree_model, "GtkTreeModel*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkTreePath__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_rows_reordered_with_length", 2, path, "GtkTreePath*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTreeIter__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_rows_reordered_with_length", 3, iter, "GtkTreeIter*");
+  new_order = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(new_order, gint__sym)) s7_wrong_type_arg_error(sc, "gtk_tree_model_rows_reordered_with_length", 4, new_order, "gint*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "gtk_tree_model_rows_reordered_with_length", 5, length, "gint");
+  gtk_tree_model_rows_reordered_with_length(s7_c_pointer(tree_model), s7_c_pointer(path), s7_c_pointer(iter), s7_c_pointer(new_order), s7_integer(length));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_cursor_new_from_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cursor_new_from_surface "GdkCursor* gdk_cursor_new_from_surface(GdkDisplay* display, \
+cairo_surface_t* surface, gdouble x, gdouble y)"
+  s7_pointer _p;
+  s7_pointer display, surface, x, y;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_cursor_new_from_surface", 1, display, "GdkDisplay*");
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "gdk_cursor_new_from_surface", 2, surface, "cairo_surface_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gdk_cursor_new_from_surface", 3, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gdk_cursor_new_from_surface", 4, y, "gdouble");
+  return(s7_make_type_with_c_pointer(sc, GdkCursor__sym, gdk_cursor_new_from_surface(s7_c_pointer(display), s7_c_pointer(surface), s7_real(x), s7_real(y))));
+}
+
+static s7_pointer lg_gdk_cursor_get_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cursor_get_surface "cairo_surface_t* gdk_cursor_get_surface(GdkCursor* cursor, gdouble* [x_hot], \
+gdouble* [y_hot])"
+  s7_pointer _p;
+  s7_pointer cursor;
+  gdouble ref_x_hot;
+  gdouble ref_y_hot;
+  _p = args;
+  cursor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cursor, GdkCursor__sym)) s7_wrong_type_arg_error(sc, "gdk_cursor_get_surface", 1, cursor, "GdkCursor*");
+  {
+    s7_pointer result;
+    result = s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, gdk_cursor_get_surface(s7_c_pointer(cursor), &ref_x_hot, &ref_y_hot));
+      return(s7_list(sc, 3, result, s7_make_real(sc, ref_x_hot), s7_make_real(sc, ref_y_hot)));
+   }
+}
+
+static s7_pointer lg_gdk_event_get_event_type(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_event_type "GdkEventType gdk_event_get_event_type(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_event_type", 1, event, "GdkEvent*");
+  return(s7_make_integer(sc, gdk_event_get_event_type(s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gtk_entry_set_tabs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_tabs "void gtk_entry_set_tabs(GtkEntry* entry, PangoTabArray* tabs)"
+  s7_pointer _p;
+  s7_pointer entry, tabs;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_tabs", 1, entry, "GtkEntry*");
+  tabs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tabs, PangoTabArray__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_tabs", 2, tabs, "PangoTabArray*");
+  gtk_entry_set_tabs(s7_c_pointer(entry), s7_c_pointer(tabs));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_tabs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_tabs "PangoTabArray* gtk_entry_get_tabs(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_tabs", 1, entry, "GtkEntry*");
+  return(s7_make_type_with_c_pointer(sc, PangoTabArray__sym, gtk_entry_get_tabs(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gtk_header_bar_get_show_close_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_get_show_close_button "gboolean gtk_header_bar_get_show_close_button(GtkHeaderBar* bar)"
+  s7_pointer bar;
+  bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(bar, GtkHeaderBar__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_get_show_close_button", 1, bar, "GtkHeaderBar*");
+  return(s7_make_boolean(sc, gtk_header_bar_get_show_close_button(s7_c_pointer(bar))));
+}
+
+static s7_pointer lg_gtk_header_bar_set_show_close_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_set_show_close_button "void gtk_header_bar_set_show_close_button(GtkHeaderBar* bar, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer bar, setting;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkHeaderBar__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_set_show_close_button", 1, bar, "GtkHeaderBar*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_header_bar_set_show_close_button", 2, setting, "gboolean");
+  gtk_header_bar_set_show_close_button(s7_c_pointer(bar), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_prepend(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_prepend "void gtk_list_box_prepend(GtkListBox* list_box, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer list_box, child;
+  _p = args;
+  list_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_prepend", 1, list_box, "GtkListBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_prepend", 2, child, "GtkWidget*");
+  gtk_list_box_prepend(s7_c_pointer(list_box), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_insert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_insert "void gtk_list_box_insert(GtkListBox* list_box, GtkWidget* child, gint position)"
+  s7_pointer _p;
+  s7_pointer list_box, child, position;
+  _p = args;
+  list_box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(list_box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_insert", 1, list_box, "GtkListBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_insert", 2, child, "GtkWidget*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_list_box_insert", 3, position, "gint");
+  gtk_list_box_insert(s7_c_pointer(list_box), s7_c_pointer(child), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_opaque_region(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_opaque_region "void gdk_window_set_opaque_region(GdkWindow* window, cairo_region_t* region)"
+  s7_pointer _p;
+  s7_pointer window, region;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_opaque_region", 1, window, "GdkWindow*");
+  region = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_opaque_region", 2, region, "cairo_region_t*");
+  gdk_window_set_opaque_region(s7_c_pointer(window), s7_c_pointer(region));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_set_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_lines "void gtk_label_set_lines(GtkLabel* label, gint lines)"
+  s7_pointer _p;
+  s7_pointer label, lines;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_lines", 1, label, "GtkLabel*");
+  lines = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(lines)) s7_wrong_type_arg_error(sc, "gtk_label_set_lines", 2, lines, "gint");
+  gtk_label_set_lines(s7_c_pointer(label), s7_integer(lines));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_lines(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_lines "gint gtk_label_get_lines(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_lines", 1, label, "GtkLabel*");
+  return(s7_make_integer(sc, gtk_label_get_lines(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gdk_event_get_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_window "GdkWindow* gdk_event_get_window(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_window", 1, event, "GdkEvent*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_event_get_window(s7_c_pointer(event))));
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(3, 12, 0)
+static s7_pointer lg_gtk_flow_box_child_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_child_new "GtkWidget* gtk_flow_box_child_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_flow_box_child_new()));
+}
+
+static s7_pointer lg_gtk_flow_box_child_get_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_child_get_index "gint gtk_flow_box_child_get_index(GtkFlowBoxChild* child)"
+  s7_pointer child;
+  child = s7_car(args);
+  if (!s7_is_c_pointer_of_type(child, GtkFlowBoxChild__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_child_get_index", 1, child, "GtkFlowBoxChild*");
+  return(s7_make_integer(sc, gtk_flow_box_child_get_index(s7_c_pointer(child))));
+}
+
+static s7_pointer lg_gtk_flow_box_child_is_selected(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_child_is_selected "gboolean gtk_flow_box_child_is_selected(GtkFlowBoxChild* child)"
+  s7_pointer child;
+  child = s7_car(args);
+  if (!s7_is_c_pointer_of_type(child, GtkFlowBoxChild__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_child_is_selected", 1, child, "GtkFlowBoxChild*");
+  return(s7_make_boolean(sc, gtk_flow_box_child_is_selected(s7_c_pointer(child))));
+}
+
+static s7_pointer lg_gtk_flow_box_child_changed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_child_changed "void gtk_flow_box_child_changed(GtkFlowBoxChild* child)"
+  s7_pointer child;
+  child = s7_car(args);
+  if (!s7_is_c_pointer_of_type(child, GtkFlowBoxChild__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_child_changed", 1, child, "GtkFlowBoxChild*");
+  gtk_flow_box_child_changed(s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_new "GtkWidget* gtk_flow_box_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_flow_box_new()));
+}
+
+static s7_pointer lg_gtk_flow_box_set_homogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_set_homogeneous "void gtk_flow_box_set_homogeneous(GtkFlowBox* box, gboolean homogeneous)"
+  s7_pointer _p;
+  s7_pointer box, homogeneous;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_homogeneous", 1, box, "GtkFlowBox*");
+  homogeneous = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(homogeneous)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_homogeneous", 2, homogeneous, "gboolean");
+  gtk_flow_box_set_homogeneous(s7_c_pointer(box), lg_boolean(homogeneous));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_get_homogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_get_homogeneous "gboolean gtk_flow_box_get_homogeneous(GtkFlowBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_get_homogeneous", 1, box, "GtkFlowBox*");
+  return(s7_make_boolean(sc, gtk_flow_box_get_homogeneous(s7_c_pointer(box))));
+}
+
+static s7_pointer lg_gtk_flow_box_set_row_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_set_row_spacing "void gtk_flow_box_set_row_spacing(GtkFlowBox* box, guint spacing)"
+  s7_pointer _p;
+  s7_pointer box, spacing;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_row_spacing", 1, box, "GtkFlowBox*");
+  spacing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(spacing)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_row_spacing", 2, spacing, "guint");
+  gtk_flow_box_set_row_spacing(s7_c_pointer(box), s7_integer(spacing));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_get_row_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_get_row_spacing "guint gtk_flow_box_get_row_spacing(GtkFlowBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_get_row_spacing", 1, box, "GtkFlowBox*");
+  return(s7_make_integer(sc, gtk_flow_box_get_row_spacing(s7_c_pointer(box))));
+}
+
+static s7_pointer lg_gtk_flow_box_set_column_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_set_column_spacing "void gtk_flow_box_set_column_spacing(GtkFlowBox* box, guint spacing)"
+  s7_pointer _p;
+  s7_pointer box, spacing;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_column_spacing", 1, box, "GtkFlowBox*");
+  spacing = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(spacing)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_column_spacing", 2, spacing, "guint");
+  gtk_flow_box_set_column_spacing(s7_c_pointer(box), s7_integer(spacing));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_get_column_spacing(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_get_column_spacing "guint gtk_flow_box_get_column_spacing(GtkFlowBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_get_column_spacing", 1, box, "GtkFlowBox*");
+  return(s7_make_integer(sc, gtk_flow_box_get_column_spacing(s7_c_pointer(box))));
+}
+
+static s7_pointer lg_gtk_flow_box_set_min_children_per_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_set_min_children_per_line "void gtk_flow_box_set_min_children_per_line(GtkFlowBox* box, \
+guint n_children)"
+  s7_pointer _p;
+  s7_pointer box, n_children;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_min_children_per_line", 1, box, "GtkFlowBox*");
+  n_children = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_children)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_min_children_per_line", 2, n_children, "guint");
+  gtk_flow_box_set_min_children_per_line(s7_c_pointer(box), s7_integer(n_children));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_get_min_children_per_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_get_min_children_per_line "guint gtk_flow_box_get_min_children_per_line(GtkFlowBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_get_min_children_per_line", 1, box, "GtkFlowBox*");
+  return(s7_make_integer(sc, gtk_flow_box_get_min_children_per_line(s7_c_pointer(box))));
+}
+
+static s7_pointer lg_gtk_flow_box_set_max_children_per_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_set_max_children_per_line "void gtk_flow_box_set_max_children_per_line(GtkFlowBox* box, \
+guint n_children)"
+  s7_pointer _p;
+  s7_pointer box, n_children;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_max_children_per_line", 1, box, "GtkFlowBox*");
+  n_children = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_children)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_max_children_per_line", 2, n_children, "guint");
+  gtk_flow_box_set_max_children_per_line(s7_c_pointer(box), s7_integer(n_children));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_get_max_children_per_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_get_max_children_per_line "guint gtk_flow_box_get_max_children_per_line(GtkFlowBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_get_max_children_per_line", 1, box, "GtkFlowBox*");
+  return(s7_make_integer(sc, gtk_flow_box_get_max_children_per_line(s7_c_pointer(box))));
+}
+
+static s7_pointer lg_gtk_flow_box_set_activate_on_single_click(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_set_activate_on_single_click "void gtk_flow_box_set_activate_on_single_click(GtkFlowBox* box, \
+gboolean single)"
+  s7_pointer _p;
+  s7_pointer box, single;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_activate_on_single_click", 1, box, "GtkFlowBox*");
+  single = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(single)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_activate_on_single_click", 2, single, "gboolean");
+  gtk_flow_box_set_activate_on_single_click(s7_c_pointer(box), lg_boolean(single));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_get_activate_on_single_click(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_get_activate_on_single_click "gboolean gtk_flow_box_get_activate_on_single_click(GtkFlowBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_get_activate_on_single_click", 1, box, "GtkFlowBox*");
+  return(s7_make_boolean(sc, gtk_flow_box_get_activate_on_single_click(s7_c_pointer(box))));
+}
+
+static s7_pointer lg_gtk_flow_box_insert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_insert "void gtk_flow_box_insert(GtkFlowBox* box, GtkWidget* widget, gint position)"
+  s7_pointer _p;
+  s7_pointer box, widget, position;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_insert", 1, box, "GtkFlowBox*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_insert", 2, widget, "GtkWidget*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_flow_box_insert", 3, position, "gint");
+  gtk_flow_box_insert(s7_c_pointer(box), s7_c_pointer(widget), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_get_child_at_index(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_get_child_at_index "GtkFlowBoxChild* gtk_flow_box_get_child_at_index(GtkFlowBox* box, \
+gint idx)"
+  s7_pointer _p;
+  s7_pointer box, idx;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_get_child_at_index", 1, box, "GtkFlowBox*");
+  idx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(idx)) s7_wrong_type_arg_error(sc, "gtk_flow_box_get_child_at_index", 2, idx, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkFlowBoxChild__sym, gtk_flow_box_get_child_at_index(s7_c_pointer(box), s7_integer(idx))));
+}
+
+static s7_pointer lg_gtk_flow_box_get_selected_children(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_get_selected_children "GList* gtk_flow_box_get_selected_children(GtkFlowBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_get_selected_children", 1, box, "GtkFlowBox*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_flow_box_get_selected_children(s7_c_pointer(box))));
+}
+
+static s7_pointer lg_gtk_flow_box_select_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_select_child "void gtk_flow_box_select_child(GtkFlowBox* box, GtkFlowBoxChild* child)"
+  s7_pointer _p;
+  s7_pointer box, child;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_select_child", 1, box, "GtkFlowBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkFlowBoxChild__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_select_child", 2, child, "GtkFlowBoxChild*");
+  gtk_flow_box_select_child(s7_c_pointer(box), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_unselect_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_unselect_child "void gtk_flow_box_unselect_child(GtkFlowBox* box, GtkFlowBoxChild* child)"
+  s7_pointer _p;
+  s7_pointer box, child;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_unselect_child", 1, box, "GtkFlowBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkFlowBoxChild__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_unselect_child", 2, child, "GtkFlowBoxChild*");
+  gtk_flow_box_unselect_child(s7_c_pointer(box), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_select_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_select_all "void gtk_flow_box_select_all(GtkFlowBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_select_all", 1, box, "GtkFlowBox*");
+  gtk_flow_box_select_all(s7_c_pointer(box));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_unselect_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_unselect_all "void gtk_flow_box_unselect_all(GtkFlowBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_unselect_all", 1, box, "GtkFlowBox*");
+  gtk_flow_box_unselect_all(s7_c_pointer(box));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_set_selection_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_set_selection_mode "void gtk_flow_box_set_selection_mode(GtkFlowBox* box, GtkSelectionMode mode)"
+  s7_pointer _p;
+  s7_pointer box, mode;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_selection_mode", 1, box, "GtkFlowBox*");
+  mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mode)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_selection_mode", 2, mode, "GtkSelectionMode");
+  gtk_flow_box_set_selection_mode(s7_c_pointer(box), s7_integer(mode));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_get_selection_mode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_get_selection_mode "GtkSelectionMode gtk_flow_box_get_selection_mode(GtkFlowBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_get_selection_mode", 1, box, "GtkFlowBox*");
+  return(s7_make_integer(sc, gtk_flow_box_get_selection_mode(s7_c_pointer(box))));
+}
+
+static s7_pointer lg_gtk_flow_box_set_hadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_set_hadjustment "void gtk_flow_box_set_hadjustment(GtkFlowBox* box, GtkAdjustment* adjustment)"
+  s7_pointer _p;
+  s7_pointer box, adjustment;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_hadjustment", 1, box, "GtkFlowBox*");
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_hadjustment", 2, adjustment, "GtkAdjustment*");
+  gtk_flow_box_set_hadjustment(s7_c_pointer(box), s7_c_pointer(adjustment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_set_vadjustment(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_set_vadjustment "void gtk_flow_box_set_vadjustment(GtkFlowBox* box, GtkAdjustment* adjustment)"
+  s7_pointer _p;
+  s7_pointer box, adjustment;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_vadjustment", 1, box, "GtkFlowBox*");
+  adjustment = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(adjustment, GtkAdjustment__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_set_vadjustment", 2, adjustment, "GtkAdjustment*");
+  gtk_flow_box_set_vadjustment(s7_c_pointer(box), s7_c_pointer(adjustment));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_invalidate_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_invalidate_filter "void gtk_flow_box_invalidate_filter(GtkFlowBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_invalidate_filter", 1, box, "GtkFlowBox*");
+  gtk_flow_box_invalidate_filter(s7_c_pointer(box));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_flow_box_invalidate_sort(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_invalidate_sort "void gtk_flow_box_invalidate_sort(GtkFlowBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_invalidate_sort", 1, box, "GtkFlowBox*");
+  gtk_flow_box_invalidate_sort(s7_c_pointer(box));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_set_event_compression(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_event_compression "void gdk_window_set_event_compression(GdkWindow* window, \
+gboolean event_compression)"
+  s7_pointer _p;
+  s7_pointer window, event_compression;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_event_compression", 1, window, "GdkWindow*");
+  event_compression = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(event_compression)) s7_wrong_type_arg_error(sc, "gdk_window_set_event_compression", 2, event_compression, "gboolean");
+  gdk_window_set_event_compression(s7_c_pointer(window), lg_boolean(event_compression));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_get_event_compression(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_event_compression "gboolean gdk_window_get_event_compression(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_event_compression", 1, window, "GdkWindow*");
+  return(s7_make_boolean(sc, gdk_window_get_event_compression(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_places_sidebar_set_local_only(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_set_local_only "void gtk_places_sidebar_set_local_only(GtkPlacesSidebar* sidebar, \
+gboolean local_only)"
+  s7_pointer _p;
+  s7_pointer sidebar, local_only;
+  _p = args;
+  sidebar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_local_only", 1, sidebar, "GtkPlacesSidebar*");
+  local_only = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(local_only)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_local_only", 2, local_only, "gboolean");
+  gtk_places_sidebar_set_local_only(s7_c_pointer(sidebar), lg_boolean(local_only));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_places_sidebar_get_local_only(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_get_local_only "gboolean gtk_places_sidebar_get_local_only(GtkPlacesSidebar* sidebar)"
+  s7_pointer sidebar;
+  sidebar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_get_local_only", 1, sidebar, "GtkPlacesSidebar*");
+  return(s7_make_boolean(sc, gtk_places_sidebar_get_local_only(s7_c_pointer(sidebar))));
+}
+
+static s7_pointer lg_gtk_stack_get_transition_running(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_get_transition_running "gboolean gtk_stack_get_transition_running(GtkStack* stack)"
+  s7_pointer stack;
+  stack = s7_car(args);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_get_transition_running", 1, stack, "GtkStack*");
+  return(s7_make_boolean(sc, gtk_stack_get_transition_running(s7_c_pointer(stack))));
+}
+
+static s7_pointer lg_gtk_widget_get_margin_start(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_margin_start "gint gtk_widget_get_margin_start(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_margin_start", 1, widget, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_widget_get_margin_start(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_margin_start(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_margin_start "void gtk_widget_set_margin_start(GtkWidget* widget, gint margin)"
+  s7_pointer _p;
+  s7_pointer widget, margin;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_margin_start", 1, widget, "GtkWidget*");
+  margin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(margin)) s7_wrong_type_arg_error(sc, "gtk_widget_set_margin_start", 2, margin, "gint");
+  gtk_widget_set_margin_start(s7_c_pointer(widget), s7_integer(margin));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_margin_end(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_margin_end "gint gtk_widget_get_margin_end(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_margin_end", 1, widget, "GtkWidget*");
+  return(s7_make_integer(sc, gtk_widget_get_margin_end(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_margin_end(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_margin_end "void gtk_widget_set_margin_end(GtkWidget* widget, gint margin)"
+  s7_pointer _p;
+  s7_pointer widget, margin;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_margin_end", 1, widget, "GtkWidget*");
+  margin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(margin)) s7_wrong_type_arg_error(sc, "gtk_widget_set_margin_end", 2, margin, "gint");
+  gtk_widget_set_margin_end(s7_c_pointer(widget), s7_integer(margin));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_accel_label_get_accel(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_accel_label_get_accel "void gtk_accel_label_get_accel(GtkAccelLabel* accel_label, guint* [accelerator_key], \
+GdkModifierType* [accelerator_mods])"
+  s7_pointer _p;
+  s7_pointer accel_label;
+  guint ref_accelerator_key;
+  GdkModifierType ref_accelerator_mods;
+  _p = args;
+  accel_label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(accel_label, GtkAccelLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_accel_label_get_accel", 1, accel_label, "GtkAccelLabel*");
+  gtk_accel_label_get_accel(s7_c_pointer(accel_label), &ref_accelerator_key, &ref_accelerator_mods);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_accelerator_key), s7_make_integer(sc, ref_accelerator_mods)));
+}
+
+static s7_pointer lg_gdk_window_set_shadow_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_shadow_width "void gdk_window_set_shadow_width(GdkWindow* window, gint left, \
+gint right, gint top, gint bottom)"
+  s7_pointer _p;
+  s7_pointer window, left, right, top, bottom;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_shadow_width", 1, window, "GdkWindow*");
+  left = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(left)) s7_wrong_type_arg_error(sc, "gdk_window_set_shadow_width", 2, left, "gint");
+  right = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(right)) s7_wrong_type_arg_error(sc, "gdk_window_set_shadow_width", 3, right, "gint");
+  top = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(top)) s7_wrong_type_arg_error(sc, "gdk_window_set_shadow_width", 4, top, "gint");
+  bottom = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(bottom)) s7_wrong_type_arg_error(sc, "gdk_window_set_shadow_width", 5, bottom, "gint");
+  gdk_window_set_shadow_width(s7_c_pointer(window), s7_integer(left), s7_integer(right), s7_integer(top), s7_integer(bottom));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_action_bar_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_action_bar_new "GtkWidget* gtk_action_bar_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_action_bar_new()));
+}
+
+static s7_pointer lg_gtk_action_bar_get_center_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_action_bar_get_center_widget "GtkWidget* gtk_action_bar_get_center_widget(GtkActionBar* bar)"
+  s7_pointer bar;
+  bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(bar, GtkActionBar__sym)) s7_wrong_type_arg_error(sc, "gtk_action_bar_get_center_widget", 1, bar, "GtkActionBar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_action_bar_get_center_widget(s7_c_pointer(bar))));
+}
+
+static s7_pointer lg_gtk_action_bar_set_center_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_action_bar_set_center_widget "void gtk_action_bar_set_center_widget(GtkActionBar* bar, \
+GtkWidget* center_widget)"
+  s7_pointer _p;
+  s7_pointer bar, center_widget;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkActionBar__sym)) s7_wrong_type_arg_error(sc, "gtk_action_bar_set_center_widget", 1, bar, "GtkActionBar*");
+  center_widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(center_widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_action_bar_set_center_widget", 2, center_widget, "GtkWidget*");
+  gtk_action_bar_set_center_widget(s7_c_pointer(bar), s7_c_pointer(center_widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_action_bar_pack_start(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_action_bar_pack_start "void gtk_action_bar_pack_start(GtkActionBar* bar, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer bar, child;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkActionBar__sym)) s7_wrong_type_arg_error(sc, "gtk_action_bar_pack_start", 1, bar, "GtkActionBar*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_action_bar_pack_start", 2, child, "GtkWidget*");
+  gtk_action_bar_pack_start(s7_c_pointer(bar), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_action_bar_pack_end(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_action_bar_pack_end "void gtk_action_bar_pack_end(GtkActionBar* bar, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer bar, child;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkActionBar__sym)) s7_wrong_type_arg_error(sc, "gtk_action_bar_pack_end", 1, bar, "GtkActionBar*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_action_bar_pack_end", 2, child, "GtkWidget*");
+  gtk_action_bar_pack_end(s7_c_pointer(bar), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_header_bar_set_has_subtitle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_set_has_subtitle "void gtk_header_bar_set_has_subtitle(GtkHeaderBar* bar, \
+gboolean setting)"
+  s7_pointer _p;
+  s7_pointer bar, setting;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkHeaderBar__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_set_has_subtitle", 1, bar, "GtkHeaderBar*");
+  setting = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(setting)) s7_wrong_type_arg_error(sc, "gtk_header_bar_set_has_subtitle", 2, setting, "gboolean");
+  gtk_header_bar_set_has_subtitle(s7_c_pointer(bar), lg_boolean(setting));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_header_bar_get_has_subtitle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_get_has_subtitle "gboolean gtk_header_bar_get_has_subtitle(GtkHeaderBar* bar)"
+  s7_pointer bar;
+  bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(bar, GtkHeaderBar__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_get_has_subtitle", 1, bar, "GtkHeaderBar*");
+  return(s7_make_boolean(sc, gtk_header_bar_get_has_subtitle(s7_c_pointer(bar))));
+}
+
+static s7_pointer lg_gtk_header_bar_set_decoration_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_set_decoration_layout "void gtk_header_bar_set_decoration_layout(GtkHeaderBar* bar, \
+gchar* layout)"
+  s7_pointer _p;
+  s7_pointer bar, layout;
+  _p = args;
+  bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(bar, GtkHeaderBar__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_set_decoration_layout", 1, bar, "GtkHeaderBar*");
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(layout)) s7_wrong_type_arg_error(sc, "gtk_header_bar_set_decoration_layout", 2, layout, "gchar*");
+  gtk_header_bar_set_decoration_layout(s7_c_pointer(bar), (const gchar*)s7_string(layout));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_header_bar_get_decoration_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_header_bar_get_decoration_layout "gchar* gtk_header_bar_get_decoration_layout(GtkHeaderBar* bar)"
+  s7_pointer bar;
+  bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(bar, GtkHeaderBar__sym)) s7_wrong_type_arg_error(sc, "gtk_header_bar_get_decoration_layout", 1, bar, "GtkHeaderBar*");
+  return(s7_make_string(sc, gtk_header_bar_get_decoration_layout(s7_c_pointer(bar))));
+}
+
+static s7_pointer lg_gtk_icon_info_is_symbolic(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_info_is_symbolic "gboolean gtk_icon_info_is_symbolic(GtkIconInfo* icon_info)"
+  s7_pointer icon_info;
+  icon_info = s7_car(args);
+  if (!s7_is_c_pointer_of_type(icon_info, GtkIconInfo__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_info_is_symbolic", 1, icon_info, "GtkIconInfo*");
+  return(s7_make_boolean(sc, gtk_icon_info_is_symbolic(s7_c_pointer(icon_info))));
+}
+
+static s7_pointer lg_gtk_get_locale_direction(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_get_locale_direction "GtkTextDirection gtk_get_locale_direction( void)"
+  return(s7_make_integer(sc, gtk_get_locale_direction()));
+}
+
+static s7_pointer lg_gtk_window_is_maximized(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_is_maximized "gboolean gtk_window_is_maximized(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_is_maximized", 1, window, "GtkWindow*");
+  return(s7_make_boolean(sc, gtk_window_is_maximized(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_dialog_get_header_bar(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_dialog_get_header_bar "GtkWidget* gtk_dialog_get_header_bar(GtkDialog* dialog)"
+  s7_pointer dialog;
+  dialog = s7_car(args);
+  if (!s7_is_c_pointer_of_type(dialog, GtkDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_dialog_get_header_bar", 1, dialog, "GtkDialog*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_dialog_get_header_bar(s7_c_pointer(dialog))));
+}
+
+static s7_pointer lg_gtk_popover_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_new "GtkWidget* gtk_popover_new(GtkWidget* relative_to)"
+  s7_pointer relative_to;
+  relative_to = s7_car(args);
+  if (!s7_is_c_pointer_of_type(relative_to, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_new", 1, relative_to, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_popover_new(s7_c_pointer(relative_to))));
+}
+
+static s7_pointer lg_gtk_popover_set_relative_to(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_set_relative_to "void gtk_popover_set_relative_to(GtkPopover* popover, GtkWidget* relative_to)"
+  s7_pointer _p;
+  s7_pointer popover, relative_to;
+  _p = args;
+  popover = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(popover, GtkPopover__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_set_relative_to", 1, popover, "GtkPopover*");
+  relative_to = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(relative_to, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_set_relative_to", 2, relative_to, "GtkWidget*");
+  gtk_popover_set_relative_to(s7_c_pointer(popover), s7_c_pointer(relative_to));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_popover_get_relative_to(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_get_relative_to "GtkWidget* gtk_popover_get_relative_to(GtkPopover* popover)"
+  s7_pointer popover;
+  popover = s7_car(args);
+  if (!s7_is_c_pointer_of_type(popover, GtkPopover__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_get_relative_to", 1, popover, "GtkPopover*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_popover_get_relative_to(s7_c_pointer(popover))));
+}
+
+static s7_pointer lg_gtk_popover_set_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_set_position "void gtk_popover_set_position(GtkPopover* popover, GtkPositionType position)"
+  s7_pointer _p;
+  s7_pointer popover, position;
+  _p = args;
+  popover = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(popover, GtkPopover__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_set_position", 1, popover, "GtkPopover*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_popover_set_position", 2, position, "GtkPositionType");
+  gtk_popover_set_position(s7_c_pointer(popover), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_popover_get_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_get_position "GtkPositionType gtk_popover_get_position(GtkPopover* popover)"
+  s7_pointer popover;
+  popover = s7_car(args);
+  if (!s7_is_c_pointer_of_type(popover, GtkPopover__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_get_position", 1, popover, "GtkPopover*");
+  return(s7_make_integer(sc, gtk_popover_get_position(s7_c_pointer(popover))));
+}
+
+static s7_pointer lg_gtk_popover_set_modal(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_set_modal "void gtk_popover_set_modal(GtkPopover* popover, gboolean modal)"
+  s7_pointer _p;
+  s7_pointer popover, modal;
+  _p = args;
+  popover = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(popover, GtkPopover__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_set_modal", 1, popover, "GtkPopover*");
+  modal = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(modal)) s7_wrong_type_arg_error(sc, "gtk_popover_set_modal", 2, modal, "gboolean");
+  gtk_popover_set_modal(s7_c_pointer(popover), lg_boolean(modal));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_popover_get_modal(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_get_modal "gboolean gtk_popover_get_modal(GtkPopover* popover)"
+  s7_pointer popover;
+  popover = s7_car(args);
+  if (!s7_is_c_pointer_of_type(popover, GtkPopover__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_get_modal", 1, popover, "GtkPopover*");
+  return(s7_make_boolean(sc, gtk_popover_get_modal(s7_c_pointer(popover))));
+}
+
+static s7_pointer lg_gtk_entry_set_max_width_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_set_max_width_chars "void gtk_entry_set_max_width_chars(GtkEntry* entry, gint n_chars)"
+  s7_pointer _p;
+  s7_pointer entry, n_chars;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_set_max_width_chars", 1, entry, "GtkEntry*");
+  n_chars = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_chars)) s7_wrong_type_arg_error(sc, "gtk_entry_set_max_width_chars", 2, n_chars, "gint");
+  gtk_entry_set_max_width_chars(s7_c_pointer(entry), s7_integer(n_chars));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_get_max_width_chars(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_get_max_width_chars "gint gtk_entry_get_max_width_chars(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_get_max_width_chars", 1, entry, "GtkEntry*");
+  return(s7_make_integer(sc, gtk_entry_get_max_width_chars(s7_c_pointer(entry))));
+}
+
+static s7_pointer lg_gdk_device_get_last_event_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_device_get_last_event_window "GdkWindow* gdk_device_get_last_event_window(GdkDevice* device)"
+  s7_pointer device;
+  device = s7_car(args);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_device_get_last_event_window", 1, device, "GdkDevice*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_device_get_last_event_window(s7_c_pointer(device))));
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(3, 14, 0)
+static s7_pointer lg_gtk_list_box_row_is_selected(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_row_is_selected "gboolean gtk_list_box_row_is_selected(GtkListBoxRow* row)"
+  s7_pointer row;
+  row = s7_car(args);
+  if (!s7_is_c_pointer_of_type(row, GtkListBoxRow__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_row_is_selected", 1, row, "GtkListBoxRow*");
+  return(s7_make_boolean(sc, gtk_list_box_row_is_selected(s7_c_pointer(row))));
+}
+
+static s7_pointer lg_gtk_list_box_unselect_row(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_unselect_row "void gtk_list_box_unselect_row(GtkListBox* box, GtkListBoxRow* row)"
+  s7_pointer _p;
+  s7_pointer box, row;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_unselect_row", 1, box, "GtkListBox*");
+  row = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(row, GtkListBoxRow__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_unselect_row", 2, row, "GtkListBoxRow*");
+  gtk_list_box_unselect_row(s7_c_pointer(box), s7_c_pointer(row));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_select_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_select_all "void gtk_list_box_select_all(GtkListBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_select_all", 1, box, "GtkListBox*");
+  gtk_list_box_select_all(s7_c_pointer(box));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_unselect_all(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_unselect_all "void gtk_list_box_unselect_all(GtkListBox* box)"
+  s7_pointer box;
+  box = s7_car(args);
+  if (!s7_is_c_pointer_of_type(box, GtkListBox__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_unselect_all", 1, box, "GtkListBox*");
+  gtk_list_box_unselect_all(s7_c_pointer(box));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_places_sidebar_get_show_enter_location(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_get_show_enter_location "gboolean gtk_places_sidebar_get_show_enter_location(GtkPlacesSidebar* sidebar)"
+  s7_pointer sidebar;
+  sidebar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_get_show_enter_location", 1, sidebar, "GtkPlacesSidebar*");
+  return(s7_make_boolean(sc, gtk_places_sidebar_get_show_enter_location(s7_c_pointer(sidebar))));
+}
+
+static s7_pointer lg_gtk_places_sidebar_set_show_enter_location(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_set_show_enter_location "void gtk_places_sidebar_set_show_enter_location(GtkPlacesSidebar* sidebar, \
+gboolean show_enter_location)"
+  s7_pointer _p;
+  s7_pointer sidebar, show_enter_location;
+  _p = args;
+  sidebar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_show_enter_location", 1, sidebar, "GtkPlacesSidebar*");
+  show_enter_location = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_enter_location)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_show_enter_location", 2, show_enter_location, "gboolean");
+  gtk_places_sidebar_set_show_enter_location(s7_c_pointer(sidebar), lg_boolean(show_enter_location));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_switch_set_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_switch_set_state "void gtk_switch_set_state(GtkSwitch* sw, gboolean state)"
+  s7_pointer _p;
+  s7_pointer sw, state;
+  _p = args;
+  sw = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sw, GtkSwitch__sym)) s7_wrong_type_arg_error(sc, "gtk_switch_set_state", 1, sw, "GtkSwitch*");
+  state = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(state)) s7_wrong_type_arg_error(sc, "gtk_switch_set_state", 2, state, "gboolean");
+  gtk_switch_set_state(s7_c_pointer(sw), lg_boolean(state));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_switch_get_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_switch_get_state "gboolean gtk_switch_get_state(GtkSwitch* sw)"
+  s7_pointer sw;
+  sw = s7_car(args);
+  if (!s7_is_c_pointer_of_type(sw, GtkSwitch__sym)) s7_wrong_type_arg_error(sc, "gtk_switch_get_state", 1, sw, "GtkSwitch*");
+  return(s7_make_boolean(sc, gtk_switch_get_state(s7_c_pointer(sw))));
+}
+
+static s7_pointer lg_gdk_window_show_window_menu(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_show_window_menu "gboolean gdk_window_show_window_menu(GdkWindow* window, GdkEvent* event)"
+  s7_pointer _p;
+  s7_pointer window, event;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_show_window_menu", 1, window, "GdkWindow*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_window_show_window_menu", 2, event, "GdkEvent*");
+  return(s7_make_boolean(sc, gdk_window_show_window_menu(s7_c_pointer(window), s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gtk_widget_set_clip(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_clip "void gtk_widget_set_clip(GtkWidget* widget, GtkAllocation* clip)"
+  s7_pointer _p;
+  s7_pointer widget, clip;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_clip", 1, widget, "GtkWidget*");
+  clip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clip, GtkAllocation__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_clip", 2, clip, "GtkAllocation*");
+  gtk_widget_set_clip(s7_c_pointer(widget), s7_c_pointer(clip));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_clip(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_clip "void gtk_widget_get_clip(GtkWidget* widget, GtkAllocation* clip)"
+  s7_pointer _p;
+  s7_pointer widget, clip;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_clip", 1, widget, "GtkWidget*");
+  clip = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clip, GtkAllocation__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_clip", 2, clip, "GtkAllocation*");
+  gtk_widget_get_clip(s7_c_pointer(widget), s7_c_pointer(clip));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gesture_get_device(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_get_device "GdkDevice* gtk_gesture_get_device(GtkGesture* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_get_device", 1, gesture, "GtkGesture*");
+  return(s7_make_type_with_c_pointer(sc, GdkDevice__sym, gtk_gesture_get_device(s7_c_pointer(gesture))));
+}
+
+static s7_pointer lg_gtk_gesture_set_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_set_state "gboolean gtk_gesture_set_state(GtkGesture* gesture, GtkEventSequenceState state)"
+  s7_pointer _p;
+  s7_pointer gesture, state;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_set_state", 1, gesture, "GtkGesture*");
+  state = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(state)) s7_wrong_type_arg_error(sc, "gtk_gesture_set_state", 2, state, "GtkEventSequenceState");
+  return(s7_make_boolean(sc, gtk_gesture_set_state(s7_c_pointer(gesture), s7_integer(state))));
+}
+
+static s7_pointer lg_gtk_gesture_get_sequence_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_get_sequence_state "GtkEventSequenceState gtk_gesture_get_sequence_state(GtkGesture* gesture, \
+GdkEventSequence* sequence)"
+  s7_pointer _p;
+  s7_pointer gesture, sequence;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_get_sequence_state", 1, gesture, "GtkGesture*");
+  sequence = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sequence, GdkEventSequence__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_get_sequence_state", 2, sequence, "GdkEventSequence*");
+  return(s7_make_integer(sc, gtk_gesture_get_sequence_state(s7_c_pointer(gesture), s7_c_pointer(sequence))));
+}
+
+static s7_pointer lg_gtk_gesture_set_sequence_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_set_sequence_state "gboolean gtk_gesture_set_sequence_state(GtkGesture* gesture, \
+GdkEventSequence* sequence, GtkEventSequenceState state)"
+  s7_pointer _p;
+  s7_pointer gesture, sequence, state;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_set_sequence_state", 1, gesture, "GtkGesture*");
+  sequence = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sequence, GdkEventSequence__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_set_sequence_state", 2, sequence, "GdkEventSequence*");
+  state = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(state)) s7_wrong_type_arg_error(sc, "gtk_gesture_set_sequence_state", 3, state, "GtkEventSequenceState");
+  return(s7_make_boolean(sc, gtk_gesture_set_sequence_state(s7_c_pointer(gesture), s7_c_pointer(sequence), s7_integer(state))));
+}
+
+static s7_pointer lg_gtk_gesture_get_sequences(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_get_sequences "GList* gtk_gesture_get_sequences(GtkGesture* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_get_sequences", 1, gesture, "GtkGesture*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_gesture_get_sequences(s7_c_pointer(gesture))));
+}
+
+static s7_pointer lg_gtk_gesture_get_last_updated_sequence(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_get_last_updated_sequence "GdkEventSequence* gtk_gesture_get_last_updated_sequence(GtkGesture* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_get_last_updated_sequence", 1, gesture, "GtkGesture*");
+  return(s7_make_type_with_c_pointer(sc, GdkEventSequence__sym, gtk_gesture_get_last_updated_sequence(s7_c_pointer(gesture))));
+}
+
+static s7_pointer lg_gtk_gesture_handles_sequence(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_handles_sequence "gboolean gtk_gesture_handles_sequence(GtkGesture* gesture, \
+GdkEventSequence* sequence)"
+  s7_pointer _p;
+  s7_pointer gesture, sequence;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_handles_sequence", 1, gesture, "GtkGesture*");
+  sequence = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sequence, GdkEventSequence__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_handles_sequence", 2, sequence, "GdkEventSequence*");
+  return(s7_make_boolean(sc, gtk_gesture_handles_sequence(s7_c_pointer(gesture), s7_c_pointer(sequence))));
+}
+
+static s7_pointer lg_gtk_gesture_get_last_event(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_get_last_event "GdkEvent* gtk_gesture_get_last_event(GtkGesture* gesture, GdkEventSequence* sequence)"
+  s7_pointer _p;
+  s7_pointer gesture, sequence;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_get_last_event", 1, gesture, "GtkGesture*");
+  sequence = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sequence, GdkEventSequence__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_get_last_event", 2, sequence, "GdkEventSequence*");
+    return(s7_make_type_with_c_pointer(sc, GdkEvent__sym, (GdkEvent*)gtk_gesture_get_last_event(s7_c_pointer(gesture), s7_c_pointer(sequence))));
+}
+
+static s7_pointer lg_gtk_gesture_get_point(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_get_point "gboolean gtk_gesture_get_point(GtkGesture* gesture, GdkEventSequence* sequence, \
+gdouble* [x], gdouble* [y])"
+  s7_pointer _p;
+  s7_pointer gesture, sequence;
+  gdouble ref_x;
+  gdouble ref_y;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_get_point", 1, gesture, "GtkGesture*");
+  sequence = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sequence, GdkEventSequence__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_get_point", 2, sequence, "GdkEventSequence*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_gesture_get_point(s7_c_pointer(gesture), s7_c_pointer(sequence), &ref_x, &ref_y));
+      return(s7_list(sc, 3, result, s7_make_real(sc, ref_x), s7_make_real(sc, ref_y)));
+   }
+}
+
+static s7_pointer lg_gtk_gesture_get_bounding_box(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_get_bounding_box "gboolean gtk_gesture_get_bounding_box(GtkGesture* gesture, \
+GdkRectangle* rect)"
+  s7_pointer _p;
+  s7_pointer gesture, rect;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_get_bounding_box", 1, gesture, "GtkGesture*");
+  rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rect, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_get_bounding_box", 2, rect, "GdkRectangle*");
+  return(s7_make_boolean(sc, gtk_gesture_get_bounding_box(s7_c_pointer(gesture), s7_c_pointer(rect))));
+}
+
+static s7_pointer lg_gtk_gesture_get_bounding_box_center(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_get_bounding_box_center "gboolean gtk_gesture_get_bounding_box_center(GtkGesture* gesture, \
+gdouble* [x], gdouble* [y])"
+  s7_pointer _p;
+  s7_pointer gesture;
+  gdouble ref_x;
+  gdouble ref_y;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_get_bounding_box_center", 1, gesture, "GtkGesture*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_gesture_get_bounding_box_center(s7_c_pointer(gesture), &ref_x, &ref_y));
+      return(s7_list(sc, 3, result, s7_make_real(sc, ref_x), s7_make_real(sc, ref_y)));
+   }
+}
+
+static s7_pointer lg_gtk_gesture_is_active(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_is_active "gboolean gtk_gesture_is_active(GtkGesture* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_is_active", 1, gesture, "GtkGesture*");
+  return(s7_make_boolean(sc, gtk_gesture_is_active(s7_c_pointer(gesture))));
+}
+
+static s7_pointer lg_gtk_gesture_is_recognized(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_is_recognized "gboolean gtk_gesture_is_recognized(GtkGesture* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_is_recognized", 1, gesture, "GtkGesture*");
+  return(s7_make_boolean(sc, gtk_gesture_is_recognized(s7_c_pointer(gesture))));
+}
+
+static s7_pointer lg_gtk_gesture_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_group "void gtk_gesture_group(GtkGesture* group_gesture, GtkGesture* gesture)"
+  s7_pointer _p;
+  s7_pointer group_gesture, gesture;
+  _p = args;
+  group_gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group_gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_group", 1, group_gesture, "GtkGesture*");
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_group", 2, gesture, "GtkGesture*");
+  gtk_gesture_group(s7_c_pointer(group_gesture), s7_c_pointer(gesture));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gesture_ungroup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_ungroup "void gtk_gesture_ungroup(GtkGesture* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_ungroup", 1, gesture, "GtkGesture*");
+  gtk_gesture_ungroup(s7_c_pointer(gesture));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gesture_get_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_get_group "GList* gtk_gesture_get_group(GtkGesture* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_get_group", 1, gesture, "GtkGesture*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gtk_gesture_get_group(s7_c_pointer(gesture))));
+}
+
+static s7_pointer lg_gtk_gesture_is_grouped_with(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_is_grouped_with "gboolean gtk_gesture_is_grouped_with(GtkGesture* gesture, GtkGesture* other)"
+  s7_pointer _p;
+  s7_pointer gesture, other;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_is_grouped_with", 1, gesture, "GtkGesture*");
+  other = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(other, GtkGesture__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_is_grouped_with", 2, other, "GtkGesture*");
+  return(s7_make_boolean(sc, gtk_gesture_is_grouped_with(s7_c_pointer(gesture), s7_c_pointer(other))));
+}
+
+static s7_pointer lg_gtk_gesture_drag_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_drag_new "GtkGesture* gtk_gesture_drag_new(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_drag_new", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkGesture__sym, gtk_gesture_drag_new(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_gesture_drag_get_start_point(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_drag_get_start_point "gboolean gtk_gesture_drag_get_start_point(GtkGestureDrag* gesture, \
+gdouble* [x], gdouble* [y])"
+  s7_pointer _p;
+  s7_pointer gesture;
+  gdouble ref_x;
+  gdouble ref_y;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureDrag__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_drag_get_start_point", 1, gesture, "GtkGestureDrag*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_gesture_drag_get_start_point(s7_c_pointer(gesture), &ref_x, &ref_y));
+      return(s7_list(sc, 3, result, s7_make_real(sc, ref_x), s7_make_real(sc, ref_y)));
+   }
+}
+
+static s7_pointer lg_gtk_gesture_drag_get_offset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_drag_get_offset "gboolean gtk_gesture_drag_get_offset(GtkGestureDrag* gesture, \
+gdouble* [x], gdouble* [y])"
+  s7_pointer _p;
+  s7_pointer gesture;
+  gdouble ref_x;
+  gdouble ref_y;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureDrag__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_drag_get_offset", 1, gesture, "GtkGestureDrag*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_gesture_drag_get_offset(s7_c_pointer(gesture), &ref_x, &ref_y));
+      return(s7_list(sc, 3, result, s7_make_real(sc, ref_x), s7_make_real(sc, ref_y)));
+   }
+}
+
+static s7_pointer lg_gtk_gesture_long_press_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_long_press_new "GtkGesture* gtk_gesture_long_press_new(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_long_press_new", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkGesture__sym, gtk_gesture_long_press_new(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_gesture_pan_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_pan_new "GtkGesture* gtk_gesture_pan_new(GtkWidget* widget, GtkOrientation orientation)"
+  s7_pointer _p;
+  s7_pointer widget, orientation;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_pan_new", 1, widget, "GtkWidget*");
+  orientation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(orientation)) s7_wrong_type_arg_error(sc, "gtk_gesture_pan_new", 2, orientation, "GtkOrientation");
+  return(s7_make_type_with_c_pointer(sc, GtkGesture__sym, gtk_gesture_pan_new(s7_c_pointer(widget), s7_integer(orientation))));
+}
+
+static s7_pointer lg_gtk_gesture_pan_get_orientation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_pan_get_orientation "GtkOrientation gtk_gesture_pan_get_orientation(GtkGesturePan* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesturePan__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_pan_get_orientation", 1, gesture, "GtkGesturePan*");
+  return(s7_make_integer(sc, gtk_gesture_pan_get_orientation(s7_c_pointer(gesture))));
+}
+
+static s7_pointer lg_gtk_gesture_pan_set_orientation(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_pan_set_orientation "void gtk_gesture_pan_set_orientation(GtkGesturePan* gesture, \
+GtkOrientation orientation)"
+  s7_pointer _p;
+  s7_pointer gesture, orientation;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGesturePan__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_pan_set_orientation", 1, gesture, "GtkGesturePan*");
+  orientation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(orientation)) s7_wrong_type_arg_error(sc, "gtk_gesture_pan_set_orientation", 2, orientation, "GtkOrientation");
+  gtk_gesture_pan_set_orientation(s7_c_pointer(gesture), s7_integer(orientation));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gesture_multi_press_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_multi_press_new "GtkGesture* gtk_gesture_multi_press_new(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_multi_press_new", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkGesture__sym, gtk_gesture_multi_press_new(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_gesture_multi_press_set_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_multi_press_set_area "void gtk_gesture_multi_press_set_area(GtkGestureMultiPress* gesture, \
+GdkRectangle* rect)"
+  s7_pointer _p;
+  s7_pointer gesture, rect;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureMultiPress__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_multi_press_set_area", 1, gesture, "GtkGestureMultiPress*");
+  rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rect, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_multi_press_set_area", 2, rect, "GdkRectangle*");
+  gtk_gesture_multi_press_set_area(s7_c_pointer(gesture), s7_c_pointer(rect));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gesture_multi_press_get_area(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_multi_press_get_area "gboolean gtk_gesture_multi_press_get_area(GtkGestureMultiPress* gesture, \
+GdkRectangle* rect)"
+  s7_pointer _p;
+  s7_pointer gesture, rect;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureMultiPress__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_multi_press_get_area", 1, gesture, "GtkGestureMultiPress*");
+  rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rect, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_multi_press_get_area", 2, rect, "GdkRectangle*");
+  return(s7_make_boolean(sc, gtk_gesture_multi_press_get_area(s7_c_pointer(gesture), s7_c_pointer(rect))));
+}
+
+static s7_pointer lg_gtk_gesture_rotate_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_rotate_new "GtkGesture* gtk_gesture_rotate_new(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_rotate_new", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkGesture__sym, gtk_gesture_rotate_new(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_gesture_rotate_get_angle_delta(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_rotate_get_angle_delta "gdouble gtk_gesture_rotate_get_angle_delta(GtkGestureRotate* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureRotate__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_rotate_get_angle_delta", 1, gesture, "GtkGestureRotate*");
+  return(s7_make_real(sc, gtk_gesture_rotate_get_angle_delta(s7_c_pointer(gesture))));
+}
+
+static s7_pointer lg_gtk_gesture_single_get_touch_only(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_single_get_touch_only "gboolean gtk_gesture_single_get_touch_only(GtkGestureSingle* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureSingle__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_single_get_touch_only", 1, gesture, "GtkGestureSingle*");
+  return(s7_make_boolean(sc, gtk_gesture_single_get_touch_only(s7_c_pointer(gesture))));
+}
+
+static s7_pointer lg_gtk_gesture_single_set_touch_only(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_single_set_touch_only "void gtk_gesture_single_set_touch_only(GtkGestureSingle* gesture, \
+gboolean touch_only)"
+  s7_pointer _p;
+  s7_pointer gesture, touch_only;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureSingle__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_single_set_touch_only", 1, gesture, "GtkGestureSingle*");
+  touch_only = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(touch_only)) s7_wrong_type_arg_error(sc, "gtk_gesture_single_set_touch_only", 2, touch_only, "gboolean");
+  gtk_gesture_single_set_touch_only(s7_c_pointer(gesture), lg_boolean(touch_only));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gesture_single_get_exclusive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_single_get_exclusive "gboolean gtk_gesture_single_get_exclusive(GtkGestureSingle* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureSingle__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_single_get_exclusive", 1, gesture, "GtkGestureSingle*");
+  return(s7_make_boolean(sc, gtk_gesture_single_get_exclusive(s7_c_pointer(gesture))));
+}
+
+static s7_pointer lg_gtk_gesture_single_set_exclusive(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_single_set_exclusive "void gtk_gesture_single_set_exclusive(GtkGestureSingle* gesture, \
+gboolean exclusive)"
+  s7_pointer _p;
+  s7_pointer gesture, exclusive;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureSingle__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_single_set_exclusive", 1, gesture, "GtkGestureSingle*");
+  exclusive = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(exclusive)) s7_wrong_type_arg_error(sc, "gtk_gesture_single_set_exclusive", 2, exclusive, "gboolean");
+  gtk_gesture_single_set_exclusive(s7_c_pointer(gesture), lg_boolean(exclusive));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gesture_single_get_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_single_get_button "guint gtk_gesture_single_get_button(GtkGestureSingle* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureSingle__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_single_get_button", 1, gesture, "GtkGestureSingle*");
+  return(s7_make_integer(sc, gtk_gesture_single_get_button(s7_c_pointer(gesture))));
+}
+
+static s7_pointer lg_gtk_gesture_single_set_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_single_set_button "void gtk_gesture_single_set_button(GtkGestureSingle* gesture, \
+guint button)"
+  s7_pointer _p;
+  s7_pointer gesture, button;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureSingle__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_single_set_button", 1, gesture, "GtkGestureSingle*");
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(button)) s7_wrong_type_arg_error(sc, "gtk_gesture_single_set_button", 2, button, "guint");
+  gtk_gesture_single_set_button(s7_c_pointer(gesture), s7_integer(button));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gesture_single_get_current_button(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_single_get_current_button "guint gtk_gesture_single_get_current_button(GtkGestureSingle* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureSingle__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_single_get_current_button", 1, gesture, "GtkGestureSingle*");
+  return(s7_make_integer(sc, gtk_gesture_single_get_current_button(s7_c_pointer(gesture))));
+}
+
+static s7_pointer lg_gtk_gesture_single_get_current_sequence(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_single_get_current_sequence "GdkEventSequence* gtk_gesture_single_get_current_sequence(GtkGestureSingle* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureSingle__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_single_get_current_sequence", 1, gesture, "GtkGestureSingle*");
+  return(s7_make_type_with_c_pointer(sc, GdkEventSequence__sym, gtk_gesture_single_get_current_sequence(s7_c_pointer(gesture))));
+}
+
+static s7_pointer lg_gtk_gesture_swipe_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_swipe_new "GtkGesture* gtk_gesture_swipe_new(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_swipe_new", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkGesture__sym, gtk_gesture_swipe_new(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_gesture_swipe_get_velocity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_swipe_get_velocity "gboolean gtk_gesture_swipe_get_velocity(GtkGestureSwipe* gesture, \
+gdouble* [velocity_x], gdouble* [velocity_y])"
+  s7_pointer _p;
+  s7_pointer gesture;
+  gdouble ref_velocity_x;
+  gdouble ref_velocity_y;
+  _p = args;
+  gesture = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureSwipe__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_swipe_get_velocity", 1, gesture, "GtkGestureSwipe*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_gesture_swipe_get_velocity(s7_c_pointer(gesture), &ref_velocity_x, &ref_velocity_y));
+      return(s7_list(sc, 3, result, s7_make_real(sc, ref_velocity_x), s7_make_real(sc, ref_velocity_y)));
+   }
+}
+
+static s7_pointer lg_gtk_gesture_zoom_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_zoom_new "GtkGesture* gtk_gesture_zoom_new(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_zoom_new", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkGesture__sym, gtk_gesture_zoom_new(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_gesture_zoom_get_scale_delta(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gesture_zoom_get_scale_delta "gdouble gtk_gesture_zoom_get_scale_delta(GtkGestureZoom* gesture)"
+  s7_pointer gesture;
+  gesture = s7_car(args);
+  if (!s7_is_c_pointer_of_type(gesture, GtkGestureZoom__sym)) s7_wrong_type_arg_error(sc, "gtk_gesture_zoom_get_scale_delta", 1, gesture, "GtkGestureZoom*");
+  return(s7_make_real(sc, gtk_gesture_zoom_get_scale_delta(s7_c_pointer(gesture))));
+}
+
+static s7_pointer lg_gtk_event_controller_get_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_event_controller_get_widget "GtkWidget* gtk_event_controller_get_widget(GtkEventController* controller)"
+  s7_pointer controller;
+  controller = s7_car(args);
+  if (!s7_is_c_pointer_of_type(controller, GtkEventController__sym)) s7_wrong_type_arg_error(sc, "gtk_event_controller_get_widget", 1, controller, "GtkEventController*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_event_controller_get_widget(s7_c_pointer(controller))));
+}
+
+static s7_pointer lg_gtk_event_controller_handle_event(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_event_controller_handle_event "gboolean gtk_event_controller_handle_event(GtkEventController* controller, \
+GdkEvent* event)"
+  s7_pointer _p;
+  s7_pointer controller, event;
+  _p = args;
+  controller = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(controller, GtkEventController__sym)) s7_wrong_type_arg_error(sc, "gtk_event_controller_handle_event", 1, controller, "GtkEventController*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gtk_event_controller_handle_event", 2, event, "GdkEvent*");
+  return(s7_make_boolean(sc, gtk_event_controller_handle_event(s7_c_pointer(controller), s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gtk_event_controller_reset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_event_controller_reset "void gtk_event_controller_reset(GtkEventController* controller)"
+  s7_pointer controller;
+  controller = s7_car(args);
+  if (!s7_is_c_pointer_of_type(controller, GtkEventController__sym)) s7_wrong_type_arg_error(sc, "gtk_event_controller_reset", 1, controller, "GtkEventController*");
+  gtk_event_controller_reset(s7_c_pointer(controller));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_event_controller_get_propagation_phase(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_event_controller_get_propagation_phase "GtkPropagationPhase gtk_event_controller_get_propagation_phase(GtkEventController* controller)"
+  s7_pointer controller;
+  controller = s7_car(args);
+  if (!s7_is_c_pointer_of_type(controller, GtkEventController__sym)) s7_wrong_type_arg_error(sc, "gtk_event_controller_get_propagation_phase", 1, controller, "GtkEventController*");
+  return(s7_make_integer(sc, gtk_event_controller_get_propagation_phase(s7_c_pointer(controller))));
+}
+
+static s7_pointer lg_gtk_event_controller_set_propagation_phase(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_event_controller_set_propagation_phase "void gtk_event_controller_set_propagation_phase(GtkEventController* controller, \
+GtkPropagationPhase phase)"
+  s7_pointer _p;
+  s7_pointer controller, phase;
+  _p = args;
+  controller = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(controller, GtkEventController__sym)) s7_wrong_type_arg_error(sc, "gtk_event_controller_set_propagation_phase", 1, controller, "GtkEventController*");
+  phase = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(phase)) s7_wrong_type_arg_error(sc, "gtk_event_controller_set_propagation_phase", 2, phase, "GtkPropagationPhase");
+  gtk_event_controller_set_propagation_phase(s7_c_pointer(controller), s7_integer(phase));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_icon_theme_add_resource_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_icon_theme_add_resource_path "void gtk_icon_theme_add_resource_path(GtkIconTheme* icon_theme, \
+gchar* path)"
+  s7_pointer _p;
+  s7_pointer icon_theme, path;
+  _p = args;
+  icon_theme = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(icon_theme, GtkIconTheme__sym)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_add_resource_path", 1, icon_theme, "GtkIconTheme*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(path)) s7_wrong_type_arg_error(sc, "gtk_icon_theme_add_resource_path", 2, path, "gchar*");
+  gtk_icon_theme_add_resource_path(s7_c_pointer(icon_theme), (const gchar*)s7_string(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_row_set_activatable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_row_set_activatable "void gtk_list_box_row_set_activatable(GtkListBoxRow* row, \
+gboolean activatable)"
+  s7_pointer _p;
+  s7_pointer row, activatable;
+  _p = args;
+  row = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(row, GtkListBoxRow__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_row_set_activatable", 1, row, "GtkListBoxRow*");
+  activatable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(activatable)) s7_wrong_type_arg_error(sc, "gtk_list_box_row_set_activatable", 2, activatable, "gboolean");
+  gtk_list_box_row_set_activatable(s7_c_pointer(row), lg_boolean(activatable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_row_get_activatable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_row_get_activatable "gboolean gtk_list_box_row_get_activatable(GtkListBoxRow* row)"
+  s7_pointer row;
+  row = s7_car(args);
+  if (!s7_is_c_pointer_of_type(row, GtkListBoxRow__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_row_get_activatable", 1, row, "GtkListBoxRow*");
+  return(s7_make_boolean(sc, gtk_list_box_row_get_activatable(s7_c_pointer(row))));
+}
+
+static s7_pointer lg_gtk_list_box_row_set_selectable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_row_set_selectable "void gtk_list_box_row_set_selectable(GtkListBoxRow* row, \
+gboolean selectable)"
+  s7_pointer _p;
+  s7_pointer row, selectable;
+  _p = args;
+  row = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(row, GtkListBoxRow__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_row_set_selectable", 1, row, "GtkListBoxRow*");
+  selectable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(selectable)) s7_wrong_type_arg_error(sc, "gtk_list_box_row_set_selectable", 2, selectable, "gboolean");
+  gtk_list_box_row_set_selectable(s7_c_pointer(row), lg_boolean(selectable));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_list_box_row_get_selectable(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_list_box_row_get_selectable "gboolean gtk_list_box_row_get_selectable(GtkListBoxRow* row)"
+  s7_pointer row;
+  row = s7_car(args);
+  if (!s7_is_c_pointer_of_type(row, GtkListBoxRow__sym)) s7_wrong_type_arg_error(sc, "gtk_list_box_row_get_selectable", 1, row, "GtkListBoxRow*");
+  return(s7_make_boolean(sc, gtk_list_box_row_get_selectable(s7_c_pointer(row))));
+}
+
+static s7_pointer lg_gtk_widget_path_iter_get_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_path_iter_get_state "GtkStateFlags gtk_widget_path_iter_get_state(GtkWidgetPath* path, \
+gint pos)"
+  s7_pointer _p;
+  s7_pointer path, pos;
+  _p = args;
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkWidgetPath__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_path_iter_get_state", 1, path, "GtkWidgetPath*");
+  pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pos)) s7_wrong_type_arg_error(sc, "gtk_widget_path_iter_get_state", 2, pos, "gint");
+  return(s7_make_integer(sc, gtk_widget_path_iter_get_state(s7_c_pointer(path), s7_integer(pos))));
+}
+
+static s7_pointer lg_gtk_widget_path_iter_set_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_path_iter_set_state "void gtk_widget_path_iter_set_state(GtkWidgetPath* path, \
+gint pos, GtkStateFlags state)"
+  s7_pointer _p;
+  s7_pointer path, pos, state;
+  _p = args;
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkWidgetPath__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_path_iter_set_state", 1, path, "GtkWidgetPath*");
+  pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pos)) s7_wrong_type_arg_error(sc, "gtk_widget_path_iter_set_state", 2, pos, "gint");
+  state = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(state)) s7_wrong_type_arg_error(sc, "gtk_widget_path_iter_set_state", 3, state, "GtkStateFlags");
+  gtk_widget_path_iter_set_state(s7_c_pointer(path), s7_integer(pos), s7_integer(state));
+  return(lg_false);
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(3, 16, 0)
+static s7_pointer lg_gdk_cairo_draw_from_gl(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cairo_draw_from_gl "void gdk_cairo_draw_from_gl(cairo_t* cr, GdkWindow* window, int source, \
+int source_type, int buffer_scale, int x, int y, int width, int height)"
+  s7_pointer _p;
+  s7_pointer cr, window, source, source_type, buffer_scale, x, y, width, height;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gdk_cairo_draw_from_gl", 1, cr, "cairo_t*");
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_cairo_draw_from_gl", 2, window, "GdkWindow*");
+  source = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(source)) s7_wrong_type_arg_error(sc, "gdk_cairo_draw_from_gl", 3, source, "int");
+  source_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(source_type)) s7_wrong_type_arg_error(sc, "gdk_cairo_draw_from_gl", 4, source_type, "int");
+  buffer_scale = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(buffer_scale)) s7_wrong_type_arg_error(sc, "gdk_cairo_draw_from_gl", 5, buffer_scale, "int");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gdk_cairo_draw_from_gl", 6, x, "int");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gdk_cairo_draw_from_gl", 7, y, "int");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gdk_cairo_draw_from_gl", 8, width, "int");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gdk_cairo_draw_from_gl", 9, height, "int");
+  gdk_cairo_draw_from_gl(s7_c_pointer(cr), s7_c_pointer(window), s7_integer(source), s7_integer(source_type), s7_integer(buffer_scale), s7_integer(x), s7_integer(y), s7_integer(width), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_mark_paint_from_clip(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_mark_paint_from_clip "void gdk_window_mark_paint_from_clip(GdkWindow* window, \
+cairo_t* cr)"
+  s7_pointer _p;
+  s7_pointer window, cr;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_mark_paint_from_clip", 1, window, "GdkWindow*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gdk_window_mark_paint_from_clip", 2, cr, "cairo_t*");
+  gdk_window_mark_paint_from_clip(s7_c_pointer(window), s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_set_xalign(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_xalign "void gtk_label_set_xalign(GtkLabel* label, gfloat xalign)"
+  s7_pointer _p;
+  s7_pointer label, xalign;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_xalign", 1, label, "GtkLabel*");
+  xalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xalign)) s7_wrong_type_arg_error(sc, "gtk_label_set_xalign", 2, xalign, "gfloat");
+  gtk_label_set_xalign(s7_c_pointer(label), s7_real(xalign));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_xalign(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_xalign "gfloat gtk_label_get_xalign(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_xalign", 1, label, "GtkLabel*");
+  return(s7_make_real(sc, gtk_label_get_xalign(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_label_set_yalign(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_set_yalign "void gtk_label_set_yalign(GtkLabel* label, gfloat xalign)"
+  s7_pointer _p;
+  s7_pointer label, xalign;
+  _p = args;
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_set_yalign", 1, label, "GtkLabel*");
+  xalign = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xalign)) s7_wrong_type_arg_error(sc, "gtk_label_set_yalign", 2, xalign, "gfloat");
+  gtk_label_set_yalign(s7_c_pointer(label), s7_real(xalign));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_label_get_yalign(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_label_get_yalign "gfloat gtk_label_get_yalign(GtkLabel* label)"
+  s7_pointer label;
+  label = s7_car(args);
+  if (!s7_is_c_pointer_of_type(label, GtkLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_label_get_yalign", 1, label, "GtkLabel*");
+  return(s7_make_real(sc, gtk_label_get_yalign(s7_c_pointer(label))));
+}
+
+static s7_pointer lg_gtk_paned_set_wide_handle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_paned_set_wide_handle "void gtk_paned_set_wide_handle(GtkPaned* paned, gboolean wide)"
+  s7_pointer _p;
+  s7_pointer paned, wide;
+  _p = args;
+  paned = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(paned, GtkPaned__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_set_wide_handle", 1, paned, "GtkPaned*");
+  wide = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(wide)) s7_wrong_type_arg_error(sc, "gtk_paned_set_wide_handle", 2, wide, "gboolean");
+  gtk_paned_set_wide_handle(s7_c_pointer(paned), lg_boolean(wide));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_paned_get_wide_handle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_paned_get_wide_handle "gboolean gtk_paned_get_wide_handle(GtkPaned* paned)"
+  s7_pointer paned;
+  paned = s7_car(args);
+  if (!s7_is_c_pointer_of_type(paned, GtkPaned__sym)) s7_wrong_type_arg_error(sc, "gtk_paned_get_wide_handle", 1, paned, "GtkPaned*");
+  return(s7_make_boolean(sc, gtk_paned_get_wide_handle(s7_c_pointer(paned))));
+}
+
+static s7_pointer lg_gtk_scrolled_window_set_overlay_scrolling(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_set_overlay_scrolling "void gtk_scrolled_window_set_overlay_scrolling(GtkScrolledWindow* scrolled_window, \
+gboolean overlay_scrolling)"
+  s7_pointer _p;
+  s7_pointer scrolled_window, overlay_scrolling;
+  _p = args;
+  scrolled_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_overlay_scrolling", 1, scrolled_window, "GtkScrolledWindow*");
+  overlay_scrolling = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(overlay_scrolling)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_overlay_scrolling", 2, overlay_scrolling, "gboolean");
+  gtk_scrolled_window_set_overlay_scrolling(s7_c_pointer(scrolled_window), lg_boolean(overlay_scrolling));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrolled_window_get_overlay_scrolling(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_get_overlay_scrolling "gboolean gtk_scrolled_window_get_overlay_scrolling(GtkScrolledWindow* scrolled_window)"
+  s7_pointer scrolled_window;
+  scrolled_window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_get_overlay_scrolling", 1, scrolled_window, "GtkScrolledWindow*");
+  return(s7_make_boolean(sc, gtk_scrolled_window_get_overlay_scrolling(s7_c_pointer(scrolled_window))));
+}
+
+static s7_pointer lg_gtk_text_view_set_monospace(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_monospace "void gtk_text_view_set_monospace(GtkTextView* text_view, gboolean monospace)"
+  s7_pointer _p;
+  s7_pointer text_view, monospace;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_monospace", 1, text_view, "GtkTextView*");
+  monospace = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(monospace)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_monospace", 2, monospace, "gboolean");
+  gtk_text_view_set_monospace(s7_c_pointer(text_view), lg_boolean(monospace));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_monospace(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_monospace "gboolean gtk_text_view_get_monospace(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_monospace", 1, text_view, "GtkTextView*");
+  return(s7_make_boolean(sc, gtk_text_view_get_monospace(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_window_get_titlebar(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_get_titlebar "GtkWidget* gtk_window_get_titlebar(GtkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_get_titlebar", 1, window, "GtkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_window_get_titlebar(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_gl_area_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_new "GtkWidget* gtk_gl_area_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_gl_area_new()));
+}
+
+static s7_pointer lg_gtk_gl_area_get_has_alpha(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_get_has_alpha "gboolean gtk_gl_area_get_has_alpha(GtkGLArea* area)"
+  s7_pointer area;
+  area = s7_car(args);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_get_has_alpha", 1, area, "GtkGLArea*");
+  return(s7_make_boolean(sc, gtk_gl_area_get_has_alpha(s7_c_pointer(area))));
+}
+
+static s7_pointer lg_gtk_gl_area_set_has_alpha(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_set_has_alpha "void gtk_gl_area_set_has_alpha(GtkGLArea* area, gboolean has_alpha)"
+  s7_pointer _p;
+  s7_pointer area, has_alpha;
+  _p = args;
+  area = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_set_has_alpha", 1, area, "GtkGLArea*");
+  has_alpha = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(has_alpha)) s7_wrong_type_arg_error(sc, "gtk_gl_area_set_has_alpha", 2, has_alpha, "gboolean");
+  gtk_gl_area_set_has_alpha(s7_c_pointer(area), lg_boolean(has_alpha));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gl_area_get_has_depth_buffer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_get_has_depth_buffer "gboolean gtk_gl_area_get_has_depth_buffer(GtkGLArea* area)"
+  s7_pointer area;
+  area = s7_car(args);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_get_has_depth_buffer", 1, area, "GtkGLArea*");
+  return(s7_make_boolean(sc, gtk_gl_area_get_has_depth_buffer(s7_c_pointer(area))));
+}
+
+static s7_pointer lg_gtk_gl_area_set_has_depth_buffer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_set_has_depth_buffer "void gtk_gl_area_set_has_depth_buffer(GtkGLArea* area, \
+gboolean has_depth_buffer)"
+  s7_pointer _p;
+  s7_pointer area, has_depth_buffer;
+  _p = args;
+  area = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_set_has_depth_buffer", 1, area, "GtkGLArea*");
+  has_depth_buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(has_depth_buffer)) s7_wrong_type_arg_error(sc, "gtk_gl_area_set_has_depth_buffer", 2, has_depth_buffer, "gboolean");
+  gtk_gl_area_set_has_depth_buffer(s7_c_pointer(area), lg_boolean(has_depth_buffer));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gl_area_get_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_get_context "GdkGLContext* gtk_gl_area_get_context(GtkGLArea* area)"
+  s7_pointer area;
+  area = s7_car(args);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_get_context", 1, area, "GtkGLArea*");
+  return(s7_make_type_with_c_pointer(sc, GdkGLContext__sym, gtk_gl_area_get_context(s7_c_pointer(area))));
+}
+
+static s7_pointer lg_gtk_gl_area_make_current(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_make_current "void gtk_gl_area_make_current(GtkGLArea* area)"
+  s7_pointer area;
+  area = s7_car(args);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_make_current", 1, area, "GtkGLArea*");
+  gtk_gl_area_make_current(s7_c_pointer(area));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_check(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_check "void gtk_render_check(GtkStyleContext* context, cairo_t* cr, gdouble x, \
+gdouble y, gdouble width, gdouble height)"
+  s7_pointer _p;
+  s7_pointer context, cr, x, y, width, height;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_check", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_check", 2, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_check", 3, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_check", 4, y, "gdouble");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "gtk_render_check", 5, width, "gdouble");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "gtk_render_check", 6, height, "gdouble");
+  gtk_render_check(s7_c_pointer(context), s7_c_pointer(cr), s7_real(x), s7_real(y), s7_real(width), s7_real(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_option(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_option "void gtk_render_option(GtkStyleContext* context, cairo_t* cr, gdouble x, \
+gdouble y, gdouble width, gdouble height)"
+  s7_pointer _p;
+  s7_pointer context, cr, x, y, width, height;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_option", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_option", 2, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_option", 3, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_option", 4, y, "gdouble");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "gtk_render_option", 5, width, "gdouble");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "gtk_render_option", 6, height, "gdouble");
+  gtk_render_option(s7_c_pointer(context), s7_c_pointer(cr), s7_real(x), s7_real(y), s7_real(width), s7_real(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_arrow(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_arrow "void gtk_render_arrow(GtkStyleContext* context, cairo_t* cr, gdouble angle, \
+gdouble x, gdouble y, gdouble size)"
+  s7_pointer _p;
+  s7_pointer context, cr, angle, x, y, size;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_arrow", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_arrow", 2, cr, "cairo_t*");
+  angle = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(angle)) s7_wrong_type_arg_error(sc, "gtk_render_arrow", 3, angle, "gdouble");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_arrow", 4, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_arrow", 5, y, "gdouble");
+  size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(size)) s7_wrong_type_arg_error(sc, "gtk_render_arrow", 6, size, "gdouble");
+  gtk_render_arrow(s7_c_pointer(context), s7_c_pointer(cr), s7_real(angle), s7_real(x), s7_real(y), s7_real(size));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_background(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_background "void gtk_render_background(GtkStyleContext* context, cairo_t* cr, \
+gdouble x, gdouble y, gdouble width, gdouble height)"
+  s7_pointer _p;
+  s7_pointer context, cr, x, y, width, height;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_background", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_background", 2, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_background", 3, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_background", 4, y, "gdouble");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "gtk_render_background", 5, width, "gdouble");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "gtk_render_background", 6, height, "gdouble");
+  gtk_render_background(s7_c_pointer(context), s7_c_pointer(cr), s7_real(x), s7_real(y), s7_real(width), s7_real(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_frame(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_frame "void gtk_render_frame(GtkStyleContext* context, cairo_t* cr, gdouble x, \
+gdouble y, gdouble width, gdouble height)"
+  s7_pointer _p;
+  s7_pointer context, cr, x, y, width, height;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_frame", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_frame", 2, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_frame", 3, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_frame", 4, y, "gdouble");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "gtk_render_frame", 5, width, "gdouble");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "gtk_render_frame", 6, height, "gdouble");
+  gtk_render_frame(s7_c_pointer(context), s7_c_pointer(cr), s7_real(x), s7_real(y), s7_real(width), s7_real(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_expander(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_expander "void gtk_render_expander(GtkStyleContext* context, cairo_t* cr, gdouble x, \
+gdouble y, gdouble width, gdouble height)"
+  s7_pointer _p;
+  s7_pointer context, cr, x, y, width, height;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_expander", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_expander", 2, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_expander", 3, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_expander", 4, y, "gdouble");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "gtk_render_expander", 5, width, "gdouble");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "gtk_render_expander", 6, height, "gdouble");
+  gtk_render_expander(s7_c_pointer(context), s7_c_pointer(cr), s7_real(x), s7_real(y), s7_real(width), s7_real(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_focus(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_focus "void gtk_render_focus(GtkStyleContext* context, cairo_t* cr, gdouble x, \
+gdouble y, gdouble width, gdouble height)"
+  s7_pointer _p;
+  s7_pointer context, cr, x, y, width, height;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_focus", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_focus", 2, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_focus", 3, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_focus", 4, y, "gdouble");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "gtk_render_focus", 5, width, "gdouble");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "gtk_render_focus", 6, height, "gdouble");
+  gtk_render_focus(s7_c_pointer(context), s7_c_pointer(cr), s7_real(x), s7_real(y), s7_real(width), s7_real(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_layout "void gtk_render_layout(GtkStyleContext* context, cairo_t* cr, gdouble x, \
+gdouble y, PangoLayout* layout)"
+  s7_pointer _p;
+  s7_pointer context, cr, x, y, layout;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_layout", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_layout", 2, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_layout", 3, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_layout", 4, y, "gdouble");
+  layout = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(layout, PangoLayout__sym)) s7_wrong_type_arg_error(sc, "gtk_render_layout", 5, layout, "PangoLayout*");
+  gtk_render_layout(s7_c_pointer(context), s7_c_pointer(cr), s7_real(x), s7_real(y), s7_c_pointer(layout));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_line(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_line "void gtk_render_line(GtkStyleContext* context, cairo_t* cr, gdouble x0, \
+gdouble y0, gdouble x1, gdouble y1)"
+  s7_pointer _p;
+  s7_pointer context, cr, x0, y0, x1, y1;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_line", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_line", 2, cr, "cairo_t*");
+  x0 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x0)) s7_wrong_type_arg_error(sc, "gtk_render_line", 3, x0, "gdouble");
+  y0 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y0)) s7_wrong_type_arg_error(sc, "gtk_render_line", 4, y0, "gdouble");
+  x1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x1)) s7_wrong_type_arg_error(sc, "gtk_render_line", 5, x1, "gdouble");
+  y1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y1)) s7_wrong_type_arg_error(sc, "gtk_render_line", 6, y1, "gdouble");
+  gtk_render_line(s7_c_pointer(context), s7_c_pointer(cr), s7_real(x0), s7_real(y0), s7_real(x1), s7_real(y1));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_slider(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_slider "void gtk_render_slider(GtkStyleContext* context, cairo_t* cr, gdouble x, \
+gdouble y, gdouble width, gdouble height, GtkOrientation orientation)"
+  s7_pointer _p;
+  s7_pointer context, cr, x, y, width, height, orientation;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_slider", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_slider", 2, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_slider", 3, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_slider", 4, y, "gdouble");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "gtk_render_slider", 5, width, "gdouble");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "gtk_render_slider", 6, height, "gdouble");
+  orientation = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(orientation)) s7_wrong_type_arg_error(sc, "gtk_render_slider", 7, orientation, "GtkOrientation");
+  gtk_render_slider(s7_c_pointer(context), s7_c_pointer(cr), s7_real(x), s7_real(y), s7_real(width), s7_real(height), s7_integer(orientation));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_frame_gap(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_frame_gap "void gtk_render_frame_gap(GtkStyleContext* context, cairo_t* cr, gdouble x, \
+gdouble y, gdouble width, gdouble height, GtkPositionType gap_side, gdouble xy0_gap, gdouble xy1_gap)"
+  s7_pointer _p;
+  s7_pointer context, cr, x, y, width, height, gap_side, xy0_gap, xy1_gap;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_frame_gap", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_frame_gap", 2, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_frame_gap", 3, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_frame_gap", 4, y, "gdouble");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "gtk_render_frame_gap", 5, width, "gdouble");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "gtk_render_frame_gap", 6, height, "gdouble");
+  gap_side = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(gap_side)) s7_wrong_type_arg_error(sc, "gtk_render_frame_gap", 7, gap_side, "GtkPositionType");
+  xy0_gap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xy0_gap)) s7_wrong_type_arg_error(sc, "gtk_render_frame_gap", 8, xy0_gap, "gdouble");
+  xy1_gap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xy1_gap)) s7_wrong_type_arg_error(sc, "gtk_render_frame_gap", 9, xy1_gap, "gdouble");
+  gtk_render_frame_gap(s7_c_pointer(context), s7_c_pointer(cr), s7_real(x), s7_real(y), s7_real(width), s7_real(height), s7_integer(gap_side), s7_real(xy0_gap), s7_real(xy1_gap));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_extension(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_extension "void gtk_render_extension(GtkStyleContext* context, cairo_t* cr, gdouble x, \
+gdouble y, gdouble width, gdouble height, GtkPositionType gap_side)"
+  s7_pointer _p;
+  s7_pointer context, cr, x, y, width, height, gap_side;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_extension", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_extension", 2, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_extension", 3, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_extension", 4, y, "gdouble");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "gtk_render_extension", 5, width, "gdouble");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "gtk_render_extension", 6, height, "gdouble");
+  gap_side = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(gap_side)) s7_wrong_type_arg_error(sc, "gtk_render_extension", 7, gap_side, "GtkPositionType");
+  gtk_render_extension(s7_c_pointer(context), s7_c_pointer(cr), s7_real(x), s7_real(y), s7_real(width), s7_real(height), s7_integer(gap_side));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_handle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_handle "void gtk_render_handle(GtkStyleContext* context, cairo_t* cr, gdouble x, \
+gdouble y, gdouble width, gdouble height)"
+  s7_pointer _p;
+  s7_pointer context, cr, x, y, width, height;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_handle", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_handle", 2, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_handle", 3, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_handle", 4, y, "gdouble");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "gtk_render_handle", 5, width, "gdouble");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "gtk_render_handle", 6, height, "gdouble");
+  gtk_render_handle(s7_c_pointer(context), s7_c_pointer(cr), s7_real(x), s7_real(y), s7_real(width), s7_real(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_activity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_activity "void gtk_render_activity(GtkStyleContext* context, cairo_t* cr, gdouble x, \
+gdouble y, gdouble width, gdouble height)"
+  s7_pointer _p;
+  s7_pointer context, cr, x, y, width, height;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_activity", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_activity", 2, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_activity", 3, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_activity", 4, y, "gdouble");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "gtk_render_activity", 5, width, "gdouble");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "gtk_render_activity", 6, height, "gdouble");
+  gtk_render_activity(s7_c_pointer(context), s7_c_pointer(cr), s7_real(x), s7_real(y), s7_real(width), s7_real(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_icon(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_icon "void gtk_render_icon(GtkStyleContext* context, cairo_t* cr, GdkPixbuf* pixbuf, \
+gdouble x, gdouble y)"
+  s7_pointer _p;
+  s7_pointer context, cr, pixbuf, x, y;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_icon", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_icon", 2, cr, "cairo_t*");
+  pixbuf = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pixbuf, GdkPixbuf__sym)) s7_wrong_type_arg_error(sc, "gtk_render_icon", 3, pixbuf, "GdkPixbuf*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_icon", 4, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_icon", 5, y, "gdouble");
+  gtk_render_icon(s7_c_pointer(context), s7_c_pointer(cr), s7_c_pointer(pixbuf), s7_real(x), s7_real(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_render_icon_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_render_icon_surface "void gtk_render_icon_surface(GtkStyleContext* context, cairo_t* cr, \
+cairo_surface_t* surface, gdouble x, gdouble y)"
+  s7_pointer _p;
+  s7_pointer context, cr, surface, x, y;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GtkStyleContext__sym)) s7_wrong_type_arg_error(sc, "gtk_render_icon_surface", 1, context, "GtkStyleContext*");
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_icon_surface", 2, cr, "cairo_t*");
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "gtk_render_icon_surface", 3, surface, "cairo_surface_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gtk_render_icon_surface", 4, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gtk_render_icon_surface", 5, y, "gdouble");
+  gtk_render_icon_surface(s7_c_pointer(context), s7_c_pointer(cr), s7_c_pointer(surface), s7_real(x), s7_real(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_gl_context_get_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_get_window "GdkWindow* gdk_gl_context_get_window(GdkGLContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_get_window", 1, context, "GdkGLContext*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_gl_context_get_window(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_gl_context_make_current(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_make_current "void gdk_gl_context_make_current(GdkGLContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_make_current", 1, context, "GdkGLContext*");
+  gdk_gl_context_make_current(s7_c_pointer(context));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_gl_context_get_current(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_get_current "GdkGLContext* gdk_gl_context_get_current( void)"
+  return(s7_make_type_with_c_pointer(sc, GdkGLContext__sym, gdk_gl_context_get_current()));
+}
+
+static s7_pointer lg_gdk_gl_context_clear_current(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_clear_current "void gdk_gl_context_clear_current( void)"
+  gdk_gl_context_clear_current();
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_set_hhomogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_set_hhomogeneous "void gtk_stack_set_hhomogeneous(GtkStack* stack, gboolean hhomogeneous)"
+  s7_pointer _p;
+  s7_pointer stack, hhomogeneous;
+  _p = args;
+  stack = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_set_hhomogeneous", 1, stack, "GtkStack*");
+  hhomogeneous = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(hhomogeneous)) s7_wrong_type_arg_error(sc, "gtk_stack_set_hhomogeneous", 2, hhomogeneous, "gboolean");
+  gtk_stack_set_hhomogeneous(s7_c_pointer(stack), lg_boolean(hhomogeneous));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_get_hhomogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_get_hhomogeneous "gboolean gtk_stack_get_hhomogeneous(GtkStack* stack)"
+  s7_pointer stack;
+  stack = s7_car(args);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_get_hhomogeneous", 1, stack, "GtkStack*");
+  return(s7_make_boolean(sc, gtk_stack_get_hhomogeneous(s7_c_pointer(stack))));
+}
+
+static s7_pointer lg_gtk_stack_set_vhomogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_set_vhomogeneous "void gtk_stack_set_vhomogeneous(GtkStack* stack, gboolean vhomogeneous)"
+  s7_pointer _p;
+  s7_pointer stack, vhomogeneous;
+  _p = args;
+  stack = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_set_vhomogeneous", 1, stack, "GtkStack*");
+  vhomogeneous = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(vhomogeneous)) s7_wrong_type_arg_error(sc, "gtk_stack_set_vhomogeneous", 2, vhomogeneous, "gboolean");
+  gtk_stack_set_vhomogeneous(s7_c_pointer(stack), lg_boolean(vhomogeneous));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_get_vhomogeneous(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_get_vhomogeneous "gboolean gtk_stack_get_vhomogeneous(GtkStack* stack)"
+  s7_pointer stack;
+  stack = s7_car(args);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_get_vhomogeneous", 1, stack, "GtkStack*");
+  return(s7_make_boolean(sc, gtk_stack_get_vhomogeneous(s7_c_pointer(stack))));
+}
+
+static s7_pointer lg_gdk_gl_context_get_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_get_display "GdkDisplay* gdk_gl_context_get_display(GdkGLContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_get_display", 1, context, "GdkGLContext*");
+  return(s7_make_type_with_c_pointer(sc, GdkDisplay__sym, gdk_gl_context_get_display(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gtk_gl_area_get_has_stencil_buffer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_get_has_stencil_buffer "gboolean gtk_gl_area_get_has_stencil_buffer(GtkGLArea* area)"
+  s7_pointer area;
+  area = s7_car(args);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_get_has_stencil_buffer", 1, area, "GtkGLArea*");
+  return(s7_make_boolean(sc, gtk_gl_area_get_has_stencil_buffer(s7_c_pointer(area))));
+}
+
+static s7_pointer lg_gtk_gl_area_set_has_stencil_buffer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_set_has_stencil_buffer "void gtk_gl_area_set_has_stencil_buffer(GtkGLArea* area, \
+gboolean has_stencil_buffer)"
+  s7_pointer _p;
+  s7_pointer area, has_stencil_buffer;
+  _p = args;
+  area = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_set_has_stencil_buffer", 1, area, "GtkGLArea*");
+  has_stencil_buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(has_stencil_buffer)) s7_wrong_type_arg_error(sc, "gtk_gl_area_set_has_stencil_buffer", 2, has_stencil_buffer, "gboolean");
+  gtk_gl_area_set_has_stencil_buffer(s7_c_pointer(area), lg_boolean(has_stencil_buffer));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gl_area_get_auto_render(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_get_auto_render "gboolean gtk_gl_area_get_auto_render(GtkGLArea* area)"
+  s7_pointer area;
+  area = s7_car(args);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_get_auto_render", 1, area, "GtkGLArea*");
+  return(s7_make_boolean(sc, gtk_gl_area_get_auto_render(s7_c_pointer(area))));
+}
+
+static s7_pointer lg_gtk_gl_area_set_auto_render(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_set_auto_render "void gtk_gl_area_set_auto_render(GtkGLArea* area, gboolean auto_render)"
+  s7_pointer _p;
+  s7_pointer area, auto_render;
+  _p = args;
+  area = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_set_auto_render", 1, area, "GtkGLArea*");
+  auto_render = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(auto_render)) s7_wrong_type_arg_error(sc, "gtk_gl_area_set_auto_render", 2, auto_render, "gboolean");
+  gtk_gl_area_set_auto_render(s7_c_pointer(area), lg_boolean(auto_render));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gl_area_queue_render(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_queue_render "void gtk_gl_area_queue_render(GtkGLArea* area)"
+  s7_pointer area;
+  area = s7_car(args);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_queue_render", 1, area, "GtkGLArea*");
+  gtk_gl_area_queue_render(s7_c_pointer(area));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gl_area_attach_buffers(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_attach_buffers "void gtk_gl_area_attach_buffers(GtkGLArea* area)"
+  s7_pointer area;
+  area = s7_car(args);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_attach_buffers", 1, area, "GtkGLArea*");
+  gtk_gl_area_attach_buffers(s7_c_pointer(area));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gl_area_get_error(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_get_error "GError* gtk_gl_area_get_error(GtkGLArea* area)"
+  s7_pointer area;
+  area = s7_car(args);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_get_error", 1, area, "GtkGLArea*");
+  return(s7_make_type_with_c_pointer(sc, GError__sym, gtk_gl_area_get_error(s7_c_pointer(area))));
+}
+
+static s7_pointer lg_gtk_popover_menu_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_menu_new "GtkWidget* gtk_popover_menu_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_popover_menu_new()));
+}
+
+static s7_pointer lg_gtk_popover_menu_open_submenu(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_menu_open_submenu "void gtk_popover_menu_open_submenu(GtkPopoverMenu* popover, \
+gchar* name)"
+  s7_pointer _p;
+  s7_pointer popover, name;
+  _p = args;
+  popover = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(popover, GtkPopoverMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_menu_open_submenu", 1, popover, "GtkPopoverMenu*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_popover_menu_open_submenu", 2, name, "gchar*");
+  gtk_popover_menu_open_submenu(s7_c_pointer(popover), (const gchar*)s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_entry_grab_focus_without_selecting(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_entry_grab_focus_without_selecting "void gtk_entry_grab_focus_without_selecting(GtkEntry* entry)"
+  s7_pointer entry;
+  entry = s7_car(args);
+  if (!s7_is_c_pointer_of_type(entry, GtkEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_entry_grab_focus_without_selecting", 1, entry, "GtkEntry*");
+  gtk_entry_grab_focus_without_selecting(s7_c_pointer(entry));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrollable_get_border(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrollable_get_border "gboolean gtk_scrollable_get_border(GtkScrollable* scrollable, \
+GtkBorder* border)"
+  s7_pointer _p;
+  s7_pointer scrollable, border;
+  _p = args;
+  scrollable = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrollable, GtkScrollable__sym)) s7_wrong_type_arg_error(sc, "gtk_scrollable_get_border", 1, scrollable, "GtkScrollable*");
+  border = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(border, GtkBorder__sym)) s7_wrong_type_arg_error(sc, "gtk_scrollable_get_border", 2, border, "GtkBorder*");
+  return(s7_make_boolean(sc, gtk_scrollable_get_border(s7_c_pointer(scrollable), s7_c_pointer(border))));
+}
+
+static s7_pointer lg_gtk_text_buffer_insert_markup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_buffer_insert_markup "void gtk_text_buffer_insert_markup(GtkTextBuffer* buffer, \
+GtkTextIter* iter, gchar* markup, gint len)"
+  s7_pointer _p;
+  s7_pointer buffer, iter, markup, len;
+  _p = args;
+  buffer = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(buffer, GtkTextBuffer__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_markup", 1, buffer, "GtkTextBuffer*");
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_markup", 2, iter, "GtkTextIter*");
+  markup = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(markup)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_markup", 3, markup, "gchar*");
+  len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(len)) s7_wrong_type_arg_error(sc, "gtk_text_buffer_insert_markup", 4, len, "gint");
+  gtk_text_buffer_insert_markup(s7_c_pointer(buffer), s7_c_pointer(iter), (const gchar*)s7_string(markup), s7_integer(len));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_device_get_vendor_id(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_device_get_vendor_id "gchar* gdk_device_get_vendor_id(GdkDevice* device)"
+  s7_pointer device;
+  device = s7_car(args);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_device_get_vendor_id", 1, device, "GdkDevice*");
+    return(s7_make_string(sc, (gchar*)gdk_device_get_vendor_id(s7_c_pointer(device))));
+}
+
+static s7_pointer lg_gdk_device_get_product_id(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_device_get_product_id "gchar* gdk_device_get_product_id(GdkDevice* device)"
+  s7_pointer device;
+  device = s7_car(args);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_device_get_product_id", 1, device, "GdkDevice*");
+    return(s7_make_string(sc, (gchar*)gdk_device_get_product_id(s7_c_pointer(device))));
+}
+
+static s7_pointer lg_gdk_gl_context_get_shared_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_get_shared_context "GdkGLContext* gdk_gl_context_get_shared_context(GdkGLContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_get_shared_context", 1, context, "GdkGLContext*");
+  return(s7_make_type_with_c_pointer(sc, GdkGLContext__sym, gdk_gl_context_get_shared_context(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_gl_context_set_required_version(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_set_required_version "void gdk_gl_context_set_required_version(GdkGLContext* context, \
+int major, int minor)"
+  s7_pointer _p;
+  s7_pointer context, major, minor;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_set_required_version", 1, context, "GdkGLContext*");
+  major = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(major)) s7_wrong_type_arg_error(sc, "gdk_gl_context_set_required_version", 2, major, "int");
+  minor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(minor)) s7_wrong_type_arg_error(sc, "gdk_gl_context_set_required_version", 3, minor, "int");
+  gdk_gl_context_set_required_version(s7_c_pointer(context), s7_integer(major), s7_integer(minor));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_gl_context_get_required_version(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_get_required_version "void gdk_gl_context_get_required_version(GdkGLContext* context, \
+int* [major], int* [minor])"
+  s7_pointer _p;
+  s7_pointer context;
+  int ref_major;
+  int ref_minor;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_get_required_version", 1, context, "GdkGLContext*");
+  gdk_gl_context_get_required_version(s7_c_pointer(context), &ref_major, &ref_minor);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_major), s7_make_integer(sc, ref_minor)));
+}
+
+static s7_pointer lg_gdk_gl_context_set_debug_enabled(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_set_debug_enabled "void gdk_gl_context_set_debug_enabled(GdkGLContext* context, \
+gboolean enabled)"
+  s7_pointer _p;
+  s7_pointer context, enabled;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_set_debug_enabled", 1, context, "GdkGLContext*");
+  enabled = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(enabled)) s7_wrong_type_arg_error(sc, "gdk_gl_context_set_debug_enabled", 2, enabled, "gboolean");
+  gdk_gl_context_set_debug_enabled(s7_c_pointer(context), lg_boolean(enabled));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_gl_context_get_debug_enabled(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_get_debug_enabled "gboolean gdk_gl_context_get_debug_enabled(GdkGLContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_get_debug_enabled", 1, context, "GdkGLContext*");
+  return(s7_make_boolean(sc, gdk_gl_context_get_debug_enabled(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_gl_context_set_forward_compatible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_set_forward_compatible "void gdk_gl_context_set_forward_compatible(GdkGLContext* context, \
+gboolean compatible)"
+  s7_pointer _p;
+  s7_pointer context, compatible;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_set_forward_compatible", 1, context, "GdkGLContext*");
+  compatible = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(compatible)) s7_wrong_type_arg_error(sc, "gdk_gl_context_set_forward_compatible", 2, compatible, "gboolean");
+  gdk_gl_context_set_forward_compatible(s7_c_pointer(context), lg_boolean(compatible));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_gl_context_get_forward_compatible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_get_forward_compatible "gboolean gdk_gl_context_get_forward_compatible(GdkGLContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_get_forward_compatible", 1, context, "GdkGLContext*");
+  return(s7_make_boolean(sc, gdk_gl_context_get_forward_compatible(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_gl_context_realize(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_realize "gboolean gdk_gl_context_realize(GdkGLContext* context, GError** [error])"
+  s7_pointer _p;
+  s7_pointer context;
+  GError* ref_error = NULL;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_realize", 1, context, "GdkGLContext*");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gdk_gl_context_realize(s7_c_pointer(context), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_clipboard_get_default(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_get_default "GtkClipboard* gtk_clipboard_get_default(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_get_default", 1, display, "GdkDisplay*");
+  return(s7_make_type_with_c_pointer(sc, GtkClipboard__sym, gtk_clipboard_get_default(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gtk_drag_cancel(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drag_cancel "void gtk_drag_cancel(GdkDragContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gtk_drag_cancel", 1, context, "GdkDragContext*");
+  gtk_drag_cancel(s7_c_pointer(context));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_search_entry_handle_event(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_search_entry_handle_event "gboolean gtk_search_entry_handle_event(GtkSearchEntry* entry, \
+GdkEvent* event)"
+  s7_pointer _p;
+  s7_pointer entry, event;
+  _p = args;
+  entry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entry, GtkSearchEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_search_entry_handle_event", 1, entry, "GtkSearchEntry*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gtk_search_entry_handle_event", 2, event, "GdkEvent*");
+  return(s7_make_boolean(sc, gtk_search_entry_handle_event(s7_c_pointer(entry), s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gdk_gl_context_get_version(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_get_version "void gdk_gl_context_get_version(GdkGLContext* context, int* [major], \
+int* [minor])"
+  s7_pointer _p;
+  s7_pointer context;
+  int ref_major;
+  int ref_minor;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_get_version", 1, context, "GdkGLContext*");
+  gdk_gl_context_get_version(s7_c_pointer(context), &ref_major, &ref_minor);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_major), s7_make_integer(sc, ref_minor)));
+}
+
+static s7_pointer lg_gtk_gl_area_set_required_version(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_set_required_version "void gtk_gl_area_set_required_version(GtkGLArea* area, \
+gint major, gint minor)"
+  s7_pointer _p;
+  s7_pointer area, major, minor;
+  _p = args;
+  area = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_set_required_version", 1, area, "GtkGLArea*");
+  major = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(major)) s7_wrong_type_arg_error(sc, "gtk_gl_area_set_required_version", 2, major, "gint");
+  minor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(minor)) s7_wrong_type_arg_error(sc, "gtk_gl_area_set_required_version", 3, minor, "gint");
+  gtk_gl_area_set_required_version(s7_c_pointer(area), s7_integer(major), s7_integer(minor));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gl_area_get_required_version(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_get_required_version "void gtk_gl_area_get_required_version(GtkGLArea* area, \
+gint* [major], gint* [minor])"
+  s7_pointer _p;
+  s7_pointer area;
+  gint ref_major;
+  gint ref_minor;
+  _p = args;
+  area = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_get_required_version", 1, area, "GtkGLArea*");
+  gtk_gl_area_get_required_version(s7_c_pointer(area), &ref_major, &ref_minor);
+    return(s7_list(sc, 2, s7_make_integer(sc, ref_major), s7_make_integer(sc, ref_minor)));
+}
+
+static s7_pointer lg_gtk_notebook_detach_tab(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_notebook_detach_tab "void gtk_notebook_detach_tab(GtkNotebook* notebook, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer notebook, child;
+  _p = args;
+  notebook = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(notebook, GtkNotebook__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_detach_tab", 1, notebook, "GtkNotebook*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_notebook_detach_tab", 2, child, "GtkWidget*");
+  gtk_notebook_detach_tab(s7_c_pointer(notebook), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_sidebar_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_sidebar_new "GtkWidget* gtk_stack_sidebar_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_stack_sidebar_new()));
+}
+
+static s7_pointer lg_gtk_stack_sidebar_set_stack(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_sidebar_set_stack "void gtk_stack_sidebar_set_stack(GtkStackSidebar* sidebar, GtkStack* stack)"
+  s7_pointer _p;
+  s7_pointer sidebar, stack;
+  _p = args;
+  sidebar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkStackSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_sidebar_set_stack", 1, sidebar, "GtkStackSidebar*");
+  stack = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_sidebar_set_stack", 2, stack, "GtkStack*");
+  gtk_stack_sidebar_set_stack(s7_c_pointer(sidebar), s7_c_pointer(stack));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_sidebar_get_stack(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_sidebar_get_stack "GtkStack* gtk_stack_sidebar_get_stack(GtkStackSidebar* sidebar)"
+  s7_pointer sidebar;
+  sidebar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkStackSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_sidebar_get_stack", 1, sidebar, "GtkStackSidebar*");
+  return(s7_make_type_with_c_pointer(sc, GtkStack__sym, gtk_stack_sidebar_get_stack(s7_c_pointer(sidebar))));
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(3, 18, 0)
+static s7_pointer lg_gdk_keymap_get_scroll_lock_state(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_keymap_get_scroll_lock_state "gboolean gdk_keymap_get_scroll_lock_state(GdkKeymap* keymap)"
+  s7_pointer keymap;
+  keymap = s7_car(args);
+  if (!s7_is_c_pointer_of_type(keymap, GdkKeymap__sym)) s7_wrong_type_arg_error(sc, "gdk_keymap_get_scroll_lock_state", 1, keymap, "GdkKeymap*");
+  return(s7_make_boolean(sc, gdk_keymap_get_scroll_lock_state(s7_c_pointer(keymap))));
+}
+
+static s7_pointer lg_gtk_radio_menu_item_join_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_radio_menu_item_join_group "void gtk_radio_menu_item_join_group(GtkRadioMenuItem* radio_menu_item, \
+GtkRadioMenuItem* group_source)"
+  s7_pointer _p;
+  s7_pointer radio_menu_item, group_source;
+  _p = args;
+  radio_menu_item = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(radio_menu_item, GtkRadioMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_join_group", 1, radio_menu_item, "GtkRadioMenuItem*");
+  group_source = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group_source, GtkRadioMenuItem__sym)) s7_wrong_type_arg_error(sc, "gtk_radio_menu_item_join_group", 2, group_source, "GtkRadioMenuItem*");
+  gtk_radio_menu_item_join_group(s7_c_pointer(radio_menu_item), s7_c_pointer(group_source));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_font_chooser_set_font_map(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_set_font_map "void gtk_font_chooser_set_font_map(GtkFontChooser* fontchooser, \
+PangoFontMap* fontmap)"
+  s7_pointer _p;
+  s7_pointer fontchooser, fontmap;
+  _p = args;
+  fontchooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(fontchooser, GtkFontChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_set_font_map", 1, fontchooser, "GtkFontChooser*");
+  fontmap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(fontmap, PangoFontMap__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_set_font_map", 2, fontmap, "PangoFontMap*");
+  gtk_font_chooser_set_font_map(s7_c_pointer(fontchooser), s7_c_pointer(fontmap));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_font_chooser_get_font_map(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_font_chooser_get_font_map "PangoFontMap* gtk_font_chooser_get_font_map(GtkFontChooser* fontchooser)"
+  s7_pointer fontchooser;
+  fontchooser = s7_car(args);
+  if (!s7_is_c_pointer_of_type(fontchooser, GtkFontChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_font_chooser_get_font_map", 1, fontchooser, "GtkFontChooser*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontMap__sym, gtk_font_chooser_get_font_map(s7_c_pointer(fontchooser))));
+}
+
+static s7_pointer lg_gtk_popover_set_default_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_set_default_widget "void gtk_popover_set_default_widget(GtkPopover* popover, \
+GtkWidget* widget)"
+  s7_pointer _p;
+  s7_pointer popover, widget;
+  _p = args;
+  popover = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(popover, GtkPopover__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_set_default_widget", 1, popover, "GtkPopover*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_set_default_widget", 2, widget, "GtkWidget*");
+  gtk_popover_set_default_widget(s7_c_pointer(popover), s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_popover_get_default_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_get_default_widget "GtkWidget* gtk_popover_get_default_widget(GtkPopover* popover)"
+  s7_pointer popover;
+  popover = s7_car(args);
+  if (!s7_is_c_pointer_of_type(popover, GtkPopover__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_get_default_widget", 1, popover, "GtkPopover*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_popover_get_default_widget(s7_c_pointer(popover))));
+}
+
+static s7_pointer lg_gdk_window_set_pass_through(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_set_pass_through "void gdk_window_set_pass_through(GdkWindow* window, gboolean pass_through)"
+  s7_pointer _p;
+  s7_pointer window, pass_through;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_set_pass_through", 1, window, "GdkWindow*");
+  pass_through = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(pass_through)) s7_wrong_type_arg_error(sc, "gdk_window_set_pass_through", 2, pass_through, "gboolean");
+  gdk_window_set_pass_through(s7_c_pointer(window), lg_boolean(pass_through));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_get_pass_through(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_get_pass_through "gboolean gdk_window_get_pass_through(GdkWindow* window)"
+  s7_pointer window;
+  window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_get_pass_through", 1, window, "GdkWindow*");
+  return(s7_make_boolean(sc, gdk_window_get_pass_through(s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gtk_overlay_reorder_overlay(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_overlay_reorder_overlay "void gtk_overlay_reorder_overlay(GtkOverlay* overlay, GtkWidget* child, \
+gint position)"
+  s7_pointer _p;
+  s7_pointer overlay, child, position;
+  _p = args;
+  overlay = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(overlay, GtkOverlay__sym)) s7_wrong_type_arg_error(sc, "gtk_overlay_reorder_overlay", 1, overlay, "GtkOverlay*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_overlay_reorder_overlay", 2, child, "GtkWidget*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_overlay_reorder_overlay", 3, position, "gint");
+  gtk_overlay_reorder_overlay(s7_c_pointer(overlay), s7_c_pointer(child), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_overlay_get_overlay_pass_through(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_overlay_get_overlay_pass_through "gboolean gtk_overlay_get_overlay_pass_through(GtkOverlay* overlay, \
+GtkWidget* widget)"
+  s7_pointer _p;
+  s7_pointer overlay, widget;
+  _p = args;
+  overlay = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(overlay, GtkOverlay__sym)) s7_wrong_type_arg_error(sc, "gtk_overlay_get_overlay_pass_through", 1, overlay, "GtkOverlay*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_overlay_get_overlay_pass_through", 2, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_overlay_get_overlay_pass_through(s7_c_pointer(overlay), s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_overlay_set_overlay_pass_through(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_overlay_set_overlay_pass_through "void gtk_overlay_set_overlay_pass_through(GtkOverlay* overlay, \
+GtkWidget* widget, gboolean pass_through)"
+  s7_pointer _p;
+  s7_pointer overlay, widget, pass_through;
+  _p = args;
+  overlay = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(overlay, GtkOverlay__sym)) s7_wrong_type_arg_error(sc, "gtk_overlay_set_overlay_pass_through", 1, overlay, "GtkOverlay*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_overlay_set_overlay_pass_through", 2, widget, "GtkWidget*");
+  pass_through = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(pass_through)) s7_wrong_type_arg_error(sc, "gtk_overlay_set_overlay_pass_through", 3, pass_through, "gboolean");
+  gtk_overlay_set_overlay_pass_through(s7_c_pointer(overlay), s7_c_pointer(widget), lg_boolean(pass_through));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_places_sidebar_get_show_recent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_get_show_recent "gboolean gtk_places_sidebar_get_show_recent(GtkPlacesSidebar* sidebar)"
+  s7_pointer sidebar;
+  sidebar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_get_show_recent", 1, sidebar, "GtkPlacesSidebar*");
+  return(s7_make_boolean(sc, gtk_places_sidebar_get_show_recent(s7_c_pointer(sidebar))));
+}
+
+static s7_pointer lg_gtk_places_sidebar_set_show_recent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_set_show_recent "void gtk_places_sidebar_set_show_recent(GtkPlacesSidebar* sidebar, \
+gboolean show_recent)"
+  s7_pointer _p;
+  s7_pointer sidebar, show_recent;
+  _p = args;
+  sidebar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_show_recent", 1, sidebar, "GtkPlacesSidebar*");
+  show_recent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_recent)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_show_recent", 2, show_recent, "gboolean");
+  gtk_places_sidebar_set_show_recent(s7_c_pointer(sidebar), lg_boolean(show_recent));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_places_sidebar_set_drop_targets_visible(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_set_drop_targets_visible "void gtk_places_sidebar_set_drop_targets_visible(GtkPlacesSidebar* sidebar, \
+gboolean visible, GdkDragContext* context)"
+  s7_pointer _p;
+  s7_pointer sidebar, visible, context;
+  _p = args;
+  sidebar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_drop_targets_visible", 1, sidebar, "GtkPlacesSidebar*");
+  visible = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(visible)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_drop_targets_visible", 2, visible, "gboolean");
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_drop_targets_visible", 3, context, "GdkDragContext*");
+  gtk_places_sidebar_set_drop_targets_visible(s7_c_pointer(sidebar), lg_boolean(visible), s7_c_pointer(context));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_places_sidebar_get_show_trash(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_get_show_trash "gboolean gtk_places_sidebar_get_show_trash(GtkPlacesSidebar* sidebar)"
+  s7_pointer sidebar;
+  sidebar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_get_show_trash", 1, sidebar, "GtkPlacesSidebar*");
+  return(s7_make_boolean(sc, gtk_places_sidebar_get_show_trash(s7_c_pointer(sidebar))));
+}
+
+static s7_pointer lg_gtk_places_sidebar_set_show_trash(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_set_show_trash "void gtk_places_sidebar_set_show_trash(GtkPlacesSidebar* sidebar, \
+gboolean show_trash)"
+  s7_pointer _p;
+  s7_pointer sidebar, show_trash;
+  _p = args;
+  sidebar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_show_trash", 1, sidebar, "GtkPlacesSidebar*");
+  show_trash = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_trash)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_show_trash", 2, show_trash, "gboolean");
+  gtk_places_sidebar_set_show_trash(s7_c_pointer(sidebar), lg_boolean(show_trash));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_places_sidebar_set_show_other_locations(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_set_show_other_locations "void gtk_places_sidebar_set_show_other_locations(GtkPlacesSidebar* sidebar, \
+gboolean show_other_locations)"
+  s7_pointer _p;
+  s7_pointer sidebar, show_other_locations;
+  _p = args;
+  sidebar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_show_other_locations", 1, sidebar, "GtkPlacesSidebar*");
+  show_other_locations = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(show_other_locations)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_set_show_other_locations", 2, show_other_locations, "gboolean");
+  gtk_places_sidebar_set_show_other_locations(s7_c_pointer(sidebar), lg_boolean(show_other_locations));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_places_sidebar_get_show_other_locations(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_places_sidebar_get_show_other_locations "gboolean gtk_places_sidebar_get_show_other_locations(GtkPlacesSidebar* sidebar)"
+  s7_pointer sidebar;
+  sidebar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(sidebar, GtkPlacesSidebar__sym)) s7_wrong_type_arg_error(sc, "gtk_places_sidebar_get_show_other_locations", 1, sidebar, "GtkPlacesSidebar*");
+  return(s7_make_boolean(sc, gtk_places_sidebar_get_show_other_locations(s7_c_pointer(sidebar))));
+}
+
+static s7_pointer lg_gtk_stack_set_interpolate_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_set_interpolate_size "void gtk_stack_set_interpolate_size(GtkStack* stack, gboolean interpolate_size)"
+  s7_pointer _p;
+  s7_pointer stack, interpolate_size;
+  _p = args;
+  stack = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_set_interpolate_size", 1, stack, "GtkStack*");
+  interpolate_size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(interpolate_size)) s7_wrong_type_arg_error(sc, "gtk_stack_set_interpolate_size", 2, interpolate_size, "gboolean");
+  gtk_stack_set_interpolate_size(s7_c_pointer(stack), lg_boolean(interpolate_size));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_stack_get_interpolate_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_stack_get_interpolate_size "gboolean gtk_stack_get_interpolate_size(GtkStack* stack)"
+  s7_pointer stack;
+  stack = s7_car(args);
+  if (!s7_is_c_pointer_of_type(stack, GtkStack__sym)) s7_wrong_type_arg_error(sc, "gtk_stack_get_interpolate_size", 1, stack, "GtkStack*");
+  return(s7_make_boolean(sc, gtk_stack_get_interpolate_size(s7_c_pointer(stack))));
+}
+
+static s7_pointer lg_gtk_widget_set_font_options(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_font_options "void gtk_widget_set_font_options(GtkWidget* widget, cairo_font_options_t* options)"
+  s7_pointer _p;
+  s7_pointer widget, options;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_font_options", 1, widget, "GtkWidget*");
+  options = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_font_options", 2, options, "cairo_font_options_t*");
+  gtk_widget_set_font_options(s7_c_pointer(widget), s7_c_pointer(options));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_font_options(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_font_options "cairo_font_options_t* gtk_widget_get_font_options(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_font_options", 1, widget, "GtkWidget*");
+    return(s7_make_type_with_c_pointer(sc, cairo_font_options_t__sym, (cairo_font_options_t*)gtk_widget_get_font_options(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_font_map(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_font_map "void gtk_widget_set_font_map(GtkWidget* widget, PangoFontMap* fontmap)"
+  s7_pointer _p;
+  s7_pointer widget, fontmap;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_font_map", 1, widget, "GtkWidget*");
+  fontmap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(fontmap, PangoFontMap__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_font_map", 2, fontmap, "PangoFontMap*");
+  gtk_widget_set_font_map(s7_c_pointer(widget), s7_c_pointer(fontmap));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_font_map(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_font_map "PangoFontMap* gtk_widget_get_font_map(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_font_map", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, PangoFontMap__sym, gtk_widget_get_font_map(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gdk_window_fullscreen_on_monitor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_fullscreen_on_monitor "void gdk_window_fullscreen_on_monitor(GdkWindow* window, \
+gint monitor)"
+  s7_pointer _p;
+  s7_pointer window, monitor;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_fullscreen_on_monitor", 1, window, "GdkWindow*");
+  monitor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(monitor)) s7_wrong_type_arg_error(sc, "gdk_window_fullscreen_on_monitor", 2, monitor, "gint");
+  gdk_window_fullscreen_on_monitor(s7_c_pointer(window), s7_integer(monitor));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_window_fullscreen_on_monitor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_window_fullscreen_on_monitor "void gtk_window_fullscreen_on_monitor(GtkWindow* window, \
+GdkScreen* screen, gint monitor)"
+  s7_pointer _p;
+  s7_pointer window, screen, monitor;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_window_fullscreen_on_monitor", 1, window, "GtkWindow*");
+  screen = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(screen, GdkScreen__sym)) s7_wrong_type_arg_error(sc, "gtk_window_fullscreen_on_monitor", 2, screen, "GdkScreen*");
+  monitor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(monitor)) s7_wrong_type_arg_error(sc, "gtk_window_fullscreen_on_monitor", 3, monitor, "gint");
+  gtk_window_fullscreen_on_monitor(s7_c_pointer(window), s7_c_pointer(screen), s7_integer(monitor));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_set_top_margin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_top_margin "void gtk_text_view_set_top_margin(GtkTextView* text_view, gint top_margin)"
+  s7_pointer _p;
+  s7_pointer text_view, top_margin;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_top_margin", 1, text_view, "GtkTextView*");
+  top_margin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(top_margin)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_top_margin", 2, top_margin, "gint");
+  gtk_text_view_set_top_margin(s7_c_pointer(text_view), s7_integer(top_margin));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_top_margin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_top_margin "gint gtk_text_view_get_top_margin(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_top_margin", 1, text_view, "GtkTextView*");
+  return(s7_make_integer(sc, gtk_text_view_get_top_margin(s7_c_pointer(text_view))));
+}
+
+static s7_pointer lg_gtk_text_view_set_bottom_margin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_set_bottom_margin "void gtk_text_view_set_bottom_margin(GtkTextView* text_view, \
+gint bottom_margin)"
+  s7_pointer _p;
+  s7_pointer text_view, bottom_margin;
+  _p = args;
+  text_view = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_bottom_margin", 1, text_view, "GtkTextView*");
+  bottom_margin = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(bottom_margin)) s7_wrong_type_arg_error(sc, "gtk_text_view_set_bottom_margin", 2, bottom_margin, "gint");
+  gtk_text_view_set_bottom_margin(s7_c_pointer(text_view), s7_integer(bottom_margin));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_view_get_bottom_margin(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_bottom_margin "gint gtk_text_view_get_bottom_margin(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_bottom_margin", 1, text_view, "GtkTextView*");
+  return(s7_make_integer(sc, gtk_text_view_get_bottom_margin(s7_c_pointer(text_view))));
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(3, 20, 0)
+static s7_pointer lg_gdk_gl_context_is_legacy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_is_legacy "gboolean gdk_gl_context_is_legacy(GdkGLContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_is_legacy", 1, context, "GdkGLContext*");
+  return(s7_make_boolean(sc, gdk_gl_context_is_legacy(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_rectangle_equal(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_rectangle_equal "gboolean gdk_rectangle_equal(GdkRectangle* rect1, GdkRectangle* rect2)"
+  s7_pointer _p;
+  s7_pointer rect1, rect2;
+  _p = args;
+  rect1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rect1, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_rectangle_equal", 1, rect1, "GdkRectangle*");
+  rect2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rect2, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_rectangle_equal", 2, rect2, "GdkRectangle*");
+  return(s7_make_boolean(sc, gdk_rectangle_equal(s7_c_pointer(rect1), s7_c_pointer(rect2))));
+}
+
+static s7_pointer lg_gtk_application_window_set_help_overlay(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_application_window_set_help_overlay "void gtk_application_window_set_help_overlay(GtkApplicationWindow* window, \
+GtkShortcutsWindow* help_overlay)"
+  s7_pointer _p;
+  s7_pointer window, help_overlay;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkApplicationWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_application_window_set_help_overlay", 1, window, "GtkApplicationWindow*");
+  help_overlay = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(help_overlay, GtkShortcutsWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_application_window_set_help_overlay", 2, help_overlay, "GtkShortcutsWindow*");
+  gtk_application_window_set_help_overlay(s7_c_pointer(window), s7_c_pointer(help_overlay));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_settings_reset_property(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_settings_reset_property "void gtk_settings_reset_property(GtkSettings* settings, gchar* name)"
+  s7_pointer _p;
+  s7_pointer settings, name;
+  _p = args;
+  settings = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(settings, GtkSettings__sym)) s7_wrong_type_arg_error(sc, "gtk_settings_reset_property", 1, settings, "GtkSettings*");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_settings_reset_property", 2, name, "gchar*");
+  gtk_settings_reset_property(s7_c_pointer(settings), (const gchar*)s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_text_tag_changed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_tag_changed "void gtk_text_tag_changed(GtkTextTag* tag, gboolean size_changed)"
+  s7_pointer _p;
+  s7_pointer tag, size_changed;
+  _p = args;
+  tag = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tag, GtkTextTag__sym)) s7_wrong_type_arg_error(sc, "gtk_text_tag_changed", 1, tag, "GtkTextTag*");
+  size_changed = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(size_changed)) s7_wrong_type_arg_error(sc, "gtk_text_tag_changed", 2, size_changed, "gboolean");
+  gtk_text_tag_changed(s7_c_pointer(tag), lg_boolean(size_changed));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_path_iter_get_object_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_path_iter_get_object_name "char* gtk_widget_path_iter_get_object_name(GtkWidgetPath* path, \
+gint pos)"
+  s7_pointer _p;
+  s7_pointer path, pos;
+  _p = args;
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkWidgetPath__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_path_iter_get_object_name", 1, path, "GtkWidgetPath*");
+  pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pos)) s7_wrong_type_arg_error(sc, "gtk_widget_path_iter_get_object_name", 2, pos, "gint");
+    return(s7_make_string(sc, (char*)gtk_widget_path_iter_get_object_name(s7_c_pointer(path), s7_integer(pos))));
+}
+
+static s7_pointer lg_gtk_widget_path_iter_set_object_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_path_iter_set_object_name "void gtk_widget_path_iter_set_object_name(GtkWidgetPath* path, \
+gint pos, char* name)"
+  s7_pointer _p;
+  s7_pointer path, pos, name;
+  _p = args;
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, GtkWidgetPath__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_path_iter_set_object_name", 1, path, "GtkWidgetPath*");
+  pos = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(pos)) s7_wrong_type_arg_error(sc, "gtk_widget_path_iter_set_object_name", 2, pos, "gint");
+  name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "gtk_widget_path_iter_set_object_name", 3, name, "char*");
+  gtk_widget_path_iter_set_object_name(s7_c_pointer(path), s7_integer(pos), (const char*)(char*)s7_string(name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_queue_allocate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_queue_allocate "void gtk_widget_queue_allocate(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_queue_allocate", 1, widget, "GtkWidget*");
+  gtk_widget_queue_allocate(s7_c_pointer(widget));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_set_focus_on_click(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_focus_on_click "void gtk_widget_set_focus_on_click(GtkWidget* widget, gboolean focus_on_click)"
+  s7_pointer _p;
+  s7_pointer widget, focus_on_click;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_focus_on_click", 1, widget, "GtkWidget*");
+  focus_on_click = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(focus_on_click)) s7_wrong_type_arg_error(sc, "gtk_widget_set_focus_on_click", 2, focus_on_click, "gboolean");
+  gtk_widget_set_focus_on_click(s7_c_pointer(widget), lg_boolean(focus_on_click));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_get_focus_on_click(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_focus_on_click "gboolean gtk_widget_get_focus_on_click(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_focus_on_click", 1, widget, "GtkWidget*");
+  return(s7_make_boolean(sc, gtk_widget_get_focus_on_click(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gdk_drag_context_get_drag_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_context_get_drag_window "GdkWindow* gdk_drag_context_get_drag_window(GdkDragContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_context_get_drag_window", 1, context, "GdkDragContext*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_drag_context_get_drag_window(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gtk_popover_set_constrain_to(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_set_constrain_to "void gtk_popover_set_constrain_to(GtkPopover* popover, GtkPopoverConstraint constraint)"
+  s7_pointer _p;
+  s7_pointer popover, constraint;
+  _p = args;
+  popover = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(popover, GtkPopover__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_set_constrain_to", 1, popover, "GtkPopover*");
+  constraint = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(constraint)) s7_wrong_type_arg_error(sc, "gtk_popover_set_constrain_to", 2, constraint, "GtkPopoverConstraint");
+  gtk_popover_set_constrain_to(s7_c_pointer(popover), s7_integer(constraint));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_popover_get_constrain_to(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_get_constrain_to "GtkPopoverConstraint gtk_popover_get_constrain_to(GtkPopover* popover)"
+  s7_pointer popover;
+  popover = s7_car(args);
+  if (!s7_is_c_pointer_of_type(popover, GtkPopover__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_get_constrain_to", 1, popover, "GtkPopover*");
+  return(s7_make_integer(sc, gtk_popover_get_constrain_to(s7_c_pointer(popover))));
+}
+
+static s7_pointer lg_gtk_text_iter_starts_tag(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_iter_starts_tag "gboolean gtk_text_iter_starts_tag(GtkTextIter* iter, GtkTextTag* tag)"
+  s7_pointer _p;
+  s7_pointer iter, tag;
+  _p = args;
+  iter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_iter_starts_tag", 1, iter, "GtkTextIter*");
+  tag = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(tag, GtkTextTag__sym)) && (tag != lg_false)) s7_wrong_type_arg_error(sc, "gtk_text_iter_starts_tag", 2, tag, "GtkTextTag*");
+  return(s7_make_boolean(sc, gtk_text_iter_starts_tag(s7_c_pointer(iter), s7_c_pointer(tag))));
+}
+
+static s7_pointer lg_gdk_device_get_seat(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_device_get_seat "GdkSeat* gdk_device_get_seat(GdkDevice* device)"
+  s7_pointer device;
+  device = s7_car(args);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_device_get_seat", 1, device, "GdkDevice*");
+  return(s7_make_type_with_c_pointer(sc, GdkSeat__sym, gdk_device_get_seat(s7_c_pointer(device))));
+}
+
+static s7_pointer lg_gdk_display_get_default_seat(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_get_default_seat "GdkSeat* gdk_display_get_default_seat(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_get_default_seat", 1, display, "GdkDisplay*");
+  return(s7_make_type_with_c_pointer(sc, GdkSeat__sym, gdk_display_get_default_seat(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_display_list_seats(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_list_seats "GList* gdk_display_list_seats(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_list_seats", 1, display, "GdkDisplay*");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gdk_display_list_seats(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_drag_begin_from_point(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_begin_from_point "GdkDragContext* gdk_drag_begin_from_point(GdkWindow* window, GdkDevice* device, \
+GList* targets, gint x_root, gint y_root)"
+  s7_pointer _p;
+  s7_pointer window, device, targets, x_root, y_root;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_begin_from_point", 1, window, "GdkWindow*");
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_begin_from_point", 2, device, "GdkDevice*");
+  targets = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(targets, GList__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_begin_from_point", 3, targets, "GList*");
+  x_root = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x_root)) s7_wrong_type_arg_error(sc, "gdk_drag_begin_from_point", 4, x_root, "gint");
+  y_root = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y_root)) s7_wrong_type_arg_error(sc, "gdk_drag_begin_from_point", 5, y_root, "gint");
+  return(s7_make_type_with_c_pointer(sc, GdkDragContext__sym, gdk_drag_begin_from_point(s7_c_pointer(window), s7_c_pointer(device), s7_c_pointer(targets), s7_integer(x_root), s7_integer(y_root))));
+}
+
+static s7_pointer lg_gdk_drag_drop_done(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_drop_done "void gdk_drag_drop_done(GdkDragContext* context, gboolean success)"
+  s7_pointer _p;
+  s7_pointer context, success;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_drop_done", 1, context, "GdkDragContext*");
+  success = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(success)) s7_wrong_type_arg_error(sc, "gdk_drag_drop_done", 2, success, "gboolean");
+  gdk_drag_drop_done(s7_c_pointer(context), lg_boolean(success));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_drag_context_set_hotspot(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_context_set_hotspot "void gdk_drag_context_set_hotspot(GdkDragContext* context, \
+gint hot_x, gint hot_y)"
+  s7_pointer _p;
+  s7_pointer context, hot_x, hot_y;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_context_set_hotspot", 1, context, "GdkDragContext*");
+  hot_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hot_x)) s7_wrong_type_arg_error(sc, "gdk_drag_context_set_hotspot", 2, hot_x, "gint");
+  hot_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hot_y)) s7_wrong_type_arg_error(sc, "gdk_drag_context_set_hotspot", 3, hot_y, "gint");
+  gdk_drag_context_set_hotspot(s7_c_pointer(context), s7_integer(hot_x), s7_integer(hot_y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_seat_grab(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_seat_grab "GdkGrabStatus gdk_seat_grab(GdkSeat* seat, GdkWindow* window, GdkSeatCapabilities capabilities, \
+gboolean owner_events, GdkCursor* cursor, GdkEvent* event, GdkSeatGrabPrepareFunc prepare_func, lambda_data func_info)"
+  s7_pointer _p;
+  s7_pointer seat, window, capabilities, owner_events, cursor, event, prepare_func, func_info;
+  _p = args;
+  seat = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(seat, GdkSeat__sym)) s7_wrong_type_arg_error(sc, "gdk_seat_grab", 1, seat, "GdkSeat*");
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_seat_grab", 2, window, "GdkWindow*");
+  capabilities = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(capabilities)) s7_wrong_type_arg_error(sc, "gdk_seat_grab", 3, capabilities, "GdkSeatCapabilities");
+  owner_events = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(owner_events)) s7_wrong_type_arg_error(sc, "gdk_seat_grab", 4, owner_events, "gboolean");
+  cursor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cursor, GdkCursor__sym)) s7_wrong_type_arg_error(sc, "gdk_seat_grab", 5, cursor, "GdkCursor*");
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_seat_grab", 6, event, "GdkEvent*");
+  prepare_func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(prepare_func, GdkSeatGrabPrepareFunc_sym)) s7_wrong_type_arg_error(sc, "gdk_seat_grab", 7, prepare_func, "GdkSeatGrabPrepareFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gdk_seat_grab", 8, func_info, "lambda_data");
+  {
+    s7_pointer result;
+    s7_pointer lg_ptr = s7_list(sc, 5, lg_false, func_info, lg_false, lg_false, lg_false);
+    s7_gc_protect(sc, lg_ptr);
+    result = s7_make_integer(sc, gdk_seat_grab(s7_c_pointer(seat), s7_c_pointer(window), s7_integer(capabilities), lg_boolean(owner_events), s7_c_pointer(cursor), s7_c_pointer(event), s7_c_pointer(prepare_func), (gpointer)lg_ptr));
+    return(result);
+   }
+}
+
+static s7_pointer lg_gdk_seat_ungrab(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_seat_ungrab "void gdk_seat_ungrab(GdkSeat* seat)"
+  s7_pointer seat;
+  seat = s7_car(args);
+  if (!s7_is_c_pointer_of_type(seat, GdkSeat__sym)) s7_wrong_type_arg_error(sc, "gdk_seat_ungrab", 1, seat, "GdkSeat*");
+  gdk_seat_ungrab(s7_c_pointer(seat));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_seat_get_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_seat_get_display "GdkDisplay* gdk_seat_get_display(GdkSeat* seat)"
+  s7_pointer seat;
+  seat = s7_car(args);
+  if (!s7_is_c_pointer_of_type(seat, GdkSeat__sym)) s7_wrong_type_arg_error(sc, "gdk_seat_get_display", 1, seat, "GdkSeat*");
+  return(s7_make_type_with_c_pointer(sc, GdkDisplay__sym, gdk_seat_get_display(s7_c_pointer(seat))));
+}
+
+static s7_pointer lg_gdk_seat_get_capabilities(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_seat_get_capabilities "GdkSeatCapabilities gdk_seat_get_capabilities(GdkSeat* seat)"
+  s7_pointer seat;
+  seat = s7_car(args);
+  if (!s7_is_c_pointer_of_type(seat, GdkSeat__sym)) s7_wrong_type_arg_error(sc, "gdk_seat_get_capabilities", 1, seat, "GdkSeat*");
+  return(s7_make_integer(sc, gdk_seat_get_capabilities(s7_c_pointer(seat))));
+}
+
+static s7_pointer lg_gdk_seat_get_slaves(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_seat_get_slaves "GList* gdk_seat_get_slaves(GdkSeat* seat, GdkSeatCapabilities capabilities)"
+  s7_pointer _p;
+  s7_pointer seat, capabilities;
+  _p = args;
+  seat = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(seat, GdkSeat__sym)) s7_wrong_type_arg_error(sc, "gdk_seat_get_slaves", 1, seat, "GdkSeat*");
+  capabilities = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(capabilities)) s7_wrong_type_arg_error(sc, "gdk_seat_get_slaves", 2, capabilities, "GdkSeatCapabilities");
+  return(s7_make_type_with_c_pointer(sc, GList__sym, gdk_seat_get_slaves(s7_c_pointer(seat), s7_integer(capabilities))));
+}
+
+static s7_pointer lg_gdk_seat_get_pointer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_seat_get_pointer "GdkDevice* gdk_seat_get_pointer(GdkSeat* seat)"
+  s7_pointer seat;
+  seat = s7_car(args);
+  if (!s7_is_c_pointer_of_type(seat, GdkSeat__sym)) s7_wrong_type_arg_error(sc, "gdk_seat_get_pointer", 1, seat, "GdkSeat*");
+  return(s7_make_type_with_c_pointer(sc, GdkDevice__sym, gdk_seat_get_pointer(s7_c_pointer(seat))));
+}
+
+static s7_pointer lg_gdk_seat_get_keyboard(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_seat_get_keyboard "GdkDevice* gdk_seat_get_keyboard(GdkSeat* seat)"
+  s7_pointer seat;
+  seat = s7_car(args);
+  if (!s7_is_c_pointer_of_type(seat, GdkSeat__sym)) s7_wrong_type_arg_error(sc, "gdk_seat_get_keyboard", 1, seat, "GdkSeat*");
+  return(s7_make_type_with_c_pointer(sc, GdkDevice__sym, gdk_seat_get_keyboard(s7_c_pointer(seat))));
+}
+
+static s7_pointer lg_gdk_drag_context_manage_dnd(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drag_context_manage_dnd "gboolean gdk_drag_context_manage_dnd(GdkDragContext* context, \
+GdkWindow* ipc_window, GdkDragAction actions)"
+  s7_pointer _p;
+  s7_pointer context, ipc_window, actions;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDragContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_context_manage_dnd", 1, context, "GdkDragContext*");
+  ipc_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ipc_window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_drag_context_manage_dnd", 2, ipc_window, "GdkWindow*");
+  actions = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(actions)) s7_wrong_type_arg_error(sc, "gdk_drag_context_manage_dnd", 3, actions, "GdkDragAction");
+  return(s7_make_boolean(sc, gdk_drag_context_manage_dnd(s7_c_pointer(context), s7_c_pointer(ipc_window), s7_integer(actions))));
+}
+
+static s7_pointer lg_gdk_event_is_scroll_stop_event(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_is_scroll_stop_event "gboolean gdk_event_is_scroll_stop_event(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_is_scroll_stop_event", 1, event, "GdkEvent*");
+  return(s7_make_boolean(sc, gdk_event_is_scroll_stop_event(s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gtk_text_view_reset_cursor_blink(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_reset_cursor_blink "void gtk_text_view_reset_cursor_blink(GtkTextView* text_view)"
+  s7_pointer text_view;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_reset_cursor_blink", 1, text_view, "GtkTextView*");
+  gtk_text_view_reset_cursor_blink(s7_c_pointer(text_view));
+  return(lg_false);
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(3, 22, 0)
+static s7_pointer lg_gdk_device_get_axes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_device_get_axes "GdkAxisFlags gdk_device_get_axes(GdkDevice* device)"
+  s7_pointer device;
+  device = s7_car(args);
+  if (!s7_is_c_pointer_of_type(device, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gdk_device_get_axes", 1, device, "GdkDevice*");
+  return(s7_make_integer(sc, gdk_device_get_axes(s7_c_pointer(device))));
+}
+
+static s7_pointer lg_gdk_event_get_device_tool(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_device_tool "GdkDeviceTool* gdk_event_get_device_tool(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_device_tool", 1, event, "GdkEvent*");
+  return(s7_make_type_with_c_pointer(sc, GdkDeviceTool__sym, gdk_event_get_device_tool(s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gdk_event_set_device_tool(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_set_device_tool "void gdk_event_set_device_tool(GdkEvent* event, GdkDeviceTool* tool)"
+  s7_pointer _p;
+  s7_pointer event, tool;
+  _p = args;
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_set_device_tool", 1, event, "GdkEvent*");
+  tool = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(tool, GdkDeviceTool__sym)) s7_wrong_type_arg_error(sc, "gdk_event_set_device_tool", 2, tool, "GdkDeviceTool*");
+  gdk_event_set_device_tool(s7_c_pointer(event), s7_c_pointer(tool));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_event_get_scancode(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_scancode "int gdk_event_get_scancode(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_scancode", 1, event, "GdkEvent*");
+  return(s7_make_integer(sc, gdk_event_get_scancode(s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gdk_gl_context_set_use_es(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_set_use_es "void gdk_gl_context_set_use_es(GdkGLContext* context, int use_es)"
+  s7_pointer _p;
+  s7_pointer context, use_es;
+  _p = args;
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_set_use_es", 1, context, "GdkGLContext*");
+  use_es = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(use_es)) s7_wrong_type_arg_error(sc, "gdk_gl_context_set_use_es", 2, use_es, "int");
+  gdk_gl_context_set_use_es(s7_c_pointer(context), s7_integer(use_es));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_gl_context_get_use_es(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_get_use_es "gboolean gdk_gl_context_get_use_es(GdkGLContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_get_use_es", 1, context, "GdkGLContext*");
+  return(s7_make_boolean(sc, gdk_gl_context_get_use_es(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_pango_context_get_for_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_pango_context_get_for_display "PangoContext* gdk_pango_context_get_for_display(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_pango_context_get_for_display", 1, display, "GdkDisplay*");
+  return(s7_make_type_with_c_pointer(sc, PangoContext__sym, gdk_pango_context_get_for_display(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gtk_clipboard_get_selection(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_clipboard_get_selection "GdkAtom gtk_clipboard_get_selection(GtkClipboard* clipboard)"
+  s7_pointer clipboard;
+  clipboard = s7_car(args);
+  if (!s7_is_c_pointer_of_type(clipboard, GtkClipboard__sym)) s7_wrong_type_arg_error(sc, "gtk_clipboard_get_selection", 1, clipboard, "GtkClipboard*");
+  return(s7_make_type_with_c_pointer(sc, GdkAtom_sym, gtk_clipboard_get_selection(s7_c_pointer(clipboard))));
+}
+
+static s7_pointer lg_gtk_gl_area_set_use_es(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_set_use_es "void gtk_gl_area_set_use_es(GtkGLArea* area, gboolean use_es)"
+  s7_pointer _p;
+  s7_pointer area, use_es;
+  _p = args;
+  area = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_set_use_es", 1, area, "GtkGLArea*");
+  use_es = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(use_es)) s7_wrong_type_arg_error(sc, "gtk_gl_area_set_use_es", 2, use_es, "gboolean");
+  gtk_gl_area_set_use_es(s7_c_pointer(area), lg_boolean(use_es));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_gl_area_get_use_es(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_gl_area_get_use_es "gboolean gtk_gl_area_get_use_es(GtkGLArea* area)"
+  s7_pointer area;
+  area = s7_car(args);
+  if (!s7_is_c_pointer_of_type(area, GtkGLArea__sym)) s7_wrong_type_arg_error(sc, "gtk_gl_area_get_use_es", 1, area, "GtkGLArea*");
+  return(s7_make_boolean(sc, gtk_gl_area_get_use_es(s7_c_pointer(area))));
+}
+
+static s7_pointer lg_gdk_device_tool_get_serial(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_device_tool_get_serial "guint gdk_device_tool_get_serial(GdkDeviceTool* tool)"
+  s7_pointer tool;
+  tool = s7_car(args);
+  if (!s7_is_c_pointer_of_type(tool, GdkDeviceTool__sym)) s7_wrong_type_arg_error(sc, "gdk_device_tool_get_serial", 1, tool, "GdkDeviceTool*");
+  return(s7_make_integer(sc, gdk_device_tool_get_serial(s7_c_pointer(tool))));
+}
+
+static s7_pointer lg_gdk_display_get_n_monitors(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_get_n_monitors "int gdk_display_get_n_monitors(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_get_n_monitors", 1, display, "GdkDisplay*");
+  return(s7_make_integer(sc, gdk_display_get_n_monitors(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_display_get_monitor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_get_monitor "GdkMonitor* gdk_display_get_monitor(GdkDisplay* display, int monitor_num)"
+  s7_pointer _p;
+  s7_pointer display, monitor_num;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_get_monitor", 1, display, "GdkDisplay*");
+  monitor_num = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(monitor_num)) s7_wrong_type_arg_error(sc, "gdk_display_get_monitor", 2, monitor_num, "int");
+  return(s7_make_type_with_c_pointer(sc, GdkMonitor__sym, gdk_display_get_monitor(s7_c_pointer(display), s7_integer(monitor_num))));
+}
+
+static s7_pointer lg_gdk_display_get_primary_monitor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_get_primary_monitor "GdkMonitor* gdk_display_get_primary_monitor(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_get_primary_monitor", 1, display, "GdkDisplay*");
+  return(s7_make_type_with_c_pointer(sc, GdkMonitor__sym, gdk_display_get_primary_monitor(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_display_get_monitor_at_point(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_get_monitor_at_point "GdkMonitor* gdk_display_get_monitor_at_point(GdkDisplay* display, \
+int x, int y)"
+  s7_pointer _p;
+  s7_pointer display, x, y;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_get_monitor_at_point", 1, display, "GdkDisplay*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gdk_display_get_monitor_at_point", 2, x, "int");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gdk_display_get_monitor_at_point", 3, y, "int");
+  return(s7_make_type_with_c_pointer(sc, GdkMonitor__sym, gdk_display_get_monitor_at_point(s7_c_pointer(display), s7_integer(x), s7_integer(y))));
+}
+
+static s7_pointer lg_gdk_display_get_monitor_at_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_get_monitor_at_window "GdkMonitor* gdk_display_get_monitor_at_window(GdkDisplay* display, \
+GdkWindow* window)"
+  s7_pointer _p;
+  s7_pointer display, window;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_get_monitor_at_window", 1, display, "GdkDisplay*");
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_display_get_monitor_at_window", 2, window, "GdkWindow*");
+  return(s7_make_type_with_c_pointer(sc, GdkMonitor__sym, gdk_display_get_monitor_at_window(s7_c_pointer(display), s7_c_pointer(window))));
+}
+
+static s7_pointer lg_gdk_event_get_pointer_emulated(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_pointer_emulated "gboolean gdk_event_get_pointer_emulated(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_pointer_emulated", 1, event, "GdkEvent*");
+  return(s7_make_boolean(sc, gdk_event_get_pointer_emulated(s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gtk_menu_place_on_monitor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_place_on_monitor "void gtk_menu_place_on_monitor(GtkMenu* menu, GdkMonitor* monitor)"
+  s7_pointer _p;
+  s7_pointer menu, monitor;
+  _p = args;
+  menu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_place_on_monitor", 1, menu, "GtkMenu*");
+  monitor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(monitor, GdkMonitor__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_place_on_monitor", 2, monitor, "GdkMonitor*");
+  gtk_menu_place_on_monitor(s7_c_pointer(menu), s7_c_pointer(monitor));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_monitor_get_display(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_monitor_get_display "GdkDisplay* gdk_monitor_get_display(GdkMonitor* monitor)"
+  s7_pointer monitor;
+  monitor = s7_car(args);
+  if (!s7_is_c_pointer_of_type(monitor, GdkMonitor__sym)) s7_wrong_type_arg_error(sc, "gdk_monitor_get_display", 1, monitor, "GdkMonitor*");
+  return(s7_make_type_with_c_pointer(sc, GdkDisplay__sym, gdk_monitor_get_display(s7_c_pointer(monitor))));
+}
+
+static s7_pointer lg_gdk_monitor_get_geometry(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_monitor_get_geometry "void gdk_monitor_get_geometry(GdkMonitor* monitor, GdkRectangle* geometry)"
+  s7_pointer _p;
+  s7_pointer monitor, geometry;
+  _p = args;
+  monitor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(monitor, GdkMonitor__sym)) s7_wrong_type_arg_error(sc, "gdk_monitor_get_geometry", 1, monitor, "GdkMonitor*");
+  geometry = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(geometry, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_monitor_get_geometry", 2, geometry, "GdkRectangle*");
+  gdk_monitor_get_geometry(s7_c_pointer(monitor), s7_c_pointer(geometry));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_monitor_get_workarea(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_monitor_get_workarea "void gdk_monitor_get_workarea(GdkMonitor* monitor, GdkRectangle* workarea)"
+  s7_pointer _p;
+  s7_pointer monitor, workarea;
+  _p = args;
+  monitor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(monitor, GdkMonitor__sym)) s7_wrong_type_arg_error(sc, "gdk_monitor_get_workarea", 1, monitor, "GdkMonitor*");
+  workarea = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(workarea, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_monitor_get_workarea", 2, workarea, "GdkRectangle*");
+  gdk_monitor_get_workarea(s7_c_pointer(monitor), s7_c_pointer(workarea));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_monitor_get_width_mm(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_monitor_get_width_mm "int gdk_monitor_get_width_mm(GdkMonitor* monitor)"
+  s7_pointer monitor;
+  monitor = s7_car(args);
+  if (!s7_is_c_pointer_of_type(monitor, GdkMonitor__sym)) s7_wrong_type_arg_error(sc, "gdk_monitor_get_width_mm", 1, monitor, "GdkMonitor*");
+  return(s7_make_integer(sc, gdk_monitor_get_width_mm(s7_c_pointer(monitor))));
+}
+
+static s7_pointer lg_gdk_monitor_get_height_mm(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_monitor_get_height_mm "int gdk_monitor_get_height_mm(GdkMonitor* monitor)"
+  s7_pointer monitor;
+  monitor = s7_car(args);
+  if (!s7_is_c_pointer_of_type(monitor, GdkMonitor__sym)) s7_wrong_type_arg_error(sc, "gdk_monitor_get_height_mm", 1, monitor, "GdkMonitor*");
+  return(s7_make_integer(sc, gdk_monitor_get_height_mm(s7_c_pointer(monitor))));
+}
+
+static s7_pointer lg_gdk_monitor_get_manufacturer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_monitor_get_manufacturer "char* gdk_monitor_get_manufacturer(GdkMonitor* monitor)"
+  s7_pointer monitor;
+  monitor = s7_car(args);
+  if (!s7_is_c_pointer_of_type(monitor, GdkMonitor__sym)) s7_wrong_type_arg_error(sc, "gdk_monitor_get_manufacturer", 1, monitor, "GdkMonitor*");
+  return(s7_make_string(sc, gdk_monitor_get_manufacturer(s7_c_pointer(monitor))));
+}
+
+static s7_pointer lg_gdk_monitor_get_model(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_monitor_get_model "char* gdk_monitor_get_model(GdkMonitor* monitor)"
+  s7_pointer monitor;
+  monitor = s7_car(args);
+  if (!s7_is_c_pointer_of_type(monitor, GdkMonitor__sym)) s7_wrong_type_arg_error(sc, "gdk_monitor_get_model", 1, monitor, "GdkMonitor*");
+  return(s7_make_string(sc, gdk_monitor_get_model(s7_c_pointer(monitor))));
+}
+
+static s7_pointer lg_gdk_monitor_get_scale_factor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_monitor_get_scale_factor "int gdk_monitor_get_scale_factor(GdkMonitor* monitor)"
+  s7_pointer monitor;
+  monitor = s7_car(args);
+  if (!s7_is_c_pointer_of_type(monitor, GdkMonitor__sym)) s7_wrong_type_arg_error(sc, "gdk_monitor_get_scale_factor", 1, monitor, "GdkMonitor*");
+  return(s7_make_integer(sc, gdk_monitor_get_scale_factor(s7_c_pointer(monitor))));
+}
+
+static s7_pointer lg_gdk_monitor_get_refresh_rate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_monitor_get_refresh_rate "int gdk_monitor_get_refresh_rate(GdkMonitor* monitor)"
+  s7_pointer monitor;
+  monitor = s7_car(args);
+  if (!s7_is_c_pointer_of_type(monitor, GdkMonitor__sym)) s7_wrong_type_arg_error(sc, "gdk_monitor_get_refresh_rate", 1, monitor, "GdkMonitor*");
+  return(s7_make_integer(sc, gdk_monitor_get_refresh_rate(s7_c_pointer(monitor))));
+}
+
+static s7_pointer lg_gdk_monitor_get_subpixel_layout(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_monitor_get_subpixel_layout "GdkSubpixelLayout gdk_monitor_get_subpixel_layout(GdkMonitor* monitor)"
+  s7_pointer monitor;
+  monitor = s7_car(args);
+  if (!s7_is_c_pointer_of_type(monitor, GdkMonitor__sym)) s7_wrong_type_arg_error(sc, "gdk_monitor_get_subpixel_layout", 1, monitor, "GdkMonitor*");
+  return(s7_make_integer(sc, gdk_monitor_get_subpixel_layout(s7_c_pointer(monitor))));
+}
+
+static s7_pointer lg_gdk_monitor_is_primary(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_monitor_is_primary "gboolean gdk_monitor_is_primary(GdkMonitor* monitor)"
+  s7_pointer monitor;
+  monitor = s7_car(args);
+  if (!s7_is_c_pointer_of_type(monitor, GdkMonitor__sym)) s7_wrong_type_arg_error(sc, "gdk_monitor_is_primary", 1, monitor, "GdkMonitor*");
+  return(s7_make_boolean(sc, gdk_monitor_is_primary(s7_c_pointer(monitor))));
+}
+
+static s7_pointer lg_gdk_drawing_context_get_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drawing_context_get_window "GdkWindow* gdk_drawing_context_get_window(GdkDrawingContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkDrawingContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drawing_context_get_window", 1, context, "GdkDrawingContext*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_drawing_context_get_window(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_drawing_context_get_clip(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drawing_context_get_clip "cairo_region_t* gdk_drawing_context_get_clip(GdkDrawingContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkDrawingContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drawing_context_get_clip", 1, context, "GdkDrawingContext*");
+  return(s7_make_type_with_c_pointer(sc, cairo_region_t__sym, gdk_drawing_context_get_clip(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_drawing_context_is_valid(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drawing_context_is_valid "gboolean gdk_drawing_context_is_valid(GdkDrawingContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkDrawingContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drawing_context_is_valid", 1, context, "GdkDrawingContext*");
+  return(s7_make_boolean(sc, gdk_drawing_context_is_valid(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_drawing_context_get_cairo_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drawing_context_get_cairo_context "cairo_t* gdk_drawing_context_get_cairo_context(GdkDrawingContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkDrawingContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drawing_context_get_cairo_context", 1, context, "GdkDrawingContext*");
+  return(s7_make_type_with_c_pointer(sc, cairo_t__sym, gdk_drawing_context_get_cairo_context(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_cairo_get_drawing_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_cairo_get_drawing_context "GdkDrawingContext* gdk_cairo_get_drawing_context(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "gdk_cairo_get_drawing_context", 1, cr, "cairo_t*");
+  return(s7_make_type_with_c_pointer(sc, GdkDrawingContext__sym, gdk_cairo_get_drawing_context(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_gtk_scrolled_window_set_max_content_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_set_max_content_width "void gtk_scrolled_window_set_max_content_width(GtkScrolledWindow* scrolled_window, \
+gint width)"
+  s7_pointer _p;
+  s7_pointer scrolled_window, width;
+  _p = args;
+  scrolled_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_max_content_width", 1, scrolled_window, "GtkScrolledWindow*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_max_content_width", 2, width, "gint");
+  gtk_scrolled_window_set_max_content_width(s7_c_pointer(scrolled_window), s7_integer(width));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrolled_window_get_max_content_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_get_max_content_width "gint gtk_scrolled_window_get_max_content_width(GtkScrolledWindow* scrolled_window)"
+  s7_pointer scrolled_window;
+  scrolled_window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_get_max_content_width", 1, scrolled_window, "GtkScrolledWindow*");
+  return(s7_make_integer(sc, gtk_scrolled_window_get_max_content_width(s7_c_pointer(scrolled_window))));
+}
+
+static s7_pointer lg_gtk_scrolled_window_set_max_content_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_set_max_content_height "void gtk_scrolled_window_set_max_content_height(GtkScrolledWindow* scrolled_window, \
+gint height)"
+  s7_pointer _p;
+  s7_pointer scrolled_window, height;
+  _p = args;
+  scrolled_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_max_content_height", 1, scrolled_window, "GtkScrolledWindow*");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_max_content_height", 2, height, "gint");
+  gtk_scrolled_window_set_max_content_height(s7_c_pointer(scrolled_window), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrolled_window_get_max_content_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_get_max_content_height "gint gtk_scrolled_window_get_max_content_height(GtkScrolledWindow* scrolled_window)"
+  s7_pointer scrolled_window;
+  scrolled_window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_get_max_content_height", 1, scrolled_window, "GtkScrolledWindow*");
+  return(s7_make_integer(sc, gtk_scrolled_window_get_max_content_height(s7_c_pointer(scrolled_window))));
+}
+
+static s7_pointer lg_gtk_file_chooser_add_choice(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_add_choice "void gtk_file_chooser_add_choice(GtkFileChooser* chooser, char* id, \
+char* label, char** options, char** option_labels)"
+  s7_pointer _p;
+  s7_pointer chooser, id, label, options, option_labels;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_add_choice", 1, chooser, "GtkFileChooser*");
+  id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(id)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_add_choice", 2, id, "char*");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_add_choice", 3, label, "char*");
+  options = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(options, char___sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_add_choice", 4, options, "char**");
+  option_labels = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(option_labels, char___sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_add_choice", 5, option_labels, "char**");
+  gtk_file_chooser_add_choice(s7_c_pointer(chooser), (const char*)(char*)s7_string(id), (const char*)(char*)s7_string(label), (const char**)s7_c_pointer(options), (const char**)s7_c_pointer(option_labels));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_remove_choice(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_remove_choice "void gtk_file_chooser_remove_choice(GtkFileChooser* chooser, \
+char* id)"
+  s7_pointer _p;
+  s7_pointer chooser, id;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_remove_choice", 1, chooser, "GtkFileChooser*");
+  id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(id)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_remove_choice", 2, id, "char*");
+  gtk_file_chooser_remove_choice(s7_c_pointer(chooser), (char*)s7_string(id));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_set_choice(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_set_choice "void gtk_file_chooser_set_choice(GtkFileChooser* chooser, char* id, \
+char* option)"
+  s7_pointer _p;
+  s7_pointer chooser, id, option;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_choice", 1, chooser, "GtkFileChooser*");
+  id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(id)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_choice", 2, id, "char*");
+  option = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(option)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_set_choice", 3, option, "char*");
+  gtk_file_chooser_set_choice(s7_c_pointer(chooser), (char*)s7_string(id), (char*)s7_string(option));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_file_chooser_get_choice(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_file_chooser_get_choice "char* gtk_file_chooser_get_choice(GtkFileChooser* chooser, char* id)"
+  s7_pointer _p;
+  s7_pointer chooser, id;
+  _p = args;
+  chooser = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(chooser, GtkFileChooser__sym)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_choice", 1, chooser, "GtkFileChooser*");
+  id = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(id)) s7_wrong_type_arg_error(sc, "gtk_file_chooser_get_choice", 2, id, "char*");
+  return(s7_make_string(sc, gtk_file_chooser_get_choice(s7_c_pointer(chooser), (const char*)(char*)s7_string(id))));
+}
+
+static s7_pointer lg_gdk_device_pad_get_n_groups(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_device_pad_get_n_groups "gint gdk_device_pad_get_n_groups(GdkDevicePad* pad)"
+  s7_pointer pad;
+  pad = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pad, GdkDevicePad__sym)) s7_wrong_type_arg_error(sc, "gdk_device_pad_get_n_groups", 1, pad, "GdkDevicePad*");
+  return(s7_make_integer(sc, gdk_device_pad_get_n_groups(s7_c_pointer(pad))));
+}
+
+static s7_pointer lg_gdk_device_pad_get_group_n_modes(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_device_pad_get_group_n_modes "gint gdk_device_pad_get_group_n_modes(GdkDevicePad* pad, \
+gint group_idx)"
+  s7_pointer _p;
+  s7_pointer pad, group_idx;
+  _p = args;
+  pad = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pad, GdkDevicePad__sym)) s7_wrong_type_arg_error(sc, "gdk_device_pad_get_group_n_modes", 1, pad, "GdkDevicePad*");
+  group_idx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(group_idx)) s7_wrong_type_arg_error(sc, "gdk_device_pad_get_group_n_modes", 2, group_idx, "gint");
+  return(s7_make_integer(sc, gdk_device_pad_get_group_n_modes(s7_c_pointer(pad), s7_integer(group_idx))));
+}
+
+static s7_pointer lg_gdk_device_pad_get_n_features(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_device_pad_get_n_features "gint gdk_device_pad_get_n_features(GdkDevicePad* pad, GdkDevicePadFeature feature)"
+  s7_pointer _p;
+  s7_pointer pad, feature;
+  _p = args;
+  pad = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pad, GdkDevicePad__sym)) s7_wrong_type_arg_error(sc, "gdk_device_pad_get_n_features", 1, pad, "GdkDevicePad*");
+  feature = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(feature)) s7_wrong_type_arg_error(sc, "gdk_device_pad_get_n_features", 2, feature, "GdkDevicePadFeature");
+  return(s7_make_integer(sc, gdk_device_pad_get_n_features(s7_c_pointer(pad), s7_integer(feature))));
+}
+
+static s7_pointer lg_gdk_device_pad_get_feature_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_device_pad_get_feature_group "gint gdk_device_pad_get_feature_group(GdkDevicePad* pad, \
+GdkDevicePadFeature feature, gint feature_idx)"
+  s7_pointer _p;
+  s7_pointer pad, feature, feature_idx;
+  _p = args;
+  pad = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pad, GdkDevicePad__sym)) s7_wrong_type_arg_error(sc, "gdk_device_pad_get_feature_group", 1, pad, "GdkDevicePad*");
+  feature = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(feature)) s7_wrong_type_arg_error(sc, "gdk_device_pad_get_feature_group", 2, feature, "GdkDevicePadFeature");
+  feature_idx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(feature_idx)) s7_wrong_type_arg_error(sc, "gdk_device_pad_get_feature_group", 3, feature_idx, "gint");
+  return(s7_make_integer(sc, gdk_device_pad_get_feature_group(s7_c_pointer(pad), s7_integer(feature), s7_integer(feature_idx))));
+}
+
+static s7_pointer lg_gtk_menu_popup_at_rect(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_popup_at_rect "void gtk_menu_popup_at_rect(GtkMenu* menu, GdkWindow* rect_window, \
+GdkRectangle* rect, GdkGravity rect_anchor, GdkGravity menu_anchor, GdkEvent* trigger_event)"
+  s7_pointer _p;
+  s7_pointer menu, rect_window, rect, rect_anchor, menu_anchor, trigger_event;
+  _p = args;
+  menu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_popup_at_rect", 1, menu, "GtkMenu*");
+  rect_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rect_window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_popup_at_rect", 2, rect_window, "GdkWindow*");
+  rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rect, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_popup_at_rect", 3, rect, "GdkRectangle*");
+  rect_anchor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(rect_anchor)) s7_wrong_type_arg_error(sc, "gtk_menu_popup_at_rect", 4, rect_anchor, "GdkGravity");
+  menu_anchor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(menu_anchor)) s7_wrong_type_arg_error(sc, "gtk_menu_popup_at_rect", 5, menu_anchor, "GdkGravity");
+  trigger_event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(trigger_event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_popup_at_rect", 6, trigger_event, "GdkEvent*");
+  gtk_menu_popup_at_rect(s7_c_pointer(menu), s7_c_pointer(rect_window), s7_c_pointer(rect), s7_integer(rect_anchor), s7_integer(menu_anchor), s7_c_pointer(trigger_event));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_popup_at_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_popup_at_widget "void gtk_menu_popup_at_widget(GtkMenu* menu, GtkWidget* widget, \
+GdkGravity widget_anchor, GdkGravity menu_anchor, GdkEvent* trigger_event)"
+  s7_pointer _p;
+  s7_pointer menu, widget, widget_anchor, menu_anchor, trigger_event;
+  _p = args;
+  menu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_popup_at_widget", 1, menu, "GtkMenu*");
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_popup_at_widget", 2, widget, "GtkWidget*");
+  widget_anchor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(widget_anchor)) s7_wrong_type_arg_error(sc, "gtk_menu_popup_at_widget", 3, widget_anchor, "GdkGravity");
+  menu_anchor = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(menu_anchor)) s7_wrong_type_arg_error(sc, "gtk_menu_popup_at_widget", 4, menu_anchor, "GdkGravity");
+  trigger_event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(trigger_event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_popup_at_widget", 5, trigger_event, "GdkEvent*");
+  gtk_menu_popup_at_widget(s7_c_pointer(menu), s7_c_pointer(widget), s7_integer(widget_anchor), s7_integer(menu_anchor), s7_c_pointer(trigger_event));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_menu_popup_at_pointer(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_menu_popup_at_pointer "void gtk_menu_popup_at_pointer(GtkMenu* menu, GdkEvent* trigger_event)"
+  s7_pointer _p;
+  s7_pointer menu, trigger_event;
+  _p = args;
+  menu = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(menu, GtkMenu__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_popup_at_pointer", 1, menu, "GtkMenu*");
+  trigger_event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(trigger_event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gtk_menu_popup_at_pointer", 2, trigger_event, "GdkEvent*");
+  gtk_menu_popup_at_pointer(s7_c_pointer(menu), s7_c_pointer(trigger_event));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_pad_controller_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_pad_controller_new "GtkPadController* gtk_pad_controller_new(GtkWindow* window, GActionGroup* group, \
+GdkDevice* pad)"
+  s7_pointer _p;
+  s7_pointer window, group, pad;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_pad_controller_new", 1, window, "GtkWindow*");
+  group = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(group, GActionGroup__sym)) s7_wrong_type_arg_error(sc, "gtk_pad_controller_new", 2, group, "GActionGroup*");
+  pad = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pad, GdkDevice__sym)) s7_wrong_type_arg_error(sc, "gtk_pad_controller_new", 3, pad, "GdkDevice*");
+  return(s7_make_type_with_c_pointer(sc, GtkPadController__sym, gtk_pad_controller_new(s7_c_pointer(window), s7_c_pointer(group), s7_c_pointer(pad))));
+}
+
+static s7_pointer lg_gtk_pad_controller_set_action_entries(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_pad_controller_set_action_entries "void gtk_pad_controller_set_action_entries(GtkPadController* controller, \
+GtkPadActionEntry* entries, gint n_entries)"
+  s7_pointer _p;
+  s7_pointer controller, entries, n_entries;
+  _p = args;
+  controller = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(controller, GtkPadController__sym)) s7_wrong_type_arg_error(sc, "gtk_pad_controller_set_action_entries", 1, controller, "GtkPadController*");
+  entries = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(entries, GtkPadActionEntry__sym)) s7_wrong_type_arg_error(sc, "gtk_pad_controller_set_action_entries", 2, entries, "GtkPadActionEntry*");
+  n_entries = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(n_entries)) s7_wrong_type_arg_error(sc, "gtk_pad_controller_set_action_entries", 3, n_entries, "gint");
+  gtk_pad_controller_set_action_entries(s7_c_pointer(controller), s7_c_pointer(entries), s7_integer(n_entries));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_pad_controller_set_action(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_pad_controller_set_action "void gtk_pad_controller_set_action(GtkPadController* controller, \
+GtkPadActionType type, gint index, gint mode, gchar* label, gchar* action_name)"
+  s7_pointer _p;
+  s7_pointer controller, type, index, mode, label, action_name;
+  _p = args;
+  controller = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(controller, GtkPadController__sym)) s7_wrong_type_arg_error(sc, "gtk_pad_controller_set_action", 1, controller, "GtkPadController*");
+  type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(type)) s7_wrong_type_arg_error(sc, "gtk_pad_controller_set_action", 2, type, "GtkPadActionType");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "gtk_pad_controller_set_action", 3, index, "gint");
+  mode = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(mode)) s7_wrong_type_arg_error(sc, "gtk_pad_controller_set_action", 4, mode, "gint");
+  label = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(label)) s7_wrong_type_arg_error(sc, "gtk_pad_controller_set_action", 5, label, "gchar*");
+  action_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(action_name)) s7_wrong_type_arg_error(sc, "gtk_pad_controller_set_action", 6, action_name, "gchar*");
+  gtk_pad_controller_set_action(s7_c_pointer(controller), s7_integer(type), s7_integer(index), s7_integer(mode), (const gchar*)s7_string(label), (const gchar*)s7_string(action_name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_popover_popup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_popup "void gtk_popover_popup(GtkPopover* popover)"
+  s7_pointer popover;
+  popover = s7_car(args);
+  if (!s7_is_c_pointer_of_type(popover, GtkPopover__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_popup", 1, popover, "GtkPopover*");
+  gtk_popover_popup(s7_c_pointer(popover));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_popover_popdown(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_popover_popdown "void gtk_popover_popdown(GtkPopover* popover)"
+  s7_pointer popover;
+  popover = s7_car(args);
+  if (!s7_is_c_pointer_of_type(popover, GtkPopover__sym)) s7_wrong_type_arg_error(sc, "gtk_popover_popdown", 1, popover, "GtkPopover*");
+  gtk_popover_popdown(s7_c_pointer(popover));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_shortcut_label_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_shortcut_label_new "GtkWidget* gtk_shortcut_label_new(gchar* accelerator)"
+  s7_pointer accelerator;
+  accelerator = s7_car(args);
+  if (!s7_is_string(accelerator)) s7_wrong_type_arg_error(sc, "gtk_shortcut_label_new", 1, accelerator, "gchar*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_shortcut_label_new((const gchar*)s7_string(accelerator))));
+}
+
+static s7_pointer lg_gtk_shortcut_label_get_accelerator(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_shortcut_label_get_accelerator "gchar* gtk_shortcut_label_get_accelerator(GtkShortcutLabel* self)"
+  s7_pointer self;
+  self = s7_car(args);
+  if (!s7_is_c_pointer_of_type(self, GtkShortcutLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_shortcut_label_get_accelerator", 1, self, "GtkShortcutLabel*");
+    return(s7_make_string(sc, (gchar*)gtk_shortcut_label_get_accelerator(s7_c_pointer(self))));
+}
+
+static s7_pointer lg_gtk_shortcut_label_set_accelerator(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_shortcut_label_set_accelerator "void gtk_shortcut_label_set_accelerator(GtkShortcutLabel* self, \
+gchar* accelerator)"
+  s7_pointer _p;
+  s7_pointer self, accelerator;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkShortcutLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_shortcut_label_set_accelerator", 1, self, "GtkShortcutLabel*");
+  accelerator = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(accelerator)) s7_wrong_type_arg_error(sc, "gtk_shortcut_label_set_accelerator", 2, accelerator, "gchar*");
+  gtk_shortcut_label_set_accelerator(s7_c_pointer(self), (const gchar*)s7_string(accelerator));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_shortcut_label_get_disabled_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_shortcut_label_get_disabled_text "gchar* gtk_shortcut_label_get_disabled_text(GtkShortcutLabel* self)"
+  s7_pointer self;
+  self = s7_car(args);
+  if (!s7_is_c_pointer_of_type(self, GtkShortcutLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_shortcut_label_get_disabled_text", 1, self, "GtkShortcutLabel*");
+    return(s7_make_string(sc, (gchar*)gtk_shortcut_label_get_disabled_text(s7_c_pointer(self))));
+}
+
+static s7_pointer lg_gtk_shortcut_label_set_disabled_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_shortcut_label_set_disabled_text "void gtk_shortcut_label_set_disabled_text(GtkShortcutLabel* self, \
+gchar* disabled_text)"
+  s7_pointer _p;
+  s7_pointer self, disabled_text;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkShortcutLabel__sym)) s7_wrong_type_arg_error(sc, "gtk_shortcut_label_set_disabled_text", 1, self, "GtkShortcutLabel*");
+  disabled_text = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(disabled_text)) s7_wrong_type_arg_error(sc, "gtk_shortcut_label_set_disabled_text", 2, disabled_text, "gchar*");
+  gtk_shortcut_label_set_disabled_text(s7_c_pointer(self), (const gchar*)s7_string(disabled_text));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_window_end_draw_frame(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_end_draw_frame "void gdk_window_end_draw_frame(GdkWindow* window, GdkDrawingContext* context)"
+  s7_pointer _p;
+  s7_pointer window, context;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_end_draw_frame", 1, window, "GdkWindow*");
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDrawingContext__sym)) s7_wrong_type_arg_error(sc, "gdk_window_end_draw_frame", 2, context, "GdkDrawingContext*");
+  gdk_window_end_draw_frame(s7_c_pointer(window), s7_c_pointer(context));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrolled_window_set_propagate_natural_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_set_propagate_natural_width "void gtk_scrolled_window_set_propagate_natural_width(GtkScrolledWindow* scrolled_window, \
+gboolean propagate)"
+  s7_pointer _p;
+  s7_pointer scrolled_window, propagate;
+  _p = args;
+  scrolled_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_propagate_natural_width", 1, scrolled_window, "GtkScrolledWindow*");
+  propagate = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(propagate)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_propagate_natural_width", 2, propagate, "gboolean");
+  gtk_scrolled_window_set_propagate_natural_width(s7_c_pointer(scrolled_window), lg_boolean(propagate));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrolled_window_get_propagate_natural_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_get_propagate_natural_width "gboolean gtk_scrolled_window_get_propagate_natural_width(GtkScrolledWindow* scrolled_window)"
+  s7_pointer scrolled_window;
+  scrolled_window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_get_propagate_natural_width", 1, scrolled_window, "GtkScrolledWindow*");
+  return(s7_make_boolean(sc, gtk_scrolled_window_get_propagate_natural_width(s7_c_pointer(scrolled_window))));
+}
+
+static s7_pointer lg_gtk_scrolled_window_set_propagate_natural_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_set_propagate_natural_height "void gtk_scrolled_window_set_propagate_natural_height(GtkScrolledWindow* scrolled_window, \
+gboolean propagate)"
+  s7_pointer _p;
+  s7_pointer scrolled_window, propagate;
+  _p = args;
+  scrolled_window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_propagate_natural_height", 1, scrolled_window, "GtkScrolledWindow*");
+  propagate = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(propagate)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_set_propagate_natural_height", 2, propagate, "gboolean");
+  gtk_scrolled_window_set_propagate_natural_height(s7_c_pointer(scrolled_window), lg_boolean(propagate));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_scrolled_window_get_propagate_natural_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_scrolled_window_get_propagate_natural_height "gboolean gtk_scrolled_window_get_propagate_natural_height(GtkScrolledWindow* scrolled_window)"
+  s7_pointer scrolled_window;
+  scrolled_window = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scrolled_window, GtkScrolledWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_scrolled_window_get_propagate_natural_height", 1, scrolled_window, "GtkScrolledWindow*");
+  return(s7_make_boolean(sc, gtk_scrolled_window_get_propagate_natural_height(s7_c_pointer(scrolled_window))));
+}
+
+#endif
+
+#if GTK_CHECK_VERSION(3, 99, 0)
+static s7_pointer lg_gdk_display_is_composited(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_is_composited "gboolean gdk_display_is_composited(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_is_composited", 1, display, "GdkDisplay*");
+  return(s7_make_boolean(sc, gdk_display_is_composited(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_display_is_rgba(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_display_is_rgba "gboolean gdk_display_is_rgba(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_display_is_rgba", 1, display, "GdkDisplay*");
+  return(s7_make_boolean(sc, gdk_display_is_rgba(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_window_new_toplevel(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_new_toplevel "GdkWindow* gdk_window_new_toplevel(GdkDisplay* display, gint event_mask, \
+int width, int height)"
+  s7_pointer _p;
+  s7_pointer display, event_mask, width, height;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_window_new_toplevel", 1, display, "GdkDisplay*");
+  event_mask = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(event_mask)) s7_wrong_type_arg_error(sc, "gdk_window_new_toplevel", 2, event_mask, "gint");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gdk_window_new_toplevel", 3, width, "int");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gdk_window_new_toplevel", 4, height, "int");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_window_new_toplevel(s7_c_pointer(display), s7_integer(event_mask), s7_integer(width), s7_integer(height))));
+}
+
+static s7_pointer lg_gdk_window_new_popup(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_new_popup "GdkWindow* gdk_window_new_popup(GdkDisplay* display, gint event_mask, \
+GdkRectangle* position)"
+  s7_pointer _p;
+  s7_pointer display, event_mask, position;
+  _p = args;
+  display = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_window_new_popup", 1, display, "GdkDisplay*");
+  event_mask = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(event_mask)) s7_wrong_type_arg_error(sc, "gdk_window_new_popup", 2, event_mask, "gint");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(position, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_window_new_popup", 3, position, "GdkRectangle*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_window_new_popup(s7_c_pointer(display), s7_integer(event_mask), s7_c_pointer(position))));
+}
+
+static s7_pointer lg_gdk_window_new_temp(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_new_temp "GdkWindow* gdk_window_new_temp(GdkDisplay* display)"
+  s7_pointer display;
+  display = s7_car(args);
+  if (!s7_is_c_pointer_of_type(display, GdkDisplay__sym)) s7_wrong_type_arg_error(sc, "gdk_window_new_temp", 1, display, "GdkDisplay*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_window_new_temp(s7_c_pointer(display))));
+}
+
+static s7_pointer lg_gdk_window_new_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_new_child "GdkWindow* gdk_window_new_child(GdkWindow* parent, gint event_mask, \
+GdkRectangle* position)"
+  s7_pointer _p;
+  s7_pointer parent, event_mask, position;
+  _p = args;
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(parent, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_new_child", 1, parent, "GdkWindow*");
+  event_mask = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(event_mask)) s7_wrong_type_arg_error(sc, "gdk_window_new_child", 2, event_mask, "gint");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(position, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_window_new_child", 3, position, "GdkRectangle*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_window_new_child(s7_c_pointer(parent), s7_integer(event_mask), s7_c_pointer(position))));
+}
+
+static s7_pointer lg_gdk_window_new_input(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_new_input "GdkWindow* gdk_window_new_input(GdkWindow* parent, gint event_mask, \
+GdkRectangle* position)"
+  s7_pointer _p;
+  s7_pointer parent, event_mask, position;
+  _p = args;
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(parent, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_new_input", 1, parent, "GdkWindow*");
+  event_mask = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(event_mask)) s7_wrong_type_arg_error(sc, "gdk_window_new_input", 2, event_mask, "gint");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(position, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_window_new_input", 3, position, "GdkRectangle*");
+  return(s7_make_type_with_c_pointer(sc, GdkWindow__sym, gdk_window_new_input(s7_c_pointer(parent), s7_integer(event_mask), s7_c_pointer(position))));
+}
+
+static s7_pointer lg_gtk_button_set_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_set_icon_name "void gtk_button_set_icon_name(GtkButton* button, char* icon_name)"
+  s7_pointer _p;
+  s7_pointer button, icon_name;
+  _p = args;
+  button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(button, GtkButton__sym)) s7_wrong_type_arg_error(sc, "gtk_button_set_icon_name", 1, button, "GtkButton*");
+  icon_name = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(icon_name)) s7_wrong_type_arg_error(sc, "gtk_button_set_icon_name", 2, icon_name, "char*");
+  gtk_button_set_icon_name(s7_c_pointer(button), (char*)s7_string(icon_name));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_button_get_icon_name(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_button_get_icon_name "char* gtk_button_get_icon_name(GtkButton* button)"
+  s7_pointer button;
+  button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(button, GtkButton__sym)) s7_wrong_type_arg_error(sc, "gtk_button_get_icon_name", 1, button, "GtkButton*");
+  return(s7_make_string(sc, gtk_button_get_icon_name(s7_c_pointer(button))));
+}
+
+static s7_pointer lg_gtk_drawing_area_set_content_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drawing_area_set_content_width "void gtk_drawing_area_set_content_width(GtkDrawingArea* self, \
+int width)"
+  s7_pointer _p;
+  s7_pointer self, width;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkDrawingArea__sym)) s7_wrong_type_arg_error(sc, "gtk_drawing_area_set_content_width", 1, self, "GtkDrawingArea*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "gtk_drawing_area_set_content_width", 2, width, "int");
+  gtk_drawing_area_set_content_width(s7_c_pointer(self), s7_integer(width));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drawing_area_get_content_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drawing_area_get_content_width "int gtk_drawing_area_get_content_width(GtkDrawingArea* self)"
+  s7_pointer self;
+  self = s7_car(args);
+  if (!s7_is_c_pointer_of_type(self, GtkDrawingArea__sym)) s7_wrong_type_arg_error(sc, "gtk_drawing_area_get_content_width", 1, self, "GtkDrawingArea*");
+  return(s7_make_integer(sc, gtk_drawing_area_get_content_width(s7_c_pointer(self))));
+}
+
+static s7_pointer lg_gtk_drawing_area_set_content_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drawing_area_set_content_height "void gtk_drawing_area_set_content_height(GtkDrawingArea* self, \
+int height)"
+  s7_pointer _p;
+  s7_pointer self, height;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkDrawingArea__sym)) s7_wrong_type_arg_error(sc, "gtk_drawing_area_set_content_height", 1, self, "GtkDrawingArea*");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "gtk_drawing_area_set_content_height", 2, height, "int");
+  gtk_drawing_area_set_content_height(s7_c_pointer(self), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_drawing_area_get_content_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drawing_area_get_content_height "int gtk_drawing_area_get_content_height(GtkDrawingArea* self)"
+  s7_pointer self;
+  self = s7_car(args);
+  if (!s7_is_c_pointer_of_type(self, GtkDrawingArea__sym)) s7_wrong_type_arg_error(sc, "gtk_drawing_area_get_content_height", 1, self, "GtkDrawingArea*");
+  return(s7_make_integer(sc, gtk_drawing_area_get_content_height(s7_c_pointer(self))));
+}
+
+static s7_pointer lg_gtk_drawing_area_set_draw_func(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_drawing_area_set_draw_func "void gtk_drawing_area_set_draw_func(GtkDrawingArea* self, \
+GtkDrawingAreaDrawFunc draw_func, lambda_data func_info, GDestroyNotify destroy)"
+  s7_pointer _p;
+  s7_pointer self, draw_func, func_info, destroy;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkDrawingArea__sym)) s7_wrong_type_arg_error(sc, "gtk_drawing_area_set_draw_func", 1, self, "GtkDrawingArea*");
+  draw_func = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(draw_func, GtkDrawingAreaDrawFunc_sym)) s7_wrong_type_arg_error(sc, "gtk_drawing_area_set_draw_func", 2, draw_func, "GtkDrawingAreaDrawFunc");
+  func_info = s7_car(_p); _p = s7_cdr(_p);
+  if ((!s7_is_c_pointer_of_type(func_info, lambda_data_sym)) && (func_info != lg_false)) s7_wrong_type_arg_error(sc, "gtk_drawing_area_set_draw_func", 3, func_info, "lambda_data");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, GDestroyNotify_sym)) s7_wrong_type_arg_error(sc, "gtk_drawing_area_set_draw_func", 4, destroy, "GDestroyNotify");
+  gtk_drawing_area_set_draw_func(s7_c_pointer(self), s7_c_pointer(draw_func), (gpointer)lg_ptr, s7_c_pointer(destroy));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_drawing_context_get_paint_context(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_drawing_context_get_paint_context "GdkDrawContext* gdk_drawing_context_get_paint_context(GdkDrawingContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkDrawingContext__sym)) s7_wrong_type_arg_error(sc, "gdk_drawing_context_get_paint_context", 1, context, "GdkDrawingContext*");
+  return(s7_make_type_with_c_pointer(sc, GdkDrawContext__sym, gdk_drawing_context_get_paint_context(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_gl_context_get_damage(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_gl_context_get_damage "cairo_region_t* gdk_gl_context_get_damage(GdkGLContext* context)"
+  s7_pointer context;
+  context = s7_car(args);
+  if (!s7_is_c_pointer_of_type(context, GdkGLContext__sym)) s7_wrong_type_arg_error(sc, "gdk_gl_context_get_damage", 1, context, "GdkGLContext*");
+  return(s7_make_type_with_c_pointer(sc, cairo_region_t__sym, gdk_gl_context_get_damage(s7_c_pointer(context))));
+}
+
+static s7_pointer lg_gdk_rgba_is_clear(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_rgba_is_clear "gboolean gdk_rgba_is_clear(GdkRGBA* rgba)"
+  s7_pointer rgba;
+  rgba = s7_car(args);
+  if (!s7_is_c_pointer_of_type(rgba, GdkRGBA__sym)) s7_wrong_type_arg_error(sc, "gdk_rgba_is_clear", 1, rgba, "GdkRGBA*");
+  return(s7_make_boolean(sc, gdk_rgba_is_clear(s7_c_pointer(rgba))));
+}
+
+static s7_pointer lg_gdk_rgba_is_opaque(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_rgba_is_opaque "gboolean gdk_rgba_is_opaque(GdkRGBA* rgba)"
+  s7_pointer rgba;
+  rgba = s7_car(args);
+  if (!s7_is_c_pointer_of_type(rgba, GdkRGBA__sym)) s7_wrong_type_arg_error(sc, "gdk_rgba_is_opaque", 1, rgba, "GdkRGBA*");
+  return(s7_make_boolean(sc, gdk_rgba_is_opaque(s7_c_pointer(rgba))));
+}
+
+static s7_pointer lg_gdk_window_begin_draw_frame(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_window_begin_draw_frame "GdkDrawingContext* gdk_window_begin_draw_frame(GdkWindow* window, \
+GdkDrawContext* context, cairo_region_t* region)"
+  s7_pointer _p;
+  s7_pointer window, context, region;
+  _p = args;
+  window = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(window, GdkWindow__sym)) s7_wrong_type_arg_error(sc, "gdk_window_begin_draw_frame", 1, window, "GdkWindow*");
+  context = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(context, GdkDrawContext__sym)) s7_wrong_type_arg_error(sc, "gdk_window_begin_draw_frame", 2, context, "GdkDrawContext*");
+  region = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "gdk_window_begin_draw_frame", 3, region, "cairo_region_t*");
+  return(s7_make_type_with_c_pointer(sc, GdkDrawingContext__sym, gdk_window_begin_draw_frame(s7_c_pointer(window), s7_c_pointer(context), s7_c_pointer(region))));
+}
+
+static s7_pointer lg_gtk_flow_box_get_child_at_pos(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_flow_box_get_child_at_pos "GtkFlowBoxChild* gtk_flow_box_get_child_at_pos(GtkFlowBox* box, \
+gint x, gint y)"
+  s7_pointer _p;
+  s7_pointer box, x, y;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkFlowBox__sym)) s7_wrong_type_arg_error(sc, "gtk_flow_box_get_child_at_pos", 1, box, "GtkFlowBox*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_flow_box_get_child_at_pos", 2, x, "gint");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_flow_box_get_child_at_pos", 3, y, "gint");
+  return(s7_make_type_with_c_pointer(sc, GtkFlowBoxChild__sym, gtk_flow_box_get_child_at_pos(s7_c_pointer(box), s7_integer(x), s7_integer(y))));
+}
+
+static s7_pointer lg_gtk_about_dialog_get_system_information(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_get_system_information "gchar* gtk_about_dialog_get_system_information(GtkAboutDialog* about)"
+  s7_pointer about;
+  about = s7_car(args);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_get_system_information", 1, about, "GtkAboutDialog*");
+    return(s7_make_string(sc, (gchar*)gtk_about_dialog_get_system_information(s7_c_pointer(about))));
+}
+
+static s7_pointer lg_gtk_about_dialog_set_system_information(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_about_dialog_set_system_information "void gtk_about_dialog_set_system_information(GtkAboutDialog* about, \
+gchar* system_information)"
+  s7_pointer _p;
+  s7_pointer about, system_information;
+  _p = args;
+  about = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(about, GtkAboutDialog__sym)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_system_information", 1, about, "GtkAboutDialog*");
+  system_information = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(system_information)) s7_wrong_type_arg_error(sc, "gtk_about_dialog_set_system_information", 2, system_information, "gchar*");
+  gtk_about_dialog_set_system_information(s7_c_pointer(about), (const gchar*)s7_string(system_information));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_action_bar_set_revealed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_action_bar_set_revealed "void gtk_action_bar_set_revealed(GtkActionBar* action_bar, gboolean revealed)"
+  s7_pointer _p;
+  s7_pointer action_bar, revealed;
+  _p = args;
+  action_bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(action_bar, GtkActionBar__sym)) s7_wrong_type_arg_error(sc, "gtk_action_bar_set_revealed", 1, action_bar, "GtkActionBar*");
+  revealed = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(revealed)) s7_wrong_type_arg_error(sc, "gtk_action_bar_set_revealed", 2, revealed, "gboolean");
+  gtk_action_bar_set_revealed(s7_c_pointer(action_bar), lg_boolean(revealed));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_action_bar_get_revealed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_action_bar_get_revealed "gboolean gtk_action_bar_get_revealed(GtkActionBar* action_bar)"
+  s7_pointer action_bar;
+  action_bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(action_bar, GtkActionBar__sym)) s7_wrong_type_arg_error(sc, "gtk_action_bar_get_revealed", 1, action_bar, "GtkActionBar*");
+  return(s7_make_boolean(sc, gtk_action_bar_get_revealed(s7_c_pointer(action_bar))));
+}
+
+static s7_pointer lg_gtk_check_button_set_draw_indicator(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_button_set_draw_indicator "void gtk_check_button_set_draw_indicator(GtkCheckButton* check_button, \
+gboolean draw_indicator)"
+  s7_pointer _p;
+  s7_pointer check_button, draw_indicator;
+  _p = args;
+  check_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(check_button, GtkCheckButton__sym)) s7_wrong_type_arg_error(sc, "gtk_check_button_set_draw_indicator", 1, check_button, "GtkCheckButton*");
+  draw_indicator = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(draw_indicator)) s7_wrong_type_arg_error(sc, "gtk_check_button_set_draw_indicator", 2, draw_indicator, "gboolean");
+  gtk_check_button_set_draw_indicator(s7_c_pointer(check_button), lg_boolean(draw_indicator));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_check_button_get_draw_indicator(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_button_get_draw_indicator "gboolean gtk_check_button_get_draw_indicator(GtkCheckButton* check_button)"
+  s7_pointer check_button;
+  check_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(check_button, GtkCheckButton__sym)) s7_wrong_type_arg_error(sc, "gtk_check_button_get_draw_indicator", 1, check_button, "GtkCheckButton*");
+  return(s7_make_boolean(sc, gtk_check_button_get_draw_indicator(s7_c_pointer(check_button))));
+}
+
+static s7_pointer lg_gtk_check_button_set_inconsistent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_button_set_inconsistent "void gtk_check_button_set_inconsistent(GtkCheckButton* check_button, \
+gboolean inconsistent)"
+  s7_pointer _p;
+  s7_pointer check_button, inconsistent;
+  _p = args;
+  check_button = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(check_button, GtkCheckButton__sym)) s7_wrong_type_arg_error(sc, "gtk_check_button_set_inconsistent", 1, check_button, "GtkCheckButton*");
+  inconsistent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(inconsistent)) s7_wrong_type_arg_error(sc, "gtk_check_button_set_inconsistent", 2, inconsistent, "gboolean");
+  gtk_check_button_set_inconsistent(s7_c_pointer(check_button), lg_boolean(inconsistent));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_check_button_get_inconsistent(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_check_button_get_inconsistent "gboolean gtk_check_button_get_inconsistent(GtkCheckButton* check_button)"
+  s7_pointer check_button;
+  check_button = s7_car(args);
+  if (!s7_is_c_pointer_of_type(check_button, GtkCheckButton__sym)) s7_wrong_type_arg_error(sc, "gtk_check_button_get_inconsistent", 1, check_button, "GtkCheckButton*");
+  return(s7_make_boolean(sc, gtk_check_button_get_inconsistent(s7_c_pointer(check_button))));
+}
+
+static s7_pointer lg_gtk_info_bar_set_revealed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_info_bar_set_revealed "void gtk_info_bar_set_revealed(GtkInfoBar* info_bar, gboolean revealed)"
+  s7_pointer _p;
+  s7_pointer info_bar, revealed;
+  _p = args;
+  info_bar = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(info_bar, GtkInfoBar__sym)) s7_wrong_type_arg_error(sc, "gtk_info_bar_set_revealed", 1, info_bar, "GtkInfoBar*");
+  revealed = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_boolean(revealed)) s7_wrong_type_arg_error(sc, "gtk_info_bar_set_revealed", 2, revealed, "gboolean");
+  gtk_info_bar_set_revealed(s7_c_pointer(info_bar), lg_boolean(revealed));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_info_bar_get_revealed(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_info_bar_get_revealed "gboolean gtk_info_bar_get_revealed(GtkInfoBar* info_bar)"
+  s7_pointer info_bar;
+  info_bar = s7_car(args);
+  if (!s7_is_c_pointer_of_type(info_bar, GtkInfoBar__sym)) s7_wrong_type_arg_error(sc, "gtk_info_bar_get_revealed", 1, info_bar, "GtkInfoBar*");
+  return(s7_make_boolean(sc, gtk_info_bar_get_revealed(s7_c_pointer(info_bar))));
+}
+
+static s7_pointer lg_gtk_widget_get_first_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_first_child "GtkWidget* gtk_widget_get_first_child(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_first_child", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_widget_get_first_child(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_last_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_last_child "GtkWidget* gtk_widget_get_last_child(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_last_child", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_widget_get_last_child(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_next_sibling(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_next_sibling "GtkWidget* gtk_widget_get_next_sibling(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_next_sibling", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_widget_get_next_sibling(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_get_prev_sibling(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_get_prev_sibling "GtkWidget* gtk_widget_get_prev_sibling(GtkWidget* widget)"
+  s7_pointer widget;
+  widget = s7_car(args);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_get_prev_sibling", 1, widget, "GtkWidget*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_widget_get_prev_sibling(s7_c_pointer(widget))));
+}
+
+static s7_pointer lg_gtk_widget_set_focus_child(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_set_focus_child "void gtk_widget_set_focus_child(GtkWidget* widget, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer widget, child;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_focus_child", 1, widget, "GtkWidget*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_set_focus_child", 2, child, "GtkWidget*");
+  gtk_widget_set_focus_child(s7_c_pointer(widget), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_show_uri_on_window(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_show_uri_on_window "gboolean gtk_show_uri_on_window(GtkWindow* parent, char* uri, guint32 timestamp, \
+GError** [error])"
+  s7_pointer _p;
+  s7_pointer parent, uri, timestamp;
+  GError* ref_error = NULL;
+  _p = args;
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(parent, GtkWindow__sym)) s7_wrong_type_arg_error(sc, "gtk_show_uri_on_window", 1, parent, "GtkWindow*");
+  uri = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(uri)) s7_wrong_type_arg_error(sc, "gtk_show_uri_on_window", 2, uri, "char*");
+  timestamp = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(timestamp)) s7_wrong_type_arg_error(sc, "gtk_show_uri_on_window", 3, timestamp, "guint32");
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_show_uri_on_window(s7_c_pointer(parent), (const char*)(char*)s7_string(uri), s7_integer(timestamp), &ref_error));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_error)));
+   }
+}
+
+static s7_pointer lg_gtk_box_pack_start(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_box_pack_start "void gtk_box_pack_start(GtkBox* box, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer box, child;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkBox__sym)) s7_wrong_type_arg_error(sc, "gtk_box_pack_start", 1, box, "GtkBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_box_pack_start", 2, child, "GtkWidget*");
+  gtk_box_pack_start(s7_c_pointer(box), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_box_pack_end(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_box_pack_end "void gtk_box_pack_end(GtkBox* box, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer box, child;
+  _p = args;
+  box = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(box, GtkBox__sym)) s7_wrong_type_arg_error(sc, "gtk_box_pack_end", 1, box, "GtkBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_box_pack_end", 2, child, "GtkWidget*");
+  gtk_box_pack_end(s7_c_pointer(box), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_insert_after(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_insert_after "void gtk_widget_insert_after(GtkWidget* widget, GtkWidget* parent, \
+GtkWidget* previous_sibling)"
+  s7_pointer _p;
+  s7_pointer widget, parent, previous_sibling;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_insert_after", 1, widget, "GtkWidget*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(parent, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_insert_after", 2, parent, "GtkWidget*");
+  previous_sibling = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(previous_sibling, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_insert_after", 3, previous_sibling, "GtkWidget*");
+  gtk_widget_insert_after(s7_c_pointer(widget), s7_c_pointer(parent), s7_c_pointer(previous_sibling));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_widget_insert_before(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_widget_insert_before "void gtk_widget_insert_before(GtkWidget* widget, GtkWidget* parent, \
+GtkWidget* next_sibling)"
+  s7_pointer _p;
+  s7_pointer widget, parent, next_sibling;
+  _p = args;
+  widget = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(widget, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_insert_before", 1, widget, "GtkWidget*");
+  parent = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(parent, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_insert_before", 2, parent, "GtkWidget*");
+  next_sibling = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(next_sibling, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_widget_insert_before", 3, next_sibling, "GtkWidget*");
+  gtk_widget_insert_before(s7_c_pointer(widget), s7_c_pointer(parent), s7_c_pointer(next_sibling));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_center_box_new(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_center_box_new "GtkWidget* gtk_center_box_new( void)"
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_center_box_new()));
+}
+
+static s7_pointer lg_gtk_center_box_set_start_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_center_box_set_start_widget "void gtk_center_box_set_start_widget(GtkCenterBox* self, \
+GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer self, child;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkCenterBox__sym)) s7_wrong_type_arg_error(sc, "gtk_center_box_set_start_widget", 1, self, "GtkCenterBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_center_box_set_start_widget", 2, child, "GtkWidget*");
+  gtk_center_box_set_start_widget(s7_c_pointer(self), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_center_box_set_center_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_center_box_set_center_widget "void gtk_center_box_set_center_widget(GtkCenterBox* self, \
+GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer self, child;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkCenterBox__sym)) s7_wrong_type_arg_error(sc, "gtk_center_box_set_center_widget", 1, self, "GtkCenterBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_center_box_set_center_widget", 2, child, "GtkWidget*");
+  gtk_center_box_set_center_widget(s7_c_pointer(self), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_center_box_set_end_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_center_box_set_end_widget "void gtk_center_box_set_end_widget(GtkCenterBox* self, GtkWidget* child)"
+  s7_pointer _p;
+  s7_pointer self, child;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkCenterBox__sym)) s7_wrong_type_arg_error(sc, "gtk_center_box_set_end_widget", 1, self, "GtkCenterBox*");
+  child = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(child, GtkWidget__sym)) s7_wrong_type_arg_error(sc, "gtk_center_box_set_end_widget", 2, child, "GtkWidget*");
+  gtk_center_box_set_end_widget(s7_c_pointer(self), s7_c_pointer(child));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_center_box_get_start_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_center_box_get_start_widget "GtkWidget* gtk_center_box_get_start_widget(GtkCenterBox* self)"
+  s7_pointer self;
+  self = s7_car(args);
+  if (!s7_is_c_pointer_of_type(self, GtkCenterBox__sym)) s7_wrong_type_arg_error(sc, "gtk_center_box_get_start_widget", 1, self, "GtkCenterBox*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_center_box_get_start_widget(s7_c_pointer(self))));
+}
+
+static s7_pointer lg_gtk_center_box_get_center_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_center_box_get_center_widget "GtkWidget* gtk_center_box_get_center_widget(GtkCenterBox* self)"
+  s7_pointer self;
+  self = s7_car(args);
+  if (!s7_is_c_pointer_of_type(self, GtkCenterBox__sym)) s7_wrong_type_arg_error(sc, "gtk_center_box_get_center_widget", 1, self, "GtkCenterBox*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_center_box_get_center_widget(s7_c_pointer(self))));
+}
+
+static s7_pointer lg_gtk_center_box_get_end_widget(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_center_box_get_end_widget "GtkWidget* gtk_center_box_get_end_widget(GtkCenterBox* self)"
+  s7_pointer self;
+  self = s7_car(args);
+  if (!s7_is_c_pointer_of_type(self, GtkCenterBox__sym)) s7_wrong_type_arg_error(sc, "gtk_center_box_get_end_widget", 1, self, "GtkCenterBox*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_center_box_get_end_widget(s7_c_pointer(self))));
+}
+
+static s7_pointer lg_gtk_center_box_set_baseline_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_center_box_set_baseline_position "void gtk_center_box_set_baseline_position(GtkCenterBox* self, \
+GtkBaselinePosition position)"
+  s7_pointer _p;
+  s7_pointer self, position;
+  _p = args;
+  self = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(self, GtkCenterBox__sym)) s7_wrong_type_arg_error(sc, "gtk_center_box_set_baseline_position", 1, self, "GtkCenterBox*");
+  position = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(position)) s7_wrong_type_arg_error(sc, "gtk_center_box_set_baseline_position", 2, position, "GtkBaselinePosition");
+  gtk_center_box_set_baseline_position(s7_c_pointer(self), s7_integer(position));
+  return(lg_false);
+}
+
+static s7_pointer lg_gtk_center_box_get_baseline_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_center_box_get_baseline_position "GtkBaselinePosition gtk_center_box_get_baseline_position(GtkCenterBox* self)"
+  s7_pointer self;
+  self = s7_car(args);
+  if (!s7_is_c_pointer_of_type(self, GtkCenterBox__sym)) s7_wrong_type_arg_error(sc, "gtk_center_box_get_baseline_position", 1, self, "GtkCenterBox*");
+  return(s7_make_integer(sc, gtk_center_box_get_baseline_position(s7_c_pointer(self))));
+}
+
+static s7_pointer lg_gdk_event_set_coords(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_set_coords "void gdk_event_set_coords(GdkEvent* event, gdouble x, gdouble y)"
+  s7_pointer _p;
+  s7_pointer event, x, y;
+  _p = args;
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_set_coords", 1, event, "GdkEvent*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "gdk_event_set_coords", 2, x, "gdouble");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "gdk_event_set_coords", 3, y, "gdouble");
+  gdk_event_set_coords(s7_c_pointer(event), s7_real(x), s7_real(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_event_set_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_set_user_data "void gdk_event_set_user_data(GdkEvent* event, GObject* user_data)"
+  s7_pointer _p;
+  s7_pointer event, user_data;
+  _p = args;
+  event = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_set_user_data", 1, event, "GdkEvent*");
+  user_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(user_data, GObject__sym)) s7_wrong_type_arg_error(sc, "gdk_event_set_user_data", 2, user_data, "GObject*");
+  gdk_event_set_user_data(s7_c_pointer(event), s7_c_pointer(user_data));
+  return(lg_false);
+}
+
+static s7_pointer lg_gdk_event_get_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_event_get_user_data "GObject* gdk_event_get_user_data(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gdk_event_get_user_data", 1, event, "GdkEvent*");
+  return(s7_make_type_with_c_pointer(sc, GObject__sym, gdk_event_get_user_data(s7_c_pointer(event))));
+}
+
+static s7_pointer lg_gdk_rectangle_contains_point(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gdk_rectangle_contains_point "gboolean gdk_rectangle_contains_point(GdkRectangle* rect, int x, \
+int y)"
+  s7_pointer _p;
+  s7_pointer rect, x, y;
+  _p = args;
+  rect = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rect, GdkRectangle__sym)) s7_wrong_type_arg_error(sc, "gdk_rectangle_contains_point", 1, rect, "GdkRectangle*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gdk_rectangle_contains_point", 2, x, "int");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gdk_rectangle_contains_point", 3, y, "int");
+  return(s7_make_boolean(sc, gdk_rectangle_contains_point(s7_c_pointer(rect), s7_integer(x), s7_integer(y))));
+}
+
+static s7_pointer lg_gtk_get_event_target(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_get_event_target "GtkWidget* gtk_get_event_target(GdkEvent* event)"
+  s7_pointer event;
+  event = s7_car(args);
+  if (!s7_is_c_pointer_of_type(event, GdkEvent__sym)) s7_wrong_type_arg_error(sc, "gtk_get_event_target", 1, event, "GdkEvent*");
+  return(s7_make_type_with_c_pointer(sc, GtkWidget__sym, gtk_get_event_target(s7_c_pointer(event))));
+}
+
+#endif
+
+static s7_pointer lg_cairo_create(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_create "cairo_t* cairo_create(cairo_surface_t* target)"
+  s7_pointer target;
+  target = s7_car(args);
+  if (!s7_is_c_pointer_of_type(target, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_create", 1, target, "cairo_surface_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_t__sym, cairo_create(s7_c_pointer(target))));
+}
+
+static s7_pointer lg_cairo_version(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_version "int cairo_version( void)"
+  return(s7_make_integer(sc, cairo_version()));
+}
+
+static s7_pointer lg_cairo_version_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_version_string "char* cairo_version_string( void)"
+  return(s7_make_string(sc, cairo_version_string()));
+}
+
+static s7_pointer lg_cairo_reference(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_reference "cairo_t* cairo_reference(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_reference", 1, cr, "cairo_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_t__sym, cairo_reference(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_destroy "void cairo_destroy(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_destroy", 1, cr, "cairo_t*");
+  cairo_destroy(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_save(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_save "void cairo_save(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_save", 1, cr, "cairo_t*");
+  cairo_save(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_restore(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_restore "void cairo_restore(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_restore", 1, cr, "cairo_t*");
+  cairo_restore(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_push_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_push_group "void cairo_push_group(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_push_group", 1, cr, "cairo_t*");
+  cairo_push_group(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_push_group_with_content(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_push_group_with_content "void cairo_push_group_with_content(cairo_t* cr, cairo_content_t content)"
+  s7_pointer _p;
+  s7_pointer cr, content;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_push_group_with_content", 1, cr, "cairo_t*");
+  content = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(content)) s7_wrong_type_arg_error(sc, "cairo_push_group_with_content", 2, content, "cairo_content_t");
+  cairo_push_group_with_content(s7_c_pointer(cr), s7_integer(content));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_pop_group(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pop_group "cairo_pattern_t* cairo_pop_group(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pop_group", 1, cr, "cairo_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_pattern_t__sym, cairo_pop_group(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_pop_group_to_source(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pop_group_to_source "void cairo_pop_group_to_source(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pop_group_to_source", 1, cr, "cairo_t*");
+  cairo_pop_group_to_source(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_operator(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_operator "void cairo_set_operator(cairo_t* cr, cairo_operator_t op)"
+  s7_pointer _p;
+  s7_pointer cr, op;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_operator", 1, cr, "cairo_t*");
+  op = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(op)) s7_wrong_type_arg_error(sc, "cairo_set_operator", 2, op, "cairo_operator_t");
+  cairo_set_operator(s7_c_pointer(cr), s7_integer(op));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_source(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_source "void cairo_set_source(cairo_t* cr, cairo_pattern_t* source)"
+  s7_pointer _p;
+  s7_pointer cr, source;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_source", 1, cr, "cairo_t*");
+  source = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(source, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_source", 2, source, "cairo_pattern_t*");
+  cairo_set_source(s7_c_pointer(cr), s7_c_pointer(source));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_source_rgb(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_source_rgb "void cairo_set_source_rgb(cairo_t* cr, double red, double green, double blue)"
+  s7_pointer _p;
+  s7_pointer cr, red, green, blue;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_source_rgb", 1, cr, "cairo_t*");
+  red = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(red)) s7_wrong_type_arg_error(sc, "cairo_set_source_rgb", 2, red, "double");
+  green = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(green)) s7_wrong_type_arg_error(sc, "cairo_set_source_rgb", 3, green, "double");
+  blue = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(blue)) s7_wrong_type_arg_error(sc, "cairo_set_source_rgb", 4, blue, "double");
+  cairo_set_source_rgb(s7_c_pointer(cr), s7_real(red), s7_real(green), s7_real(blue));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_source_rgba(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_source_rgba "void cairo_set_source_rgba(cairo_t* cr, double red, double green, \
+double blue, double alpha)"
+  s7_pointer _p;
+  s7_pointer cr, red, green, blue, alpha;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_source_rgba", 1, cr, "cairo_t*");
+  red = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(red)) s7_wrong_type_arg_error(sc, "cairo_set_source_rgba", 2, red, "double");
+  green = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(green)) s7_wrong_type_arg_error(sc, "cairo_set_source_rgba", 3, green, "double");
+  blue = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(blue)) s7_wrong_type_arg_error(sc, "cairo_set_source_rgba", 4, blue, "double");
+  alpha = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(alpha)) s7_wrong_type_arg_error(sc, "cairo_set_source_rgba", 5, alpha, "double");
+  cairo_set_source_rgba(s7_c_pointer(cr), s7_real(red), s7_real(green), s7_real(blue), s7_real(alpha));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_source_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_source_surface "void cairo_set_source_surface(cairo_t* cr, cairo_surface_t* surface, \
+double x, double y)"
+  s7_pointer _p;
+  s7_pointer cr, surface, x, y;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_source_surface", 1, cr, "cairo_t*");
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_source_surface", 2, surface, "cairo_surface_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "cairo_set_source_surface", 3, x, "double");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "cairo_set_source_surface", 4, y, "double");
+  cairo_set_source_surface(s7_c_pointer(cr), s7_c_pointer(surface), s7_real(x), s7_real(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_tolerance(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_tolerance "void cairo_set_tolerance(cairo_t* cr, double tolerance)"
+  s7_pointer _p;
+  s7_pointer cr, tolerance;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_tolerance", 1, cr, "cairo_t*");
+  tolerance = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(tolerance)) s7_wrong_type_arg_error(sc, "cairo_set_tolerance", 2, tolerance, "double");
+  cairo_set_tolerance(s7_c_pointer(cr), s7_real(tolerance));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_antialias(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_antialias "void cairo_set_antialias(cairo_t* cr, cairo_antialias_t antialias)"
+  s7_pointer _p;
+  s7_pointer cr, antialias;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_antialias", 1, cr, "cairo_t*");
+  antialias = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(antialias)) s7_wrong_type_arg_error(sc, "cairo_set_antialias", 2, antialias, "cairo_antialias_t");
+  cairo_set_antialias(s7_c_pointer(cr), s7_integer(antialias));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_fill_rule(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_fill_rule "void cairo_set_fill_rule(cairo_t* cr, cairo_fill_rule_t fill_rule)"
+  s7_pointer _p;
+  s7_pointer cr, fill_rule;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_fill_rule", 1, cr, "cairo_t*");
+  fill_rule = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(fill_rule)) s7_wrong_type_arg_error(sc, "cairo_set_fill_rule", 2, fill_rule, "cairo_fill_rule_t");
+  cairo_set_fill_rule(s7_c_pointer(cr), s7_integer(fill_rule));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_line_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_line_width "void cairo_set_line_width(cairo_t* cr, double width)"
+  s7_pointer _p;
+  s7_pointer cr, width;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_line_width", 1, cr, "cairo_t*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "cairo_set_line_width", 2, width, "double");
+  cairo_set_line_width(s7_c_pointer(cr), s7_real(width));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_line_cap(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_line_cap "void cairo_set_line_cap(cairo_t* cr, cairo_line_cap_t line_cap)"
+  s7_pointer _p;
+  s7_pointer cr, line_cap;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_line_cap", 1, cr, "cairo_t*");
+  line_cap = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(line_cap)) s7_wrong_type_arg_error(sc, "cairo_set_line_cap", 2, line_cap, "cairo_line_cap_t");
+  cairo_set_line_cap(s7_c_pointer(cr), s7_integer(line_cap));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_line_join(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_line_join "void cairo_set_line_join(cairo_t* cr, cairo_line_join_t line_join)"
+  s7_pointer _p;
+  s7_pointer cr, line_join;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_line_join", 1, cr, "cairo_t*");
+  line_join = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(line_join)) s7_wrong_type_arg_error(sc, "cairo_set_line_join", 2, line_join, "cairo_line_join_t");
+  cairo_set_line_join(s7_c_pointer(cr), s7_integer(line_join));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_dash(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_dash "void cairo_set_dash(cairo_t* cr, gdouble* dashes, int num_dashes, double offset)"
+  s7_pointer _p;
+  s7_pointer cr, dashes, num_dashes, offset;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_dash", 1, cr, "cairo_t*");
+  dashes = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dashes, gdouble__sym)) s7_wrong_type_arg_error(sc, "cairo_set_dash", 2, dashes, "gdouble*");
+  num_dashes = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(num_dashes)) s7_wrong_type_arg_error(sc, "cairo_set_dash", 3, num_dashes, "int");
+  offset = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(offset)) s7_wrong_type_arg_error(sc, "cairo_set_dash", 4, offset, "double");
+  cairo_set_dash(s7_c_pointer(cr), s7_c_pointer(dashes), s7_integer(num_dashes), s7_real(offset));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_miter_limit(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_miter_limit "void cairo_set_miter_limit(cairo_t* cr, double limit)"
+  s7_pointer _p;
+  s7_pointer cr, limit;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_miter_limit", 1, cr, "cairo_t*");
+  limit = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(limit)) s7_wrong_type_arg_error(sc, "cairo_set_miter_limit", 2, limit, "double");
+  cairo_set_miter_limit(s7_c_pointer(cr), s7_real(limit));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_translate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_translate "void cairo_translate(cairo_t* cr, double tx, double ty)"
+  s7_pointer _p;
+  s7_pointer cr, tx, ty;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_translate", 1, cr, "cairo_t*");
+  tx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(tx)) s7_wrong_type_arg_error(sc, "cairo_translate", 2, tx, "double");
+  ty = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(ty)) s7_wrong_type_arg_error(sc, "cairo_translate", 3, ty, "double");
+  cairo_translate(s7_c_pointer(cr), s7_real(tx), s7_real(ty));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_scale(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scale "void cairo_scale(cairo_t* cr, double sx, double sy)"
+  s7_pointer _p;
+  s7_pointer cr, sx, sy;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scale", 1, cr, "cairo_t*");
+  sx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(sx)) s7_wrong_type_arg_error(sc, "cairo_scale", 2, sx, "double");
+  sy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(sy)) s7_wrong_type_arg_error(sc, "cairo_scale", 3, sy, "double");
+  cairo_scale(s7_c_pointer(cr), s7_real(sx), s7_real(sy));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_rotate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_rotate "void cairo_rotate(cairo_t* cr, double angle)"
+  s7_pointer _p;
+  s7_pointer cr, angle;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_rotate", 1, cr, "cairo_t*");
+  angle = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(angle)) s7_wrong_type_arg_error(sc, "cairo_rotate", 2, angle, "double");
+  cairo_rotate(s7_c_pointer(cr), s7_real(angle));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_transform(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_transform "void cairo_transform(cairo_t* cr, cairo_matrix_t* matrix)"
+  s7_pointer _p;
+  s7_pointer cr, matrix;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_transform", 1, cr, "cairo_t*");
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_transform", 2, matrix, "cairo_matrix_t*");
+  cairo_transform(s7_c_pointer(cr), s7_c_pointer(matrix));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_matrix(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_matrix "void cairo_set_matrix(cairo_t* cr, cairo_matrix_t* matrix)"
+  s7_pointer _p;
+  s7_pointer cr, matrix;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_matrix", 1, cr, "cairo_t*");
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_matrix", 2, matrix, "cairo_matrix_t*");
+  cairo_set_matrix(s7_c_pointer(cr), s7_c_pointer(matrix));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_identity_matrix(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_identity_matrix "void cairo_identity_matrix(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_identity_matrix", 1, cr, "cairo_t*");
+  cairo_identity_matrix(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_user_to_device(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_user_to_device "void cairo_user_to_device(cairo_t* cr, gdouble* [x], gdouble* [y])"
+  s7_pointer _p;
+  s7_pointer cr;
+  gdouble ref_x;
+  gdouble ref_y;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_user_to_device", 1, cr, "cairo_t*");
+  cairo_user_to_device(s7_c_pointer(cr), &ref_x, &ref_y);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_x), s7_make_real(sc, ref_y)));
+}
+
+static s7_pointer lg_cairo_user_to_device_distance(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_user_to_device_distance "void cairo_user_to_device_distance(cairo_t* cr, gdouble* [dx], \
+gdouble* [dy])"
+  s7_pointer _p;
+  s7_pointer cr;
+  gdouble ref_dx;
+  gdouble ref_dy;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_user_to_device_distance", 1, cr, "cairo_t*");
+  cairo_user_to_device_distance(s7_c_pointer(cr), &ref_dx, &ref_dy);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_dx), s7_make_real(sc, ref_dy)));
+}
+
+static s7_pointer lg_cairo_device_to_user(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_device_to_user "void cairo_device_to_user(cairo_t* cr, gdouble* [x], gdouble* [y])"
+  s7_pointer _p;
+  s7_pointer cr;
+  gdouble ref_x;
+  gdouble ref_y;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_device_to_user", 1, cr, "cairo_t*");
+  cairo_device_to_user(s7_c_pointer(cr), &ref_x, &ref_y);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_x), s7_make_real(sc, ref_y)));
+}
+
+static s7_pointer lg_cairo_device_to_user_distance(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_device_to_user_distance "void cairo_device_to_user_distance(cairo_t* cr, gdouble* [dx], \
+gdouble* [dy])"
+  s7_pointer _p;
+  s7_pointer cr;
+  gdouble ref_dx;
+  gdouble ref_dy;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_device_to_user_distance", 1, cr, "cairo_t*");
+  cairo_device_to_user_distance(s7_c_pointer(cr), &ref_dx, &ref_dy);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_dx), s7_make_real(sc, ref_dy)));
+}
+
+static s7_pointer lg_cairo_new_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_new_path "void cairo_new_path(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_new_path", 1, cr, "cairo_t*");
+  cairo_new_path(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_move_to(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_move_to "void cairo_move_to(cairo_t* cr, double x, double y)"
+  s7_pointer _p;
+  s7_pointer cr, x, y;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_move_to", 1, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "cairo_move_to", 2, x, "double");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "cairo_move_to", 3, y, "double");
+  cairo_move_to(s7_c_pointer(cr), s7_real(x), s7_real(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_new_sub_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_new_sub_path "void cairo_new_sub_path(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_new_sub_path", 1, cr, "cairo_t*");
+  cairo_new_sub_path(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_line_to(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_line_to "void cairo_line_to(cairo_t* cr, double x, double y)"
+  s7_pointer _p;
+  s7_pointer cr, x, y;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_line_to", 1, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "cairo_line_to", 2, x, "double");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "cairo_line_to", 3, y, "double");
+  cairo_line_to(s7_c_pointer(cr), s7_real(x), s7_real(y));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_curve_to(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_curve_to "void cairo_curve_to(cairo_t* cr, double x1, double y1, double x2, double y2, \
+double x3, double y3)"
+  s7_pointer _p;
+  s7_pointer cr, x1, y1, x2, y2, x3, y3;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_curve_to", 1, cr, "cairo_t*");
+  x1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x1)) s7_wrong_type_arg_error(sc, "cairo_curve_to", 2, x1, "double");
+  y1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y1)) s7_wrong_type_arg_error(sc, "cairo_curve_to", 3, y1, "double");
+  x2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x2)) s7_wrong_type_arg_error(sc, "cairo_curve_to", 4, x2, "double");
+  y2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y2)) s7_wrong_type_arg_error(sc, "cairo_curve_to", 5, y2, "double");
+  x3 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x3)) s7_wrong_type_arg_error(sc, "cairo_curve_to", 6, x3, "double");
+  y3 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y3)) s7_wrong_type_arg_error(sc, "cairo_curve_to", 7, y3, "double");
+  cairo_curve_to(s7_c_pointer(cr), s7_real(x1), s7_real(y1), s7_real(x2), s7_real(y2), s7_real(x3), s7_real(y3));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_arc(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_arc "void cairo_arc(cairo_t* cr, double xc, double yc, double radius, double angle1, \
+double angle2)"
+  s7_pointer _p;
+  s7_pointer cr, xc, yc, radius, angle1, angle2;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_arc", 1, cr, "cairo_t*");
+  xc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xc)) s7_wrong_type_arg_error(sc, "cairo_arc", 2, xc, "double");
+  yc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(yc)) s7_wrong_type_arg_error(sc, "cairo_arc", 3, yc, "double");
+  radius = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(radius)) s7_wrong_type_arg_error(sc, "cairo_arc", 4, radius, "double");
+  angle1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(angle1)) s7_wrong_type_arg_error(sc, "cairo_arc", 5, angle1, "double");
+  angle2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(angle2)) s7_wrong_type_arg_error(sc, "cairo_arc", 6, angle2, "double");
+  cairo_arc(s7_c_pointer(cr), s7_real(xc), s7_real(yc), s7_real(radius), s7_real(angle1), s7_real(angle2));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_arc_negative(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_arc_negative "void cairo_arc_negative(cairo_t* cr, double xc, double yc, double radius, \
+double angle1, double angle2)"
+  s7_pointer _p;
+  s7_pointer cr, xc, yc, radius, angle1, angle2;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_arc_negative", 1, cr, "cairo_t*");
+  xc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xc)) s7_wrong_type_arg_error(sc, "cairo_arc_negative", 2, xc, "double");
+  yc = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(yc)) s7_wrong_type_arg_error(sc, "cairo_arc_negative", 3, yc, "double");
+  radius = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(radius)) s7_wrong_type_arg_error(sc, "cairo_arc_negative", 4, radius, "double");
+  angle1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(angle1)) s7_wrong_type_arg_error(sc, "cairo_arc_negative", 5, angle1, "double");
+  angle2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(angle2)) s7_wrong_type_arg_error(sc, "cairo_arc_negative", 6, angle2, "double");
+  cairo_arc_negative(s7_c_pointer(cr), s7_real(xc), s7_real(yc), s7_real(radius), s7_real(angle1), s7_real(angle2));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_rel_move_to(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_rel_move_to "void cairo_rel_move_to(cairo_t* cr, double dx, double dy)"
+  s7_pointer _p;
+  s7_pointer cr, dx, dy;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_rel_move_to", 1, cr, "cairo_t*");
+  dx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(dx)) s7_wrong_type_arg_error(sc, "cairo_rel_move_to", 2, dx, "double");
+  dy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(dy)) s7_wrong_type_arg_error(sc, "cairo_rel_move_to", 3, dy, "double");
+  cairo_rel_move_to(s7_c_pointer(cr), s7_real(dx), s7_real(dy));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_rel_line_to(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_rel_line_to "void cairo_rel_line_to(cairo_t* cr, double dx, double dy)"
+  s7_pointer _p;
+  s7_pointer cr, dx, dy;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_rel_line_to", 1, cr, "cairo_t*");
+  dx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(dx)) s7_wrong_type_arg_error(sc, "cairo_rel_line_to", 2, dx, "double");
+  dy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(dy)) s7_wrong_type_arg_error(sc, "cairo_rel_line_to", 3, dy, "double");
+  cairo_rel_line_to(s7_c_pointer(cr), s7_real(dx), s7_real(dy));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_rel_curve_to(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_rel_curve_to "void cairo_rel_curve_to(cairo_t* cr, double dx1, double dy1, double dx2, \
+double dy2, double dx3, double dy3)"
+  s7_pointer _p;
+  s7_pointer cr, dx1, dy1, dx2, dy2, dx3, dy3;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_rel_curve_to", 1, cr, "cairo_t*");
+  dx1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(dx1)) s7_wrong_type_arg_error(sc, "cairo_rel_curve_to", 2, dx1, "double");
+  dy1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(dy1)) s7_wrong_type_arg_error(sc, "cairo_rel_curve_to", 3, dy1, "double");
+  dx2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(dx2)) s7_wrong_type_arg_error(sc, "cairo_rel_curve_to", 4, dx2, "double");
+  dy2 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(dy2)) s7_wrong_type_arg_error(sc, "cairo_rel_curve_to", 5, dy2, "double");
+  dx3 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(dx3)) s7_wrong_type_arg_error(sc, "cairo_rel_curve_to", 6, dx3, "double");
+  dy3 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(dy3)) s7_wrong_type_arg_error(sc, "cairo_rel_curve_to", 7, dy3, "double");
+  cairo_rel_curve_to(s7_c_pointer(cr), s7_real(dx1), s7_real(dy1), s7_real(dx2), s7_real(dy2), s7_real(dx3), s7_real(dy3));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_rectangle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_rectangle "void cairo_rectangle(cairo_t* cr, double x, double y, double width, double height)"
+  s7_pointer _p;
+  s7_pointer cr, x, y, width, height;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_rectangle", 1, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "cairo_rectangle", 2, x, "double");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "cairo_rectangle", 3, y, "double");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "cairo_rectangle", 4, width, "double");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "cairo_rectangle", 5, height, "double");
+  cairo_rectangle(s7_c_pointer(cr), s7_real(x), s7_real(y), s7_real(width), s7_real(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_close_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_close_path "void cairo_close_path(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_close_path", 1, cr, "cairo_t*");
+  cairo_close_path(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_paint(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_paint "void cairo_paint(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_paint", 1, cr, "cairo_t*");
+  cairo_paint(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_paint_with_alpha(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_paint_with_alpha "void cairo_paint_with_alpha(cairo_t* cr, double alpha)"
+  s7_pointer _p;
+  s7_pointer cr, alpha;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_paint_with_alpha", 1, cr, "cairo_t*");
+  alpha = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(alpha)) s7_wrong_type_arg_error(sc, "cairo_paint_with_alpha", 2, alpha, "double");
+  cairo_paint_with_alpha(s7_c_pointer(cr), s7_real(alpha));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_mask(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_mask "void cairo_mask(cairo_t* cr, cairo_pattern_t* pattern)"
+  s7_pointer _p;
+  s7_pointer cr, pattern;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_mask", 1, cr, "cairo_t*");
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_mask", 2, pattern, "cairo_pattern_t*");
+  cairo_mask(s7_c_pointer(cr), s7_c_pointer(pattern));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_mask_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_mask_surface "void cairo_mask_surface(cairo_t* cr, cairo_surface_t* surface, double surface_x, \
+double surface_y)"
+  s7_pointer _p;
+  s7_pointer cr, surface, surface_x, surface_y;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_mask_surface", 1, cr, "cairo_t*");
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_mask_surface", 2, surface, "cairo_surface_t*");
+  surface_x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(surface_x)) s7_wrong_type_arg_error(sc, "cairo_mask_surface", 3, surface_x, "double");
+  surface_y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(surface_y)) s7_wrong_type_arg_error(sc, "cairo_mask_surface", 4, surface_y, "double");
+  cairo_mask_surface(s7_c_pointer(cr), s7_c_pointer(surface), s7_real(surface_x), s7_real(surface_y));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_stroke(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_stroke "void cairo_stroke(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_stroke", 1, cr, "cairo_t*");
+  cairo_stroke(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_stroke_preserve(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_stroke_preserve "void cairo_stroke_preserve(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_stroke_preserve", 1, cr, "cairo_t*");
+  cairo_stroke_preserve(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_fill(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_fill "void cairo_fill(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_fill", 1, cr, "cairo_t*");
+  cairo_fill(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_fill_preserve(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_fill_preserve "void cairo_fill_preserve(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_fill_preserve", 1, cr, "cairo_t*");
+  cairo_fill_preserve(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_copy_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_copy_page "void cairo_copy_page(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_copy_page", 1, cr, "cairo_t*");
+  cairo_copy_page(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_show_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_show_page "void cairo_show_page(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_show_page", 1, cr, "cairo_t*");
+  cairo_show_page(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_in_stroke(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_in_stroke "bool cairo_in_stroke(cairo_t* cr, double x, double y)"
+  s7_pointer _p;
+  s7_pointer cr, x, y;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_in_stroke", 1, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "cairo_in_stroke", 2, x, "double");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "cairo_in_stroke", 3, y, "double");
+  return(s7_make_boolean(sc, cairo_in_stroke(s7_c_pointer(cr), s7_real(x), s7_real(y))));
+}
+
+static s7_pointer lg_cairo_in_fill(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_in_fill "bool cairo_in_fill(cairo_t* cr, double x, double y)"
+  s7_pointer _p;
+  s7_pointer cr, x, y;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_in_fill", 1, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "cairo_in_fill", 2, x, "double");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "cairo_in_fill", 3, y, "double");
+  return(s7_make_boolean(sc, cairo_in_fill(s7_c_pointer(cr), s7_real(x), s7_real(y))));
+}
+
+static s7_pointer lg_cairo_reset_clip(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_reset_clip "void cairo_reset_clip(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_reset_clip", 1, cr, "cairo_t*");
+  cairo_reset_clip(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_clip(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_clip "void cairo_clip(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_clip", 1, cr, "cairo_t*");
+  cairo_clip(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_clip_preserve(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_clip_preserve "void cairo_clip_preserve(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_clip_preserve", 1, cr, "cairo_t*");
+  cairo_clip_preserve(s7_c_pointer(cr));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_font_options_create(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_create "cairo_font_options_t* cairo_font_options_create( void)"
+  return(s7_make_type_with_c_pointer(sc, cairo_font_options_t__sym, cairo_font_options_create()));
+}
+
+static s7_pointer lg_cairo_font_options_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_copy "cairo_font_options_t* cairo_font_options_copy(cairo_font_options_t* original)"
+  s7_pointer original;
+  original = s7_car(args);
+  if (!s7_is_c_pointer_of_type(original, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_copy", 1, original, "cairo_font_options_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_font_options_t__sym, cairo_font_options_copy(s7_c_pointer(original))));
+}
+
+static s7_pointer lg_cairo_font_options_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_destroy "void cairo_font_options_destroy(cairo_font_options_t* options)"
+  s7_pointer options;
+  options = s7_car(args);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_destroy", 1, options, "cairo_font_options_t*");
+  cairo_font_options_destroy(s7_c_pointer(options));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_font_options_status(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_status "cairo_status_t cairo_font_options_status(cairo_font_options_t* options)"
+  s7_pointer options;
+  options = s7_car(args);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_status", 1, options, "cairo_font_options_t*");
+  return(s7_make_integer(sc, cairo_font_options_status(s7_c_pointer(options))));
+}
+
+static s7_pointer lg_cairo_font_options_merge(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_merge "void cairo_font_options_merge(cairo_font_options_t* options, cairo_font_options_t* other)"
+  s7_pointer _p;
+  s7_pointer options, other;
+  _p = args;
+  options = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_merge", 1, options, "cairo_font_options_t*");
+  other = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(other, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_merge", 2, other, "cairo_font_options_t*");
+  cairo_font_options_merge(s7_c_pointer(options), s7_c_pointer(other));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_font_options_equal(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_equal "bool cairo_font_options_equal(cairo_font_options_t* options, cairo_font_options_t* other)"
+  s7_pointer _p;
+  s7_pointer options, other;
+  _p = args;
+  options = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_equal", 1, options, "cairo_font_options_t*");
+  other = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(other, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_equal", 2, other, "cairo_font_options_t*");
+  return(s7_make_boolean(sc, cairo_font_options_equal(s7_c_pointer(options), s7_c_pointer(other))));
+}
+
+static s7_pointer lg_cairo_font_options_hash(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_hash "gulong cairo_font_options_hash(cairo_font_options_t* options)"
+  s7_pointer options;
+  options = s7_car(args);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_hash", 1, options, "cairo_font_options_t*");
+  return(s7_make_integer(sc, cairo_font_options_hash(s7_c_pointer(options))));
+}
+
+static s7_pointer lg_cairo_font_options_set_antialias(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_set_antialias "void cairo_font_options_set_antialias(cairo_font_options_t* options, \
+cairo_antialias_t antialias)"
+  s7_pointer _p;
+  s7_pointer options, antialias;
+  _p = args;
+  options = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_set_antialias", 1, options, "cairo_font_options_t*");
+  antialias = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(antialias)) s7_wrong_type_arg_error(sc, "cairo_font_options_set_antialias", 2, antialias, "cairo_antialias_t");
+  cairo_font_options_set_antialias(s7_c_pointer(options), s7_integer(antialias));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_font_options_get_antialias(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_get_antialias "cairo_antialias_t cairo_font_options_get_antialias(cairo_font_options_t* options)"
+  s7_pointer options;
+  options = s7_car(args);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_get_antialias", 1, options, "cairo_font_options_t*");
+  return(s7_make_integer(sc, cairo_font_options_get_antialias(s7_c_pointer(options))));
+}
+
+static s7_pointer lg_cairo_font_options_set_subpixel_order(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_set_subpixel_order "void cairo_font_options_set_subpixel_order(cairo_font_options_t* options, \
+cairo_subpixel_order_t subpixel_order)"
+  s7_pointer _p;
+  s7_pointer options, subpixel_order;
+  _p = args;
+  options = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_set_subpixel_order", 1, options, "cairo_font_options_t*");
+  subpixel_order = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(subpixel_order)) s7_wrong_type_arg_error(sc, "cairo_font_options_set_subpixel_order", 2, subpixel_order, "cairo_subpixel_order_t");
+  cairo_font_options_set_subpixel_order(s7_c_pointer(options), s7_integer(subpixel_order));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_font_options_get_subpixel_order(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_get_subpixel_order "cairo_subpixel_order_t cairo_font_options_get_subpixel_order(cairo_font_options_t* options)"
+  s7_pointer options;
+  options = s7_car(args);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_get_subpixel_order", 1, options, "cairo_font_options_t*");
+  return(s7_make_integer(sc, cairo_font_options_get_subpixel_order(s7_c_pointer(options))));
+}
+
+static s7_pointer lg_cairo_font_options_set_hint_style(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_set_hint_style "void cairo_font_options_set_hint_style(cairo_font_options_t* options, \
+cairo_hint_style_t hint_style)"
+  s7_pointer _p;
+  s7_pointer options, hint_style;
+  _p = args;
+  options = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_set_hint_style", 1, options, "cairo_font_options_t*");
+  hint_style = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hint_style)) s7_wrong_type_arg_error(sc, "cairo_font_options_set_hint_style", 2, hint_style, "cairo_hint_style_t");
+  cairo_font_options_set_hint_style(s7_c_pointer(options), s7_integer(hint_style));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_font_options_get_hint_style(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_get_hint_style "cairo_hint_style_t cairo_font_options_get_hint_style(cairo_font_options_t* options)"
+  s7_pointer options;
+  options = s7_car(args);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_get_hint_style", 1, options, "cairo_font_options_t*");
+  return(s7_make_integer(sc, cairo_font_options_get_hint_style(s7_c_pointer(options))));
+}
+
+static s7_pointer lg_cairo_font_options_set_hint_metrics(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_set_hint_metrics "void cairo_font_options_set_hint_metrics(cairo_font_options_t* options, \
+cairo_hint_metrics_t hint_metrics)"
+  s7_pointer _p;
+  s7_pointer options, hint_metrics;
+  _p = args;
+  options = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_set_hint_metrics", 1, options, "cairo_font_options_t*");
+  hint_metrics = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(hint_metrics)) s7_wrong_type_arg_error(sc, "cairo_font_options_set_hint_metrics", 2, hint_metrics, "cairo_hint_metrics_t");
+  cairo_font_options_set_hint_metrics(s7_c_pointer(options), s7_integer(hint_metrics));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_font_options_get_hint_metrics(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_options_get_hint_metrics "cairo_hint_metrics_t cairo_font_options_get_hint_metrics(cairo_font_options_t* options)"
+  s7_pointer options;
+  options = s7_car(args);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_options_get_hint_metrics", 1, options, "cairo_font_options_t*");
+  return(s7_make_integer(sc, cairo_font_options_get_hint_metrics(s7_c_pointer(options))));
+}
+
+static s7_pointer lg_cairo_select_font_face(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_select_font_face "void cairo_select_font_face(cairo_t* cr, char* family, cairo_font_slant_t slant, \
+cairo_font_weight_t weight)"
+  s7_pointer _p;
+  s7_pointer cr, family, slant, weight;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_select_font_face", 1, cr, "cairo_t*");
+  family = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(family)) s7_wrong_type_arg_error(sc, "cairo_select_font_face", 2, family, "char*");
+  slant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(slant)) s7_wrong_type_arg_error(sc, "cairo_select_font_face", 3, slant, "cairo_font_slant_t");
+  weight = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(weight)) s7_wrong_type_arg_error(sc, "cairo_select_font_face", 4, weight, "cairo_font_weight_t");
+  cairo_select_font_face(s7_c_pointer(cr), (char*)s7_string(family), s7_integer(slant), s7_integer(weight));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_font_size(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_font_size "void cairo_set_font_size(cairo_t* cr, double size)"
+  s7_pointer _p;
+  s7_pointer cr, size;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_font_size", 1, cr, "cairo_t*");
+  size = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(size)) s7_wrong_type_arg_error(sc, "cairo_set_font_size", 2, size, "double");
+  cairo_set_font_size(s7_c_pointer(cr), s7_real(size));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_font_matrix(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_font_matrix "void cairo_set_font_matrix(cairo_t* cr, cairo_matrix_t* matrix)"
+  s7_pointer _p;
+  s7_pointer cr, matrix;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_font_matrix", 1, cr, "cairo_t*");
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_font_matrix", 2, matrix, "cairo_matrix_t*");
+  cairo_set_font_matrix(s7_c_pointer(cr), s7_c_pointer(matrix));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_get_font_matrix(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_font_matrix "void cairo_get_font_matrix(cairo_t* cr, cairo_matrix_t* matrix)"
+  s7_pointer _p;
+  s7_pointer cr, matrix;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_font_matrix", 1, cr, "cairo_t*");
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_font_matrix", 2, matrix, "cairo_matrix_t*");
+  cairo_get_font_matrix(s7_c_pointer(cr), s7_c_pointer(matrix));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_font_options(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_font_options "void cairo_set_font_options(cairo_t* cr, cairo_font_options_t* options)"
+  s7_pointer _p;
+  s7_pointer cr, options;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_font_options", 1, cr, "cairo_t*");
+  options = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_font_options", 2, options, "cairo_font_options_t*");
+  cairo_set_font_options(s7_c_pointer(cr), s7_c_pointer(options));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_get_font_options(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_font_options "void cairo_get_font_options(cairo_t* cr, cairo_font_options_t* options)"
+  s7_pointer _p;
+  s7_pointer cr, options;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_font_options", 1, cr, "cairo_t*");
+  options = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_font_options", 2, options, "cairo_font_options_t*");
+  cairo_get_font_options(s7_c_pointer(cr), s7_c_pointer(options));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_scaled_font(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_scaled_font "void cairo_set_scaled_font(cairo_t* cr, cairo_scaled_font_t* scaled_font)"
+  s7_pointer _p;
+  s7_pointer cr, scaled_font;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_scaled_font", 1, cr, "cairo_t*");
+  scaled_font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_scaled_font", 2, scaled_font, "cairo_scaled_font_t*");
+  cairo_set_scaled_font(s7_c_pointer(cr), s7_c_pointer(scaled_font));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_show_text(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_show_text "void cairo_show_text(cairo_t* cr, char* utf8)"
+  s7_pointer _p;
+  s7_pointer cr, utf8;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_show_text", 1, cr, "cairo_t*");
+  utf8 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(utf8)) s7_wrong_type_arg_error(sc, "cairo_show_text", 2, utf8, "char*");
+  cairo_show_text(s7_c_pointer(cr), (char*)s7_string(utf8));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_show_glyphs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_show_glyphs "void cairo_show_glyphs(cairo_t* cr, cairo_glyph_t* glyphs, int num_glyphs)"
+  s7_pointer _p;
+  s7_pointer cr, glyphs, num_glyphs;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_show_glyphs", 1, cr, "cairo_t*");
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, cairo_glyph_t__sym)) s7_wrong_type_arg_error(sc, "cairo_show_glyphs", 2, glyphs, "cairo_glyph_t*");
+  num_glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(num_glyphs)) s7_wrong_type_arg_error(sc, "cairo_show_glyphs", 3, num_glyphs, "int");
+  cairo_show_glyphs(s7_c_pointer(cr), s7_c_pointer(glyphs), s7_integer(num_glyphs));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_get_font_face(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_font_face "cairo_font_face_t* cairo_get_font_face(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_font_face", 1, cr, "cairo_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_font_face_t__sym, cairo_get_font_face(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_font_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_extents "void cairo_font_extents(cairo_t* cr, cairo_font_extents_t* extents)"
+  s7_pointer _p;
+  s7_pointer cr, extents;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_extents", 1, cr, "cairo_t*");
+  extents = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(extents, cairo_font_extents_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_extents", 2, extents, "cairo_font_extents_t*");
+  cairo_font_extents(s7_c_pointer(cr), s7_c_pointer(extents));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_set_font_face(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_font_face "void cairo_set_font_face(cairo_t* cr, cairo_font_face_t* font_face)"
+  s7_pointer _p;
+  s7_pointer cr, font_face;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_font_face", 1, cr, "cairo_t*");
+  font_face = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font_face, cairo_font_face_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_font_face", 2, font_face, "cairo_font_face_t*");
+  cairo_set_font_face(s7_c_pointer(cr), s7_c_pointer(font_face));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_text_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_text_extents "void cairo_text_extents(cairo_t* cr, char* utf8, cairo_text_extents_t* extents)"
+  s7_pointer _p;
+  s7_pointer cr, utf8, extents;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_text_extents", 1, cr, "cairo_t*");
+  utf8 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(utf8)) s7_wrong_type_arg_error(sc, "cairo_text_extents", 2, utf8, "char*");
+  extents = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(extents, cairo_text_extents_t__sym)) s7_wrong_type_arg_error(sc, "cairo_text_extents", 3, extents, "cairo_text_extents_t*");
+  cairo_text_extents(s7_c_pointer(cr), (char*)s7_string(utf8), s7_c_pointer(extents));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_glyph_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_glyph_extents "void cairo_glyph_extents(cairo_t* cr, cairo_glyph_t* glyphs, int num_glyphs, \
+cairo_text_extents_t* extents)"
+  s7_pointer _p;
+  s7_pointer cr, glyphs, num_glyphs, extents;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_glyph_extents", 1, cr, "cairo_t*");
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, cairo_glyph_t__sym)) s7_wrong_type_arg_error(sc, "cairo_glyph_extents", 2, glyphs, "cairo_glyph_t*");
+  num_glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(num_glyphs)) s7_wrong_type_arg_error(sc, "cairo_glyph_extents", 3, num_glyphs, "int");
+  extents = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(extents, cairo_text_extents_t__sym)) s7_wrong_type_arg_error(sc, "cairo_glyph_extents", 4, extents, "cairo_text_extents_t*");
+  cairo_glyph_extents(s7_c_pointer(cr), s7_c_pointer(glyphs), s7_integer(num_glyphs), s7_c_pointer(extents));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_text_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_text_path "void cairo_text_path(cairo_t* cr, char* utf8)"
+  s7_pointer _p;
+  s7_pointer cr, utf8;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_text_path", 1, cr, "cairo_t*");
+  utf8 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(utf8)) s7_wrong_type_arg_error(sc, "cairo_text_path", 2, utf8, "char*");
+  cairo_text_path(s7_c_pointer(cr), (char*)s7_string(utf8));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_glyph_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_glyph_path "void cairo_glyph_path(cairo_t* cr, cairo_glyph_t* glyphs, int num_glyphs)"
+  s7_pointer _p;
+  s7_pointer cr, glyphs, num_glyphs;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_glyph_path", 1, cr, "cairo_t*");
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, cairo_glyph_t__sym)) s7_wrong_type_arg_error(sc, "cairo_glyph_path", 2, glyphs, "cairo_glyph_t*");
+  num_glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(num_glyphs)) s7_wrong_type_arg_error(sc, "cairo_glyph_path", 3, num_glyphs, "int");
+  cairo_glyph_path(s7_c_pointer(cr), s7_c_pointer(glyphs), s7_integer(num_glyphs));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_font_face_reference(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_face_reference "cairo_font_face_t* cairo_font_face_reference(cairo_font_face_t* font_face)"
+  s7_pointer font_face;
+  font_face = s7_car(args);
+  if (!s7_is_c_pointer_of_type(font_face, cairo_font_face_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_face_reference", 1, font_face, "cairo_font_face_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_font_face_t__sym, cairo_font_face_reference(s7_c_pointer(font_face))));
+}
+
+static s7_pointer lg_cairo_font_face_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_face_destroy "void cairo_font_face_destroy(cairo_font_face_t* font_face)"
+  s7_pointer font_face;
+  font_face = s7_car(args);
+  if (!s7_is_c_pointer_of_type(font_face, cairo_font_face_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_face_destroy", 1, font_face, "cairo_font_face_t*");
+  cairo_font_face_destroy(s7_c_pointer(font_face));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_font_face_status(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_face_status "cairo_status_t cairo_font_face_status(cairo_font_face_t* font_face)"
+  s7_pointer font_face;
+  font_face = s7_car(args);
+  if (!s7_is_c_pointer_of_type(font_face, cairo_font_face_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_face_status", 1, font_face, "cairo_font_face_t*");
+  return(s7_make_integer(sc, cairo_font_face_status(s7_c_pointer(font_face))));
+}
+
+static s7_pointer lg_cairo_font_face_get_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_face_get_user_data "gpointer cairo_font_face_get_user_data(cairo_font_face_t* font_face, \
+cairo_user_data_key_t* key)"
+  s7_pointer _p;
+  s7_pointer font_face, key;
+  _p = args;
+  font_face = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font_face, cairo_font_face_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_face_get_user_data", 1, font_face, "cairo_font_face_t*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(key, cairo_user_data_key_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_face_get_user_data", 2, key, "cairo_user_data_key_t*");
+  return(s7_make_type_with_c_pointer(sc, gpointer_sym, cairo_font_face_get_user_data(s7_c_pointer(font_face), s7_c_pointer(key))));
+}
+
+static s7_pointer lg_cairo_font_face_set_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_face_set_user_data "cairo_status_t cairo_font_face_set_user_data(cairo_font_face_t* font_face, \
+cairo_user_data_key_t* key, gpointer user_data, cairo_destroy_func_t destroy)"
+  s7_pointer _p;
+  s7_pointer font_face, key, user_data, destroy;
+  _p = args;
+  font_face = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font_face, cairo_font_face_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_face_set_user_data", 1, font_face, "cairo_font_face_t*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(key, cairo_user_data_key_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_face_set_user_data", 2, key, "cairo_user_data_key_t*");
+  user_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(user_data, gpointer_sym)) s7_wrong_type_arg_error(sc, "cairo_font_face_set_user_data", 3, user_data, "gpointer");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, cairo_destroy_func_t_sym)) s7_wrong_type_arg_error(sc, "cairo_font_face_set_user_data", 4, destroy, "cairo_destroy_func_t");
+  return(s7_make_integer(sc, cairo_font_face_set_user_data(s7_c_pointer(font_face), s7_c_pointer(key), s7_c_pointer(user_data), s7_c_pointer(destroy))));
+}
+
+static s7_pointer lg_cairo_scaled_font_create(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_create "cairo_scaled_font_t* cairo_scaled_font_create(cairo_font_face_t* font_face, \
+cairo_matrix_t* font_matrix, cairo_matrix_t* ctm, cairo_font_options_t* options)"
+  s7_pointer _p;
+  s7_pointer font_face, font_matrix, ctm, options;
+  _p = args;
+  font_face = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font_face, cairo_font_face_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_create", 1, font_face, "cairo_font_face_t*");
+  font_matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font_matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_create", 2, font_matrix, "cairo_matrix_t*");
+  ctm = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ctm, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_create", 3, ctm, "cairo_matrix_t*");
+  options = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_create", 4, options, "cairo_font_options_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_scaled_font_t__sym, cairo_scaled_font_create(s7_c_pointer(font_face), s7_c_pointer(font_matrix), s7_c_pointer(ctm), s7_c_pointer(options))));
+}
+
+static s7_pointer lg_cairo_scaled_font_reference(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_reference "cairo_scaled_font_t* cairo_scaled_font_reference(cairo_scaled_font_t* scaled_font)"
+  s7_pointer scaled_font;
+  scaled_font = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_reference", 1, scaled_font, "cairo_scaled_font_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_scaled_font_t__sym, cairo_scaled_font_reference(s7_c_pointer(scaled_font))));
+}
+
+static s7_pointer lg_cairo_scaled_font_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_destroy "void cairo_scaled_font_destroy(cairo_scaled_font_t* scaled_font)"
+  s7_pointer scaled_font;
+  scaled_font = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_destroy", 1, scaled_font, "cairo_scaled_font_t*");
+  cairo_scaled_font_destroy(s7_c_pointer(scaled_font));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_scaled_font_status(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_status "cairo_status_t cairo_scaled_font_status(cairo_scaled_font_t* scaled_font)"
+  s7_pointer scaled_font;
+  scaled_font = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_status", 1, scaled_font, "cairo_scaled_font_t*");
+  return(s7_make_integer(sc, cairo_scaled_font_status(s7_c_pointer(scaled_font))));
+}
+
+static s7_pointer lg_cairo_scaled_font_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_extents "void cairo_scaled_font_extents(cairo_scaled_font_t* scaled_font, \
+cairo_font_extents_t* extents)"
+  s7_pointer _p;
+  s7_pointer scaled_font, extents;
+  _p = args;
+  scaled_font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_extents", 1, scaled_font, "cairo_scaled_font_t*");
+  extents = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(extents, cairo_font_extents_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_extents", 2, extents, "cairo_font_extents_t*");
+  cairo_scaled_font_extents(s7_c_pointer(scaled_font), s7_c_pointer(extents));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_scaled_font_text_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_text_extents "void cairo_scaled_font_text_extents(cairo_scaled_font_t* scaled_font, \
+char* utf8, cairo_text_extents_t* extents)"
+  s7_pointer _p;
+  s7_pointer scaled_font, utf8, extents;
+  _p = args;
+  scaled_font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_text_extents", 1, scaled_font, "cairo_scaled_font_t*");
+  utf8 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(utf8)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_text_extents", 2, utf8, "char*");
+  extents = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(extents, cairo_text_extents_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_text_extents", 3, extents, "cairo_text_extents_t*");
+  cairo_scaled_font_text_extents(s7_c_pointer(scaled_font), (char*)s7_string(utf8), s7_c_pointer(extents));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_scaled_font_glyph_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_glyph_extents "void cairo_scaled_font_glyph_extents(cairo_scaled_font_t* scaled_font, \
+cairo_glyph_t* glyphs, int num_glyphs, cairo_text_extents_t* extents)"
+  s7_pointer _p;
+  s7_pointer scaled_font, glyphs, num_glyphs, extents;
+  _p = args;
+  scaled_font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_glyph_extents", 1, scaled_font, "cairo_scaled_font_t*");
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, cairo_glyph_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_glyph_extents", 2, glyphs, "cairo_glyph_t*");
+  num_glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(num_glyphs)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_glyph_extents", 3, num_glyphs, "int");
+  extents = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(extents, cairo_text_extents_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_glyph_extents", 4, extents, "cairo_text_extents_t*");
+  cairo_scaled_font_glyph_extents(s7_c_pointer(scaled_font), s7_c_pointer(glyphs), s7_integer(num_glyphs), s7_c_pointer(extents));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_scaled_font_get_font_face(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_get_font_face "cairo_font_face_t* cairo_scaled_font_get_font_face(cairo_scaled_font_t* scaled_font)"
+  s7_pointer scaled_font;
+  scaled_font = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_get_font_face", 1, scaled_font, "cairo_scaled_font_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_font_face_t__sym, cairo_scaled_font_get_font_face(s7_c_pointer(scaled_font))));
+}
+
+static s7_pointer lg_cairo_scaled_font_get_font_matrix(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_get_font_matrix "void cairo_scaled_font_get_font_matrix(cairo_scaled_font_t* scaled_font, \
+cairo_matrix_t* font_matrix)"
+  s7_pointer _p;
+  s7_pointer scaled_font, font_matrix;
+  _p = args;
+  scaled_font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_get_font_matrix", 1, scaled_font, "cairo_scaled_font_t*");
+  font_matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(font_matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_get_font_matrix", 2, font_matrix, "cairo_matrix_t*");
+  cairo_scaled_font_get_font_matrix(s7_c_pointer(scaled_font), s7_c_pointer(font_matrix));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_scaled_font_get_ctm(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_get_ctm "void cairo_scaled_font_get_ctm(cairo_scaled_font_t* scaled_font, \
+cairo_matrix_t* ctm)"
+  s7_pointer _p;
+  s7_pointer scaled_font, ctm;
+  _p = args;
+  scaled_font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_get_ctm", 1, scaled_font, "cairo_scaled_font_t*");
+  ctm = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(ctm, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_get_ctm", 2, ctm, "cairo_matrix_t*");
+  cairo_scaled_font_get_ctm(s7_c_pointer(scaled_font), s7_c_pointer(ctm));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_scaled_font_get_font_options(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_get_font_options "void cairo_scaled_font_get_font_options(cairo_scaled_font_t* scaled_font, \
+cairo_font_options_t* options)"
+  s7_pointer _p;
+  s7_pointer scaled_font, options;
+  _p = args;
+  scaled_font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_get_font_options", 1, scaled_font, "cairo_scaled_font_t*");
+  options = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_get_font_options", 2, options, "cairo_font_options_t*");
+  cairo_scaled_font_get_font_options(s7_c_pointer(scaled_font), s7_c_pointer(options));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_get_operator(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_operator "cairo_operator_t cairo_get_operator(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_operator", 1, cr, "cairo_t*");
+  return(s7_make_integer(sc, cairo_get_operator(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_get_source(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_source "cairo_pattern_t* cairo_get_source(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_source", 1, cr, "cairo_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_pattern_t__sym, cairo_get_source(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_get_tolerance(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_tolerance "gdouble cairo_get_tolerance(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_tolerance", 1, cr, "cairo_t*");
+  return(s7_make_real(sc, cairo_get_tolerance(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_get_antialias(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_antialias "cairo_antialias_t cairo_get_antialias(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_antialias", 1, cr, "cairo_t*");
+  return(s7_make_integer(sc, cairo_get_antialias(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_get_current_point(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_current_point "void cairo_get_current_point(cairo_t* cr, gdouble* [x], gdouble* [y])"
+  s7_pointer _p;
+  s7_pointer cr;
+  gdouble ref_x;
+  gdouble ref_y;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_current_point", 1, cr, "cairo_t*");
+  cairo_get_current_point(s7_c_pointer(cr), &ref_x, &ref_y);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_x), s7_make_real(sc, ref_y)));
+}
+
+static s7_pointer lg_cairo_get_fill_rule(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_fill_rule "cairo_fill_rule_t cairo_get_fill_rule(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_fill_rule", 1, cr, "cairo_t*");
+  return(s7_make_integer(sc, cairo_get_fill_rule(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_get_line_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_line_width "gdouble cairo_get_line_width(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_line_width", 1, cr, "cairo_t*");
+  return(s7_make_real(sc, cairo_get_line_width(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_get_line_cap(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_line_cap "cairo_line_cap_t cairo_get_line_cap(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_line_cap", 1, cr, "cairo_t*");
+  return(s7_make_integer(sc, cairo_get_line_cap(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_get_line_join(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_line_join "cairo_line_join_t cairo_get_line_join(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_line_join", 1, cr, "cairo_t*");
+  return(s7_make_integer(sc, cairo_get_line_join(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_get_miter_limit(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_miter_limit "gdouble cairo_get_miter_limit(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_miter_limit", 1, cr, "cairo_t*");
+  return(s7_make_real(sc, cairo_get_miter_limit(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_get_matrix(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_matrix "void cairo_get_matrix(cairo_t* cr, cairo_matrix_t* matrix)"
+  s7_pointer _p;
+  s7_pointer cr, matrix;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_matrix", 1, cr, "cairo_t*");
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_matrix", 2, matrix, "cairo_matrix_t*");
+  cairo_get_matrix(s7_c_pointer(cr), s7_c_pointer(matrix));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_get_target(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_target "cairo_surface_t* cairo_get_target(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_target", 1, cr, "cairo_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, cairo_get_target(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_get_group_target(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_group_target "cairo_surface_t* cairo_get_group_target(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_group_target", 1, cr, "cairo_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, cairo_get_group_target(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_copy_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_copy_path "cairo_path_t* cairo_copy_path(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_copy_path", 1, cr, "cairo_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_path_t__sym, cairo_copy_path(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_copy_path_flat(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_copy_path_flat "cairo_path_t* cairo_copy_path_flat(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_copy_path_flat", 1, cr, "cairo_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_path_t__sym, cairo_copy_path_flat(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_append_path(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_append_path "void cairo_append_path(cairo_t* cr, cairo_path_t* path)"
+  s7_pointer _p;
+  s7_pointer cr, path;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_append_path", 1, cr, "cairo_t*");
+  path = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(path, cairo_path_t__sym)) s7_wrong_type_arg_error(sc, "cairo_append_path", 2, path, "cairo_path_t*");
+  cairo_append_path(s7_c_pointer(cr), s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_path_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_path_destroy "void cairo_path_destroy(cairo_path_t* path)"
+  s7_pointer path;
+  path = s7_car(args);
+  if (!s7_is_c_pointer_of_type(path, cairo_path_t__sym)) s7_wrong_type_arg_error(sc, "cairo_path_destroy", 1, path, "cairo_path_t*");
+  cairo_path_destroy(s7_c_pointer(path));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_status(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_status "cairo_status_t cairo_status(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_status", 1, cr, "cairo_t*");
+  return(s7_make_integer(sc, cairo_status(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_status_to_string(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_status_to_string "char* cairo_status_to_string(cairo_status_t status)"
+  s7_pointer status;
+  status = s7_car(args);
+  if (!s7_is_integer(status)) s7_wrong_type_arg_error(sc, "cairo_status_to_string", 1, status, "cairo_status_t");
+  return(s7_make_string(sc, cairo_status_to_string(s7_integer(status))));
+}
+
+static s7_pointer lg_cairo_surface_create_similar(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_create_similar "cairo_surface_t* cairo_surface_create_similar(cairo_surface_t* other, \
+cairo_content_t content, int width, int height)"
+  s7_pointer _p;
+  s7_pointer other, content, width, height;
+  _p = args;
+  other = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(other, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_create_similar", 1, other, "cairo_surface_t*");
+  content = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(content)) s7_wrong_type_arg_error(sc, "cairo_surface_create_similar", 2, content, "cairo_content_t");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "cairo_surface_create_similar", 3, width, "int");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "cairo_surface_create_similar", 4, height, "int");
+  return(s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, cairo_surface_create_similar(s7_c_pointer(other), s7_integer(content), s7_integer(width), s7_integer(height))));
+}
+
+static s7_pointer lg_cairo_surface_reference(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_reference "cairo_surface_t* cairo_surface_reference(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_reference", 1, surface, "cairo_surface_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, cairo_surface_reference(s7_c_pointer(surface))));
+}
+
+static s7_pointer lg_cairo_surface_finish(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_finish "void cairo_surface_finish(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_finish", 1, surface, "cairo_surface_t*");
+  cairo_surface_finish(s7_c_pointer(surface));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_surface_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_destroy "void cairo_surface_destroy(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_destroy", 1, surface, "cairo_surface_t*");
+  cairo_surface_destroy(s7_c_pointer(surface));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_surface_status(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_status "cairo_status_t cairo_surface_status(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_status", 1, surface, "cairo_surface_t*");
+  return(s7_make_integer(sc, cairo_surface_status(s7_c_pointer(surface))));
+}
+
+static s7_pointer lg_cairo_surface_get_content(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_get_content "cairo_content_t cairo_surface_get_content(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_get_content", 1, surface, "cairo_surface_t*");
+  return(s7_make_integer(sc, cairo_surface_get_content(s7_c_pointer(surface))));
+}
+
+static s7_pointer lg_cairo_surface_get_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_get_user_data "gpointer cairo_surface_get_user_data(cairo_surface_t* surface, \
+cairo_user_data_key_t* key)"
+  s7_pointer _p;
+  s7_pointer surface, key;
+  _p = args;
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_get_user_data", 1, surface, "cairo_surface_t*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(key, cairo_user_data_key_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_get_user_data", 2, key, "cairo_user_data_key_t*");
+  return(s7_make_type_with_c_pointer(sc, gpointer_sym, cairo_surface_get_user_data(s7_c_pointer(surface), s7_c_pointer(key))));
+}
+
+static s7_pointer lg_cairo_surface_set_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_set_user_data "cairo_status_t cairo_surface_set_user_data(cairo_surface_t* surface, \
+cairo_user_data_key_t* key, gpointer user_data, cairo_destroy_func_t destroy)"
+  s7_pointer _p;
+  s7_pointer surface, key, user_data, destroy;
+  _p = args;
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_set_user_data", 1, surface, "cairo_surface_t*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(key, cairo_user_data_key_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_set_user_data", 2, key, "cairo_user_data_key_t*");
+  user_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(user_data, gpointer_sym)) s7_wrong_type_arg_error(sc, "cairo_surface_set_user_data", 3, user_data, "gpointer");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, cairo_destroy_func_t_sym)) s7_wrong_type_arg_error(sc, "cairo_surface_set_user_data", 4, destroy, "cairo_destroy_func_t");
+  return(s7_make_integer(sc, cairo_surface_set_user_data(s7_c_pointer(surface), s7_c_pointer(key), s7_c_pointer(user_data), s7_c_pointer(destroy))));
+}
+
+static s7_pointer lg_cairo_surface_get_font_options(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_get_font_options "void cairo_surface_get_font_options(cairo_surface_t* surface, \
+cairo_font_options_t* options)"
+  s7_pointer _p;
+  s7_pointer surface, options;
+  _p = args;
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_get_font_options", 1, surface, "cairo_surface_t*");
+  options = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(options, cairo_font_options_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_get_font_options", 2, options, "cairo_font_options_t*");
+  cairo_surface_get_font_options(s7_c_pointer(surface), s7_c_pointer(options));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_surface_flush(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_flush "void cairo_surface_flush(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_flush", 1, surface, "cairo_surface_t*");
+  cairo_surface_flush(s7_c_pointer(surface));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_surface_mark_dirty(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_mark_dirty "void cairo_surface_mark_dirty(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_mark_dirty", 1, surface, "cairo_surface_t*");
+  cairo_surface_mark_dirty(s7_c_pointer(surface));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_surface_mark_dirty_rectangle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_mark_dirty_rectangle "void cairo_surface_mark_dirty_rectangle(cairo_surface_t* surface, \
+int x, int y, int width, int height)"
+  s7_pointer _p;
+  s7_pointer surface, x, y, width, height;
+  _p = args;
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_mark_dirty_rectangle", 1, surface, "cairo_surface_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "cairo_surface_mark_dirty_rectangle", 2, x, "int");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "cairo_surface_mark_dirty_rectangle", 3, y, "int");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "cairo_surface_mark_dirty_rectangle", 4, width, "int");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "cairo_surface_mark_dirty_rectangle", 5, height, "int");
+  cairo_surface_mark_dirty_rectangle(s7_c_pointer(surface), s7_integer(x), s7_integer(y), s7_integer(width), s7_integer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_surface_set_device_offset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_set_device_offset "void cairo_surface_set_device_offset(cairo_surface_t* surface, \
+double x_offset, double y_offset)"
+  s7_pointer _p;
+  s7_pointer surface, x_offset, y_offset;
+  _p = args;
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_set_device_offset", 1, surface, "cairo_surface_t*");
+  x_offset = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x_offset)) s7_wrong_type_arg_error(sc, "cairo_surface_set_device_offset", 2, x_offset, "double");
+  y_offset = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y_offset)) s7_wrong_type_arg_error(sc, "cairo_surface_set_device_offset", 3, y_offset, "double");
+  cairo_surface_set_device_offset(s7_c_pointer(surface), s7_real(x_offset), s7_real(y_offset));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_surface_get_device_offset(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_get_device_offset "void cairo_surface_get_device_offset(cairo_surface_t* surface, \
+gdouble* [x_offset], gdouble* [y_offset])"
+  s7_pointer _p;
+  s7_pointer surface;
+  gdouble ref_x_offset;
+  gdouble ref_y_offset;
+  _p = args;
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_get_device_offset", 1, surface, "cairo_surface_t*");
+  cairo_surface_get_device_offset(s7_c_pointer(surface), &ref_x_offset, &ref_y_offset);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_x_offset), s7_make_real(sc, ref_y_offset)));
+}
+
+static s7_pointer lg_cairo_surface_set_fallback_resolution(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_set_fallback_resolution "void cairo_surface_set_fallback_resolution(cairo_surface_t* surface, \
+double x_pixels_per_inch, double y_pixels_per_inch)"
+  s7_pointer _p;
+  s7_pointer surface, x_pixels_per_inch, y_pixels_per_inch;
+  _p = args;
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_set_fallback_resolution", 1, surface, "cairo_surface_t*");
+  x_pixels_per_inch = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x_pixels_per_inch)) s7_wrong_type_arg_error(sc, "cairo_surface_set_fallback_resolution", 2, x_pixels_per_inch, "double");
+  y_pixels_per_inch = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y_pixels_per_inch)) s7_wrong_type_arg_error(sc, "cairo_surface_set_fallback_resolution", 3, y_pixels_per_inch, "double");
+  cairo_surface_set_fallback_resolution(s7_c_pointer(surface), s7_real(x_pixels_per_inch), s7_real(y_pixels_per_inch));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_image_surface_create(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_image_surface_create "cairo_surface_t* cairo_image_surface_create(cairo_format_t format, \
+int width, int height)"
+  s7_pointer _p;
+  s7_pointer format, width, height;
+  _p = args;
+  format = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(format)) s7_wrong_type_arg_error(sc, "cairo_image_surface_create", 1, format, "cairo_format_t");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "cairo_image_surface_create", 2, width, "int");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "cairo_image_surface_create", 3, height, "int");
+  return(s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, cairo_image_surface_create(s7_integer(format), s7_integer(width), s7_integer(height))));
+}
+
+static s7_pointer lg_cairo_image_surface_create_for_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_image_surface_create_for_data "cairo_surface_t* cairo_image_surface_create_for_data(guchar* data, \
+cairo_format_t format, int width, int height, int stride)"
+  s7_pointer _p;
+  s7_pointer data, format, width, height, stride;
+  _p = args;
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, guchar__sym)) s7_wrong_type_arg_error(sc, "cairo_image_surface_create_for_data", 1, data, "guchar*");
+  format = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(format)) s7_wrong_type_arg_error(sc, "cairo_image_surface_create_for_data", 2, format, "cairo_format_t");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "cairo_image_surface_create_for_data", 3, width, "int");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(height)) s7_wrong_type_arg_error(sc, "cairo_image_surface_create_for_data", 4, height, "int");
+  stride = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(stride)) s7_wrong_type_arg_error(sc, "cairo_image_surface_create_for_data", 5, stride, "int");
+  return(s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, cairo_image_surface_create_for_data(s7_c_pointer(data), s7_integer(format), s7_integer(width), s7_integer(height), s7_integer(stride))));
+}
+
+static s7_pointer lg_cairo_image_surface_get_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_image_surface_get_data "guchar* cairo_image_surface_get_data(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_image_surface_get_data", 1, surface, "cairo_surface_t*");
+  return(s7_make_type_with_c_pointer(sc, guchar__sym, cairo_image_surface_get_data(s7_c_pointer(surface))));
+}
+
+static s7_pointer lg_cairo_image_surface_get_format(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_image_surface_get_format "cairo_format_t cairo_image_surface_get_format(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_image_surface_get_format", 1, surface, "cairo_surface_t*");
+  return(s7_make_integer(sc, cairo_image_surface_get_format(s7_c_pointer(surface))));
+}
+
+static s7_pointer lg_cairo_image_surface_get_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_image_surface_get_width "int cairo_image_surface_get_width(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_image_surface_get_width", 1, surface, "cairo_surface_t*");
+  return(s7_make_integer(sc, cairo_image_surface_get_width(s7_c_pointer(surface))));
+}
+
+static s7_pointer lg_cairo_image_surface_get_height(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_image_surface_get_height "int cairo_image_surface_get_height(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_image_surface_get_height", 1, surface, "cairo_surface_t*");
+  return(s7_make_integer(sc, cairo_image_surface_get_height(s7_c_pointer(surface))));
+}
+
+static s7_pointer lg_cairo_image_surface_get_stride(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_image_surface_get_stride "int cairo_image_surface_get_stride(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_image_surface_get_stride", 1, surface, "cairo_surface_t*");
+  return(s7_make_integer(sc, cairo_image_surface_get_stride(s7_c_pointer(surface))));
+}
+
+static s7_pointer lg_cairo_pattern_create_rgb(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_create_rgb "cairo_pattern_t* cairo_pattern_create_rgb(double red, double green, \
+double blue)"
+  s7_pointer _p;
+  s7_pointer red, green, blue;
+  _p = args;
+  red = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(red)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_rgb", 1, red, "double");
+  green = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(green)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_rgb", 2, green, "double");
+  blue = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(blue)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_rgb", 3, blue, "double");
+  return(s7_make_type_with_c_pointer(sc, cairo_pattern_t__sym, cairo_pattern_create_rgb(s7_real(red), s7_real(green), s7_real(blue))));
+}
+
+static s7_pointer lg_cairo_pattern_create_rgba(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_create_rgba "cairo_pattern_t* cairo_pattern_create_rgba(double red, double green, \
+double blue, double alpha)"
+  s7_pointer _p;
+  s7_pointer red, green, blue, alpha;
+  _p = args;
+  red = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(red)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_rgba", 1, red, "double");
+  green = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(green)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_rgba", 2, green, "double");
+  blue = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(blue)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_rgba", 3, blue, "double");
+  alpha = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(alpha)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_rgba", 4, alpha, "double");
+  return(s7_make_type_with_c_pointer(sc, cairo_pattern_t__sym, cairo_pattern_create_rgba(s7_real(red), s7_real(green), s7_real(blue), s7_real(alpha))));
+}
+
+static s7_pointer lg_cairo_pattern_create_for_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_create_for_surface "cairo_pattern_t* cairo_pattern_create_for_surface(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_for_surface", 1, surface, "cairo_surface_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_pattern_t__sym, cairo_pattern_create_for_surface(s7_c_pointer(surface))));
+}
+
+static s7_pointer lg_cairo_pattern_create_linear(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_create_linear "cairo_pattern_t* cairo_pattern_create_linear(double x0, double y0, \
+double x1, double y1)"
+  s7_pointer _p;
+  s7_pointer x0, y0, x1, y1;
+  _p = args;
+  x0 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x0)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_linear", 1, x0, "double");
+  y0 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y0)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_linear", 2, y0, "double");
+  x1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x1)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_linear", 3, x1, "double");
+  y1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y1)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_linear", 4, y1, "double");
+  return(s7_make_type_with_c_pointer(sc, cairo_pattern_t__sym, cairo_pattern_create_linear(s7_real(x0), s7_real(y0), s7_real(x1), s7_real(y1))));
+}
+
+static s7_pointer lg_cairo_pattern_create_radial(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_create_radial "cairo_pattern_t* cairo_pattern_create_radial(double cx0, double cy0, \
+double radius0, double cx1, double cy1, double radius1)"
+  s7_pointer _p;
+  s7_pointer cx0, cy0, radius0, cx1, cy1, radius1;
+  _p = args;
+  cx0 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(cx0)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_radial", 1, cx0, "double");
+  cy0 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(cy0)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_radial", 2, cy0, "double");
+  radius0 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(radius0)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_radial", 3, radius0, "double");
+  cx1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(cx1)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_radial", 4, cx1, "double");
+  cy1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(cy1)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_radial", 5, cy1, "double");
+  radius1 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(radius1)) s7_wrong_type_arg_error(sc, "cairo_pattern_create_radial", 6, radius1, "double");
+  return(s7_make_type_with_c_pointer(sc, cairo_pattern_t__sym, cairo_pattern_create_radial(s7_real(cx0), s7_real(cy0), s7_real(radius0), s7_real(cx1), s7_real(cy1), s7_real(radius1))));
+}
+
+static s7_pointer lg_cairo_pattern_reference(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_reference "cairo_pattern_t* cairo_pattern_reference(cairo_pattern_t* pattern)"
+  s7_pointer pattern;
+  pattern = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_reference", 1, pattern, "cairo_pattern_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_pattern_t__sym, cairo_pattern_reference(s7_c_pointer(pattern))));
+}
+
+static s7_pointer lg_cairo_pattern_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_destroy "void cairo_pattern_destroy(cairo_pattern_t* pattern)"
+  s7_pointer pattern;
+  pattern = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_destroy", 1, pattern, "cairo_pattern_t*");
+  cairo_pattern_destroy(s7_c_pointer(pattern));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_pattern_status(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_status "cairo_status_t cairo_pattern_status(cairo_pattern_t* pattern)"
+  s7_pointer pattern;
+  pattern = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_status", 1, pattern, "cairo_pattern_t*");
+  return(s7_make_integer(sc, cairo_pattern_status(s7_c_pointer(pattern))));
+}
+
+static s7_pointer lg_cairo_pattern_add_color_stop_rgb(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_add_color_stop_rgb "void cairo_pattern_add_color_stop_rgb(cairo_pattern_t* pattern, \
+double offset, double red, double green, double blue)"
+  s7_pointer _p;
+  s7_pointer pattern, offset, red, green, blue;
+  _p = args;
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_add_color_stop_rgb", 1, pattern, "cairo_pattern_t*");
+  offset = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(offset)) s7_wrong_type_arg_error(sc, "cairo_pattern_add_color_stop_rgb", 2, offset, "double");
+  red = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(red)) s7_wrong_type_arg_error(sc, "cairo_pattern_add_color_stop_rgb", 3, red, "double");
+  green = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(green)) s7_wrong_type_arg_error(sc, "cairo_pattern_add_color_stop_rgb", 4, green, "double");
+  blue = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(blue)) s7_wrong_type_arg_error(sc, "cairo_pattern_add_color_stop_rgb", 5, blue, "double");
+  cairo_pattern_add_color_stop_rgb(s7_c_pointer(pattern), s7_real(offset), s7_real(red), s7_real(green), s7_real(blue));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_pattern_add_color_stop_rgba(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_add_color_stop_rgba "void cairo_pattern_add_color_stop_rgba(cairo_pattern_t* pattern, \
+double offset, double red, double green, double blue, double alpha)"
+  s7_pointer _p;
+  s7_pointer pattern, offset, red, green, blue, alpha;
+  _p = args;
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_add_color_stop_rgba", 1, pattern, "cairo_pattern_t*");
+  offset = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(offset)) s7_wrong_type_arg_error(sc, "cairo_pattern_add_color_stop_rgba", 2, offset, "double");
+  red = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(red)) s7_wrong_type_arg_error(sc, "cairo_pattern_add_color_stop_rgba", 3, red, "double");
+  green = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(green)) s7_wrong_type_arg_error(sc, "cairo_pattern_add_color_stop_rgba", 4, green, "double");
+  blue = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(blue)) s7_wrong_type_arg_error(sc, "cairo_pattern_add_color_stop_rgba", 5, blue, "double");
+  alpha = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(alpha)) s7_wrong_type_arg_error(sc, "cairo_pattern_add_color_stop_rgba", 6, alpha, "double");
+  cairo_pattern_add_color_stop_rgba(s7_c_pointer(pattern), s7_real(offset), s7_real(red), s7_real(green), s7_real(blue), s7_real(alpha));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_pattern_set_matrix(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_set_matrix "void cairo_pattern_set_matrix(cairo_pattern_t* pattern, cairo_matrix_t* matrix)"
+  s7_pointer _p;
+  s7_pointer pattern, matrix;
+  _p = args;
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_set_matrix", 1, pattern, "cairo_pattern_t*");
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_set_matrix", 2, matrix, "cairo_matrix_t*");
+  cairo_pattern_set_matrix(s7_c_pointer(pattern), s7_c_pointer(matrix));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_pattern_get_matrix(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_get_matrix "void cairo_pattern_get_matrix(cairo_pattern_t* pattern, cairo_matrix_t* matrix)"
+  s7_pointer _p;
+  s7_pointer pattern, matrix;
+  _p = args;
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_get_matrix", 1, pattern, "cairo_pattern_t*");
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_get_matrix", 2, matrix, "cairo_matrix_t*");
+  cairo_pattern_get_matrix(s7_c_pointer(pattern), s7_c_pointer(matrix));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_pattern_set_extend(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_set_extend "void cairo_pattern_set_extend(cairo_pattern_t* pattern, cairo_extend_t extend)"
+  s7_pointer _p;
+  s7_pointer pattern, extend;
+  _p = args;
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_set_extend", 1, pattern, "cairo_pattern_t*");
+  extend = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(extend)) s7_wrong_type_arg_error(sc, "cairo_pattern_set_extend", 2, extend, "cairo_extend_t");
+  cairo_pattern_set_extend(s7_c_pointer(pattern), s7_integer(extend));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_pattern_get_extend(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_get_extend "cairo_extend_t cairo_pattern_get_extend(cairo_pattern_t* pattern)"
+  s7_pointer pattern;
+  pattern = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_get_extend", 1, pattern, "cairo_pattern_t*");
+  return(s7_make_integer(sc, cairo_pattern_get_extend(s7_c_pointer(pattern))));
+}
+
+static s7_pointer lg_cairo_pattern_set_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_set_filter "void cairo_pattern_set_filter(cairo_pattern_t* pattern, cairo_filter_t filter)"
+  s7_pointer _p;
+  s7_pointer pattern, filter;
+  _p = args;
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_set_filter", 1, pattern, "cairo_pattern_t*");
+  filter = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(filter)) s7_wrong_type_arg_error(sc, "cairo_pattern_set_filter", 2, filter, "cairo_filter_t");
+  cairo_pattern_set_filter(s7_c_pointer(pattern), s7_integer(filter));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_pattern_get_filter(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_get_filter "cairo_filter_t cairo_pattern_get_filter(cairo_pattern_t* pattern)"
+  s7_pointer pattern;
+  pattern = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_get_filter", 1, pattern, "cairo_pattern_t*");
+  return(s7_make_integer(sc, cairo_pattern_get_filter(s7_c_pointer(pattern))));
+}
+
+static s7_pointer lg_cairo_matrix_init(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_matrix_init "void cairo_matrix_init(cairo_matrix_t* matrix, double xx, double yx, double xy, \
+double yy, double x0, double y0)"
+  s7_pointer _p;
+  s7_pointer matrix, xx, yx, xy, yy, x0, y0;
+  _p = args;
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_matrix_init", 1, matrix, "cairo_matrix_t*");
+  xx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xx)) s7_wrong_type_arg_error(sc, "cairo_matrix_init", 2, xx, "double");
+  yx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(yx)) s7_wrong_type_arg_error(sc, "cairo_matrix_init", 3, yx, "double");
+  xy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(xy)) s7_wrong_type_arg_error(sc, "cairo_matrix_init", 4, xy, "double");
+  yy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(yy)) s7_wrong_type_arg_error(sc, "cairo_matrix_init", 5, yy, "double");
+  x0 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x0)) s7_wrong_type_arg_error(sc, "cairo_matrix_init", 6, x0, "double");
+  y0 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y0)) s7_wrong_type_arg_error(sc, "cairo_matrix_init", 7, y0, "double");
+  cairo_matrix_init(s7_c_pointer(matrix), s7_real(xx), s7_real(yx), s7_real(xy), s7_real(yy), s7_real(x0), s7_real(y0));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_matrix_init_identity(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_matrix_init_identity "void cairo_matrix_init_identity(cairo_matrix_t* matrix)"
+  s7_pointer matrix;
+  matrix = s7_car(args);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_matrix_init_identity", 1, matrix, "cairo_matrix_t*");
+  cairo_matrix_init_identity(s7_c_pointer(matrix));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_matrix_init_translate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_matrix_init_translate "void cairo_matrix_init_translate(cairo_matrix_t* matrix, double tx, \
+double ty)"
+  s7_pointer _p;
+  s7_pointer matrix, tx, ty;
+  _p = args;
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_matrix_init_translate", 1, matrix, "cairo_matrix_t*");
+  tx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(tx)) s7_wrong_type_arg_error(sc, "cairo_matrix_init_translate", 2, tx, "double");
+  ty = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(ty)) s7_wrong_type_arg_error(sc, "cairo_matrix_init_translate", 3, ty, "double");
+  cairo_matrix_init_translate(s7_c_pointer(matrix), s7_real(tx), s7_real(ty));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_matrix_init_scale(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_matrix_init_scale "void cairo_matrix_init_scale(cairo_matrix_t* matrix, double sx, \
+double sy)"
+  s7_pointer _p;
+  s7_pointer matrix, sx, sy;
+  _p = args;
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_matrix_init_scale", 1, matrix, "cairo_matrix_t*");
+  sx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(sx)) s7_wrong_type_arg_error(sc, "cairo_matrix_init_scale", 2, sx, "double");
+  sy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(sy)) s7_wrong_type_arg_error(sc, "cairo_matrix_init_scale", 3, sy, "double");
+  cairo_matrix_init_scale(s7_c_pointer(matrix), s7_real(sx), s7_real(sy));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_matrix_init_rotate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_matrix_init_rotate "void cairo_matrix_init_rotate(cairo_matrix_t* matrix, double radians)"
+  s7_pointer _p;
+  s7_pointer matrix, radians;
+  _p = args;
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_matrix_init_rotate", 1, matrix, "cairo_matrix_t*");
+  radians = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(radians)) s7_wrong_type_arg_error(sc, "cairo_matrix_init_rotate", 2, radians, "double");
+  cairo_matrix_init_rotate(s7_c_pointer(matrix), s7_real(radians));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_matrix_translate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_matrix_translate "void cairo_matrix_translate(cairo_matrix_t* matrix, double tx, double ty)"
+  s7_pointer _p;
+  s7_pointer matrix, tx, ty;
+  _p = args;
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_matrix_translate", 1, matrix, "cairo_matrix_t*");
+  tx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(tx)) s7_wrong_type_arg_error(sc, "cairo_matrix_translate", 2, tx, "double");
+  ty = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(ty)) s7_wrong_type_arg_error(sc, "cairo_matrix_translate", 3, ty, "double");
+  cairo_matrix_translate(s7_c_pointer(matrix), s7_real(tx), s7_real(ty));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_matrix_scale(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_matrix_scale "void cairo_matrix_scale(cairo_matrix_t* matrix, double sx, double sy)"
+  s7_pointer _p;
+  s7_pointer matrix, sx, sy;
+  _p = args;
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_matrix_scale", 1, matrix, "cairo_matrix_t*");
+  sx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(sx)) s7_wrong_type_arg_error(sc, "cairo_matrix_scale", 2, sx, "double");
+  sy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(sy)) s7_wrong_type_arg_error(sc, "cairo_matrix_scale", 3, sy, "double");
+  cairo_matrix_scale(s7_c_pointer(matrix), s7_real(sx), s7_real(sy));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_matrix_rotate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_matrix_rotate "void cairo_matrix_rotate(cairo_matrix_t* matrix, double radians)"
+  s7_pointer _p;
+  s7_pointer matrix, radians;
+  _p = args;
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_matrix_rotate", 1, matrix, "cairo_matrix_t*");
+  radians = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(radians)) s7_wrong_type_arg_error(sc, "cairo_matrix_rotate", 2, radians, "double");
+  cairo_matrix_rotate(s7_c_pointer(matrix), s7_real(radians));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_matrix_invert(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_matrix_invert "cairo_status_t cairo_matrix_invert(cairo_matrix_t* matrix)"
+  s7_pointer matrix;
+  matrix = s7_car(args);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_matrix_invert", 1, matrix, "cairo_matrix_t*");
+  return(s7_make_integer(sc, cairo_matrix_invert(s7_c_pointer(matrix))));
+}
+
+static s7_pointer lg_cairo_matrix_multiply(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_matrix_multiply "void cairo_matrix_multiply(cairo_matrix_t* result, cairo_matrix_t* a, \
+cairo_matrix_t* b)"
+  s7_pointer _p;
+  s7_pointer result, a, b;
+  _p = args;
+  result = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(result, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_matrix_multiply", 1, result, "cairo_matrix_t*");
+  a = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(a, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_matrix_multiply", 2, a, "cairo_matrix_t*");
+  b = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(b, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_matrix_multiply", 3, b, "cairo_matrix_t*");
+  cairo_matrix_multiply(s7_c_pointer(result), s7_c_pointer(a), s7_c_pointer(b));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_matrix_transform_distance(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_matrix_transform_distance "void cairo_matrix_transform_distance(cairo_matrix_t* matrix, \
+gdouble* [dx], gdouble* [dy])"
+  s7_pointer _p;
+  s7_pointer matrix;
+  gdouble ref_dx;
+  gdouble ref_dy;
+  _p = args;
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_matrix_transform_distance", 1, matrix, "cairo_matrix_t*");
+  cairo_matrix_transform_distance(s7_c_pointer(matrix), &ref_dx, &ref_dy);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_dx), s7_make_real(sc, ref_dy)));
+}
+
+static s7_pointer lg_cairo_matrix_transform_point(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_matrix_transform_point "void cairo_matrix_transform_point(cairo_matrix_t* matrix, gdouble* [x], \
+gdouble* [y])"
+  s7_pointer _p;
+  s7_pointer matrix;
+  gdouble ref_x;
+  gdouble ref_y;
+  _p = args;
+  matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_matrix_transform_point", 1, matrix, "cairo_matrix_t*");
+  cairo_matrix_transform_point(s7_c_pointer(matrix), &ref_x, &ref_y);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_x), s7_make_real(sc, ref_y)));
+}
+
+static s7_pointer lg_cairo_get_reference_count(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_reference_count "guint cairo_get_reference_count(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_reference_count", 1, cr, "cairo_t*");
+  return(s7_make_integer(sc, cairo_get_reference_count(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_get_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_user_data "void* cairo_get_user_data(cairo_t* cr, cairo_user_data_key_t* key)"
+  s7_pointer _p;
+  s7_pointer cr, key;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_user_data", 1, cr, "cairo_t*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(key, cairo_user_data_key_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_user_data", 2, key, "cairo_user_data_key_t*");
+  return(s7_make_type_with_c_pointer(sc, void__sym, cairo_get_user_data(s7_c_pointer(cr), s7_c_pointer(key))));
+}
+
+static s7_pointer lg_cairo_set_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_set_user_data "cairo_status_t cairo_set_user_data(cairo_t* cr, cairo_user_data_key_t* key, \
+void* user_data, cairo_destroy_func_t destroy)"
+  s7_pointer _p;
+  s7_pointer cr, key, user_data, destroy;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_user_data", 1, cr, "cairo_t*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(key, cairo_user_data_key_t__sym)) s7_wrong_type_arg_error(sc, "cairo_set_user_data", 2, key, "cairo_user_data_key_t*");
+  user_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(user_data, void__sym)) s7_wrong_type_arg_error(sc, "cairo_set_user_data", 3, user_data, "void*");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, cairo_destroy_func_t_sym)) s7_wrong_type_arg_error(sc, "cairo_set_user_data", 4, destroy, "cairo_destroy_func_t");
+  return(s7_make_integer(sc, cairo_set_user_data(s7_c_pointer(cr), s7_c_pointer(key), s7_c_pointer(user_data), s7_c_pointer(destroy))));
+}
+
+static s7_pointer lg_cairo_clip_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_clip_extents "void cairo_clip_extents(cairo_t* cr, double* [x1], double* [y1], double* [x2], \
+double* [y2])"
+  s7_pointer _p;
+  s7_pointer cr;
+  double ref_x1;
+  double ref_y1;
+  double ref_x2;
+  double ref_y2;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_clip_extents", 1, cr, "cairo_t*");
+  cairo_clip_extents(s7_c_pointer(cr), &ref_x1, &ref_y1, &ref_x2, &ref_y2);
+    return(s7_list(sc, 4, s7_make_real(sc, ref_x1), s7_make_real(sc, ref_y1), s7_make_real(sc, ref_x2), s7_make_real(sc, ref_y2)));
+}
+
+static s7_pointer lg_cairo_copy_clip_rectangle_list(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_copy_clip_rectangle_list "cairo_rectangle_list_t* cairo_copy_clip_rectangle_list(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_copy_clip_rectangle_list", 1, cr, "cairo_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_rectangle_list_t__sym, cairo_copy_clip_rectangle_list(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_rectangle_list_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_rectangle_list_destroy "void cairo_rectangle_list_destroy(cairo_rectangle_list_t* rectangle_list)"
+  s7_pointer rectangle_list;
+  rectangle_list = s7_car(args);
+  if (!s7_is_c_pointer_of_type(rectangle_list, cairo_rectangle_list_t__sym)) s7_wrong_type_arg_error(sc, "cairo_rectangle_list_destroy", 1, rectangle_list, "cairo_rectangle_list_t*");
+  cairo_rectangle_list_destroy(s7_c_pointer(rectangle_list));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_font_face_get_reference_count(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_font_face_get_reference_count "guint cairo_font_face_get_reference_count(cairo_font_face_t* font_face)"
+  s7_pointer font_face;
+  font_face = s7_car(args);
+  if (!s7_is_c_pointer_of_type(font_face, cairo_font_face_t__sym)) s7_wrong_type_arg_error(sc, "cairo_font_face_get_reference_count", 1, font_face, "cairo_font_face_t*");
+  return(s7_make_integer(sc, cairo_font_face_get_reference_count(s7_c_pointer(font_face))));
+}
+
+static s7_pointer lg_cairo_scaled_font_get_reference_count(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_get_reference_count "guint cairo_scaled_font_get_reference_count(cairo_scaled_font_t* scaled_font)"
+  s7_pointer scaled_font;
+  scaled_font = s7_car(args);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_get_reference_count", 1, scaled_font, "cairo_scaled_font_t*");
+  return(s7_make_integer(sc, cairo_scaled_font_get_reference_count(s7_c_pointer(scaled_font))));
+}
+
+static s7_pointer lg_cairo_scaled_font_get_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_get_user_data "void* cairo_scaled_font_get_user_data(cairo_scaled_font_t* scaled_font, \
+cairo_user_data_key_t* key)"
+  s7_pointer _p;
+  s7_pointer scaled_font, key;
+  _p = args;
+  scaled_font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_get_user_data", 1, scaled_font, "cairo_scaled_font_t*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(key, cairo_user_data_key_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_get_user_data", 2, key, "cairo_user_data_key_t*");
+  return(s7_make_type_with_c_pointer(sc, void__sym, cairo_scaled_font_get_user_data(s7_c_pointer(scaled_font), s7_c_pointer(key))));
+}
+
+static s7_pointer lg_cairo_scaled_font_set_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_set_user_data "cairo_status_t cairo_scaled_font_set_user_data(cairo_scaled_font_t* scaled_font, \
+cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy)"
+  s7_pointer _p;
+  s7_pointer scaled_font, key, user_data, destroy;
+  _p = args;
+  scaled_font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_set_user_data", 1, scaled_font, "cairo_scaled_font_t*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(key, cairo_user_data_key_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_set_user_data", 2, key, "cairo_user_data_key_t*");
+  user_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(user_data, void__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_set_user_data", 3, user_data, "void*");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, cairo_destroy_func_t_sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_set_user_data", 4, destroy, "cairo_destroy_func_t");
+  return(s7_make_integer(sc, cairo_scaled_font_set_user_data(s7_c_pointer(scaled_font), s7_c_pointer(key), s7_c_pointer(user_data), s7_c_pointer(destroy))));
+}
+
+static s7_pointer lg_cairo_get_dash_count(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_dash_count "int cairo_get_dash_count(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_dash_count", 1, cr, "cairo_t*");
+  return(s7_make_integer(sc, cairo_get_dash_count(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_get_dash(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_dash "void cairo_get_dash(cairo_t* cr, double* [dashes], double* [offset])"
+  s7_pointer _p;
+  s7_pointer cr;
+  double ref_dashes;
+  double ref_offset;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_dash", 1, cr, "cairo_t*");
+  cairo_get_dash(s7_c_pointer(cr), &ref_dashes, &ref_offset);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_dashes), s7_make_real(sc, ref_offset)));
+}
+
+static s7_pointer lg_cairo_surface_get_reference_count(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_get_reference_count "guint cairo_surface_get_reference_count(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_get_reference_count", 1, surface, "cairo_surface_t*");
+  return(s7_make_integer(sc, cairo_surface_get_reference_count(s7_c_pointer(surface))));
+}
+
+static s7_pointer lg_cairo_pattern_get_reference_count(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_get_reference_count "guint cairo_pattern_get_reference_count(cairo_pattern_t* pattern)"
+  s7_pointer pattern;
+  pattern = s7_car(args);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_get_reference_count", 1, pattern, "cairo_pattern_t*");
+  return(s7_make_integer(sc, cairo_pattern_get_reference_count(s7_c_pointer(pattern))));
+}
+
+static s7_pointer lg_cairo_pattern_get_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_get_user_data "void* cairo_pattern_get_user_data(cairo_pattern_t* pattern, \
+cairo_user_data_key_t* key)"
+  s7_pointer _p;
+  s7_pointer pattern, key;
+  _p = args;
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_get_user_data", 1, pattern, "cairo_pattern_t*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(key, cairo_user_data_key_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_get_user_data", 2, key, "cairo_user_data_key_t*");
+  return(s7_make_type_with_c_pointer(sc, void__sym, cairo_pattern_get_user_data(s7_c_pointer(pattern), s7_c_pointer(key))));
+}
+
+static s7_pointer lg_cairo_pattern_set_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_set_user_data "cairo_status_t cairo_pattern_set_user_data(cairo_pattern_t* pattern, \
+cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy)"
+  s7_pointer _p;
+  s7_pointer pattern, key, user_data, destroy;
+  _p = args;
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_set_user_data", 1, pattern, "cairo_pattern_t*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(key, cairo_user_data_key_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_set_user_data", 2, key, "cairo_user_data_key_t*");
+  user_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(user_data, void__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_set_user_data", 3, user_data, "void*");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, cairo_destroy_func_t_sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_set_user_data", 4, destroy, "cairo_destroy_func_t");
+  return(s7_make_integer(sc, cairo_pattern_set_user_data(s7_c_pointer(pattern), s7_c_pointer(key), s7_c_pointer(user_data), s7_c_pointer(destroy))));
+}
+
+static s7_pointer lg_cairo_pattern_get_rgba(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_get_rgba "cairo_status_t cairo_pattern_get_rgba(cairo_pattern_t* pattern, double* [red], \
+double* [green], double* [blue], double* [alpha])"
+  s7_pointer _p;
+  s7_pointer pattern;
+  double ref_red;
+  double ref_green;
+  double ref_blue;
+  double ref_alpha;
+  _p = args;
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_get_rgba", 1, pattern, "cairo_pattern_t*");
+  {
+    s7_pointer result;
+    result = s7_make_integer(sc, cairo_pattern_get_rgba(s7_c_pointer(pattern), &ref_red, &ref_green, &ref_blue, &ref_alpha));
+      return(s7_list(sc, 5, result, s7_make_real(sc, ref_red), s7_make_real(sc, ref_green), s7_make_real(sc, ref_blue), s7_make_real(sc, ref_alpha)));
+   }
+}
+
+static s7_pointer lg_cairo_pattern_get_surface(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_get_surface "cairo_status_t cairo_pattern_get_surface(cairo_pattern_t* pattern, \
+cairo_surface_t** [surface])"
+  s7_pointer _p;
+  s7_pointer pattern;
+  cairo_surface_t* ref_surface = NULL;
+  _p = args;
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_get_surface", 1, pattern, "cairo_pattern_t*");
+  {
+    s7_pointer result;
+    result = s7_make_integer(sc, cairo_pattern_get_surface(s7_c_pointer(pattern), &ref_surface));
+      return(s7_list(sc, 2, result, s7_make_c_pointer(sc, ref_surface)));
+   }
+}
+
+static s7_pointer lg_cairo_pattern_get_color_stop_rgba(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_get_color_stop_rgba "cairo_status_t cairo_pattern_get_color_stop_rgba(cairo_pattern_t* pattern, \
+int index, double* [offset], double* [red], double* [green], double* [blue], double* [alpha])"
+  s7_pointer _p;
+  s7_pointer pattern, index;
+  double ref_offset;
+  double ref_red;
+  double ref_green;
+  double ref_blue;
+  double ref_alpha;
+  _p = args;
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_get_color_stop_rgba", 1, pattern, "cairo_pattern_t*");
+  index = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(index)) s7_wrong_type_arg_error(sc, "cairo_pattern_get_color_stop_rgba", 2, index, "int");
+  {
+    s7_pointer result;
+    result = s7_make_integer(sc, cairo_pattern_get_color_stop_rgba(s7_c_pointer(pattern), s7_integer(index), &ref_offset, &ref_red, &ref_green, &ref_blue, &ref_alpha));
+      return(s7_list(sc, 6, result, s7_make_real(sc, ref_offset), s7_make_real(sc, ref_red), s7_make_real(sc, ref_green), s7_make_real(sc, ref_blue), s7_make_real(sc, ref_alpha)));
+   }
+}
+
+static s7_pointer lg_cairo_pattern_get_color_stop_count(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_get_color_stop_count "cairo_status_t cairo_pattern_get_color_stop_count(cairo_pattern_t* pattern, \
+int* [count])"
+  s7_pointer _p;
+  s7_pointer pattern;
+  int ref_count;
+  _p = args;
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_get_color_stop_count", 1, pattern, "cairo_pattern_t*");
+  {
+    s7_pointer result;
+    result = s7_make_integer(sc, cairo_pattern_get_color_stop_count(s7_c_pointer(pattern), &ref_count));
+      return(s7_list(sc, 2, result, s7_make_integer(sc, ref_count)));
+   }
+}
+
+static s7_pointer lg_cairo_pattern_get_linear_points(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_get_linear_points "cairo_status_t cairo_pattern_get_linear_points(cairo_pattern_t* pattern, \
+double* [x0], double* [y0], double* [x1], double* [y1])"
+  s7_pointer _p;
+  s7_pointer pattern;
+  double ref_x0;
+  double ref_y0;
+  double ref_x1;
+  double ref_y1;
+  _p = args;
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_get_linear_points", 1, pattern, "cairo_pattern_t*");
+  {
+    s7_pointer result;
+    result = s7_make_integer(sc, cairo_pattern_get_linear_points(s7_c_pointer(pattern), &ref_x0, &ref_y0, &ref_x1, &ref_y1));
+      return(s7_list(sc, 5, result, s7_make_real(sc, ref_x0), s7_make_real(sc, ref_y0), s7_make_real(sc, ref_x1), s7_make_real(sc, ref_y1)));
+   }
+}
+
+static s7_pointer lg_cairo_pattern_get_radial_circles(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_pattern_get_radial_circles "cairo_status_t cairo_pattern_get_radial_circles(cairo_pattern_t* pattern, \
+double* [x0], double* [y0], double* [r0], double* [x1], double* [y1], double* [r1])"
+  s7_pointer _p;
+  s7_pointer pattern;
+  double ref_x0;
+  double ref_y0;
+  double ref_r0;
+  double ref_x1;
+  double ref_y1;
+  double ref_r1;
+  _p = args;
+  pattern = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(pattern, cairo_pattern_t__sym)) s7_wrong_type_arg_error(sc, "cairo_pattern_get_radial_circles", 1, pattern, "cairo_pattern_t*");
+  {
+    s7_pointer result;
+    result = s7_make_integer(sc, cairo_pattern_get_radial_circles(s7_c_pointer(pattern), &ref_x0, &ref_y0, &ref_r0, &ref_x1, &ref_y1, &ref_r1));
+      return(s7_list(sc, 7, result, s7_make_real(sc, ref_x0), s7_make_real(sc, ref_y0), s7_make_real(sc, ref_r0), s7_make_real(sc, ref_x1), s7_make_real(sc, ref_y1), s7_make_real(sc, ref_r1)));
+   }
+}
+
+static s7_pointer lg_cairo_get_scaled_font(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_get_scaled_font "cairo_scaled_font_t* cairo_get_scaled_font(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_get_scaled_font", 1, cr, "cairo_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_scaled_font_t__sym, cairo_get_scaled_font(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_path_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_path_extents "void cairo_path_extents(cairo_t* cr, double* [x1], double* [y1], double* [x2], \
+double* [y2])"
+  s7_pointer _p;
+  s7_pointer cr;
+  double ref_x1;
+  double ref_y1;
+  double ref_x2;
+  double ref_y2;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_path_extents", 1, cr, "cairo_t*");
+  cairo_path_extents(s7_c_pointer(cr), &ref_x1, &ref_y1, &ref_x2, &ref_y2);
+    return(s7_list(sc, 4, s7_make_real(sc, ref_x1), s7_make_real(sc, ref_y1), s7_make_real(sc, ref_x2), s7_make_real(sc, ref_y2)));
+}
+
+static s7_pointer lg_cairo_has_current_point(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_has_current_point "bool cairo_has_current_point(cairo_t* cr)"
+  s7_pointer cr;
+  cr = s7_car(args);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_has_current_point", 1, cr, "cairo_t*");
+  return(s7_make_boolean(sc, cairo_has_current_point(s7_c_pointer(cr))));
+}
+
+static s7_pointer lg_cairo_surface_copy_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_copy_page "void cairo_surface_copy_page(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_copy_page", 1, surface, "cairo_surface_t*");
+  cairo_surface_copy_page(s7_c_pointer(surface));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_surface_show_page(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_show_page "void cairo_surface_show_page(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_show_page", 1, surface, "cairo_surface_t*");
+  cairo_surface_show_page(s7_c_pointer(surface));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_format_stride_for_width(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_format_stride_for_width "int cairo_format_stride_for_width(cairo_format_t format, int width)"
+  s7_pointer _p;
+  s7_pointer format, width;
+  _p = args;
+  format = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(format)) s7_wrong_type_arg_error(sc, "cairo_format_stride_for_width", 1, format, "cairo_format_t");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(width)) s7_wrong_type_arg_error(sc, "cairo_format_stride_for_width", 2, width, "int");
+  return(s7_make_integer(sc, cairo_format_stride_for_width(s7_integer(format), s7_integer(width))));
+}
+
+static s7_pointer lg_cairo_image_surface_create_from_png(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_image_surface_create_from_png "cairo_surface_t* cairo_image_surface_create_from_png(char* filename)"
+  s7_pointer filename;
+  filename = s7_car(args);
+  if (!s7_is_string(filename)) s7_wrong_type_arg_error(sc, "cairo_image_surface_create_from_png", 1, filename, "char*");
+  return(s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, cairo_image_surface_create_from_png((const char*)(char*)s7_string(filename))));
+}
+
+static s7_pointer lg_cairo_surface_write_to_png(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_write_to_png "cairo_status_t cairo_surface_write_to_png(cairo_surface_t* surface, \
+char* filename)"
+  s7_pointer _p;
+  s7_pointer surface, filename;
+  _p = args;
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_write_to_png", 1, surface, "cairo_surface_t*");
+  filename = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(filename)) s7_wrong_type_arg_error(sc, "cairo_surface_write_to_png", 2, filename, "char*");
+  return(s7_make_integer(sc, cairo_surface_write_to_png(s7_c_pointer(surface), (const char*)(char*)s7_string(filename))));
+}
+
+#if HAVE_CAIRO_1_8
+static s7_pointer lg_cairo_glyph_allocate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_glyph_allocate "cairo_glyph_t* cairo_glyph_allocate(int num_glyphs)"
+  s7_pointer num_glyphs;
+  num_glyphs = s7_car(args);
+  if (!s7_is_integer(num_glyphs)) s7_wrong_type_arg_error(sc, "cairo_glyph_allocate", 1, num_glyphs, "int");
+  return(s7_make_type_with_c_pointer(sc, cairo_glyph_t__sym, cairo_glyph_allocate(s7_integer(num_glyphs))));
+}
+
+static s7_pointer lg_cairo_glyph_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_glyph_free "void cairo_glyph_free(cairo_glyph_t* glyphs)"
+  s7_pointer glyphs;
+  glyphs = s7_car(args);
+  if (!s7_is_c_pointer_of_type(glyphs, cairo_glyph_t__sym)) s7_wrong_type_arg_error(sc, "cairo_glyph_free", 1, glyphs, "cairo_glyph_t*");
+  cairo_glyph_free(s7_c_pointer(glyphs));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_text_cluster_allocate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_text_cluster_allocate "cairo_text_cluster_t* cairo_text_cluster_allocate(int num_clusters)"
+  s7_pointer num_clusters;
+  num_clusters = s7_car(args);
+  if (!s7_is_integer(num_clusters)) s7_wrong_type_arg_error(sc, "cairo_text_cluster_allocate", 1, num_clusters, "int");
+  return(s7_make_type_with_c_pointer(sc, cairo_text_cluster_t__sym, cairo_text_cluster_allocate(s7_integer(num_clusters))));
+}
+
+static s7_pointer lg_cairo_text_cluster_free(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_text_cluster_free "void cairo_text_cluster_free(cairo_text_cluster_t* clusters)"
+  s7_pointer clusters;
+  clusters = s7_car(args);
+  if (!s7_is_c_pointer_of_type(clusters, cairo_text_cluster_t__sym)) s7_wrong_type_arg_error(sc, "cairo_text_cluster_free", 1, clusters, "cairo_text_cluster_t*");
+  cairo_text_cluster_free(s7_c_pointer(clusters));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_show_text_glyphs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_show_text_glyphs "void cairo_show_text_glyphs(cairo_t* cr, char* utf8, int utf8_len, \
+cairo_glyph_t* glyphs, int num_glyphs, cairo_text_cluster_t* clusters, int num_clusters, cairo_text_cluster_flags_t cluster_flags)"
+  s7_pointer _p;
+  s7_pointer cr, utf8, utf8_len, glyphs, num_glyphs, clusters, num_clusters, cluster_flags;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_show_text_glyphs", 1, cr, "cairo_t*");
+  utf8 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(utf8)) s7_wrong_type_arg_error(sc, "cairo_show_text_glyphs", 2, utf8, "char*");
+  utf8_len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(utf8_len)) s7_wrong_type_arg_error(sc, "cairo_show_text_glyphs", 3, utf8_len, "int");
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, cairo_glyph_t__sym)) s7_wrong_type_arg_error(sc, "cairo_show_text_glyphs", 4, glyphs, "cairo_glyph_t*");
+  num_glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(num_glyphs)) s7_wrong_type_arg_error(sc, "cairo_show_text_glyphs", 5, num_glyphs, "int");
+  clusters = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clusters, cairo_text_cluster_t__sym)) s7_wrong_type_arg_error(sc, "cairo_show_text_glyphs", 6, clusters, "cairo_text_cluster_t*");
+  num_clusters = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(num_clusters)) s7_wrong_type_arg_error(sc, "cairo_show_text_glyphs", 7, num_clusters, "int");
+  cluster_flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(cluster_flags)) s7_wrong_type_arg_error(sc, "cairo_show_text_glyphs", 8, cluster_flags, "cairo_text_cluster_flags_t");
+  cairo_show_text_glyphs(s7_c_pointer(cr), (const char*)(char*)s7_string(utf8), s7_integer(utf8_len), s7_c_pointer(glyphs), s7_integer(num_glyphs), s7_c_pointer(clusters), s7_integer(num_clusters), s7_integer(cluster_flags));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_scaled_font_text_to_glyphs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_text_to_glyphs "cairo_status_t cairo_scaled_font_text_to_glyphs(cairo_scaled_font_t* scaled_font, \
+double x, double y, char* utf8, int utf8_len, cairo_glyph_t** glyphs, int* num_glyphs, cairo_text_cluster_t** clusters, \
+int* num_clusters, cairo_text_cluster_flags_t* cluster_flags)"
+  s7_pointer _p;
+  s7_pointer scaled_font, x, y, utf8, utf8_len, glyphs, num_glyphs, clusters, num_clusters, cluster_flags;
+  _p = args;
+  scaled_font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_text_to_glyphs", 1, scaled_font, "cairo_scaled_font_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_text_to_glyphs", 2, x, "double");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_text_to_glyphs", 3, y, "double");
+  utf8 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(utf8)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_text_to_glyphs", 4, utf8, "char*");
+  utf8_len = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(utf8_len)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_text_to_glyphs", 5, utf8_len, "int");
+  glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(glyphs, cairo_glyph_t___sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_text_to_glyphs", 6, glyphs, "cairo_glyph_t**");
+  num_glyphs = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(num_glyphs, int__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_text_to_glyphs", 7, num_glyphs, "int*");
+  clusters = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(clusters, cairo_text_cluster_t___sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_text_to_glyphs", 8, clusters, "cairo_text_cluster_t**");
+  num_clusters = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(num_clusters, int__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_text_to_glyphs", 9, num_clusters, "int*");
+  cluster_flags = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cluster_flags, cairo_text_cluster_flags_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_text_to_glyphs", 10, cluster_flags, "cairo_text_cluster_flags_t*");
+  return(s7_make_integer(sc, cairo_scaled_font_text_to_glyphs(s7_c_pointer(scaled_font), s7_real(x), s7_real(y), (const char*)(char*)s7_string(utf8), s7_integer(utf8_len), s7_c_pointer(glyphs), s7_c_pointer(num_glyphs), s7_c_pointer(clusters), s7_c_pointer(num_clusters), s7_c_pointer(cluster_flags))));
+}
+
+static s7_pointer lg_cairo_scaled_font_get_scale_matrix(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_scaled_font_get_scale_matrix "void cairo_scaled_font_get_scale_matrix(cairo_scaled_font_t* scaled_font, \
+cairo_matrix_t* scale_matrix)"
+  s7_pointer _p;
+  s7_pointer scaled_font, scale_matrix;
+  _p = args;
+  scaled_font = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scaled_font, cairo_scaled_font_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_get_scale_matrix", 1, scaled_font, "cairo_scaled_font_t*");
+  scale_matrix = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(scale_matrix, cairo_matrix_t__sym)) s7_wrong_type_arg_error(sc, "cairo_scaled_font_get_scale_matrix", 2, scale_matrix, "cairo_matrix_t*");
+  cairo_scaled_font_get_scale_matrix(s7_c_pointer(scaled_font), s7_c_pointer(scale_matrix));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_toy_font_face_create(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_toy_font_face_create "cairo_font_face_t* cairo_toy_font_face_create(char* family, cairo_font_slant_t slant, \
+cairo_font_weight_t weight)"
+  s7_pointer _p;
+  s7_pointer family, slant, weight;
+  _p = args;
+  family = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(family)) s7_wrong_type_arg_error(sc, "cairo_toy_font_face_create", 1, family, "char*");
+  slant = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(slant)) s7_wrong_type_arg_error(sc, "cairo_toy_font_face_create", 2, slant, "cairo_font_slant_t");
+  weight = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(weight)) s7_wrong_type_arg_error(sc, "cairo_toy_font_face_create", 3, weight, "cairo_font_weight_t");
+  return(s7_make_type_with_c_pointer(sc, cairo_font_face_t__sym, cairo_toy_font_face_create((const char*)(char*)s7_string(family), s7_integer(slant), s7_integer(weight))));
+}
+
+static s7_pointer lg_cairo_toy_font_face_get_family(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_toy_font_face_get_family "char* cairo_toy_font_face_get_family(cairo_font_face_t* font_face)"
+  s7_pointer font_face;
+  font_face = s7_car(args);
+  if (!s7_is_c_pointer_of_type(font_face, cairo_font_face_t__sym)) s7_wrong_type_arg_error(sc, "cairo_toy_font_face_get_family", 1, font_face, "cairo_font_face_t*");
+  return(s7_make_string(sc, cairo_toy_font_face_get_family(s7_c_pointer(font_face))));
+}
+
+static s7_pointer lg_cairo_toy_font_face_get_slant(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_toy_font_face_get_slant "cairo_font_slant_t cairo_toy_font_face_get_slant(cairo_font_face_t* font_face)"
+  s7_pointer font_face;
+  font_face = s7_car(args);
+  if (!s7_is_c_pointer_of_type(font_face, cairo_font_face_t__sym)) s7_wrong_type_arg_error(sc, "cairo_toy_font_face_get_slant", 1, font_face, "cairo_font_face_t*");
+  return(s7_make_integer(sc, cairo_toy_font_face_get_slant(s7_c_pointer(font_face))));
+}
+
+static s7_pointer lg_cairo_toy_font_face_get_weight(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_toy_font_face_get_weight "cairo_font_weight_t cairo_toy_font_face_get_weight(cairo_font_face_t* font_face)"
+  s7_pointer font_face;
+  font_face = s7_car(args);
+  if (!s7_is_c_pointer_of_type(font_face, cairo_font_face_t__sym)) s7_wrong_type_arg_error(sc, "cairo_toy_font_face_get_weight", 1, font_face, "cairo_font_face_t*");
+  return(s7_make_integer(sc, cairo_toy_font_face_get_weight(s7_c_pointer(font_face))));
+}
+
+static s7_pointer lg_cairo_user_font_face_create(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_user_font_face_create "cairo_font_face_t* cairo_user_font_face_create( void)"
+  return(s7_make_type_with_c_pointer(sc, cairo_font_face_t__sym, cairo_user_font_face_create()));
+}
+
+static s7_pointer lg_cairo_surface_get_fallback_resolution(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_get_fallback_resolution "void cairo_surface_get_fallback_resolution(cairo_surface_t* surface, \
+double* [x_pixels_per_inch], double* [y_pixels_per_inch])"
+  s7_pointer _p;
+  s7_pointer surface;
+  double ref_x_pixels_per_inch;
+  double ref_y_pixels_per_inch;
+  _p = args;
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_get_fallback_resolution", 1, surface, "cairo_surface_t*");
+  cairo_surface_get_fallback_resolution(s7_c_pointer(surface), &ref_x_pixels_per_inch, &ref_y_pixels_per_inch);
+    return(s7_list(sc, 2, s7_make_real(sc, ref_x_pixels_per_inch), s7_make_real(sc, ref_y_pixels_per_inch)));
+}
+
+static s7_pointer lg_cairo_surface_has_show_text_glyphs(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_has_show_text_glyphs "cairo_bool_t cairo_surface_has_show_text_glyphs(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_has_show_text_glyphs", 1, surface, "cairo_surface_t*");
+  return(s7_make_integer(sc, cairo_surface_has_show_text_glyphs(s7_c_pointer(surface))));
+}
+
+#endif
+
+#if HAVE_CAIRO_1_9_12 && GTK_CHECK_VERSION(3, 0, 0)
+static s7_pointer lg_cairo_in_clip(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_in_clip "cairo_bool_t cairo_in_clip(cairo_t* cr, double x, double y)"
+  s7_pointer _p;
+  s7_pointer cr, x, y;
+  _p = args;
+  cr = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(cr, cairo_t__sym)) s7_wrong_type_arg_error(sc, "cairo_in_clip", 1, cr, "cairo_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "cairo_in_clip", 2, x, "double");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "cairo_in_clip", 3, y, "double");
+  return(s7_make_integer(sc, cairo_in_clip(s7_c_pointer(cr), s7_real(x), s7_real(y))));
+}
+
+static s7_pointer lg_cairo_device_reference(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_device_reference "cairo_device_t* cairo_device_reference(cairo_device_t* device)"
+  s7_pointer device;
+  device = s7_car(args);
+  if (!s7_is_c_pointer_of_type(device, cairo_device_t__sym)) s7_wrong_type_arg_error(sc, "cairo_device_reference", 1, device, "cairo_device_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_device_t__sym, cairo_device_reference(s7_c_pointer(device))));
+}
+
+static s7_pointer lg_cairo_device_status(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_device_status "cairo_status_t cairo_device_status(cairo_device_t* device)"
+  s7_pointer device;
+  device = s7_car(args);
+  if (!s7_is_c_pointer_of_type(device, cairo_device_t__sym)) s7_wrong_type_arg_error(sc, "cairo_device_status", 1, device, "cairo_device_t*");
+  return(s7_make_integer(sc, cairo_device_status(s7_c_pointer(device))));
+}
+
+static s7_pointer lg_cairo_device_acquire(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_device_acquire "cairo_status_t cairo_device_acquire(cairo_device_t* device)"
+  s7_pointer device;
+  device = s7_car(args);
+  if (!s7_is_c_pointer_of_type(device, cairo_device_t__sym)) s7_wrong_type_arg_error(sc, "cairo_device_acquire", 1, device, "cairo_device_t*");
+  return(s7_make_integer(sc, cairo_device_acquire(s7_c_pointer(device))));
+}
+
+static s7_pointer lg_cairo_device_release(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_device_release "void cairo_device_release(cairo_device_t* device)"
+  s7_pointer device;
+  device = s7_car(args);
+  if (!s7_is_c_pointer_of_type(device, cairo_device_t__sym)) s7_wrong_type_arg_error(sc, "cairo_device_release", 1, device, "cairo_device_t*");
+  cairo_device_release(s7_c_pointer(device));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_device_flush(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_device_flush "void cairo_device_flush(cairo_device_t* device)"
+  s7_pointer device;
+  device = s7_car(args);
+  if (!s7_is_c_pointer_of_type(device, cairo_device_t__sym)) s7_wrong_type_arg_error(sc, "cairo_device_flush", 1, device, "cairo_device_t*");
+  cairo_device_flush(s7_c_pointer(device));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_device_finish(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_device_finish "void cairo_device_finish(cairo_device_t* device)"
+  s7_pointer device;
+  device = s7_car(args);
+  if (!s7_is_c_pointer_of_type(device, cairo_device_t__sym)) s7_wrong_type_arg_error(sc, "cairo_device_finish", 1, device, "cairo_device_t*");
+  cairo_device_finish(s7_c_pointer(device));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_device_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_device_destroy "void cairo_device_destroy(cairo_device_t* device)"
+  s7_pointer device;
+  device = s7_car(args);
+  if (!s7_is_c_pointer_of_type(device, cairo_device_t__sym)) s7_wrong_type_arg_error(sc, "cairo_device_destroy", 1, device, "cairo_device_t*");
+  cairo_device_destroy(s7_c_pointer(device));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_device_get_reference_count(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_device_get_reference_count "guint cairo_device_get_reference_count(cairo_device_t* device)"
+  s7_pointer device;
+  device = s7_car(args);
+  if (!s7_is_c_pointer_of_type(device, cairo_device_t__sym)) s7_wrong_type_arg_error(sc, "cairo_device_get_reference_count", 1, device, "cairo_device_t*");
+  return(s7_make_integer(sc, cairo_device_get_reference_count(s7_c_pointer(device))));
+}
+
+static s7_pointer lg_cairo_device_get_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_device_get_user_data "void* cairo_device_get_user_data(cairo_device_t* device, cairo_user_data_key_t* key)"
+  s7_pointer _p;
+  s7_pointer device, key;
+  _p = args;
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, cairo_device_t__sym)) s7_wrong_type_arg_error(sc, "cairo_device_get_user_data", 1, device, "cairo_device_t*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(key, cairo_user_data_key_t__sym)) s7_wrong_type_arg_error(sc, "cairo_device_get_user_data", 2, key, "cairo_user_data_key_t*");
+  return(s7_make_type_with_c_pointer(sc, void__sym, cairo_device_get_user_data(s7_c_pointer(device), s7_c_pointer(key))));
+}
+
+static s7_pointer lg_cairo_device_set_user_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_device_set_user_data "cairo_status_t cairo_device_set_user_data(cairo_device_t* device, \
+cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy)"
+  s7_pointer _p;
+  s7_pointer device, key, user_data, destroy;
+  _p = args;
+  device = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(device, cairo_device_t__sym)) s7_wrong_type_arg_error(sc, "cairo_device_set_user_data", 1, device, "cairo_device_t*");
+  key = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(key, cairo_user_data_key_t__sym)) s7_wrong_type_arg_error(sc, "cairo_device_set_user_data", 2, key, "cairo_user_data_key_t*");
+  user_data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(user_data, void__sym)) s7_wrong_type_arg_error(sc, "cairo_device_set_user_data", 3, user_data, "void*");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, cairo_destroy_func_t_sym)) s7_wrong_type_arg_error(sc, "cairo_device_set_user_data", 4, destroy, "cairo_destroy_func_t");
+  return(s7_make_integer(sc, cairo_device_set_user_data(s7_c_pointer(device), s7_c_pointer(key), s7_c_pointer(user_data), s7_c_pointer(destroy))));
+}
+
+static s7_pointer lg_cairo_surface_create_for_rectangle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_create_for_rectangle "cairo_surface_t* cairo_surface_create_for_rectangle(cairo_surface_t* target, \
+double x, double y, double width, double height)"
+  s7_pointer _p;
+  s7_pointer target, x, y, width, height;
+  _p = args;
+  target = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(target, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_create_for_rectangle", 1, target, "cairo_surface_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(x)) s7_wrong_type_arg_error(sc, "cairo_surface_create_for_rectangle", 2, x, "double");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(y)) s7_wrong_type_arg_error(sc, "cairo_surface_create_for_rectangle", 3, y, "double");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(width)) s7_wrong_type_arg_error(sc, "cairo_surface_create_for_rectangle", 4, width, "double");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_real(height)) s7_wrong_type_arg_error(sc, "cairo_surface_create_for_rectangle", 5, height, "double");
+  return(s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, cairo_surface_create_for_rectangle(s7_c_pointer(target), s7_real(x), s7_real(y), s7_real(width), s7_real(height))));
+}
+
+static s7_pointer lg_cairo_surface_get_device(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_get_device "cairo_device_t* cairo_surface_get_device(cairo_surface_t* surface)"
+  s7_pointer surface;
+  surface = s7_car(args);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_get_device", 1, surface, "cairo_surface_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_device_t__sym, cairo_surface_get_device(s7_c_pointer(surface))));
+}
+
+static s7_pointer lg_cairo_surface_set_mime_data(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_surface_set_mime_data "cairo_status_t cairo_surface_set_mime_data(cairo_surface_t* surface, \
+char* mime_type, guchar* data, gulong length, cairo_destroy_func_t destroy, void* closure)"
+  s7_pointer _p;
+  s7_pointer surface, mime_type, data, length, destroy, closure;
+  _p = args;
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_set_mime_data", 1, surface, "cairo_surface_t*");
+  mime_type = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_string(mime_type)) s7_wrong_type_arg_error(sc, "cairo_surface_set_mime_data", 2, mime_type, "char*");
+  data = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(data, guchar__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_set_mime_data", 3, data, "guchar*");
+  length = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(length)) s7_wrong_type_arg_error(sc, "cairo_surface_set_mime_data", 4, length, "gulong");
+  destroy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(destroy, cairo_destroy_func_t_sym)) s7_wrong_type_arg_error(sc, "cairo_surface_set_mime_data", 5, destroy, "cairo_destroy_func_t");
+  closure = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(closure, void__sym)) s7_wrong_type_arg_error(sc, "cairo_surface_set_mime_data", 6, closure, "void*");
+  return(s7_make_integer(sc, cairo_surface_set_mime_data(s7_c_pointer(surface), (const char*)(char*)s7_string(mime_type), s7_c_pointer(data), s7_integer(length), s7_c_pointer(destroy), s7_c_pointer(closure))));
+}
+
+static s7_pointer lg_cairo_recording_surface_create(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_recording_surface_create "cairo_surface_t* cairo_recording_surface_create(cairo_content_t content, \
+cairo_rectangle_t* extents)"
+  s7_pointer _p;
+  s7_pointer content, extents;
+  _p = args;
+  content = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(content)) s7_wrong_type_arg_error(sc, "cairo_recording_surface_create", 1, content, "cairo_content_t");
+  extents = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(extents, cairo_rectangle_t__sym)) s7_wrong_type_arg_error(sc, "cairo_recording_surface_create", 2, extents, "cairo_rectangle_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_surface_t__sym, cairo_recording_surface_create(s7_integer(content), s7_c_pointer(extents))));
+}
+
+static s7_pointer lg_cairo_recording_surface_ink_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_recording_surface_ink_extents "void cairo_recording_surface_ink_extents(cairo_surface_t* surface, \
+double* x0, double* y0, double* width, double* height)"
+  s7_pointer _p;
+  s7_pointer surface, x0, y0, width, height;
+  _p = args;
+  surface = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(surface, cairo_surface_t__sym)) s7_wrong_type_arg_error(sc, "cairo_recording_surface_ink_extents", 1, surface, "cairo_surface_t*");
+  x0 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(x0, double__sym)) s7_wrong_type_arg_error(sc, "cairo_recording_surface_ink_extents", 2, x0, "double*");
+  y0 = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(y0, double__sym)) s7_wrong_type_arg_error(sc, "cairo_recording_surface_ink_extents", 3, y0, "double*");
+  width = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(width, double__sym)) s7_wrong_type_arg_error(sc, "cairo_recording_surface_ink_extents", 4, width, "double*");
+  height = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(height, double__sym)) s7_wrong_type_arg_error(sc, "cairo_recording_surface_ink_extents", 5, height, "double*");
+  cairo_recording_surface_ink_extents(s7_c_pointer(surface), s7_c_pointer(x0), s7_c_pointer(y0), s7_c_pointer(width), s7_c_pointer(height));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_region_create(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_create "cairo_region_t* cairo_region_create( void)"
+  return(s7_make_type_with_c_pointer(sc, cairo_region_t__sym, cairo_region_create()));
+}
+
+static s7_pointer lg_cairo_region_create_rectangle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_create_rectangle "cairo_region_t* cairo_region_create_rectangle(cairo_rectangle_int_t* rectangle)"
+  s7_pointer rectangle;
+  rectangle = s7_car(args);
+  if (!s7_is_c_pointer_of_type(rectangle, cairo_rectangle_int_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_create_rectangle", 1, rectangle, "cairo_rectangle_int_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_region_t__sym, cairo_region_create_rectangle(s7_c_pointer(rectangle))));
+}
+
+static s7_pointer lg_cairo_region_create_rectangles(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_create_rectangles "cairo_region_t* cairo_region_create_rectangles(cairo_rectangle_int_t* rects, \
+int count)"
+  s7_pointer _p;
+  s7_pointer rects, count;
+  _p = args;
+  rects = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rects, cairo_rectangle_int_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_create_rectangles", 1, rects, "cairo_rectangle_int_t*");
+  count = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(count)) s7_wrong_type_arg_error(sc, "cairo_region_create_rectangles", 2, count, "int");
+  return(s7_make_type_with_c_pointer(sc, cairo_region_t__sym, cairo_region_create_rectangles(s7_c_pointer(rects), s7_integer(count))));
+}
+
+static s7_pointer lg_cairo_region_copy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_copy "cairo_region_t* cairo_region_copy(cairo_region_t* original)"
+  s7_pointer original;
+  original = s7_car(args);
+  if (!s7_is_c_pointer_of_type(original, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_copy", 1, original, "cairo_region_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_region_t__sym, cairo_region_copy(s7_c_pointer(original))));
+}
+
+static s7_pointer lg_cairo_region_reference(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_reference "cairo_region_t* cairo_region_reference(cairo_region_t* region)"
+  s7_pointer region;
+  region = s7_car(args);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_reference", 1, region, "cairo_region_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_region_t__sym, cairo_region_reference(s7_c_pointer(region))));
+}
+
+static s7_pointer lg_cairo_region_destroy(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_destroy "void cairo_region_destroy(cairo_region_t* region)"
+  s7_pointer region;
+  region = s7_car(args);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_destroy", 1, region, "cairo_region_t*");
+  cairo_region_destroy(s7_c_pointer(region));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_region_equal(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_equal "cairo_bool_t cairo_region_equal(cairo_region_t* a, cairo_region_t* b)"
+  s7_pointer _p;
+  s7_pointer a, b;
+  _p = args;
+  a = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(a, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_equal", 1, a, "cairo_region_t*");
+  b = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(b, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_equal", 2, b, "cairo_region_t*");
+  return(s7_make_integer(sc, cairo_region_equal(s7_c_pointer(a), s7_c_pointer(b))));
+}
+
+static s7_pointer lg_cairo_region_status(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_status "cairo_status_t cairo_region_status(cairo_region_t* region)"
+  s7_pointer region;
+  region = s7_car(args);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_status", 1, region, "cairo_region_t*");
+  return(s7_make_integer(sc, cairo_region_status(s7_c_pointer(region))));
+}
+
+static s7_pointer lg_cairo_region_get_extents(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_get_extents "void cairo_region_get_extents(cairo_region_t* region, cairo_rectangle_int_t* extents)"
+  s7_pointer _p;
+  s7_pointer region, extents;
+  _p = args;
+  region = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_get_extents", 1, region, "cairo_region_t*");
+  extents = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(extents, cairo_rectangle_int_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_get_extents", 2, extents, "cairo_rectangle_int_t*");
+  cairo_region_get_extents(s7_c_pointer(region), s7_c_pointer(extents));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_region_num_rectangles(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_num_rectangles "int cairo_region_num_rectangles(cairo_region_t* region)"
+  s7_pointer region;
+  region = s7_car(args);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_num_rectangles", 1, region, "cairo_region_t*");
+  return(s7_make_integer(sc, cairo_region_num_rectangles(s7_c_pointer(region))));
+}
+
+static s7_pointer lg_cairo_region_get_rectangle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_get_rectangle "void cairo_region_get_rectangle(cairo_region_t* region, int nth, \
+cairo_rectangle_int_t* rectangle)"
+  s7_pointer _p;
+  s7_pointer region, nth, rectangle;
+  _p = args;
+  region = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_get_rectangle", 1, region, "cairo_region_t*");
+  nth = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(nth)) s7_wrong_type_arg_error(sc, "cairo_region_get_rectangle", 2, nth, "int");
+  rectangle = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rectangle, cairo_rectangle_int_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_get_rectangle", 3, rectangle, "cairo_rectangle_int_t*");
+  cairo_region_get_rectangle(s7_c_pointer(region), s7_integer(nth), s7_c_pointer(rectangle));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_region_is_empty(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_is_empty "cairo_bool_t cairo_region_is_empty(cairo_region_t* region)"
+  s7_pointer region;
+  region = s7_car(args);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_is_empty", 1, region, "cairo_region_t*");
+  return(s7_make_integer(sc, cairo_region_is_empty(s7_c_pointer(region))));
+}
+
+static s7_pointer lg_cairo_region_contains_rectangle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_contains_rectangle "cairo_region_overlap_t cairo_region_contains_rectangle(cairo_region_t* region, \
+cairo_rectangle_int_t* rectangle)"
+  s7_pointer _p;
+  s7_pointer region, rectangle;
+  _p = args;
+  region = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_contains_rectangle", 1, region, "cairo_region_t*");
+  rectangle = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rectangle, cairo_rectangle_int_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_contains_rectangle", 2, rectangle, "cairo_rectangle_int_t*");
+  return(s7_make_type_with_c_pointer(sc, cairo_region_overlap_t_sym, cairo_region_contains_rectangle(s7_c_pointer(region), s7_c_pointer(rectangle))));
+}
+
+static s7_pointer lg_cairo_region_contains_point(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_contains_point "cairo_bool_t cairo_region_contains_point(cairo_region_t* region, \
+int x, int y)"
+  s7_pointer _p;
+  s7_pointer region, x, y;
+  _p = args;
+  region = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_contains_point", 1, region, "cairo_region_t*");
+  x = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "cairo_region_contains_point", 2, x, "int");
+  y = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "cairo_region_contains_point", 3, y, "int");
+  return(s7_make_integer(sc, cairo_region_contains_point(s7_c_pointer(region), s7_integer(x), s7_integer(y))));
+}
+
+static s7_pointer lg_cairo_region_translate(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_translate "void cairo_region_translate(cairo_region_t* region, int dx, int dy)"
+  s7_pointer _p;
+  s7_pointer region, dx, dy;
+  _p = args;
+  region = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(region, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_translate", 1, region, "cairo_region_t*");
+  dx = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dx)) s7_wrong_type_arg_error(sc, "cairo_region_translate", 2, dx, "int");
+  dy = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_integer(dy)) s7_wrong_type_arg_error(sc, "cairo_region_translate", 3, dy, "int");
+  cairo_region_translate(s7_c_pointer(region), s7_integer(dx), s7_integer(dy));
+  return(lg_false);
+}
+
+static s7_pointer lg_cairo_region_subtract(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_subtract "cairo_status_t cairo_region_subtract(cairo_region_t* dst, cairo_region_t* other)"
+  s7_pointer _p;
+  s7_pointer dst, other;
+  _p = args;
+  dst = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dst, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_subtract", 1, dst, "cairo_region_t*");
+  other = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(other, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_subtract", 2, other, "cairo_region_t*");
+  return(s7_make_integer(sc, cairo_region_subtract(s7_c_pointer(dst), s7_c_pointer(other))));
+}
+
+static s7_pointer lg_cairo_region_subtract_rectangle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_subtract_rectangle "cairo_status_t cairo_region_subtract_rectangle(cairo_region_t* dst, \
+cairo_rectangle_int_t* rectangle)"
+  s7_pointer _p;
+  s7_pointer dst, rectangle;
+  _p = args;
+  dst = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dst, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_subtract_rectangle", 1, dst, "cairo_region_t*");
+  rectangle = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rectangle, cairo_rectangle_int_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_subtract_rectangle", 2, rectangle, "cairo_rectangle_int_t*");
+  return(s7_make_integer(sc, cairo_region_subtract_rectangle(s7_c_pointer(dst), s7_c_pointer(rectangle))));
+}
+
+static s7_pointer lg_cairo_region_intersect(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_intersect "cairo_status_t cairo_region_intersect(cairo_region_t* dst, cairo_region_t* other)"
+  s7_pointer _p;
+  s7_pointer dst, other;
+  _p = args;
+  dst = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dst, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_intersect", 1, dst, "cairo_region_t*");
+  other = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(other, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_intersect", 2, other, "cairo_region_t*");
+  return(s7_make_integer(sc, cairo_region_intersect(s7_c_pointer(dst), s7_c_pointer(other))));
+}
+
+static s7_pointer lg_cairo_region_intersect_rectangle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_intersect_rectangle "cairo_status_t cairo_region_intersect_rectangle(cairo_region_t* dst, \
+cairo_rectangle_int_t* rectangle)"
+  s7_pointer _p;
+  s7_pointer dst, rectangle;
+  _p = args;
+  dst = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dst, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_intersect_rectangle", 1, dst, "cairo_region_t*");
+  rectangle = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rectangle, cairo_rectangle_int_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_intersect_rectangle", 2, rectangle, "cairo_rectangle_int_t*");
+  return(s7_make_integer(sc, cairo_region_intersect_rectangle(s7_c_pointer(dst), s7_c_pointer(rectangle))));
+}
+
+static s7_pointer lg_cairo_region_union(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_union "cairo_status_t cairo_region_union(cairo_region_t* dst, cairo_region_t* other)"
+  s7_pointer _p;
+  s7_pointer dst, other;
+  _p = args;
+  dst = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dst, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_union", 1, dst, "cairo_region_t*");
+  other = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(other, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_union", 2, other, "cairo_region_t*");
+  return(s7_make_integer(sc, cairo_region_union(s7_c_pointer(dst), s7_c_pointer(other))));
+}
+
+static s7_pointer lg_cairo_region_union_rectangle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_union_rectangle "cairo_status_t cairo_region_union_rectangle(cairo_region_t* dst, \
+cairo_rectangle_int_t* rectangle)"
+  s7_pointer _p;
+  s7_pointer dst, rectangle;
+  _p = args;
+  dst = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dst, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_union_rectangle", 1, dst, "cairo_region_t*");
+  rectangle = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rectangle, cairo_rectangle_int_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_union_rectangle", 2, rectangle, "cairo_rectangle_int_t*");
+  return(s7_make_integer(sc, cairo_region_union_rectangle(s7_c_pointer(dst), s7_c_pointer(rectangle))));
+}
+
+static s7_pointer lg_cairo_region_xor(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_xor "cairo_status_t cairo_region_xor(cairo_region_t* dst, cairo_region_t* other)"
+  s7_pointer _p;
+  s7_pointer dst, other;
+  _p = args;
+  dst = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dst, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_xor", 1, dst, "cairo_region_t*");
+  other = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(other, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_xor", 2, other, "cairo_region_t*");
+  return(s7_make_integer(sc, cairo_region_xor(s7_c_pointer(dst), s7_c_pointer(other))));
+}
+
+static s7_pointer lg_cairo_region_xor_rectangle(s7_scheme *sc, s7_pointer args)
+{
+  #define H_cairo_region_xor_rectangle "cairo_status_t cairo_region_xor_rectangle(cairo_region_t* dst, \
+cairo_rectangle_int_t* rectangle)"
+  s7_pointer _p;
+  s7_pointer dst, rectangle;
+  _p = args;
+  dst = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(dst, cairo_region_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_xor_rectangle", 1, dst, "cairo_region_t*");
+  rectangle = s7_car(_p); _p = s7_cdr(_p);
+  if (!s7_is_c_pointer_of_type(rectangle, cairo_rectangle_int_t__sym)) s7_wrong_type_arg_error(sc, "cairo_region_xor_rectangle", 2, rectangle, "cairo_rectangle_int_t*");
+  return(s7_make_integer(sc, cairo_region_xor_rectangle(s7_c_pointer(dst), s7_c_pointer(rectangle))));
+}
+
+#endif
+
+static s7_pointer lg_g_signal_connect(s7_scheme *sc, s7_pointer args)
+{
+  #define H_g_signal_connect "gulong g_signal_connect(gpointer instance, gchar* signal_name, GCallback func, lambda_data func_info)"
+  s7_pointer obj, name, func, data;
+  GCallback callf;
+  obj = s7_car(args);
+  name = s7_cadr(args);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "g_signal_connect", 2, name, "gchar*");
+  func = s7_caddr(args);
+  if (s7_is_aritable(sc, func, 4)) callf = (GCallback)lg_func4;
+  else {if (s7_is_aritable(sc, func, 3)) callf = (GCallback)lg_func3; else callf = (GCallback)lg_func2;}
+  if (s7_is_pair(s7_cdddr(args))) data = s7_cadddr(args); else data = s7_nil(sc);
+  if (data == lg_false) data = s7_nil(sc);
+  return(s7_make_integer(sc, 
+            g_signal_connect_data((gpointer)s7_c_pointer(obj),
+                                  (gchar *)s7_string(name),
+                                  callf,
+                                  (gpointer)s7_cons(sc, func, data), 
+                                  NULL, (GConnectFlags)0)));
+}
+static s7_pointer lg_GPOINTER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), gpointer_sym, lg_false));}
+static s7_pointer lg_GDK_DRAG_CONTEXT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkDragContext__sym, lg_false));}
+static s7_pointer lg_GDK_DEVICE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkDevice__sym, lg_false));}
+static s7_pointer lg_GDK_KEYMAP(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkKeymap__sym, lg_false));}
+static s7_pointer lg_GDK_WINDOW(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkWindow__sym, lg_false));}
+static s7_pointer lg_GDK_PIXBUF(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkPixbuf__sym, lg_false));}
+static s7_pointer lg_GDK_PIXBUF_ANIMATION(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkPixbufAnimation__sym, lg_false));}
+static s7_pointer lg_GDK_PIXBUF_ANIMATION_ITER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkPixbufAnimationIter__sym, lg_false));}
+static s7_pointer lg_GTK_ACCEL_GROUP(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkAccelGroup__sym, lg_false));}
+static s7_pointer lg_GTK_ACCEL_LABEL(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkAccelLabel__sym, lg_false));}
+static s7_pointer lg_GTK_ACCESSIBLE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkAccessible__sym, lg_false));}
+static s7_pointer lg_GTK_ADJUSTMENT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkAdjustment__sym, lg_false));}
+static s7_pointer lg_GTK_ASPECT_FRAME(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkAspectFrame__sym, lg_false));}
+static s7_pointer lg_GTK_BUTTON_BOX(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkButtonBox__sym, lg_false));}
+static s7_pointer lg_GTK_BIN(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkBin__sym, lg_false));}
+static s7_pointer lg_GTK_BOX(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkBox__sym, lg_false));}
+static s7_pointer lg_GTK_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkButton__sym, lg_false));}
+static s7_pointer lg_GTK_CALENDAR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCalendar__sym, lg_false));}
+static s7_pointer lg_GTK_CELL_EDITABLE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCellEditable__sym, lg_false));}
+static s7_pointer lg_GTK_CELL_RENDERER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCellRenderer__sym, lg_false));}
+static s7_pointer lg_GTK_CELL_RENDERER_PIXBUF(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCellRendererPixbuf__sym, lg_false));}
+static s7_pointer lg_GTK_CELL_RENDERER_TEXT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCellRendererText__sym, lg_false));}
+static s7_pointer lg_GTK_CELL_RENDERER_TOGGLE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCellRendererToggle__sym, lg_false));}
+static s7_pointer lg_GTK_CHECK_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCheckButton__sym, lg_false));}
+static s7_pointer lg_GTK_CHECK_MENU_ITEM(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCheckMenuItem__sym, lg_false));}
+static s7_pointer lg_GTK_CONTAINER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkContainer__sym, lg_false));}
+static s7_pointer lg_GTK_DIALOG(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkDialog__sym, lg_false));}
+static s7_pointer lg_GTK_DRAWING_AREA(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkDrawingArea__sym, lg_false));}
+static s7_pointer lg_GTK_EDITABLE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkEditable__sym, lg_false));}
+static s7_pointer lg_GTK_ENTRY(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkEntry__sym, lg_false));}
+static s7_pointer lg_GTK_EVENT_BOX(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkEventBox__sym, lg_false));}
+static s7_pointer lg_GTK_FIXED(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkFixed__sym, lg_false));}
+static s7_pointer lg_GTK_FRAME(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkFrame__sym, lg_false));}
+static s7_pointer lg_GTK_IMAGE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkImage__sym, lg_false));}
+static s7_pointer lg_GTK_IM_CONTEXT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkIMContext__sym, lg_false));}
+static s7_pointer lg_GTK_IM_CONTEXT_SIMPLE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkIMContextSimple__sym, lg_false));}
+static s7_pointer lg_GTK_INVISIBLE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkInvisible__sym, lg_false));}
+static s7_pointer lg_GTK_LABEL(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkLabel__sym, lg_false));}
+static s7_pointer lg_GTK_LAYOUT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkLayout__sym, lg_false));}
+static s7_pointer lg_GTK_LIST_STORE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkListStore__sym, lg_false));}
+static s7_pointer lg_GTK_MENU_BAR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkMenuBar__sym, lg_false));}
+static s7_pointer lg_GTK_MENU(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkMenu__sym, lg_false));}
+static s7_pointer lg_GTK_MENU_ITEM(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkMenuItem__sym, lg_false));}
+static s7_pointer lg_GTK_MENU_SHELL(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkMenuShell__sym, lg_false));}
+static s7_pointer lg_GTK_NOTEBOOK(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkNotebook__sym, lg_false));}
+static s7_pointer lg_GTK_PANED(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkPaned__sym, lg_false));}
+static s7_pointer lg_GTK_PROGRESS_BAR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkProgressBar__sym, lg_false));}
+static s7_pointer lg_GTK_RADIO_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkRadioButton__sym, lg_false));}
+static s7_pointer lg_GTK_RADIO_MENU_ITEM(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkRadioMenuItem__sym, lg_false));}
+static s7_pointer lg_GTK_RANGE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkRange__sym, lg_false));}
+static s7_pointer lg_GTK_SCALE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkScale__sym, lg_false));}
+static s7_pointer lg_GTK_SCROLLBAR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkScrollbar__sym, lg_false));}
+static s7_pointer lg_GTK_SCROLLED_WINDOW(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkScrolledWindow__sym, lg_false));}
+static s7_pointer lg_GTK_SEPARATOR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkSeparator__sym, lg_false));}
+static s7_pointer lg_GTK_SEPARATOR_MENU_ITEM(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkSeparatorMenuItem__sym, lg_false));}
+static s7_pointer lg_GTK_SETTINGS(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkSettings__sym, lg_false));}
+static s7_pointer lg_GTK_SIZE_GROUP(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkSizeGroup__sym, lg_false));}
+static s7_pointer lg_GTK_SPIN_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkSpinButton__sym, lg_false));}
+static s7_pointer lg_GTK_STATUSBAR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkStatusbar__sym, lg_false));}
+static s7_pointer lg_GTK_TEXT_BUFFER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTextBuffer__sym, lg_false));}
+static s7_pointer lg_GTK_TEXT_CHILD_ANCHOR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTextChildAnchor__sym, lg_false));}
+static s7_pointer lg_GTK_TEXT_MARK(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTextMark__sym, lg_false));}
+static s7_pointer lg_GTK_TEXT_TAG(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTextTag__sym, lg_false));}
+static s7_pointer lg_GTK_TEXT_TAG_TABLE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTextTagTable__sym, lg_false));}
+static s7_pointer lg_GTK_TEXT_VIEW(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTextView__sym, lg_false));}
+static s7_pointer lg_GTK_TOGGLE_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkToggleButton__sym, lg_false));}
+static s7_pointer lg_GTK_TOOLBAR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkToolbar__sym, lg_false));}
+static s7_pointer lg_GTK_TREE_DRAG_SOURCE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTreeDragSource__sym, lg_false));}
+static s7_pointer lg_GTK_TREE_DRAG_DEST(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTreeDragDest__sym, lg_false));}
+static s7_pointer lg_GTK_TREE_MODEL(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTreeModel__sym, lg_false));}
+static s7_pointer lg_GTK_TREE_MODEL_SORT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTreeModelSort__sym, lg_false));}
+static s7_pointer lg_GTK_TREE_SELECTION(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTreeSelection__sym, lg_false));}
+static s7_pointer lg_GTK_TREE_SORTABLE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTreeSortable__sym, lg_false));}
+static s7_pointer lg_GTK_TREE_STORE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTreeStore__sym, lg_false));}
+static s7_pointer lg_GTK_TREE_VIEW_COLUMN(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTreeViewColumn__sym, lg_false));}
+static s7_pointer lg_GTK_TREE_VIEW(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTreeView__sym, lg_false));}
+static s7_pointer lg_GTK_VIEWPORT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkViewport__sym, lg_false));}
+static s7_pointer lg_GTK_WIDGET(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkWidget__sym, lg_false));}
+static s7_pointer lg_GTK_WINDOW(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkWindow__sym, lg_false));}
+static s7_pointer lg_PANGO_CONTEXT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), PangoContext__sym, lg_false));}
+static s7_pointer lg_PANGO_FONT_FAMILY(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), PangoFontFamily__sym, lg_false));}
+static s7_pointer lg_PANGO_FONT_FACE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), PangoFontFace__sym, lg_false));}
+static s7_pointer lg_PANGO_FONT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), PangoFont__sym, lg_false));}
+static s7_pointer lg_PANGO_FONT_MAP(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), PangoFontMap__sym, lg_false));}
+static s7_pointer lg_PANGO_LAYOUT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), PangoLayout__sym, lg_false));}
+static s7_pointer lg_G_OBJECT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GObject__sym, lg_false));}
+static s7_pointer lg_GDK_SCREEN(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkScreen__sym, lg_false));}
+static s7_pointer lg_GDK_DISPLAY_OBJECT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkDisplay__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEvent__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_ANY(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventAny__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_EXPOSE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventExpose__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_NOEXPOSE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventNoExpose__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_VISIBILITY(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventVisibility__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_MOTION(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventMotion__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventButton__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_SCROLL(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventScroll__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_KEY(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventKey__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_CROSSING(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventCrossing__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_FOCUS(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventFocus__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_CONFIGURE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventConfigure__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_PROPERTY(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventProperty__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_SELECTION(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventSelection__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_PROXIMITY(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventProximity__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_SETTING(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventSetting__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_WINDOWSTATE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventWindowState__sym, lg_false));}
+static s7_pointer lg_GDK_EVENT_DND(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkEventDND__sym, lg_false));}
+static s7_pointer lg_GTK_FILE_CHOOSER_DIALOG(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkFileChooserDialog__sym, lg_false));}
+static s7_pointer lg_GTK_FILE_CHOOSER_WIDGET(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkFileChooserWidget__sym, lg_false));}
+static s7_pointer lg_GTK_TREE_MODEL_FILTER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTreeModelFilter__sym, lg_false));}
+static s7_pointer lg_GTK_COMBO_BOX(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkComboBox__sym, lg_false));}
+static s7_pointer lg_GTK_EXPANDER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkExpander__sym, lg_false));}
+static s7_pointer lg_GTK_FONT_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkFontButton__sym, lg_false));}
+static s7_pointer lg_GTK_COLOR_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkColorButton__sym, lg_false));}
+static s7_pointer lg_GTK_ENTRY_COMPLETION(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkEntryCompletion__sym, lg_false));}
+static s7_pointer lg_GTK_RADIO_TOOL_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkRadioToolButton__sym, lg_false));}
+static s7_pointer lg_GTK_SEPARATOR_TOOL_ITEM(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkSeparatorToolItem__sym, lg_false));}
+static s7_pointer lg_GTK_TOGGLE_TOOL_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkToggleToolButton__sym, lg_false));}
+static s7_pointer lg_GTK_FILE_FILTER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkFileFilter__sym, lg_false));}
+static s7_pointer lg_GTK_CELL_LAYOUT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCellLayout__sym, lg_false));}
+static s7_pointer lg_GTK_CLIPBOARD(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkClipboard__sym, lg_false));}
+static s7_pointer lg_GTK_FILE_CHOOSER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkFileChooser__sym, lg_false));}
+static s7_pointer lg_GTK_ICON_THEME(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkIconTheme__sym, lg_false));}
+static s7_pointer lg_GTK_TOOL_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkToolButton__sym, lg_false));}
+static s7_pointer lg_GTK_TOOL_ITEM(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkToolItem__sym, lg_false));}
+static s7_pointer lg_GTK_ACCEL_MAP(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkAccelMap_sym, lg_false));}
+static s7_pointer lg_GTK_CELL_VIEW(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCellView__sym, lg_false));}
+static s7_pointer lg_GTK_ABOUT_DIALOG(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkAboutDialog__sym, lg_false));}
+static s7_pointer lg_GTK_CELL_RENDERER_COMBO(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCellRendererCombo__sym, lg_false));}
+static s7_pointer lg_GTK_CELL_RENDERER_PROGRESS(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCellRendererProgress__sym, lg_false));}
+static s7_pointer lg_GTK_ICON_VIEW(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkIconView__sym, lg_false));}
+static s7_pointer lg_GTK_FILE_CHOOSER_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkFileChooserButton__sym, lg_false));}
+static s7_pointer lg_GTK_MENU_TOOL_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkMenuToolButton__sym, lg_false));}
+static s7_pointer lg_GTK_ASSISTANT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkAssistant__sym, lg_false));}
+static s7_pointer lg_GTK_CELL_RENDERER_ACCEL(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCellRendererAccel__sym, lg_false));}
+static s7_pointer lg_GTK_CELL_RENDERER_SPIN(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCellRendererSpin__sym, lg_false));}
+static s7_pointer lg_GTK_LINK_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkLinkButton__sym, lg_false));}
+static s7_pointer lg_GTK_RECENT_CHOOSER_DIALOG(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkRecentChooserDialog__sym, lg_false));}
+static s7_pointer lg_GTK_RECENT_CHOOSER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkRecentChooser__sym, lg_false));}
+static s7_pointer lg_GTK_RECENT_CHOOSER_MENU(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkRecentChooserMenu__sym, lg_false));}
+static s7_pointer lg_GTK_RECENT_CHOOSER_WIDGET(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkRecentChooserWidget__sym, lg_false));}
+static s7_pointer lg_GTK_RECENT_FILTER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkRecentFilter__sym, lg_false));}
+static s7_pointer lg_GTK_RECENT_MANAGER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkRecentManager__sym, lg_false));}
+static s7_pointer lg_GTK_PRINT_CONTEXT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkPrintContext__sym, lg_false));}
+static s7_pointer lg_GTK_PRINT_OPERATION(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkPrintOperation__sym, lg_false));}
+static s7_pointer lg_GTK_PRINT_SETTINGS(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkPrintSettings__sym, lg_false));}
+static s7_pointer lg_GTK_TOOLTIP(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkTooltip__sym, lg_false));}
+#if GTK_CHECK_VERSION(2, 18, 0)
+static s7_pointer lg_GTK_INFO_BAR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkInfoBar__sym, lg_false));}
+static s7_pointer lg_GTK_ENTRY_BUFFER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkEntryBuffer__sym, lg_false));}
+#endif
+
+#if GTK_CHECK_VERSION(2, 20, 0)
+static s7_pointer lg_GTK_SPINNER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkSpinner__sym, lg_false));}
+static s7_pointer lg_GTK_CELL_RENDERER_SPINNER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCellRendererSpinner__sym, lg_false));}
+static s7_pointer lg_GTK_TOOL_PALETTE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkToolPalette__sym, lg_false));}
+static s7_pointer lg_GTK_TOOL_ITEM_GROUP(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkToolItemGroup__sym, lg_false));}
+#endif
+
+#if GTK_CHECK_VERSION(3, 0, 0)
+static s7_pointer lg_GTK_COMBO_BOX_TEXT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkComboBoxText__sym, lg_false));}
+static s7_pointer lg_GTK_GRID(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkGrid__sym, lg_false));}
+static s7_pointer lg_GTK_SCROLLABLE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkScrollable__sym, lg_false));}
+static s7_pointer lg_GDK_RGBA(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkRGBA__sym, lg_false));}
+static s7_pointer lg_GTK_SWITCH(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkSwitch__sym, lg_false));}
+static s7_pointer lg_GTK_ORIENTABLE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkOrientable__sym, lg_false));}
+static s7_pointer lg_GTK_WINDOW_GROUP(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkWindowGroup__sym, lg_false));}
+static s7_pointer lg_GTK_TOOL_SHELL(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkToolShell__sym, lg_false));}
+#endif
+
+#if GTK_CHECK_VERSION(3, 2, 0)
+static s7_pointer lg_GTK_OVERLAY(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkOverlay__sym, lg_false));}
+static s7_pointer lg_GTK_FONT_CHOOSER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkFontChooser__sym, lg_false));}
+static s7_pointer lg_GTK_FONT_CHOOSER_DIALOG(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkFontChooserDialog__sym, lg_false));}
+static s7_pointer lg_GTK_FONT_CHOOSER_WIDGET(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkFontChooserWidget__sym, lg_false));}
+#endif
+
+#if GTK_CHECK_VERSION(3, 4, 0)
+static s7_pointer lg_GTK_APPLICATION_WINDOW(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkApplicationWindow__sym, lg_false));}
+static s7_pointer lg_GTK_COLOR_CHOOSER_DIALOG(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkColorChooserDialog__sym, lg_false));}
+static s7_pointer lg_GTK_COLOR_CHOOSER_WIDGET(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkColorWidget__sym, lg_false));}
+#endif
+
+#if GTK_CHECK_VERSION(3, 6, 0)
+static s7_pointer lg_GTK_MENU_BUTTON(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkMenuButton__sym, lg_false));}
+static s7_pointer lg_GTK_SEARCH_ENTRY(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkWidget__sym, lg_false));}
+static s7_pointer lg_GTK_LEVEL_BAR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkLevelBar__sym, lg_false));}
+#endif
+
+#if GTK_CHECK_VERSION(3, 10, 0)
+static s7_pointer lg_GTK_PLACES_SIDEBAR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkPlacesSidebar__sym, lg_false));}
+static s7_pointer lg_GTK_STACK_SWITCHER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkStackSwitcher__sym, lg_false));}
+static s7_pointer lg_GTK_STACK(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkStack__sym, lg_false));}
+static s7_pointer lg_GTK_REVEALER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkRevealer__sym, lg_false));}
+static s7_pointer lg_GTK_HEADER_BAR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkHeaderBar__sym, lg_false));}
+static s7_pointer lg_GTK_LIST_BOX(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkListBox__sym, lg_false));}
+static s7_pointer lg_GTK_LIST_BOX_ROW(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkListBoxRow__sym, lg_false));}
+static s7_pointer lg_GTK_SEARCH_BAR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkSearchBar__sym, lg_false));}
+#endif
+
+#if GTK_CHECK_VERSION(3, 12, 0)
+static s7_pointer lg_GTK_FLOW_BOX(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkFlowBox__sym, lg_false));}
+static s7_pointer lg_GTK_FLOW_BOX_CHILD(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkFlowBoxChild__sym, lg_false));}
+static s7_pointer lg_GTK_ACTION_BAR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkActionBar__sym, lg_false));}
+static s7_pointer lg_GTK_POPOVER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkPopover__sym, lg_false));}
+#endif
+
+#if GTK_CHECK_VERSION(3, 14, 0)
+static s7_pointer lg_GTK_GESTURE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkGesture__sym, lg_false));}
+static s7_pointer lg_GTK_GESTURE_DRAG(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkGestureDrag__sym, lg_false));}
+static s7_pointer lg_GTK_GESTURE_LONG_PRESS(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkGestureLongPress__sym, lg_false));}
+static s7_pointer lg_GTK_GESTURE_ZOOM(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkGestureZoom__sym, lg_false));}
+static s7_pointer lg_GTK_GESTURE_SWIPE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkGestureSwipe__sym, lg_false));}
+static s7_pointer lg_GTK_GESTURE_SINGLE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkGestureSingle__sym, lg_false));}
+static s7_pointer lg_GTK_GESTURE_PAN(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkGesturePan__sym, lg_false));}
+static s7_pointer lg_GTK_GESTURE_MULTI_PRESS(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkGestureMultiPress__sym, lg_false));}
+static s7_pointer lg_GTK_GESTURE_ROTATE(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkGestureRotate__sym, lg_false));}
+static s7_pointer lg_GTK_EVENT_CONTROLLER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkEventController__sym, lg_false));}
+#endif
+
+#if GTK_CHECK_VERSION(3, 16, 0)
+static s7_pointer lg_GTK_GL_AREA(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkGLArea__sym, lg_false));}
+static s7_pointer lg_GDK_GL_CONTEXT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkGLContext__sym, lg_false));}
+static s7_pointer lg_GTK_POPOVER_MENU(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkPopoverMenu__sym, lg_false));}
+static s7_pointer lg_GTK_STACK_SIDEBAR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkStackSidebar__sym, lg_false));}
+#endif
+
+#if GTK_CHECK_VERSION(3, 20, 0)
+static s7_pointer lg_GDK_SEAT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkSeat__sym, lg_false));}
+#endif
+
+#if GTK_CHECK_VERSION(3, 22, 0)
+static s7_pointer lg_GDK_DEVICE_TOOL(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkDeviceTool__sym, lg_false));}
+static s7_pointer lg_GDK_MONITOR(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkMonitor__sym, lg_false));}
+static s7_pointer lg_GDK_DRAWING_CONTEXT(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkDrawingContext__sym, lg_false));}
+static s7_pointer lg_GDK_DEVICE_PAD(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GdkDevicePad__sym, lg_false));}
+static s7_pointer lg_GTK_PAD_CONTROLLER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkPadController__sym, lg_false));}
+static s7_pointer lg_GTK_SHORTCUT_LABEL(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkShortcutLabel__sym, lg_false));}
+#endif
+
+#if GTK_CHECK_VERSION(3, 99, 0)
+static s7_pointer lg_GTK_CENTER_BOX(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), GtkCenterBox__sym, lg_false));}
+#endif
+
+static s7_pointer lg_GDK_IS_DRAG_CONTEXT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_DRAG_CONTEXT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GDK_IS_DEVICE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_DEVICE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GDK_IS_KEYMAP(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_KEYMAP((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GDK_IS_WINDOW(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_WINDOW((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GDK_IS_PIXBUF(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_PIXBUF((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GDK_IS_PIXBUF_ANIMATION(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_PIXBUF_ANIMATION((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GDK_IS_PIXBUF_ANIMATION_ITER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_PIXBUF_ANIMATION_ITER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ACCEL_GROUP(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ACCEL_GROUP((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ACCEL_LABEL(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ACCEL_LABEL((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ACCESSIBLE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ACCESSIBLE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ADJUSTMENT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ADJUSTMENT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ASPECT_FRAME(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ASPECT_FRAME((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_BUTTON_BOX(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_BUTTON_BOX((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_BIN(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_BIN((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_BOX(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_BOX((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_BUTTON(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_BUTTON((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CALENDAR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CALENDAR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CELL_EDITABLE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CELL_EDITABLE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CELL_RENDERER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CELL_RENDERER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CELL_RENDERER_PIXBUF(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CELL_RENDERER_PIXBUF((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CELL_RENDERER_TEXT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CELL_RENDERER_TEXT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CELL_RENDERER_TOGGLE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CELL_RENDERER_TOGGLE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CHECK_BUTTON(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CHECK_BUTTON((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CHECK_MENU_ITEM(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CHECK_MENU_ITEM((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CONTAINER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CONTAINER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_DIALOG(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_DIALOG((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_DRAWING_AREA(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_DRAWING_AREA((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_EDITABLE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_EDITABLE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ENTRY(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ENTRY((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_EVENT_BOX(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_EVENT_BOX((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_FIXED(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_FIXED((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_FRAME(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_FRAME((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_IMAGE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_IMAGE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_IM_CONTEXT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_IM_CONTEXT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_IM_CONTEXT_SIMPLE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_IM_CONTEXT_SIMPLE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_INVISIBLE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_INVISIBLE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_LABEL(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_LABEL((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_LAYOUT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_LAYOUT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_LIST_STORE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_LIST_STORE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_MENU_BAR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_MENU_BAR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_MENU(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_MENU((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_MENU_ITEM(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_MENU_ITEM((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_MENU_SHELL(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_MENU_SHELL((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_NOTEBOOK(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_NOTEBOOK((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_PANED(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_PANED((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_PROGRESS_BAR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_PROGRESS_BAR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_RADIO_BUTTON(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_RADIO_BUTTON((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_RADIO_MENU_ITEM(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_RADIO_MENU_ITEM((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_RANGE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_RANGE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_SCALE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SCALE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_SCROLLBAR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SCROLLBAR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_SCROLLED_WINDOW(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SCROLLED_WINDOW((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_SEPARATOR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SEPARATOR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_SEPARATOR_MENU_ITEM(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SEPARATOR_MENU_ITEM((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_SETTINGS(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SETTINGS((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_SIZE_GROUP(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SIZE_GROUP((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_SPIN_BUTTON(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SPIN_BUTTON((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_STATUSBAR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_STATUSBAR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TEXT_BUFFER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TEXT_BUFFER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TEXT_CHILD_ANCHOR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TEXT_CHILD_ANCHOR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TEXT_MARK(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TEXT_MARK((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TEXT_TAG(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TEXT_TAG((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TEXT_TAG_TABLE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TEXT_TAG_TABLE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TEXT_VIEW(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TEXT_VIEW((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TOGGLE_BUTTON(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TOGGLE_BUTTON((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TOOLBAR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TOOLBAR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TREE_DRAG_SOURCE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TREE_DRAG_SOURCE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TREE_DRAG_DEST(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TREE_DRAG_DEST((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TREE_MODEL(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TREE_MODEL((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TREE_MODEL_SORT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TREE_MODEL_SORT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TREE_SELECTION(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TREE_SELECTION((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TREE_SORTABLE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TREE_SORTABLE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TREE_STORE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TREE_STORE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TREE_VIEW_COLUMN(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TREE_VIEW_COLUMN((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TREE_VIEW(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TREE_VIEW((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_VIEWPORT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_VIEWPORT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_WIDGET(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_WIDGET((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_WINDOW(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_WINDOW((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_PANGO_IS_CONTEXT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (PANGO_IS_CONTEXT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_PANGO_IS_FONT_FAMILY(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (PANGO_IS_FONT_FAMILY((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_PANGO_IS_FONT_FACE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (PANGO_IS_FONT_FACE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_PANGO_IS_FONT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (PANGO_IS_FONT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_PANGO_IS_FONT_MAP(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (PANGO_IS_FONT_MAP((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_PANGO_IS_LAYOUT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (PANGO_IS_LAYOUT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_G_IS_OBJECT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (G_IS_OBJECT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GDK_IS_SCREEN(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_SCREEN((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GDK_IS_DISPLAY(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_DISPLAY((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_FILE_CHOOSER_DIALOG(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_FILE_CHOOSER_DIALOG((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_FILE_CHOOSER_WIDGET(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_FILE_CHOOSER_WIDGET((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TREE_MODEL_FILTER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TREE_MODEL_FILTER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_COMBO_BOX(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_COMBO_BOX((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_EXPANDER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_EXPANDER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_FONT_BUTTON(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_FONT_BUTTON((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_COLOR_BUTTON(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_COLOR_BUTTON((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ENTRY_COMPLETION(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ENTRY_COMPLETION((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_RADIO_TOOL_BUTTON(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_RADIO_TOOL_BUTTON((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_SEPARATOR_TOOL_ITEM(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SEPARATOR_TOOL_ITEM((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TOGGLE_TOOL_BUTTON(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TOGGLE_TOOL_BUTTON((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_FILE_FILTER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_FILE_FILTER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CELL_LAYOUT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CELL_LAYOUT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CLIPBOARD(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CLIPBOARD((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_FILE_CHOOSER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_FILE_CHOOSER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ICON_THEME(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ICON_THEME((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TOOL_BUTTON(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TOOL_BUTTON((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TOOL_ITEM(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TOOL_ITEM((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ACCEL_MAP(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ACCEL_MAP((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CELL_VIEW(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CELL_VIEW((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ABOUT_DIALOG(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ABOUT_DIALOG((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CELL_RENDERER_COMBO(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CELL_RENDERER_COMBO((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CELL_RENDERER_PROGRESS(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CELL_RENDERER_PROGRESS((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ICON_VIEW(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ICON_VIEW((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_FILE_CHOOSER_BUTTON(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_FILE_CHOOSER_BUTTON((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_MENU_TOOL_BUTTON(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_MENU_TOOL_BUTTON((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ASSISTANT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ASSISTANT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CELL_RENDERER_ACCEL(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CELL_RENDERER_ACCEL((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CELL_RENDERER_SPIN(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CELL_RENDERER_SPIN((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_LINK_BUTTON(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_LINK_BUTTON((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_RECENT_CHOOSER_DIALOG(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_RECENT_CHOOSER_DIALOG((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_RECENT_CHOOSER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_RECENT_CHOOSER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_RECENT_CHOOSER_MENU(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_RECENT_CHOOSER_MENU((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_RECENT_CHOOSER_WIDGET(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_RECENT_CHOOSER_WIDGET((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_RECENT_FILTER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_RECENT_FILTER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_RECENT_MANAGER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_RECENT_MANAGER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_PRINT_CONTEXT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_PRINT_CONTEXT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_PRINT_OPERATION(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_PRINT_OPERATION((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_PRINT_SETTINGS(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_PRINT_SETTINGS((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TOOLTIP(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TOOLTIP((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+#if GTK_CHECK_VERSION(2, 18, 0)
+static s7_pointer lg_GTK_IS_INFO_BAR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_INFO_BAR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ENTRY_BUFFER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ENTRY_BUFFER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+#endif
+
+#if GTK_CHECK_VERSION(2, 20, 0)
+static s7_pointer lg_GTK_IS_SPINNER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SPINNER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_CELL_RENDERER_SPINNER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CELL_RENDERER_SPINNER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TOOL_PALETTE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TOOL_PALETTE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TOOL_ITEM_GROUP(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TOOL_ITEM_GROUP((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+#endif
+
+#if GTK_CHECK_VERSION(3, 0, 0)
+static s7_pointer lg_GTK_IS_COMBO_BOX_TEXT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_COMBO_BOX_TEXT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_GRID(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_GRID((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_SCROLLABLE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SCROLLABLE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_SWITCH(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SWITCH((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ORIENTABLE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ORIENTABLE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_WINDOW_GROUP(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_WINDOW_GROUP((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_TOOL_SHELL(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_TOOL_SHELL((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+#endif
+
+#if GTK_CHECK_VERSION(3, 2, 0)
+static s7_pointer lg_GTK_IS_OVERLAY(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_OVERLAY((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_FONT_CHOOSER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_FONT_CHOOSER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_FONT_CHOOSER_DIALOG(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_FONT_CHOOSER_DIALOG((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_FONT_CHOOSER_WIDGET(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_FONT_CHOOSER_WIDGET((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+#endif
+
+#if GTK_CHECK_VERSION(3, 4, 0)
+static s7_pointer lg_GTK_IS_APPLICATION_WINDOW(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_APPLICATION_WINDOW((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_COLOR_CHOOSER_DIALOG(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_COLOR_CHOOSER_DIALOG((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_COLOR_CHOOSER_WIDGET(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_COLOR_CHOOSER_WIDGET((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+#endif
+
+#if GTK_CHECK_VERSION(3, 6, 0)
+static s7_pointer lg_GTK_IS_MENU_BUTTON(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_MENU_BUTTON((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_SEARCH_ENTRY(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SEARCH_ENTRY((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_LEVEL_BAR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_LEVEL_BAR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+#endif
+
+#if GTK_CHECK_VERSION(3, 10, 0)
+static s7_pointer lg_GTK_IS_PLACES_SIDEBAR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_PLACES_SIDEBAR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_STACK_SWITCHER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_STACK_SWITCHER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_STACK(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_STACK((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_REVEALER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_REVEALER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_HEADER_BAR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_HEADER_BAR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_LIST_BOX(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_LIST_BOX((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_LIST_BOX_ROW(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_LIST_BOX_ROW((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_SEARCH_BAR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SEARCH_BAR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+#endif
+
+#if GTK_CHECK_VERSION(3, 12, 0)
+static s7_pointer lg_GTK_IS_FLOW_BOX(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_FLOW_BOX((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_FLOW_BOX_CHILD(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_FLOW_BOX_CHILD((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_ACTION_BAR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_ACTION_BAR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_POPOVER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_POPOVER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+#endif
+
+#if GTK_CHECK_VERSION(3, 14, 0)
+static s7_pointer lg_GTK_IS_GESTURE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_GESTURE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_GESTURE_DRAG(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_GESTURE_DRAG((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_GESTURE_LONG_PRESS(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_GESTURE_LONG_PRESS((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_GESTURE_ZOOM(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_GESTURE_ZOOM((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_GESTURE_SWIPE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_GESTURE_SWIPE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_GESTURE_SINGLE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_GESTURE_SINGLE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_GESTURE_PAN(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_GESTURE_PAN((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_GESTURE_MULTI_PRESS(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_GESTURE_MULTI_PRESS((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_GESTURE_ROTATE(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_GESTURE_ROTATE((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_EVENT_CONTROLLER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_EVENT_CONTROLLER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+#endif
+
+#if GTK_CHECK_VERSION(3, 16, 0)
+static s7_pointer lg_GTK_IS_GL_AREA(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_GL_AREA((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GDK_IS_GL_CONTEXT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_GL_CONTEXT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_POPOVER_MENU(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_POPOVER_MENU((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_STACK_SIDEBAR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_STACK_SIDEBAR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+#endif
+
+#if GTK_CHECK_VERSION(3, 20, 0)
+static s7_pointer lg_GDK_IS_SEAT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_SEAT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+#endif
+
+#if GTK_CHECK_VERSION(3, 22, 0)
+static s7_pointer lg_GDK_IS_DEVICE_TOOL(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_DEVICE_TOOL((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GDK_IS_MONITOR(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_MONITOR((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GDK_IS_DRAWING_CONTEXT(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_DRAWING_CONTEXT((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GDK_IS_DEVICE_PAD(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GDK_IS_DEVICE_PAD((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_PAD_CONTROLLER(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_PAD_CONTROLLER((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+static s7_pointer lg_GTK_IS_SHORTCUT_LABEL(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_SHORTCUT_LABEL((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+#endif
+
+#if GTK_CHECK_VERSION(3, 99, 0)
+static s7_pointer lg_GTK_IS_CENTER_BOX(s7_scheme *sc, s7_pointer args)
+{
+  return(((s7_is_c_pointer(s7_car(args))) && (GTK_IS_CENTER_BOX((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);
+}
+#endif
+
+#if (GTK_CHECK_VERSION(3, 90, 0))
+static s7_pointer lg_gtk_init(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_init "void gtk_init(void)" 
+  gtk_init();
+  return(lg_false);
+}
+static s7_pointer lg_gtk_init_check(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_init_check "void gtk_init_check(void)" 
+  gtk_init_check();
+  return(lg_false);
+}
+#else
+static s7_pointer lg_gtk_init(s7_scheme *sc, s7_pointer args)
+{ 
+  #define H_gtk_init "void gtk_init(int* argc, char*** argv)" 
+  int ref_argc = 0; 
+  char** ref_argv = NULL; 
+  s7_pointer argc = NULL, argv = NULL; 
+  if (s7_is_pair(args)) {argc = s7_car(args); ref_argc = s7_integer(argc); if (s7_is_pair(s7_cdr(args))) argv = s7_cadr(args);}
+  if ((argv) && (ref_argc > 0) && (s7_is_pair(argv)) && (ref_argc <= s7_list_length(sc, argv))) {
+  ref_argv = (char**)calloc(ref_argc, sizeof(char*)); 
+  { 
+    int i; 
+    for (i = 0; i < ref_argc; i++, argv = s7_cdr(argv)) ref_argv[i] = (char *)s7_string(s7_car(argv));}
+  }
+  gtk_init(&ref_argc, &ref_argv);
+  return(argc);
+} 
+
+static s7_pointer lg_gtk_init_check(s7_scheme *sc, s7_pointer args)
+{ 
+  #define H_gtk_init_check "gboolean gtk_init_check(int* argc, char*** argv)" 
+  int ref_argc = 0; 
+  char** ref_argv = NULL; 
+  s7_pointer argc = NULL, argv = NULL;
+  if (s7_is_pair(args)) {argc = s7_car(args); ref_argc = s7_integer(argc); if (s7_is_pair(s7_cdr(args))) argv = s7_cadr(args);}
+  if ((argv) && (ref_argc > 0) && (s7_is_pair(argv)) && (ref_argc <= s7_list_length(sc, argv))) {
+  ref_argv = (char**)calloc(ref_argc, sizeof(char*)); 
+  { 
+    int i; 
+    for (i = 0; i < ref_argc; i++, argv = s7_cdr(argv)) ref_argv[i] = (char *)s7_string(s7_car(argv));}
+  }
+  gtk_init(&ref_argc, &ref_argv);
+  return(argc);
+} 
+
+#endif
+
+static s7_pointer lg_g_object_get(s7_scheme *sc, s7_pointer args)
+{
+  s7_pointer val, name, string_type;
+  gint temp; gchar *str;
+  val = s7_car(args);
+  if (!s7_is_c_pointer(val)) s7_wrong_type_arg_error(sc, "g_object_get", 1, val, "gpointer");
+  name = s7_cadr(args);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "g_object_get", 2, name, "string");
+  string_type = s7_caddr(args);
+  if (string_type == lg_false)
+    {g_object_get((gpointer)s7_c_pointer(val), (const gchar *)s7_string(name), &temp, NULL); return(s7_make_integer(sc, temp));}
+  else {g_object_get((gpointer)s7_c_pointer(val), (const gchar *)s7_string(name), &str, NULL); return(s7_make_string(sc, str));}
+}
+
+static s7_pointer lg_g_object_set(s7_scheme *sc, s7_pointer args)
+{
+  s7_pointer val, name, new_val;
+  val = s7_car(args);
+  if (!s7_is_c_pointer(val)) s7_wrong_type_arg_error(sc, "g_object_set", 1, val, "gpointer");
+  name = s7_cadr(args);
+  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, "g_object_set", 2, name, "string");
+  new_val = s7_caddr(args);
+  if (s7_is_boolean(new_val))
+    g_object_set((gpointer)s7_c_pointer(val), (const gchar *)s7_string(name), s7_boolean(sc, new_val), NULL);
+  else
+    {
+      if (s7_is_number(new_val))
+        g_object_set((gpointer)s7_c_pointer(val), (const gchar *)s7_string(name), s7_integer(new_val), NULL);
+      else g_object_set((gpointer)s7_c_pointer(val), (const gchar *)s7_string(name), s7_string(new_val), NULL);
+    }
+  return(new_val);
+}
+
+static s7_pointer lg_gtk_event_keyval(s7_scheme *sc, s7_pointer args)
+{
+  GdkEventKey *e;
+  e = (GdkEventKey*)s7_c_pointer(s7_car(args));
+ if (e) return(s7_make_integer(sc, (int)(e->keyval)));
+ return(s7_make_integer(sc, 0));
+}
+
+static s7_pointer lg_make_GtkTextIter(s7_scheme *sc, s7_pointer args)
+{
+  GtkTextIter* result;
+  result = (GtkTextIter*)calloc(1, sizeof(GtkTextIter));
+  return(s7_make_c_pointer_with_type(sc, result, s7_make_symbol(sc, "GtkTextIter_"), make_xm_obj(sc, result)));
+}
+
+static s7_pointer lg_make_GtkTreeIter(s7_scheme *sc, s7_pointer args)
+{
+  GtkTreeIter* result;
+  result = (GtkTreeIter*)calloc(1, sizeof(GtkTreeIter));
+  return(s7_make_c_pointer_with_type(sc, result, s7_make_symbol(sc, "GtkTreeIter_"), make_xm_obj(sc, result)));
+}
+
+static s7_pointer lg_make_PangoRectangle(s7_scheme *sc, s7_pointer args)
+{
+  PangoRectangle* result;
+  result = (PangoRectangle*)calloc(1, sizeof(PangoRectangle));
+  return(s7_make_c_pointer_with_type(sc, result, s7_make_symbol(sc, "PangoRectangle_"), make_xm_obj(sc, result)));
+}
+
+static s7_pointer lg_make_cairo_matrix_t(s7_scheme *sc, s7_pointer args)
+{
+  cairo_matrix_t* result;
+  result = (cairo_matrix_t*)calloc(1, sizeof(cairo_matrix_t));
+  return(s7_make_c_pointer_with_type(sc, result, s7_make_symbol(sc, "cairo_matrix_t_"), make_xm_obj(sc, result)));
+}
+
+#if GTK_CHECK_VERSION(3, 0, 0)
+static s7_pointer lg_make_GdkRGBA(s7_scheme *sc, s7_pointer args)
+{
+  GdkRGBA* result;
+  result = (GdkRGBA*)calloc(1, sizeof(GdkRGBA));
+  return(s7_make_c_pointer_with_type(sc, result, s7_make_symbol(sc, "GdkRGBA_"), make_xm_obj(sc, result)));
+}
+#endif
+
+static s7_pointer lg_gtk_text_view_get_iter_at_position(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_iter_at_position "gboolean gtk_text_view_get_iter_at_position(GtkTextView* text_view, GtkTextIter* iter, gint* [trailing], gint x, gint y)"
+  gint ref_trailing;
+  s7_pointer text_view, iter, x, y, p;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_iter_at_position", 1, text_view, "GtkTextView*");
+  iter = s7_cadr(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_iter_at_position", 2, iter, "GtkTextIter*");
+  p = s7_cdddr(args); x = s7_car(p); y = s7_cadr(p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_iter_at_position", 4, x, "gint");
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_iter_at_position", 5, y, "gint");
+#if GTK_CHECK_VERSION(3, 20, 0)
+  {
+    s7_pointer result;
+    result = s7_make_boolean(sc, gtk_text_view_get_iter_at_position((GtkTextView*)s7_c_pointer(text_view), (GtkTextIter*)s7_c_pointer(iter), 
+                                                                  &ref_trailing, s7_integer(x), s7_integer(y)));
+    return(s7_list(sc, 2, result, s7_make_integer(sc, ref_trailing)));
+   }
+#else
+  gtk_text_view_get_iter_at_position((GtkTextView*)s7_c_pointer(text_view), (GtkTextIter*)s7_c_pointer(iter), &ref_trailing, s7_integer(x), s7_integer(y));
+  return(s7_list(sc, 1, s7_make_integer(sc, (ref_trailing)));
+#endif
+}
+
+static s7_pointer lg_gtk_text_view_get_iter_at_location(s7_scheme *sc, s7_pointer args)
+{
+  #define H_gtk_text_view_get_iter_at_location "gboolean gtk_text_view_get_iter_at_location(GtkTextView* text_view, GtkTextIter* iter, gint x, gint y)"
+  s7_pointer text_view, iter, x, y, p;
+  text_view = s7_car(args);
+  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_iter_at_location", 1, text_view, "GtkTextView*");
+  iter = s7_cadr(args);
+  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_iter_at_location", 2, iter, "GtkTextIter*");
+  p = s7_cddr(args); x = s7_car(p); y = s7_cadr(p);
+  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_iter_at_location", 4, x, "gint");
+  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, "gtk_text_view_get_iter_at_location", 5, y, "gint");
+#if GTK_CHECK_VERSION(3, 20, 0)
+  return(s7_make_boolean(sc, gtk_text_view_get_iter_at_location((GtkTextView*)s7_c_pointer(text_view), (GtkTextIter*)s7_c_pointer(iter), s7_integer(x), s7_integer(y))));
+#else
+  gtk_text_view_get_iter_at_location((GtkTextView*)s7_c_pointer(text_view), (GtkTextIter*)s7_c_pointer(iter), s7_integer(x), s7_integer(y));
+  return(lg_false);
+#endif
+}
+
+
+
+static void define_structs(s7_scheme *sc)
+{
+  s7_define_function(sc, "GtkTextIter", lg_make_GtkTextIter, 0, 0, 0, "(GtkTextIter): a new GtkTextIter struct");
+  s7_define_function(sc, "GtkTreeIter", lg_make_GtkTreeIter, 0, 0, 0, "(GtkTreeIter): a new GtkTreeIter struct");
+  s7_define_function(sc, "PangoRectangle", lg_make_PangoRectangle, 0, 0, 0, "(PangoRectangle): a new PangoRectangle struct");
+  s7_define_function(sc, "cairo_matrix_t", lg_make_cairo_matrix_t, 0, 0, 0, "(cairo_matrix_t): a new cairo_matrix_t struct");
+  s7_define_function(sc, "gtk_text_view_get_iter_at_location", lg_gtk_text_view_get_iter_at_location, 4, 0, 0, H_gtk_text_view_get_iter_at_location);
+  s7_define_function(sc, "gtk_text_view_get_iter_at_position", lg_gtk_text_view_get_iter_at_position, 4, 1, 0, H_gtk_text_view_get_iter_at_position);
+#if GTK_CHECK_VERSION(3, 0, 0)
+  s7_define_function(sc, "GdkRGBA", lg_make_GdkRGBA, 0, 0, 0, "(GdkRGBA): a new GdkRGBA struct");
+#endif
+}
+
+static void define_functions(s7_scheme *sc)
+{
+  s7_pointer s_boolean, s_integer, s_real, s_string, s_any, s_pair, s_float, s_gtk_enum_t, s_pair_false;
+  s7_pointer pl_iur, pl_iugi, pl_iuisi, pl_iuuui, pl_iuuuui, pl_iuis, pl_iug, pl_pit, pl_piu, pl_ius, pl_iusi, pl_iu, pl_iuui, pl_pi, pl_iui, pl_iuisut, pl_t, pl_prrru, pl_tts, pl_tti, pl_dusr, pl_dusi, pl_dui, pl_du, pl_dus, pl_pr, pl_ssig, pl_ssi, pl_psgi, pl_suiig, pl_sug, pl_psiuub, pl_psgbiiiit, pl_psrrrb, pl_sui, pl_suuub, pl_psu, pl_psb, pl_su, pl_sus, pl_ps, pl_psg, pl_psi, pl_psugt, pl_psiu, pl_psiiuusu, pl_psut, pl_pur, pl_puuui, pl_pusiig, pl_pusiigu, pl_pusiiugu, pl_puuiig, pl_puur, pl_purru, pl_puiiui, pl_pugi, pl_puuig, pl_puttiiiu, pl_pubi, pl_puiig, pl_puiigi, pl_puigu, pl_puuusuug, pl_pusi, pl_pusiu, pl_putu, pl_puri, pl_pusub, pl_pust, pl_pub, pl_puuiu, pl_pugiiu, pl_pusu, pl_pu, pl_puuubu, pl_puiiu, pl_pugu, pl_puutuuiu, pl_puutu, pl_pui, pl_pussu, pl_puibu, pl_pus, pl_pug, pl_put, pl_pusigu, pl_pusig, pl_puui, pl_puiu, pl_pusiuiu, pl_pusiuibu, pl_pusiiu, pl_puuiiu, pl_b, pl_btiib, pl_bti, pl_bt, pl_tb, pl_g, pl_tg, pl_i, pl_tiu, pl_itiiub, pl_itsub, pl_itstttg, pl_itgiiut, pl_ti, pl_it, pl_s, pl_tsu, pl_tsb, pl_st, pl_tsig, pl_ts, pl_tsi, pl_tsiu, pl_tsiiuui, pl_tsiuui, pl_p, pl_tusiuiui, pl_tuuiu, pl_tussu, pl_tuuuggu, pl_tuuggu, pl_tugiis, pl_tubu, pl_tuurru, pl_tuurrrrgr, pl_tuurrrrg, pl_tuuur, pl_tusg, pl_tuuuui, pl_tugiiu, pl_tuusb, pl_tugui, pl_tuuugi, pl_tuuuub, pl_tuttti, pl_tuuttti, pl_tuisi, pl_tugb, pl_tugs, pl_tugug, pl_turgs, pl_tubi, pl_tuttigsi, pl_tuiiiiui, pl_tuurb, pl_tuuiiiirrrrg, pl_tuuiiiirrrrgi, pl_tuiggu, pl_turrrb, pl_tuubbig, pl_pt, pl_tuuti, pl_tubbi, pl_tuti, pl_tutti, pl_tutui, pl_tutisi, pl_tuuri, pl_tuusit, pl_tuurbr, pl_tuugi, pl_tuit, pl_tusr, pl_tusri, pl_tusi, pl_turi, pl_tuui, pl_tuur, pl_tuig, pl_tur, pl_tub, pl_tui, pl_tu, pl_tus, pl_tusb, pl_tut, pl_tuuut, pl_tug, pl_tutb, pl_tust, pl_tuub, pl_tuus, pl_tuug, pl_tuibu, pl_tuut, pl_tuuig, pl_tuguig, pl_tuubr, pl_tuuub, pl_tuuiuui, pl_tugu, pl_tuuir, pl_tugr, pl_tugi, pl_tuuui, pl_tuib, pl_tusu, pl_tuusi, pl_tugt, pl_tuis, pl_tubiiiu, pl_tuiu, pl_tusiis, pl_tuiiu, pl_tuuug, pl_tusuig, pl_tuuubr, pl_big, pl_bi, pl_bsu, pl_bsigb, pl_bur, pl_buug, pl_buigu, pl_buuti, pl_butib, pl_buiuig, pl_buuusuug, pl_buuit, pl_buti, pl_butti, pl_busi, pl_buusib, pl_busib, pl_buuuub, pl_buuub, pl_buttu, pl_busgu, pl_buurbr, pl_buui, pl_buus, pl_buuui, pl_bug, pl_bu, pl_bus, pl_busu, pl_but, pl_bui, pl_buib, pl_buiu, pl_bub, pl_buub, pl_pb, pl_buig, pl_buuig, pl_igi, pl_gi, pl_iiit, pl_iit, pl_sg, pl_gs, pl_gussitu, pl_gurrsiu, pl_gus, pl_guut, pl_guuut, pl_guugbuut, pl_pgr, pl_pgu, pl_pgi, pl_gug, pl_pgbi, pl_gu, pl_pg, pl_gui, pl_isigutttiiu, pl_isi, pl_isgt, pl_sig, pl_si, pl_is, pl_bpt;
+
+  s_boolean = s7_make_symbol(sc, "boolean?");
+  s_integer = s7_make_symbol(sc, "integer?");
+  s_real = s7_make_symbol(sc, "real?");
+  s_float = s7_make_symbol(sc, "float?");
+  s_string = s7_make_symbol(sc, "string?");
+  s_pair = s7_make_symbol(sc, "pair?");
+  s_pair_false = s7_make_signature(sc, 2, s_pair, s_boolean);
+  s_gtk_enum_t = s7_make_symbol(sc, "gtk_enum_t?");
+  s_any = s7_t(sc);
+
+  pl_iur = s7_make_circular_signature(sc, 2, 3, s_integer, s_pair_false, s_real);
+  pl_iugi = s7_make_circular_signature(sc, 3, 4, s_integer, s_pair_false, s_gtk_enum_t, s_integer);
+  pl_iuisi = s7_make_circular_signature(sc, 4, 5, s_integer, s_pair_false, s_integer, s_string, s_integer);
+  pl_iuuui = s7_make_circular_signature(sc, 4, 5, s_integer, s_pair_false, s_pair_false, s_pair_false, s_integer);
+  pl_iuuuui = s7_make_circular_signature(sc, 5, 6, s_integer, s_pair_false, s_pair_false, s_pair_false, s_pair_false, s_integer);
+  pl_iuis = s7_make_circular_signature(sc, 3, 4, s_integer, s_pair_false, s_integer, s_string);
+  pl_iug = s7_make_circular_signature(sc, 2, 3, s_integer, s_pair_false, s_gtk_enum_t);
+  pl_pit = s7_make_circular_signature(sc, 2, 3, s_pair, s_integer, s_any);
+  pl_piu = s7_make_circular_signature(sc, 2, 3, s_pair, s_integer, s_pair_false);
+  pl_ius = s7_make_circular_signature(sc, 2, 3, s_integer, s_pair_false, s_string);
+  pl_iusi = s7_make_circular_signature(sc, 3, 4, s_integer, s_pair_false, s_string, s_integer);
+  pl_iu = s7_make_circular_signature(sc, 1, 2, s_integer, s_pair_false);
+  pl_iuui = s7_make_circular_signature(sc, 3, 4, s_integer, s_pair_false, s_pair_false, s_integer);
+  pl_pi = s7_make_circular_signature(sc, 1, 2, s_pair, s_integer);
+  pl_iui = s7_make_circular_signature(sc, 2, 3, s_integer, s_pair_false, s_integer);
+  pl_iuisut = s7_make_circular_signature(sc, 5, 6, s_integer, s_pair_false, s_integer, s_string, s_pair_false, s_any);
+  pl_t = s7_make_circular_signature(sc, 0, 1, s_any);
+  pl_prrru = s7_make_circular_signature(sc, 4, 5, s_pair, s_real, s_real, s_real, s_pair_false);
+  pl_tts = s7_make_circular_signature(sc, 2, 3, s_any, s_any, s_string);
+  pl_tti = s7_make_circular_signature(sc, 2, 3, s_any, s_any, s_integer);
+  pl_dusr = s7_make_circular_signature(sc, 3, 4, s_float, s_pair_false, s_string, s_real);
+  pl_dusi = s7_make_circular_signature(sc, 3, 4, s_float, s_pair_false, s_string, s_integer);
+  pl_dui = s7_make_circular_signature(sc, 2, 3, s_float, s_pair_false, s_integer);
+  pl_du = s7_make_circular_signature(sc, 1, 2, s_float, s_pair_false);
+  pl_dus = s7_make_circular_signature(sc, 2, 3, s_float, s_pair_false, s_string);
+  pl_pr = s7_make_circular_signature(sc, 1, 2, s_pair, s_real);
+  pl_ssig = s7_make_circular_signature(sc, 3, 4, s_string, s_string, s_integer, s_gtk_enum_t);
+  pl_ssi = s7_make_circular_signature(sc, 2, 3, s_string, s_string, s_integer);
+  pl_psgi = s7_make_circular_signature(sc, 3, 4, s_pair, s_string, s_gtk_enum_t, s_integer);
+  pl_suiig = s7_make_circular_signature(sc, 4, 5, s_string, s_pair_false, s_integer, s_integer, s_gtk_enum_t);
+  pl_sug = s7_make_circular_signature(sc, 2, 3, s_string, s_pair_false, s_gtk_enum_t);
+  pl_psiuub = s7_make_circular_signature(sc, 5, 6, s_pair, s_string, s_integer, s_pair_false, s_pair_false, s_boolean);
+  pl_psgbiiiit = s7_make_circular_signature(sc, 8, 9, s_pair, s_string, s_gtk_enum_t, s_boolean, s_integer, s_integer, s_integer, s_integer, s_any);
+  pl_psrrrb = s7_make_circular_signature(sc, 5, 6, s_pair, s_string, s_real, s_real, s_real, s_boolean);
+  pl_sui = s7_make_circular_signature(sc, 2, 3, s_string, s_pair_false, s_integer);
+  pl_suuub = s7_make_circular_signature(sc, 4, 5, s_string, s_pair_false, s_pair_false, s_pair_false, s_boolean);
+  pl_psu = s7_make_circular_signature(sc, 2, 3, s_pair, s_string, s_pair_false);
+  pl_psb = s7_make_circular_signature(sc, 2, 3, s_pair, s_string, s_boolean);
+  pl_su = s7_make_circular_signature(sc, 1, 2, s_string, s_pair_false);
+  pl_sus = s7_make_circular_signature(sc, 2, 3, s_string, s_pair_false, s_string);
+  pl_ps = s7_make_circular_signature(sc, 1, 2, s_pair, s_string);
+  pl_psg = s7_make_circular_signature(sc, 2, 3, s_pair, s_string, s_gtk_enum_t);
+  pl_psi = s7_make_circular_signature(sc, 2, 3, s_pair, s_string, s_integer);
+  pl_psugt = s7_make_circular_signature(sc, 4, 5, s_pair, s_string, s_pair_false, s_gtk_enum_t, s_any);
+  pl_psiu = s7_make_circular_signature(sc, 3, 4, s_pair, s_string, s_integer, s_pair_false);
+  pl_psiiuusu = s7_make_circular_signature(sc, 7, 8, s_pair, s_string, s_integer, s_integer, s_pair_false, s_pair_false, s_string, s_pair_false);
+  pl_psut = s7_make_circular_signature(sc, 3, 4, s_pair, s_string, s_pair_false, s_any);
+  pl_pur = s7_make_circular_signature(sc, 2, 3, s_pair, s_pair_false, s_real);
+  pl_puuui = s7_make_circular_signature(sc, 4, 5, s_pair, s_pair_false, s_pair_false, s_pair_false, s_integer);
+  pl_pusiig = s7_make_circular_signature(sc, 5, 6, s_pair, s_pair_false, s_string, s_integer, s_integer, s_gtk_enum_t);
+  pl_pusiigu = s7_make_circular_signature(sc, 6, 7, s_pair, s_pair_false, s_string, s_integer, s_integer, s_gtk_enum_t, s_pair_false);
+  pl_pusiiugu = s7_make_circular_signature(sc, 7, 8, s_pair, s_pair_false, s_string, s_integer, s_integer, s_pair_false, s_gtk_enum_t, s_pair_false);
+  pl_puuiig = s7_make_circular_signature(sc, 5, 6, s_pair, s_pair_false, s_pair_false, s_integer, s_integer, s_gtk_enum_t);
+  pl_puur = s7_make_circular_signature(sc, 3, 4, s_pair, s_pair_false, s_pair_false, s_real);
+  pl_purru = s7_make_circular_signature(sc, 4, 5, s_pair, s_pair_false, s_real, s_real, s_pair_false);
+  pl_puiiui = s7_make_circular_signature(sc, 5, 6, s_pair, s_pair_false, s_integer, s_integer, s_pair_false, s_integer);
+  pl_pugi = s7_make_circular_signature(sc, 3, 4, s_pair, s_pair_false, s_gtk_enum_t, s_integer);
+  pl_puuig = s7_make_circular_signature(sc, 4, 5, s_pair, s_pair_false, s_pair_false, s_integer, s_gtk_enum_t);
+  pl_puttiiiu = s7_make_circular_signature(sc, 7, 8, s_pair, s_pair_false, s_any, s_any, s_integer, s_integer, s_integer, s_pair_false);
+  pl_pubi = s7_make_circular_signature(sc, 3, 4, s_pair, s_pair_false, s_boolean, s_integer);
+  pl_puiig = s7_make_circular_signature(sc, 4, 5, s_pair, s_pair_false, s_integer, s_integer, s_gtk_enum_t);
+  pl_puiigi = s7_make_circular_signature(sc, 5, 6, s_pair, s_pair_false, s_integer, s_integer, s_gtk_enum_t, s_integer);
+  pl_puigu = s7_make_circular_signature(sc, 4, 5, s_pair, s_pair_false, s_integer, s_gtk_enum_t, s_pair_false);
+  pl_puuusuug = s7_make_circular_signature(sc, 7, 8, s_pair, s_pair_false, s_pair_false, s_pair_false, s_string, s_pair_false, s_pair_false, s_gtk_enum_t);
+  pl_pusi = s7_make_circular_signature(sc, 3, 4, s_pair, s_pair_false, s_string, s_integer);
+  pl_pusiu = s7_make_circular_signature(sc, 4, 5, s_pair, s_pair_false, s_string, s_integer, s_pair_false);
+  pl_putu = s7_make_circular_signature(sc, 3, 4, s_pair, s_pair_false, s_any, s_pair_false);
+  pl_puri = s7_make_circular_signature(sc, 3, 4, s_pair, s_pair_false, s_real, s_integer);
+  pl_pusub = s7_make_circular_signature(sc, 4, 5, s_pair, s_pair_false, s_string, s_pair_false, s_boolean);
+  pl_pust = s7_make_circular_signature(sc, 3, 4, s_pair, s_pair_false, s_string, s_any);
+  pl_pub = s7_make_circular_signature(sc, 2, 3, s_pair, s_pair_false, s_boolean);
+  pl_puuiu = s7_make_circular_signature(sc, 4, 5, s_pair, s_pair_false, s_pair_false, s_integer, s_pair_false);
+  pl_pugiiu = s7_make_circular_signature(sc, 5, 6, s_pair, s_pair_false, s_gtk_enum_t, s_integer, s_integer, s_pair_false);
+  pl_pusu = s7_make_circular_signature(sc, 3, 4, s_pair, s_pair_false, s_string, s_pair_false);
+  pl_pu = s7_make_circular_signature(sc, 1, 2, s_pair, s_pair_false);
+  pl_puuubu = s7_make_circular_signature(sc, 5, 6, s_pair, s_pair_false, s_pair_false, s_pair_false, s_boolean, s_pair_false);
+  pl_puiiu = s7_make_circular_signature(sc, 4, 5, s_pair, s_pair_false, s_integer, s_integer, s_pair_false);
+  pl_pugu = s7_make_circular_signature(sc, 3, 4, s_pair, s_pair_false, s_gtk_enum_t, s_pair_false);
+  pl_puutuuiu = s7_make_circular_signature(sc, 7, 8, s_pair, s_pair_false, s_pair_false, s_any, s_pair_false, s_pair_false, s_integer, s_pair_false);
+  pl_puutu = s7_make_circular_signature(sc, 4, 5, s_pair, s_pair_false, s_pair_false, s_any, s_pair_false);
+  pl_pui = s7_make_circular_signature(sc, 2, 3, s_pair, s_pair_false, s_integer);
+  pl_pussu = s7_make_circular_signature(sc, 4, 5, s_pair, s_pair_false, s_string, s_string, s_pair_false);
+  pl_puibu = s7_make_circular_signature(sc, 4, 5, s_pair, s_pair_false, s_integer, s_boolean, s_pair_false);
+  pl_pus = s7_make_circular_signature(sc, 2, 3, s_pair, s_pair_false, s_string);
+  pl_pug = s7_make_circular_signature(sc, 2, 3, s_pair, s_pair_false, s_gtk_enum_t);
+  pl_put = s7_make_circular_signature(sc, 2, 3, s_pair, s_pair_false, s_any);
+  pl_pusigu = s7_make_circular_signature(sc, 5, 6, s_pair, s_pair_false, s_string, s_integer, s_gtk_enum_t, s_pair_false);
+  pl_pusig = s7_make_circular_signature(sc, 4, 5, s_pair, s_pair_false, s_string, s_integer, s_gtk_enum_t);
+  pl_puui = s7_make_circular_signature(sc, 3, 4, s_pair, s_pair_false, s_pair_false, s_integer);
+  pl_puiu = s7_make_circular_signature(sc, 3, 4, s_pair, s_pair_false, s_integer, s_pair_false);
+  pl_pusiuiu = s7_make_circular_signature(sc, 6, 7, s_pair, s_pair_false, s_string, s_integer, s_pair_false, s_integer, s_pair_false);
+  pl_pusiuibu = s7_make_circular_signature(sc, 7, 8, s_pair, s_pair_false, s_string, s_integer, s_pair_false, s_integer, s_boolean, s_pair_false);
+  pl_pusiiu = s7_make_circular_signature(sc, 5, 6, s_pair, s_pair_false, s_string, s_integer, s_integer, s_pair_false);
+  pl_puuiiu = s7_make_circular_signature(sc, 5, 6, s_pair, s_pair_false, s_pair_false, s_integer, s_integer, s_pair_false);
+  pl_b = s7_make_circular_signature(sc, 0, 1, s_boolean);
+  pl_btiib = s7_make_circular_signature(sc, 4, 5, s_boolean, s_any, s_integer, s_integer, s_boolean);
+  pl_bti = s7_make_circular_signature(sc, 2, 3, s_boolean, s_any, s_integer);
+  pl_bt = s7_make_circular_signature(sc, 1, 2, s_boolean, s_any);
+  pl_tb = s7_make_circular_signature(sc, 1, 2, s_any, s_boolean);
+  pl_g = s7_make_circular_signature(sc, 0, 1, s_gtk_enum_t);
+  pl_tg = s7_make_circular_signature(sc, 1, 2, s_any, s_gtk_enum_t);
+  pl_i = s7_make_circular_signature(sc, 0, 1, s_integer);
+  pl_tiu = s7_make_circular_signature(sc, 2, 3, s_any, s_integer, s_pair_false);
+  pl_itiiub = s7_make_circular_signature(sc, 5, 6, s_integer, s_any, s_integer, s_integer, s_pair_false, s_boolean);
+  pl_itsub = s7_make_circular_signature(sc, 4, 5, s_integer, s_any, s_string, s_pair_false, s_boolean);
+  pl_itstttg = s7_make_circular_signature(sc, 6, 7, s_integer, s_any, s_string, s_any, s_any, s_any, s_gtk_enum_t);
+  pl_itgiiut = s7_make_circular_signature(sc, 6, 7, s_integer, s_any, s_gtk_enum_t, s_integer, s_integer, s_pair_false, s_any);
+  pl_ti = s7_make_circular_signature(sc, 1, 2, s_any, s_integer);
+  pl_it = s7_make_circular_signature(sc, 1, 2, s_integer, s_any);
+  pl_s = s7_make_circular_signature(sc, 0, 1, s_string);
+  pl_tsu = s7_make_circular_signature(sc, 2, 3, s_any, s_string, s_pair_false);
+  pl_tsb = s7_make_circular_signature(sc, 2, 3, s_any, s_string, s_boolean);
+  pl_st = s7_make_circular_signature(sc, 1, 2, s_string, s_any);
+  pl_tsig = s7_make_circular_signature(sc, 3, 4, s_any, s_string, s_integer, s_gtk_enum_t);
+  pl_ts = s7_make_circular_signature(sc, 1, 2, s_any, s_string);
+  pl_tsi = s7_make_circular_signature(sc, 2, 3, s_any, s_string, s_integer);
+  pl_tsiu = s7_make_circular_signature(sc, 3, 4, s_any, s_string, s_integer, s_pair_false);
+  pl_tsiiuui = s7_make_circular_signature(sc, 6, 7, s_any, s_string, s_integer, s_integer, s_pair_false, s_pair_false, s_integer);
+  pl_tsiuui = s7_make_circular_signature(sc, 5, 6, s_any, s_string, s_integer, s_pair_false, s_pair_false, s_integer);
+  pl_p = s7_make_circular_signature(sc, 0, 1, s_pair);
+  pl_tusiuiui = s7_make_circular_signature(sc, 7, 8, s_any, s_pair_false, s_string, s_integer, s_pair_false, s_integer, s_pair_false, s_integer);
+  pl_tuuiu = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_integer, s_pair_false);
+  pl_tussu = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_string, s_string, s_pair_false);
+  pl_tuuuggu = s7_make_circular_signature(sc, 6, 7, s_any, s_pair_false, s_pair_false, s_pair_false, s_gtk_enum_t, s_gtk_enum_t, s_pair_false);
+  pl_tuuggu = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_pair_false, s_gtk_enum_t, s_gtk_enum_t, s_pair_false);
+  pl_tugiis = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_gtk_enum_t, s_integer, s_integer, s_string);
+  pl_tubu = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_boolean, s_pair_false);
+  pl_tuurru = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_pair_false, s_real, s_real, s_pair_false);
+  pl_tuurrrrgr = s7_make_circular_signature(sc, 8, 9, s_any, s_pair_false, s_pair_false, s_real, s_real, s_real, s_real, s_gtk_enum_t, s_real);
+  pl_tuurrrrg = s7_make_circular_signature(sc, 7, 8, s_any, s_pair_false, s_pair_false, s_real, s_real, s_real, s_real, s_gtk_enum_t);
+  pl_tuuur = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_pair_false, s_real);
+  pl_tusg = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_string, s_gtk_enum_t);
+  pl_tuuuui = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_pair_false, s_pair_false, s_pair_false, s_integer);
+  pl_tugiiu = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_gtk_enum_t, s_integer, s_integer, s_pair_false);
+  pl_tuusb = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_string, s_boolean);
+  pl_tugui = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_gtk_enum_t, s_pair_false, s_integer);
+  pl_tuuugi = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_pair_false, s_pair_false, s_gtk_enum_t, s_integer);
+  pl_tuuuub = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_pair_false, s_pair_false, s_pair_false, s_boolean);
+  pl_tuttti = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_any, s_any, s_any, s_integer);
+  pl_tuuttti = s7_make_circular_signature(sc, 6, 7, s_any, s_pair_false, s_pair_false, s_any, s_any, s_any, s_integer);
+  pl_tuisi = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_integer, s_string, s_integer);
+  pl_tugb = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_gtk_enum_t, s_boolean);
+  pl_tugs = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_gtk_enum_t, s_string);
+  pl_tugug = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_gtk_enum_t, s_pair_false, s_gtk_enum_t);
+  pl_turgs = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_real, s_gtk_enum_t, s_string);
+  pl_tubi = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_boolean, s_integer);
+  pl_tuttigsi = s7_make_circular_signature(sc, 7, 8, s_any, s_pair_false, s_any, s_any, s_integer, s_gtk_enum_t, s_string, s_integer);
+  pl_tuiiiiui = s7_make_circular_signature(sc, 7, 8, s_any, s_pair_false, s_integer, s_integer, s_integer, s_integer, s_pair_false, s_integer);
+  pl_tuurb = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_real, s_boolean);
+  pl_tuuiiiirrrrg = s7_make_circular_signature(sc, 11, 12, s_any, s_pair_false, s_pair_false, s_integer, s_integer, s_integer, s_integer, s_real, s_real, s_real, s_real, s_gtk_enum_t);
+  pl_tuuiiiirrrrgi = s7_make_circular_signature(sc, 12, 13, s_any, s_pair_false, s_pair_false, s_integer, s_integer, s_integer, s_integer, s_real, s_real, s_real, s_real, s_gtk_enum_t, s_integer);
+  pl_tuiggu = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_integer, s_gtk_enum_t, s_gtk_enum_t, s_pair_false);
+  pl_turrrb = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_real, s_real, s_real, s_boolean);
+  pl_tuubbig = s7_make_circular_signature(sc, 6, 7, s_any, s_pair_false, s_pair_false, s_boolean, s_boolean, s_integer, s_gtk_enum_t);
+  pl_pt = s7_make_circular_signature(sc, 1, 2, s_pair, s_any);
+  pl_tuuti = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_any, s_integer);
+  pl_tubbi = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_boolean, s_boolean, s_integer);
+  pl_tuti = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_any, s_integer);
+  pl_tutti = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_any, s_any, s_integer);
+  pl_tutui = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_any, s_pair_false, s_integer);
+  pl_tutisi = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_any, s_integer, s_string, s_integer);
+  pl_tuuri = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_real, s_integer);
+  pl_tuusit = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_pair_false, s_string, s_integer, s_any);
+  pl_tuurbr = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_pair_false, s_real, s_boolean, s_real);
+  pl_tuugi = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_gtk_enum_t, s_integer);
+  pl_tuit = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_integer, s_any);
+  pl_tusr = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_string, s_real);
+  pl_tusri = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_string, s_real, s_integer);
+  pl_tusi = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_string, s_integer);
+  pl_turi = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_real, s_integer);
+  pl_tuui = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_pair_false, s_integer);
+  pl_tuur = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_pair_false, s_real);
+  pl_tuig = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_integer, s_gtk_enum_t);
+  pl_tur = s7_make_circular_signature(sc, 2, 3, s_any, s_pair_false, s_real);
+  pl_tub = s7_make_circular_signature(sc, 2, 3, s_any, s_pair_false, s_boolean);
+  pl_tui = s7_make_circular_signature(sc, 2, 3, s_any, s_pair_false, s_integer);
+  pl_tu = s7_make_circular_signature(sc, 1, 2, s_any, s_pair_false);
+  pl_tus = s7_make_circular_signature(sc, 2, 3, s_any, s_pair_false, s_string);
+  pl_tusb = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_string, s_boolean);
+  pl_tut = s7_make_circular_signature(sc, 2, 3, s_any, s_pair_false, s_any);
+  pl_tuuut = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_pair_false, s_any);
+  pl_tug = s7_make_circular_signature(sc, 2, 3, s_any, s_pair_false, s_gtk_enum_t);
+  pl_tutb = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_any, s_boolean);
+  pl_tust = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_string, s_any);
+  pl_tuub = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_pair_false, s_boolean);
+  pl_tuus = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_pair_false, s_string);
+  pl_tuug = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_pair_false, s_gtk_enum_t);
+  pl_tuibu = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_integer, s_boolean, s_pair_false);
+  pl_tuut = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_pair_false, s_any);
+  pl_tuuig = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_integer, s_gtk_enum_t);
+  pl_tuguig = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_gtk_enum_t, s_pair_false, s_integer, s_gtk_enum_t);
+  pl_tuubr = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_boolean, s_real);
+  pl_tuuub = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_pair_false, s_boolean);
+  pl_tuuiuui = s7_make_circular_signature(sc, 6, 7, s_any, s_pair_false, s_pair_false, s_integer, s_pair_false, s_pair_false, s_integer);
+  pl_tugu = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_gtk_enum_t, s_pair_false);
+  pl_tuuir = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_integer, s_real);
+  pl_tugr = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_gtk_enum_t, s_real);
+  pl_tugi = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_gtk_enum_t, s_integer);
+  pl_tuuui = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_pair_false, s_integer);
+  pl_tuib = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_integer, s_boolean);
+  pl_tusu = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_string, s_pair_false);
+  pl_tuusi = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_string, s_integer);
+  pl_tugt = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_gtk_enum_t, s_any);
+  pl_tuis = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_integer, s_string);
+  pl_tubiiiu = s7_make_circular_signature(sc, 6, 7, s_any, s_pair_false, s_boolean, s_integer, s_integer, s_integer, s_pair_false);
+  pl_tuiu = s7_make_circular_signature(sc, 3, 4, s_any, s_pair_false, s_integer, s_pair_false);
+  pl_tusiis = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_string, s_integer, s_integer, s_string);
+  pl_tuiiu = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_integer, s_integer, s_pair_false);
+  pl_tuuug = s7_make_circular_signature(sc, 4, 5, s_any, s_pair_false, s_pair_false, s_pair_false, s_gtk_enum_t);
+  pl_tusuig = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_string, s_pair_false, s_integer, s_gtk_enum_t);
+  pl_tuuubr = s7_make_circular_signature(sc, 5, 6, s_any, s_pair_false, s_pair_false, s_pair_false, s_boolean, s_real);
+  pl_big = s7_make_circular_signature(sc, 2, 3, s_boolean, s_integer, s_gtk_enum_t);
+  pl_bi = s7_make_circular_signature(sc, 1, 2, s_boolean, s_integer);
+  pl_bsu = s7_make_circular_signature(sc, 2, 3, s_boolean, s_string, s_pair_false);
+  pl_bsigb = s7_make_circular_signature(sc, 4, 5, s_boolean, s_string, s_integer, s_gtk_enum_t, s_boolean);
+  pl_bur = s7_make_circular_signature(sc, 2, 3, s_boolean, s_pair_false, s_real);
+  pl_buug = s7_make_circular_signature(sc, 3, 4, s_boolean, s_pair_false, s_pair_false, s_gtk_enum_t);
+  pl_buigu = s7_make_circular_signature(sc, 4, 5, s_boolean, s_pair_false, s_integer, s_gtk_enum_t, s_pair_false);
+  pl_buuti = s7_make_circular_signature(sc, 4, 5, s_boolean, s_pair_false, s_pair_false, s_any, s_integer);
+  pl_butib = s7_make_circular_signature(sc, 4, 5, s_boolean, s_pair_false, s_any, s_integer, s_boolean);
+  pl_buiuig = s7_make_circular_signature(sc, 5, 6, s_boolean, s_pair_false, s_integer, s_pair_false, s_integer, s_gtk_enum_t);
+  pl_buuusuug = s7_make_circular_signature(sc, 7, 8, s_boolean, s_pair_false, s_pair_false, s_pair_false, s_string, s_pair_false, s_pair_false, s_gtk_enum_t);
+  pl_buuit = s7_make_circular_signature(sc, 4, 5, s_boolean, s_pair_false, s_pair_false, s_integer, s_any);
+  pl_buti = s7_make_circular_signature(sc, 3, 4, s_boolean, s_pair_false, s_any, s_integer);
+  pl_butti = s7_make_circular_signature(sc, 4, 5, s_boolean, s_pair_false, s_any, s_any, s_integer);
+  pl_busi = s7_make_circular_signature(sc, 3, 4, s_boolean, s_pair_false, s_string, s_integer);
+  pl_buusib = s7_make_circular_signature(sc, 5, 6, s_boolean, s_pair_false, s_pair_false, s_string, s_integer, s_boolean);
+  pl_busib = s7_make_circular_signature(sc, 4, 5, s_boolean, s_pair_false, s_string, s_integer, s_boolean);
+  pl_buuuub = s7_make_circular_signature(sc, 5, 6, s_boolean, s_pair_false, s_pair_false, s_pair_false, s_pair_false, s_boolean);
+  pl_buuub = s7_make_circular_signature(sc, 4, 5, s_boolean, s_pair_false, s_pair_false, s_pair_false, s_boolean);
+  pl_buttu = s7_make_circular_signature(sc, 4, 5, s_boolean, s_pair_false, s_any, s_any, s_pair_false);
+  pl_busgu = s7_make_circular_signature(sc, 4, 5, s_boolean, s_pair_false, s_string, s_gtk_enum_t, s_pair_false);
+  pl_buurbr = s7_make_circular_signature(sc, 5, 6, s_boolean, s_pair_false, s_pair_false, s_real, s_boolean, s_real);
+  pl_buui = s7_make_circular_signature(sc, 3, 4, s_boolean, s_pair_false, s_pair_false, s_integer);
+  pl_buus = s7_make_circular_signature(sc, 3, 4, s_boolean, s_pair_false, s_pair_false, s_string);
+  pl_buuui = s7_make_circular_signature(sc, 4, 5, s_boolean, s_pair_false, s_pair_false, s_pair_false, s_integer);
+  pl_bug = s7_make_circular_signature(sc, 2, 3, s_boolean, s_pair_false, s_gtk_enum_t);
+  pl_bu = s7_make_circular_signature(sc, 1, 2, s_boolean, s_pair_false);
+  pl_bus = s7_make_circular_signature(sc, 2, 3, s_boolean, s_pair_false, s_string);
+  pl_busu = s7_make_circular_signature(sc, 3, 4, s_boolean, s_pair_false, s_string, s_pair_false);
+  pl_but = s7_make_circular_signature(sc, 2, 3, s_boolean, s_pair_false, s_any);
+  pl_bui = s7_make_circular_signature(sc, 2, 3, s_boolean, s_pair_false, s_integer);
+  pl_buib = s7_make_circular_signature(sc, 3, 4, s_boolean, s_pair_false, s_integer, s_boolean);
+  pl_buiu = s7_make_circular_signature(sc, 3, 4, s_boolean, s_pair_false, s_integer, s_pair_false);
+  pl_bub = s7_make_circular_signature(sc, 2, 3, s_boolean, s_pair_false, s_boolean);
+  pl_buub = s7_make_circular_signature(sc, 3, 4, s_boolean, s_pair_false, s_pair_false, s_boolean);
+  pl_pb = s7_make_circular_signature(sc, 1, 2, s_pair, s_boolean);
+  pl_buig = s7_make_circular_signature(sc, 3, 4, s_boolean, s_pair_false, s_integer, s_gtk_enum_t);
+  pl_buuig = s7_make_circular_signature(sc, 4, 5, s_boolean, s_pair_false, s_pair_false, s_integer, s_gtk_enum_t);
+  pl_igi = s7_make_circular_signature(sc, 2, 3, s_integer, s_gtk_enum_t, s_integer);
+  pl_gi = s7_make_circular_signature(sc, 1, 2, s_gtk_enum_t, s_integer);
+  pl_iiit = s7_make_circular_signature(sc, 3, 4, s_integer, s_integer, s_integer, s_any);
+  pl_iit = s7_make_circular_signature(sc, 2, 3, s_integer, s_integer, s_any);
+  pl_sg = s7_make_circular_signature(sc, 1, 2, s_string, s_gtk_enum_t);
+  pl_gs = s7_make_circular_signature(sc, 1, 2, s_gtk_enum_t, s_string);
+  pl_gussitu = s7_make_circular_signature(sc, 6, 7, s_gtk_enum_t, s_pair_false, s_string, s_string, s_integer, s_any, s_pair_false);
+  pl_gurrsiu = s7_make_circular_signature(sc, 6, 7, s_gtk_enum_t, s_pair_false, s_real, s_real, s_string, s_integer, s_pair_false);
+  pl_gus = s7_make_circular_signature(sc, 2, 3, s_gtk_enum_t, s_pair_false, s_string);
+  pl_guut = s7_make_circular_signature(sc, 3, 4, s_gtk_enum_t, s_pair_false, s_pair_false, s_any);
+  pl_guuut = s7_make_circular_signature(sc, 4, 5, s_gtk_enum_t, s_pair_false, s_pair_false, s_pair_false, s_any);
+  pl_guugbuut = s7_make_circular_signature(sc, 7, 8, s_gtk_enum_t, s_pair_false, s_pair_false, s_gtk_enum_t, s_boolean, s_pair_false, s_pair_false, s_any);
+  pl_pgr = s7_make_circular_signature(sc, 2, 3, s_pair, s_gtk_enum_t, s_real);
+  pl_pgu = s7_make_circular_signature(sc, 2, 3, s_pair, s_gtk_enum_t, s_pair_false);
+  pl_pgi = s7_make_circular_signature(sc, 2, 3, s_pair, s_gtk_enum_t, s_integer);
+  pl_gug = s7_make_circular_signature(sc, 2, 3, s_gtk_enum_t, s_pair_false, s_gtk_enum_t);
+  pl_pgbi = s7_make_circular_signature(sc, 3, 4, s_pair, s_gtk_enum_t, s_boolean, s_integer);
+  pl_gu = s7_make_circular_signature(sc, 1, 2, s_gtk_enum_t, s_pair_false);
+  pl_pg = s7_make_circular_signature(sc, 1, 2, s_pair, s_gtk_enum_t);
+  pl_gui = s7_make_circular_signature(sc, 2, 3, s_gtk_enum_t, s_pair_false, s_integer);
+  pl_isigutttiiu = s7_make_circular_signature(sc, 10, 11, s_integer, s_string, s_integer, s_gtk_enum_t, s_pair_false, s_any, s_any, s_any, s_integer, s_integer, s_pair_false);
+  pl_isi = s7_make_circular_signature(sc, 2, 3, s_integer, s_string, s_integer);
+  pl_isgt = s7_make_circular_signature(sc, 3, 4, s_integer, s_string, s_gtk_enum_t, s_any);
+  pl_sig = s7_make_circular_signature(sc, 2, 3, s_string, s_integer, s_gtk_enum_t);
+  pl_si = s7_make_circular_signature(sc, 1, 2, s_string, s_integer);
+  pl_is = s7_make_circular_signature(sc, 1, 2, s_integer, s_string);
+  pl_bpt = s7_make_signature(sc, 2, s_pair_false, s_any);
+
+  s7_define_typed_function(sc, "g_unichar_validate", lg_g_unichar_validate, 1, 0, 0, H_g_unichar_validate, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_isalnum", lg_g_unichar_isalnum, 1, 0, 0, H_g_unichar_isalnum, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_isalpha", lg_g_unichar_isalpha, 1, 0, 0, H_g_unichar_isalpha, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_iscntrl", lg_g_unichar_iscntrl, 1, 0, 0, H_g_unichar_iscntrl, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_isdefined", lg_g_unichar_isdefined, 1, 0, 0, H_g_unichar_isdefined, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_isdigit", lg_g_unichar_isdigit, 1, 0, 0, H_g_unichar_isdigit, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_isgraph", lg_g_unichar_isgraph, 1, 0, 0, H_g_unichar_isgraph, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_islower", lg_g_unichar_islower, 1, 0, 0, H_g_unichar_islower, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_ismark", lg_g_unichar_ismark, 1, 0, 0, H_g_unichar_ismark, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_isprint", lg_g_unichar_isprint, 1, 0, 0, H_g_unichar_isprint, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_ispunct", lg_g_unichar_ispunct, 1, 0, 0, H_g_unichar_ispunct, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_isspace", lg_g_unichar_isspace, 1, 0, 0, H_g_unichar_isspace, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_istitle", lg_g_unichar_istitle, 1, 0, 0, H_g_unichar_istitle, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_isupper", lg_g_unichar_isupper, 1, 0, 0, H_g_unichar_isupper, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_isxdigit", lg_g_unichar_isxdigit, 1, 0, 0, H_g_unichar_isxdigit, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_iswide", lg_g_unichar_iswide, 1, 0, 0, H_g_unichar_iswide, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_iswide_cjk", lg_g_unichar_iswide_cjk, 1, 0, 0, H_g_unichar_iswide_cjk, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_iszerowidth", lg_g_unichar_iszerowidth, 1, 0, 0, H_g_unichar_iszerowidth, pl_bi);
+  s7_define_typed_function(sc, "g_unichar_toupper", lg_g_unichar_toupper, 1, 0, 0, H_g_unichar_toupper, pl_i);
+  s7_define_typed_function(sc, "g_unichar_tolower", lg_g_unichar_tolower, 1, 0, 0, H_g_unichar_tolower, pl_i);
+  s7_define_typed_function(sc, "g_unichar_totitle", lg_g_unichar_totitle, 1, 0, 0, H_g_unichar_totitle, pl_i);
+  s7_define_typed_function(sc, "g_unichar_digit_value", lg_g_unichar_digit_value, 1, 0, 0, H_g_unichar_digit_value, pl_i);
+  s7_define_typed_function(sc, "g_unichar_xdigit_value", lg_g_unichar_xdigit_value, 1, 0, 0, H_g_unichar_xdigit_value, pl_i);
+  s7_define_typed_function(sc, "g_unichar_combining_class", lg_g_unichar_combining_class, 1, 0, 0, H_g_unichar_combining_class, pl_i);
+  s7_define_typed_function(sc, "g_unicode_canonical_ordering", lg_g_unicode_canonical_ordering, 2, 0, 0, H_g_unicode_canonical_ordering, pl_tsi);
+  s7_define_typed_function(sc, "g_utf8_get_char", lg_g_utf8_get_char, 1, 0, 0, H_g_utf8_get_char, pl_is);
+  s7_define_typed_function(sc, "g_utf8_get_char_validated", lg_g_utf8_get_char_validated, 2, 0, 0, H_g_utf8_get_char_validated, pl_isi);
+  s7_define_typed_function(sc, "g_utf8_prev_char", lg_g_utf8_prev_char, 1, 0, 0, H_g_utf8_prev_char, pl_s);
+  s7_define_typed_function(sc, "g_utf8_find_next_char", lg_g_utf8_find_next_char, 2, 0, 0, H_g_utf8_find_next_char, pl_s);
+  s7_define_typed_function(sc, "g_utf8_find_prev_char", lg_g_utf8_find_prev_char, 2, 0, 0, H_g_utf8_find_prev_char, pl_s);
+  s7_define_typed_function(sc, "g_utf8_strlen", lg_g_utf8_strlen, 2, 0, 0, H_g_utf8_strlen, pl_isi);
+  s7_define_typed_function(sc, "g_utf8_strchr", lg_g_utf8_strchr, 3, 0, 0, H_g_utf8_strchr, pl_ssi);
+  s7_define_typed_function(sc, "g_utf8_strrchr", lg_g_utf8_strrchr, 3, 0, 0, H_g_utf8_strrchr, pl_ssi);
+  s7_define_typed_function(sc, "g_utf8_strreverse", lg_g_utf8_strreverse, 2, 0, 0, H_g_utf8_strreverse, pl_ssi);
+  s7_define_typed_function(sc, "g_utf8_validate", lg_g_utf8_validate, 2, 1, 0, H_g_utf8_validate, pl_psiu);
+  s7_define_typed_function(sc, "g_utf8_strup", lg_g_utf8_strup, 2, 0, 0, H_g_utf8_strup, pl_ssi);
+  s7_define_typed_function(sc, "g_utf8_strdown", lg_g_utf8_strdown, 2, 0, 0, H_g_utf8_strdown, pl_ssi);
+  s7_define_typed_function(sc, "g_utf8_casefold", lg_g_utf8_casefold, 2, 0, 0, H_g_utf8_casefold, pl_ssi);
+  s7_define_typed_function(sc, "g_utf8_normalize", lg_g_utf8_normalize, 3, 0, 0, H_g_utf8_normalize, pl_ssig);
+  s7_define_typed_function(sc, "g_utf8_collate", lg_g_utf8_collate, 2, 0, 0, H_g_utf8_collate, pl_is);
+  s7_define_typed_function(sc, "g_utf8_collate_key", lg_g_utf8_collate_key, 2, 0, 0, H_g_utf8_collate_key, pl_ssi);
+  s7_define_typed_function(sc, "g_utf8_collate_key_for_filename", lg_g_utf8_collate_key_for_filename, 2, 0, 0, H_g_utf8_collate_key_for_filename, pl_ssi);
+  s7_define_typed_function(sc, "g_cclosure_new", lg_g_cclosure_new, 3, 0, 0, H_g_cclosure_new, pl_pt);
+  s7_define_typed_function(sc, "g_signal_newv", lg_g_signal_newv, 0, 0, 1, H_g_signal_newv, pl_isigutttiiu);
+  s7_define_typed_function(sc, "g_signal_lookup", lg_g_signal_lookup, 2, 0, 0, H_g_signal_lookup, pl_isi);
+  s7_define_typed_function(sc, "g_signal_name", lg_g_signal_name, 1, 0, 0, H_g_signal_name, pl_si);
+  s7_define_typed_function(sc, "g_signal_query", lg_g_signal_query, 2, 0, 0, H_g_signal_query, pl_tiu);
+  s7_define_typed_function(sc, "g_signal_list_ids", lg_g_signal_list_ids, 2, 0, 0, H_g_signal_list_ids, pl_piu);
+  s7_define_typed_function(sc, "g_signal_parse_name", lg_g_signal_parse_name, 3, 2, 0, H_g_signal_parse_name, pl_psiuub);
+  s7_define_typed_function(sc, "g_signal_get_invocation_hint", lg_g_signal_get_invocation_hint, 1, 0, 0, H_g_signal_get_invocation_hint, pl_pt);
+  s7_define_typed_function(sc, "g_signal_stop_emission", lg_g_signal_stop_emission, 3, 0, 0, H_g_signal_stop_emission, pl_tti);
+  s7_define_typed_function(sc, "g_signal_stop_emission_by_name", lg_g_signal_stop_emission_by_name, 2, 0, 0, H_g_signal_stop_emission_by_name, pl_tts);
+  s7_define_typed_function(sc, "g_signal_add_emission_hook", lg_g_signal_add_emission_hook, 5, 0, 0, H_g_signal_add_emission_hook, pl_iiit);
+  s7_define_typed_function(sc, "g_signal_remove_emission_hook", lg_g_signal_remove_emission_hook, 2, 0, 0, H_g_signal_remove_emission_hook, pl_ti);
+  s7_define_typed_function(sc, "g_signal_has_handler_pending", lg_g_signal_has_handler_pending, 4, 0, 0, H_g_signal_has_handler_pending, pl_btiib);
+  s7_define_typed_function(sc, "g_signal_connect_closure_by_id", lg_g_signal_connect_closure_by_id, 5, 0, 0, H_g_signal_connect_closure_by_id, pl_itiiub);
+  s7_define_typed_function(sc, "g_signal_connect_closure", lg_g_signal_connect_closure, 4, 0, 0, H_g_signal_connect_closure, pl_itsub);
+  s7_define_typed_function(sc, "g_signal_connect_data", lg_g_signal_connect_data, 6, 0, 0, H_g_signal_connect_data, pl_itstttg);
+  s7_define_typed_function(sc, "g_signal_handler_block", lg_g_signal_handler_block, 2, 0, 0, H_g_signal_handler_block, pl_tti);
+  s7_define_typed_function(sc, "g_signal_handler_unblock", lg_g_signal_handler_unblock, 2, 0, 0, H_g_signal_handler_unblock, pl_tti);
+  s7_define_typed_function(sc, "g_signal_handler_disconnect", lg_g_signal_handler_disconnect, 2, 0, 0, H_g_signal_handler_disconnect, pl_tti);
+  s7_define_typed_function(sc, "g_signal_handler_is_connected", lg_g_signal_handler_is_connected, 2, 0, 0, H_g_signal_handler_is_connected, pl_bti);
+  s7_define_typed_function(sc, "g_signal_handler_find", lg_g_signal_handler_find, 7, 0, 0, H_g_signal_handler_find, pl_itgiiut);
+  s7_define_typed_function(sc, "g_signal_handlers_block_matched", lg_g_signal_handlers_block_matched, 7, 0, 0, H_g_signal_handlers_block_matched, pl_itgiiut);
+  s7_define_typed_function(sc, "g_signal_handlers_unblock_matched", lg_g_signal_handlers_unblock_matched, 7, 0, 0, H_g_signal_handlers_unblock_matched, pl_itgiiut);
+  s7_define_typed_function(sc, "g_signal_handlers_disconnect_matched", lg_g_signal_handlers_disconnect_matched, 7, 0, 0, H_g_signal_handlers_disconnect_matched, pl_itgiiut);
+  s7_define_typed_function(sc, "g_signal_handlers_destroy", lg_g_signal_handlers_destroy, 1, 0, 0, H_g_signal_handlers_destroy, pl_t);
+  s7_define_typed_function(sc, "g_object_ref", lg_g_object_ref, 1, 0, 0, H_g_object_ref, pl_t);
+  s7_define_typed_function(sc, "g_object_unref", lg_g_object_unref, 1, 0, 0, H_g_object_unref, pl_t);
+  s7_define_typed_function(sc, "gdk_cursor_new_for_display", lg_gdk_cursor_new_for_display, 2, 0, 0, H_gdk_cursor_new_for_display, pl_pug);
+  s7_define_typed_function(sc, "gdk_cursor_get_display", lg_gdk_cursor_get_display, 1, 0, 0, H_gdk_cursor_get_display, pl_pu);
+  s7_define_typed_function(sc, "gdk_drag_status", lg_gdk_drag_status, 3, 0, 0, H_gdk_drag_status, pl_tugi);
+  s7_define_typed_function(sc, "gdk_drop_reply", lg_gdk_drop_reply, 3, 0, 0, H_gdk_drop_reply, pl_tubi);
+  s7_define_typed_function(sc, "gdk_drop_finish", lg_gdk_drop_finish, 3, 0, 0, H_gdk_drop_finish, pl_tubi);
+  s7_define_typed_function(sc, "gdk_drag_get_selection", lg_gdk_drag_get_selection, 1, 0, 0, H_gdk_drag_get_selection, pl_tu);
+  s7_define_typed_function(sc, "gdk_drag_begin", lg_gdk_drag_begin, 2, 0, 0, H_gdk_drag_begin, pl_pu);
+  s7_define_typed_function(sc, "gdk_drag_drop", lg_gdk_drag_drop, 2, 0, 0, H_gdk_drag_drop, pl_tui);
+  s7_define_typed_function(sc, "gdk_drag_abort", lg_gdk_drag_abort, 2, 0, 0, H_gdk_drag_abort, pl_tui);
+  s7_define_typed_function(sc, "gdk_events_pending", lg_gdk_events_pending, 0, 0, 0, H_gdk_events_pending, pl_b);
+  s7_define_typed_function(sc, "gdk_event_get", lg_gdk_event_get, 0, 0, 0, H_gdk_event_get, pl_p);
+  s7_define_typed_function(sc, "gdk_event_peek", lg_gdk_event_peek, 0, 0, 0, H_gdk_event_peek, pl_p);
+  s7_define_typed_function(sc, "gdk_event_put", lg_gdk_event_put, 1, 0, 0, H_gdk_event_put, pl_tu);
+  s7_define_typed_function(sc, "gdk_event_copy", lg_gdk_event_copy, 1, 0, 0, H_gdk_event_copy, pl_pu);
+  s7_define_typed_function(sc, "gdk_event_free", lg_gdk_event_free, 1, 0, 0, H_gdk_event_free, pl_tu);
+  s7_define_typed_function(sc, "gdk_event_get_time", lg_gdk_event_get_time, 1, 0, 0, H_gdk_event_get_time, pl_iu);
+  s7_define_typed_function(sc, "gdk_event_get_state", lg_gdk_event_get_state, 1, 1, 0, H_gdk_event_get_state, pl_pu);
+  s7_define_typed_function(sc, "gdk_event_get_coords", lg_gdk_event_get_coords, 1, 2, 0, H_gdk_event_get_coords, pl_pu);
+  s7_define_typed_function(sc, "gdk_event_get_root_coords", lg_gdk_event_get_root_coords, 1, 2, 0, H_gdk_event_get_root_coords, pl_pu);
+  s7_define_typed_function(sc, "gdk_event_handler_set", lg_gdk_event_handler_set, 3, 0, 0, H_gdk_event_handler_set, pl_t);
+  s7_define_typed_function(sc, "gdk_set_show_events", lg_gdk_set_show_events, 1, 0, 0, H_gdk_set_show_events, pl_tb);
+  s7_define_typed_function(sc, "gdk_get_show_events", lg_gdk_get_show_events, 0, 0, 0, H_gdk_get_show_events, pl_b);
+  s7_define_typed_function(sc, "gdk_init", lg_gdk_init, 0, 2, 0, H_gdk_init, pl_pu);
+  s7_define_typed_function(sc, "gdk_init_check", lg_gdk_init_check, 0, 2, 0, H_gdk_init_check, pl_pu);
+  s7_define_typed_function(sc, "gdk_get_program_class", lg_gdk_get_program_class, 0, 0, 0, H_gdk_get_program_class, pl_s);
+  s7_define_typed_function(sc, "gdk_set_program_class", lg_gdk_set_program_class, 1, 0, 0, H_gdk_set_program_class, pl_ts);
+  s7_define_typed_function(sc, "gdk_error_trap_push", lg_gdk_error_trap_push, 0, 0, 0, H_gdk_error_trap_push, pl_t);
+  s7_define_typed_function(sc, "gdk_error_trap_pop", lg_gdk_error_trap_pop, 0, 0, 0, H_gdk_error_trap_pop, pl_i);
+  s7_define_typed_function(sc, "gdk_get_display_arg_name", lg_gdk_get_display_arg_name, 0, 0, 0, H_gdk_get_display_arg_name, pl_s);
+  s7_define_typed_function(sc, "gdk_notify_startup_complete", lg_gdk_notify_startup_complete, 0, 0, 0, H_gdk_notify_startup_complete, pl_t);
+  s7_define_typed_function(sc, "gdk_flush", lg_gdk_flush, 0, 0, 0, H_gdk_flush, pl_t);
+  s7_define_typed_function(sc, "gdk_beep", lg_gdk_beep, 0, 0, 0, H_gdk_beep, pl_t);
+  s7_define_typed_function(sc, "gdk_set_double_click_time", lg_gdk_set_double_click_time, 1, 0, 0, H_gdk_set_double_click_time, pl_ti);
+  s7_define_typed_function(sc, "gdk_rectangle_intersect", lg_gdk_rectangle_intersect, 3, 0, 0, H_gdk_rectangle_intersect, pl_bu);
+  s7_define_typed_function(sc, "gdk_rectangle_union", lg_gdk_rectangle_union, 3, 0, 0, H_gdk_rectangle_union, pl_tu);
+  s7_define_typed_function(sc, "gdk_keymap_get_default", lg_gdk_keymap_get_default, 0, 0, 0, H_gdk_keymap_get_default, pl_p);
+  s7_define_typed_function(sc, "gdk_keymap_lookup_key", lg_gdk_keymap_lookup_key, 2, 0, 0, H_gdk_keymap_lookup_key, pl_iu);
+  s7_define_typed_function(sc, "gdk_keymap_get_entries_for_keyval", lg_gdk_keymap_get_entries_for_keyval, 2, 2, 0, H_gdk_keymap_get_entries_for_keyval, pl_puiu);
+  s7_define_typed_function(sc, "gdk_keymap_get_entries_for_keycode", lg_gdk_keymap_get_entries_for_keycode, 2, 3, 0, H_gdk_keymap_get_entries_for_keycode, pl_puiu);
+  s7_define_typed_function(sc, "gdk_keymap_get_direction", lg_gdk_keymap_get_direction, 1, 0, 0, H_gdk_keymap_get_direction, pl_gu);
+  s7_define_typed_function(sc, "gdk_keyval_name", lg_gdk_keyval_name, 1, 0, 0, H_gdk_keyval_name, pl_si);
+  s7_define_typed_function(sc, "gdk_keyval_from_name", lg_gdk_keyval_from_name, 1, 0, 0, H_gdk_keyval_from_name, pl_is);
+  s7_define_typed_function(sc, "gdk_keyval_convert_case", lg_gdk_keyval_convert_case, 1, 2, 0, H_gdk_keyval_convert_case, pl_piu);
+  s7_define_typed_function(sc, "gdk_keyval_to_upper", lg_gdk_keyval_to_upper, 1, 0, 0, H_gdk_keyval_to_upper, pl_i);
+  s7_define_typed_function(sc, "gdk_keyval_to_lower", lg_gdk_keyval_to_lower, 1, 0, 0, H_gdk_keyval_to_lower, pl_i);
+  s7_define_typed_function(sc, "gdk_keyval_is_upper", lg_gdk_keyval_is_upper, 1, 0, 0, H_gdk_keyval_is_upper, pl_bi);
+  s7_define_typed_function(sc, "gdk_keyval_is_lower", lg_gdk_keyval_is_lower, 1, 0, 0, H_gdk_keyval_is_lower, pl_bi);
+  s7_define_typed_function(sc, "gdk_keyval_to_unicode", lg_gdk_keyval_to_unicode, 1, 0, 0, H_gdk_keyval_to_unicode, pl_i);
+  s7_define_typed_function(sc, "gdk_unicode_to_keyval", lg_gdk_unicode_to_keyval, 1, 0, 0, H_gdk_unicode_to_keyval, pl_i);
+  s7_define_typed_function(sc, "gdk_pango_context_get", lg_gdk_pango_context_get, 0, 0, 0, H_gdk_pango_context_get, pl_p);
+  s7_define_typed_function(sc, "gdk_atom_intern", lg_gdk_atom_intern, 2, 0, 0, H_gdk_atom_intern, pl_tsb);
+  s7_define_typed_function(sc, "gdk_atom_name", lg_gdk_atom_name, 1, 0, 0, H_gdk_atom_name, pl_st);
+  s7_define_typed_function(sc, "gdk_property_get", lg_gdk_property_get, 0, 0, 1, H_gdk_property_get, pl_puttiiiu);
+  s7_define_typed_function(sc, "gdk_property_change", lg_gdk_property_change, 7, 0, 0, H_gdk_property_change, pl_tuttigsi);
+  s7_define_typed_function(sc, "gdk_property_delete", lg_gdk_property_delete, 2, 0, 0, H_gdk_property_delete, pl_tut);
+  s7_define_typed_function(sc, "gdk_utf8_to_string_target", lg_gdk_utf8_to_string_target, 1, 0, 0, H_gdk_utf8_to_string_target, pl_s);
+  s7_define_typed_function(sc, "gdk_selection_owner_set", lg_gdk_selection_owner_set, 4, 0, 0, H_gdk_selection_owner_set, pl_butib);
+  s7_define_typed_function(sc, "gdk_selection_owner_get", lg_gdk_selection_owner_get, 1, 0, 0, H_gdk_selection_owner_get, pl_pt);
+  s7_define_typed_function(sc, "gdk_selection_convert", lg_gdk_selection_convert, 4, 0, 0, H_gdk_selection_convert, pl_tutti);
+  s7_define_typed_function(sc, "gdk_selection_property_get", lg_gdk_selection_property_get, 1, 3, 0, H_gdk_selection_property_get, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_destroy", lg_gdk_window_destroy, 1, 0, 0, H_gdk_window_destroy, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_get_window_type", lg_gdk_window_get_window_type, 1, 0, 0, H_gdk_window_get_window_type, pl_gu);
+  s7_define_typed_function(sc, "gdk_window_show", lg_gdk_window_show, 1, 0, 0, H_gdk_window_show, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_hide", lg_gdk_window_hide, 1, 0, 0, H_gdk_window_hide, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_withdraw", lg_gdk_window_withdraw, 1, 0, 0, H_gdk_window_withdraw, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_show_unraised", lg_gdk_window_show_unraised, 1, 0, 0, H_gdk_window_show_unraised, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_move", lg_gdk_window_move, 3, 0, 0, H_gdk_window_move, pl_tui);
+  s7_define_typed_function(sc, "gdk_window_resize", lg_gdk_window_resize, 3, 0, 0, H_gdk_window_resize, pl_tui);
+  s7_define_typed_function(sc, "gdk_window_move_resize", lg_gdk_window_move_resize, 5, 0, 0, H_gdk_window_move_resize, pl_tui);
+  s7_define_typed_function(sc, "gdk_window_raise", lg_gdk_window_raise, 1, 0, 0, H_gdk_window_raise, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_lower", lg_gdk_window_lower, 1, 0, 0, H_gdk_window_lower, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_focus", lg_gdk_window_focus, 2, 0, 0, H_gdk_window_focus, pl_tui);
+  s7_define_typed_function(sc, "gdk_window_set_user_data", lg_gdk_window_set_user_data, 2, 0, 0, H_gdk_window_set_user_data, pl_tut);
+  s7_define_typed_function(sc, "gdk_window_add_filter", lg_gdk_window_add_filter, 2, 1, 0, H_gdk_window_add_filter, pl_tut);
+  s7_define_typed_function(sc, "gdk_window_remove_filter", lg_gdk_window_remove_filter, 2, 1, 0, H_gdk_window_remove_filter, pl_tut);
+  s7_define_typed_function(sc, "gdk_window_scroll", lg_gdk_window_scroll, 3, 0, 0, H_gdk_window_scroll, pl_tui);
+  s7_define_typed_function(sc, "gdk_window_set_child_shapes", lg_gdk_window_set_child_shapes, 1, 0, 0, H_gdk_window_set_child_shapes, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_merge_child_shapes", lg_gdk_window_merge_child_shapes, 1, 0, 0, H_gdk_window_merge_child_shapes, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_is_visible", lg_gdk_window_is_visible, 1, 0, 0, H_gdk_window_is_visible, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_is_viewable", lg_gdk_window_is_viewable, 1, 0, 0, H_gdk_window_is_viewable, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_get_state", lg_gdk_window_get_state, 1, 0, 0, H_gdk_window_get_state, pl_gu);
+  s7_define_typed_function(sc, "gdk_window_get_root_origin", lg_gdk_window_get_root_origin, 1, 2, 0, H_gdk_window_get_root_origin, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_get_frame_extents", lg_gdk_window_get_frame_extents, 2, 0, 0, H_gdk_window_get_frame_extents, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_get_parent", lg_gdk_window_get_parent, 1, 0, 0, H_gdk_window_get_parent, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_get_toplevel", lg_gdk_window_get_toplevel, 1, 0, 0, H_gdk_window_get_toplevel, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_get_children", lg_gdk_window_get_children, 1, 0, 0, H_gdk_window_get_children, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_peek_children", lg_gdk_window_peek_children, 1, 0, 0, H_gdk_window_peek_children, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_get_events", lg_gdk_window_get_events, 1, 0, 0, H_gdk_window_get_events, pl_gu);
+  s7_define_typed_function(sc, "gdk_window_set_events", lg_gdk_window_set_events, 2, 0, 0, H_gdk_window_set_events, pl_tug);
+  s7_define_typed_function(sc, "gdk_window_set_icon_list", lg_gdk_window_set_icon_list, 2, 0, 0, H_gdk_window_set_icon_list, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_set_icon_name", lg_gdk_window_set_icon_name, 2, 0, 0, H_gdk_window_set_icon_name, pl_tus);
+  s7_define_typed_function(sc, "gdk_window_set_group", lg_gdk_window_set_group, 2, 0, 0, H_gdk_window_set_group, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_set_decorations", lg_gdk_window_set_decorations, 2, 0, 0, H_gdk_window_set_decorations, pl_tug);
+  s7_define_typed_function(sc, "gdk_window_get_decorations", lg_gdk_window_get_decorations, 1, 1, 0, H_gdk_window_get_decorations, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_set_functions", lg_gdk_window_set_functions, 2, 0, 0, H_gdk_window_set_functions, pl_tug);
+  s7_define_typed_function(sc, "gdk_window_iconify", lg_gdk_window_iconify, 1, 0, 0, H_gdk_window_iconify, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_deiconify", lg_gdk_window_deiconify, 1, 0, 0, H_gdk_window_deiconify, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_stick", lg_gdk_window_stick, 1, 0, 0, H_gdk_window_stick, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_unstick", lg_gdk_window_unstick, 1, 0, 0, H_gdk_window_unstick, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_maximize", lg_gdk_window_maximize, 1, 0, 0, H_gdk_window_maximize, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_unmaximize", lg_gdk_window_unmaximize, 1, 0, 0, H_gdk_window_unmaximize, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_register_dnd", lg_gdk_window_register_dnd, 1, 0, 0, H_gdk_window_register_dnd, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_begin_resize_drag", lg_gdk_window_begin_resize_drag, 6, 0, 0, H_gdk_window_begin_resize_drag, pl_tugi);
+  s7_define_typed_function(sc, "gdk_window_begin_move_drag", lg_gdk_window_begin_move_drag, 5, 0, 0, H_gdk_window_begin_move_drag, pl_tui);
+  s7_define_typed_function(sc, "gdk_window_invalidate_rect", lg_gdk_window_invalidate_rect, 3, 0, 0, H_gdk_window_invalidate_rect, pl_tuub);
+  s7_define_typed_function(sc, "gdk_window_freeze_updates", lg_gdk_window_freeze_updates, 1, 0, 0, H_gdk_window_freeze_updates, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_thaw_updates", lg_gdk_window_thaw_updates, 1, 0, 0, H_gdk_window_thaw_updates, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_constrain_size", lg_gdk_window_constrain_size, 4, 2, 0, H_gdk_window_constrain_size, pl_pugiiu);
+  s7_define_typed_function(sc, "gdk_window_set_type_hint", lg_gdk_window_set_type_hint, 2, 0, 0, H_gdk_window_set_type_hint, pl_tug);
+  s7_define_typed_function(sc, "gdk_window_set_modal_hint", lg_gdk_window_set_modal_hint, 2, 0, 0, H_gdk_window_set_modal_hint, pl_tub);
+  s7_define_typed_function(sc, "gdk_window_set_title", lg_gdk_window_set_title, 2, 0, 0, H_gdk_window_set_title, pl_tus);
+  s7_define_typed_function(sc, "gdk_window_set_role", lg_gdk_window_set_role, 2, 0, 0, H_gdk_window_set_role, pl_tus);
+  s7_define_typed_function(sc, "gdk_window_set_transient_for", lg_gdk_window_set_transient_for, 2, 0, 0, H_gdk_window_set_transient_for, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_set_cursor", lg_gdk_window_set_cursor, 2, 0, 0, H_gdk_window_set_cursor, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_get_user_data", lg_gdk_window_get_user_data, 1, 1, 0, H_gdk_window_get_user_data, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_get_position", lg_gdk_window_get_position, 1, 2, 0, H_gdk_window_get_position, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_get_origin", lg_gdk_window_get_origin, 1, 2, 0, H_gdk_window_get_origin, pl_pu);
+  s7_define_typed_function(sc, "gdk_get_default_root_window", lg_gdk_get_default_root_window, 0, 0, 0, H_gdk_get_default_root_window, pl_p);
+  s7_define_typed_function(sc, "gdk_pixbuf_error_quark", lg_gdk_pixbuf_error_quark, 0, 0, 0, H_gdk_pixbuf_error_quark, pl_i);
+  s7_define_typed_function(sc, "gdk_pixbuf_get_colorspace", lg_gdk_pixbuf_get_colorspace, 1, 0, 0, H_gdk_pixbuf_get_colorspace, pl_gu);
+  s7_define_typed_function(sc, "gdk_pixbuf_get_n_channels", lg_gdk_pixbuf_get_n_channels, 1, 0, 0, H_gdk_pixbuf_get_n_channels, pl_iu);
+  s7_define_typed_function(sc, "gdk_pixbuf_get_has_alpha", lg_gdk_pixbuf_get_has_alpha, 1, 0, 0, H_gdk_pixbuf_get_has_alpha, pl_bu);
+  s7_define_typed_function(sc, "gdk_pixbuf_get_bits_per_sample", lg_gdk_pixbuf_get_bits_per_sample, 1, 0, 0, H_gdk_pixbuf_get_bits_per_sample, pl_iu);
+  s7_define_typed_function(sc, "gdk_pixbuf_get_pixels", lg_gdk_pixbuf_get_pixels, 1, 0, 0, H_gdk_pixbuf_get_pixels, pl_su);
+  s7_define_typed_function(sc, "gdk_pixbuf_get_width", lg_gdk_pixbuf_get_width, 1, 0, 0, H_gdk_pixbuf_get_width, pl_iu);
+  s7_define_typed_function(sc, "gdk_pixbuf_get_height", lg_gdk_pixbuf_get_height, 1, 0, 0, H_gdk_pixbuf_get_height, pl_iu);
+  s7_define_typed_function(sc, "gdk_pixbuf_get_rowstride", lg_gdk_pixbuf_get_rowstride, 1, 0, 0, H_gdk_pixbuf_get_rowstride, pl_iu);
+  s7_define_typed_function(sc, "gdk_pixbuf_new", lg_gdk_pixbuf_new, 5, 0, 0, H_gdk_pixbuf_new, pl_pgbi);
+  s7_define_typed_function(sc, "gdk_pixbuf_copy", lg_gdk_pixbuf_copy, 1, 0, 0, H_gdk_pixbuf_copy, pl_pu);
+  s7_define_typed_function(sc, "gdk_pixbuf_new_subpixbuf", lg_gdk_pixbuf_new_subpixbuf, 5, 0, 0, H_gdk_pixbuf_new_subpixbuf, pl_pui);
+  s7_define_typed_function(sc, "gdk_pixbuf_new_from_file", lg_gdk_pixbuf_new_from_file, 1, 1, 0, H_gdk_pixbuf_new_from_file, pl_psu);
+  s7_define_typed_function(sc, "gdk_pixbuf_new_from_data", lg_gdk_pixbuf_new_from_data, 0, 0, 1, H_gdk_pixbuf_new_from_data, pl_psgbiiiit);
+  s7_define_typed_function(sc, "gdk_pixbuf_new_from_xpm_data", lg_gdk_pixbuf_new_from_xpm_data, 1, 0, 0, H_gdk_pixbuf_new_from_xpm_data, pl_pu);
+  s7_define_typed_function(sc, "gdk_pixbuf_fill", lg_gdk_pixbuf_fill, 2, 0, 0, H_gdk_pixbuf_fill, pl_tui);
+  s7_define_typed_function(sc, "gdk_pixbuf_savev", lg_gdk_pixbuf_savev, 5, 1, 0, H_gdk_pixbuf_savev, pl_pussu);
+  s7_define_typed_function(sc, "gdk_pixbuf_add_alpha", lg_gdk_pixbuf_add_alpha, 5, 0, 0, H_gdk_pixbuf_add_alpha, pl_pubi);
+  s7_define_typed_function(sc, "gdk_pixbuf_copy_area", lg_gdk_pixbuf_copy_area, 0, 0, 1, H_gdk_pixbuf_copy_area, pl_tuiiiiui);
+  s7_define_typed_function(sc, "gdk_pixbuf_saturate_and_pixelate", lg_gdk_pixbuf_saturate_and_pixelate, 4, 0, 0, H_gdk_pixbuf_saturate_and_pixelate, pl_tuurb);
+  s7_define_typed_function(sc, "gdk_pixbuf_scale", lg_gdk_pixbuf_scale, 0, 0, 1, H_gdk_pixbuf_scale, pl_tuuiiiirrrrg);
+  s7_define_typed_function(sc, "gdk_pixbuf_composite", lg_gdk_pixbuf_composite, 0, 0, 1, H_gdk_pixbuf_composite, pl_tuuiiiirrrrgi);
+  s7_define_typed_function(sc, "gdk_pixbuf_composite_color", lg_gdk_pixbuf_composite_color, 0, 0, 1, H_gdk_pixbuf_composite_color, pl_tuuiiiirrrrgi);
+  s7_define_typed_function(sc, "gdk_pixbuf_scale_simple", lg_gdk_pixbuf_scale_simple, 4, 0, 0, H_gdk_pixbuf_scale_simple, pl_puiig);
+  s7_define_typed_function(sc, "gdk_pixbuf_composite_color_simple", lg_gdk_pixbuf_composite_color_simple, 0, 0, 1, H_gdk_pixbuf_composite_color_simple, pl_puiigi);
+  s7_define_typed_function(sc, "gdk_pixbuf_animation_new_from_file", lg_gdk_pixbuf_animation_new_from_file, 1, 1, 0, H_gdk_pixbuf_animation_new_from_file, pl_psu);
+  s7_define_typed_function(sc, "gdk_pixbuf_animation_get_width", lg_gdk_pixbuf_animation_get_width, 1, 0, 0, H_gdk_pixbuf_animation_get_width, pl_iu);
+  s7_define_typed_function(sc, "gdk_pixbuf_animation_get_height", lg_gdk_pixbuf_animation_get_height, 1, 0, 0, H_gdk_pixbuf_animation_get_height, pl_iu);
+  s7_define_typed_function(sc, "gdk_pixbuf_animation_is_static_image", lg_gdk_pixbuf_animation_is_static_image, 1, 0, 0, H_gdk_pixbuf_animation_is_static_image, pl_bu);
+  s7_define_typed_function(sc, "gdk_pixbuf_animation_get_static_image", lg_gdk_pixbuf_animation_get_static_image, 1, 0, 0, H_gdk_pixbuf_animation_get_static_image, pl_pu);
+  s7_define_typed_function(sc, "gdk_pixbuf_animation_get_iter", lg_gdk_pixbuf_animation_get_iter, 2, 0, 0, H_gdk_pixbuf_animation_get_iter, pl_pu);
+  s7_define_typed_function(sc, "gdk_pixbuf_animation_iter_get_delay_time", lg_gdk_pixbuf_animation_iter_get_delay_time, 1, 0, 0, H_gdk_pixbuf_animation_iter_get_delay_time, pl_iu);
+  s7_define_typed_function(sc, "gdk_pixbuf_animation_iter_get_pixbuf", lg_gdk_pixbuf_animation_iter_get_pixbuf, 1, 0, 0, H_gdk_pixbuf_animation_iter_get_pixbuf, pl_pu);
+  s7_define_typed_function(sc, "gdk_pixbuf_animation_iter_on_currently_loading_frame", lg_gdk_pixbuf_animation_iter_on_currently_loading_frame, 1, 0, 0, H_gdk_pixbuf_animation_iter_on_currently_loading_frame, pl_bu);
+  s7_define_typed_function(sc, "gdk_pixbuf_animation_iter_advance", lg_gdk_pixbuf_animation_iter_advance, 2, 0, 0, H_gdk_pixbuf_animation_iter_advance, pl_bu);
+  s7_define_typed_function(sc, "gdk_pixbuf_get_option", lg_gdk_pixbuf_get_option, 2, 0, 0, H_gdk_pixbuf_get_option, pl_sus);
+  s7_define_typed_function(sc, "gtk_accel_group_new", lg_gtk_accel_group_new, 0, 0, 0, H_gtk_accel_group_new, pl_p);
+  s7_define_typed_function(sc, "gtk_accel_group_lock", lg_gtk_accel_group_lock, 1, 0, 0, H_gtk_accel_group_lock, pl_tu);
+  s7_define_typed_function(sc, "gtk_accel_group_unlock", lg_gtk_accel_group_unlock, 1, 0, 0, H_gtk_accel_group_unlock, pl_tu);
+  s7_define_typed_function(sc, "gtk_accel_group_connect", lg_gtk_accel_group_connect, 5, 0, 0, H_gtk_accel_group_connect, pl_tuiggu);
+  s7_define_typed_function(sc, "gtk_accel_group_connect_by_path", lg_gtk_accel_group_connect_by_path, 3, 0, 0, H_gtk_accel_group_connect_by_path, pl_tusu);
+  s7_define_typed_function(sc, "gtk_accel_group_disconnect", lg_gtk_accel_group_disconnect, 2, 0, 0, H_gtk_accel_group_disconnect, pl_bu);
+  s7_define_typed_function(sc, "gtk_accel_group_disconnect_key", lg_gtk_accel_group_disconnect_key, 3, 0, 0, H_gtk_accel_group_disconnect_key, pl_buig);
+  s7_define_typed_function(sc, "gtk_accel_groups_activate", lg_gtk_accel_groups_activate, 3, 0, 0, H_gtk_accel_groups_activate, pl_buig);
+  s7_define_typed_function(sc, "gtk_accel_groups_from_object", lg_gtk_accel_groups_from_object, 1, 0, 0, H_gtk_accel_groups_from_object, pl_pu);
+  s7_define_typed_function(sc, "gtk_accel_group_find", lg_gtk_accel_group_find, 2, 1, 0, H_gtk_accel_group_find, pl_put);
+  s7_define_typed_function(sc, "gtk_accel_group_from_accel_closure", lg_gtk_accel_group_from_accel_closure, 1, 0, 0, H_gtk_accel_group_from_accel_closure, pl_pu);
+  s7_define_typed_function(sc, "gtk_accelerator_valid", lg_gtk_accelerator_valid, 2, 0, 0, H_gtk_accelerator_valid, pl_big);
+  s7_define_typed_function(sc, "gtk_accelerator_parse", lg_gtk_accelerator_parse, 1, 2, 0, H_gtk_accelerator_parse, pl_psu);
+  s7_define_typed_function(sc, "gtk_accelerator_name", lg_gtk_accelerator_name, 2, 0, 0, H_gtk_accelerator_name, pl_sig);
+  s7_define_typed_function(sc, "gtk_accelerator_set_default_mod_mask", lg_gtk_accelerator_set_default_mod_mask, 1, 0, 0, H_gtk_accelerator_set_default_mod_mask, pl_tg);
+  s7_define_typed_function(sc, "gtk_accel_group_query", lg_gtk_accel_group_query, 3, 1, 0, H_gtk_accel_group_query, pl_puigu);
+  s7_define_typed_function(sc, "gtk_accel_group_activate", lg_gtk_accel_group_activate, 5, 0, 0, H_gtk_accel_group_activate, pl_buiuig);
+  s7_define_typed_function(sc, "gtk_accel_label_new", lg_gtk_accel_label_new, 1, 0, 0, H_gtk_accel_label_new, pl_ps);
+  s7_define_typed_function(sc, "gtk_accel_label_get_accel_widget", lg_gtk_accel_label_get_accel_widget, 1, 0, 0, H_gtk_accel_label_get_accel_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_accel_label_get_accel_width", lg_gtk_accel_label_get_accel_width, 1, 0, 0, H_gtk_accel_label_get_accel_width, pl_iu);
+  s7_define_typed_function(sc, "gtk_accel_label_set_accel_widget", lg_gtk_accel_label_set_accel_widget, 2, 0, 0, H_gtk_accel_label_set_accel_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_accel_label_set_accel_closure", lg_gtk_accel_label_set_accel_closure, 2, 0, 0, H_gtk_accel_label_set_accel_closure, pl_tu);
+  s7_define_typed_function(sc, "gtk_accel_label_refetch", lg_gtk_accel_label_refetch, 1, 0, 0, H_gtk_accel_label_refetch, pl_bu);
+  s7_define_typed_function(sc, "gtk_accel_map_add_entry", lg_gtk_accel_map_add_entry, 3, 0, 0, H_gtk_accel_map_add_entry, pl_tsig);
+  s7_define_typed_function(sc, "gtk_accel_map_lookup_entry", lg_gtk_accel_map_lookup_entry, 2, 0, 0, H_gtk_accel_map_lookup_entry, pl_bsu);
+  s7_define_typed_function(sc, "gtk_accel_map_change_entry", lg_gtk_accel_map_change_entry, 4, 0, 0, H_gtk_accel_map_change_entry, pl_bsigb);
+  s7_define_typed_function(sc, "gtk_accel_map_load", lg_gtk_accel_map_load, 1, 0, 0, H_gtk_accel_map_load, pl_ts);
+  s7_define_typed_function(sc, "gtk_accel_map_save", lg_gtk_accel_map_save, 1, 0, 0, H_gtk_accel_map_save, pl_ts);
+  s7_define_typed_function(sc, "gtk_accel_map_foreach", lg_gtk_accel_map_foreach, 2, 0, 0, H_gtk_accel_map_foreach, pl_t);
+  s7_define_typed_function(sc, "gtk_accel_map_load_fd", lg_gtk_accel_map_load_fd, 1, 0, 0, H_gtk_accel_map_load_fd, pl_ti);
+  s7_define_typed_function(sc, "gtk_accel_map_save_fd", lg_gtk_accel_map_save_fd, 1, 0, 0, H_gtk_accel_map_save_fd, pl_ti);
+  s7_define_typed_function(sc, "gtk_accel_map_add_filter", lg_gtk_accel_map_add_filter, 1, 0, 0, H_gtk_accel_map_add_filter, pl_ts);
+  s7_define_typed_function(sc, "gtk_accel_map_foreach_unfiltered", lg_gtk_accel_map_foreach_unfiltered, 2, 0, 0, H_gtk_accel_map_foreach_unfiltered, pl_t);
+  s7_define_typed_function(sc, "gtk_adjustment_clamp_page", lg_gtk_adjustment_clamp_page, 3, 0, 0, H_gtk_adjustment_clamp_page, pl_tur);
+  s7_define_typed_function(sc, "gtk_adjustment_get_value", lg_gtk_adjustment_get_value, 1, 0, 0, H_gtk_adjustment_get_value, pl_du);
+  s7_define_typed_function(sc, "gtk_adjustment_set_value", lg_gtk_adjustment_set_value, 2, 0, 0, H_gtk_adjustment_set_value, pl_tur);
+  s7_define_typed_function(sc, "gtk_aspect_frame_new", lg_gtk_aspect_frame_new, 5, 0, 0, H_gtk_aspect_frame_new, pl_psrrrb);
+  s7_define_typed_function(sc, "gtk_aspect_frame_set", lg_gtk_aspect_frame_set, 5, 0, 0, H_gtk_aspect_frame_set, pl_turrrb);
+  s7_define_typed_function(sc, "gtk_button_box_get_layout", lg_gtk_button_box_get_layout, 1, 0, 0, H_gtk_button_box_get_layout, pl_gu);
+  s7_define_typed_function(sc, "gtk_button_box_set_layout", lg_gtk_button_box_set_layout, 2, 0, 0, H_gtk_button_box_set_layout, pl_tug);
+  s7_define_typed_function(sc, "gtk_button_box_set_child_secondary", lg_gtk_button_box_set_child_secondary, 3, 0, 0, H_gtk_button_box_set_child_secondary, pl_tuub);
+  s7_define_typed_function(sc, "gtk_binding_set_new", lg_gtk_binding_set_new, 1, 0, 0, H_gtk_binding_set_new, pl_ps);
+  s7_define_typed_function(sc, "gtk_binding_set_by_class", lg_gtk_binding_set_by_class, 1, 0, 0, H_gtk_binding_set_by_class, pl_pt);
+  s7_define_typed_function(sc, "gtk_binding_set_find", lg_gtk_binding_set_find, 1, 0, 0, H_gtk_binding_set_find, pl_ps);
+  s7_define_typed_function(sc, "gtk_binding_entry_remove", lg_gtk_binding_entry_remove, 3, 0, 0, H_gtk_binding_entry_remove, pl_tuig);
+  s7_define_typed_function(sc, "gtk_bin_get_child", lg_gtk_bin_get_child, 1, 0, 0, H_gtk_bin_get_child, pl_pu);
+  s7_define_typed_function(sc, "gtk_box_set_homogeneous", lg_gtk_box_set_homogeneous, 2, 0, 0, H_gtk_box_set_homogeneous, pl_tub);
+  s7_define_typed_function(sc, "gtk_box_get_homogeneous", lg_gtk_box_get_homogeneous, 1, 0, 0, H_gtk_box_get_homogeneous, pl_bu);
+  s7_define_typed_function(sc, "gtk_box_set_spacing", lg_gtk_box_set_spacing, 2, 0, 0, H_gtk_box_set_spacing, pl_tui);
+  s7_define_typed_function(sc, "gtk_box_get_spacing", lg_gtk_box_get_spacing, 1, 0, 0, H_gtk_box_get_spacing, pl_iu);
+  s7_define_typed_function(sc, "gtk_box_reorder_child", lg_gtk_box_reorder_child, 3, 0, 0, H_gtk_box_reorder_child, pl_tuui);
+  s7_define_typed_function(sc, "gtk_box_query_child_packing", lg_gtk_box_query_child_packing, 2, 4, 0, H_gtk_box_query_child_packing, pl_pu);
+  s7_define_typed_function(sc, "gtk_box_set_child_packing", lg_gtk_box_set_child_packing, 6, 0, 0, H_gtk_box_set_child_packing, pl_tuubbig);
+  s7_define_typed_function(sc, "gtk_button_new", lg_gtk_button_new, 0, 0, 0, H_gtk_button_new, pl_p);
+  s7_define_typed_function(sc, "gtk_button_new_with_label", lg_gtk_button_new_with_label, 1, 0, 0, H_gtk_button_new_with_label, pl_ps);
+  s7_define_typed_function(sc, "gtk_button_new_with_mnemonic", lg_gtk_button_new_with_mnemonic, 1, 0, 0, H_gtk_button_new_with_mnemonic, pl_ps);
+  s7_define_typed_function(sc, "gtk_button_clicked", lg_gtk_button_clicked, 1, 0, 0, H_gtk_button_clicked, pl_tu);
+  s7_define_typed_function(sc, "gtk_button_set_relief", lg_gtk_button_set_relief, 2, 0, 0, H_gtk_button_set_relief, pl_tug);
+  s7_define_typed_function(sc, "gtk_button_get_relief", lg_gtk_button_get_relief, 1, 0, 0, H_gtk_button_get_relief, pl_gu);
+  s7_define_typed_function(sc, "gtk_button_set_label", lg_gtk_button_set_label, 2, 0, 0, H_gtk_button_set_label, pl_tus);
+  s7_define_typed_function(sc, "gtk_button_get_label", lg_gtk_button_get_label, 1, 0, 0, H_gtk_button_get_label, pl_su);
+  s7_define_typed_function(sc, "gtk_button_set_use_underline", lg_gtk_button_set_use_underline, 2, 0, 0, H_gtk_button_set_use_underline, pl_tub);
+  s7_define_typed_function(sc, "gtk_button_get_use_underline", lg_gtk_button_get_use_underline, 1, 0, 0, H_gtk_button_get_use_underline, pl_bu);
+  s7_define_typed_function(sc, "gtk_calendar_new", lg_gtk_calendar_new, 0, 0, 0, H_gtk_calendar_new, pl_p);
+  s7_define_typed_function(sc, "gtk_calendar_select_day", lg_gtk_calendar_select_day, 2, 0, 0, H_gtk_calendar_select_day, pl_tui);
+  s7_define_typed_function(sc, "gtk_calendar_clear_marks", lg_gtk_calendar_clear_marks, 1, 0, 0, H_gtk_calendar_clear_marks, pl_tu);
+  s7_define_typed_function(sc, "gtk_calendar_get_date", lg_gtk_calendar_get_date, 1, 3, 0, H_gtk_calendar_get_date, pl_pu);
+  s7_define_typed_function(sc, "gtk_cell_editable_start_editing", lg_gtk_cell_editable_start_editing, 2, 0, 0, H_gtk_cell_editable_start_editing, pl_tu);
+  s7_define_typed_function(sc, "gtk_cell_editable_editing_done", lg_gtk_cell_editable_editing_done, 1, 0, 0, H_gtk_cell_editable_editing_done, pl_tu);
+  s7_define_typed_function(sc, "gtk_cell_editable_remove_widget", lg_gtk_cell_editable_remove_widget, 1, 0, 0, H_gtk_cell_editable_remove_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_activate", lg_gtk_cell_renderer_activate, 7, 0, 0, H_gtk_cell_renderer_activate, pl_buuusuug);
+  s7_define_typed_function(sc, "gtk_cell_renderer_start_editing", lg_gtk_cell_renderer_start_editing, 7, 0, 0, H_gtk_cell_renderer_start_editing, pl_puuusuug);
+  s7_define_typed_function(sc, "gtk_cell_renderer_set_fixed_size", lg_gtk_cell_renderer_set_fixed_size, 3, 0, 0, H_gtk_cell_renderer_set_fixed_size, pl_tui);
+  s7_define_typed_function(sc, "gtk_cell_renderer_get_fixed_size", lg_gtk_cell_renderer_get_fixed_size, 1, 2, 0, H_gtk_cell_renderer_get_fixed_size, pl_pu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_pixbuf_new", lg_gtk_cell_renderer_pixbuf_new, 0, 0, 0, H_gtk_cell_renderer_pixbuf_new, pl_p);
+  s7_define_typed_function(sc, "gtk_cell_renderer_text_new", lg_gtk_cell_renderer_text_new, 0, 0, 0, H_gtk_cell_renderer_text_new, pl_p);
+  s7_define_typed_function(sc, "gtk_cell_renderer_text_set_fixed_height_from_font", lg_gtk_cell_renderer_text_set_fixed_height_from_font, 2, 0, 0, H_gtk_cell_renderer_text_set_fixed_height_from_font, pl_tui);
+  s7_define_typed_function(sc, "gtk_cell_renderer_toggle_new", lg_gtk_cell_renderer_toggle_new, 0, 0, 0, H_gtk_cell_renderer_toggle_new, pl_p);
+  s7_define_typed_function(sc, "gtk_cell_renderer_toggle_get_radio", lg_gtk_cell_renderer_toggle_get_radio, 1, 0, 0, H_gtk_cell_renderer_toggle_get_radio, pl_bu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_toggle_set_radio", lg_gtk_cell_renderer_toggle_set_radio, 2, 0, 0, H_gtk_cell_renderer_toggle_set_radio, pl_tub);
+  s7_define_typed_function(sc, "gtk_cell_renderer_toggle_get_active", lg_gtk_cell_renderer_toggle_get_active, 1, 0, 0, H_gtk_cell_renderer_toggle_get_active, pl_bu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_toggle_set_active", lg_gtk_cell_renderer_toggle_set_active, 2, 0, 0, H_gtk_cell_renderer_toggle_set_active, pl_tub);
+  s7_define_typed_function(sc, "gtk_check_button_new", lg_gtk_check_button_new, 0, 0, 0, H_gtk_check_button_new, pl_p);
+  s7_define_typed_function(sc, "gtk_check_button_new_with_label", lg_gtk_check_button_new_with_label, 1, 0, 0, H_gtk_check_button_new_with_label, pl_ps);
+  s7_define_typed_function(sc, "gtk_check_button_new_with_mnemonic", lg_gtk_check_button_new_with_mnemonic, 1, 0, 0, H_gtk_check_button_new_with_mnemonic, pl_ps);
+  s7_define_typed_function(sc, "gtk_check_menu_item_new", lg_gtk_check_menu_item_new, 0, 0, 0, H_gtk_check_menu_item_new, pl_p);
+  s7_define_typed_function(sc, "gtk_check_menu_item_new_with_label", lg_gtk_check_menu_item_new_with_label, 1, 0, 0, H_gtk_check_menu_item_new_with_label, pl_ps);
+  s7_define_typed_function(sc, "gtk_check_menu_item_new_with_mnemonic", lg_gtk_check_menu_item_new_with_mnemonic, 1, 0, 0, H_gtk_check_menu_item_new_with_mnemonic, pl_ps);
+  s7_define_typed_function(sc, "gtk_check_menu_item_set_active", lg_gtk_check_menu_item_set_active, 2, 0, 0, H_gtk_check_menu_item_set_active, pl_tub);
+  s7_define_typed_function(sc, "gtk_check_menu_item_get_active", lg_gtk_check_menu_item_get_active, 1, 0, 0, H_gtk_check_menu_item_get_active, pl_bu);
+  s7_define_typed_function(sc, "gtk_check_menu_item_toggled", lg_gtk_check_menu_item_toggled, 1, 0, 0, H_gtk_check_menu_item_toggled, pl_tu);
+  s7_define_typed_function(sc, "gtk_check_menu_item_set_inconsistent", lg_gtk_check_menu_item_set_inconsistent, 2, 0, 0, H_gtk_check_menu_item_set_inconsistent, pl_tub);
+  s7_define_typed_function(sc, "gtk_check_menu_item_get_inconsistent", lg_gtk_check_menu_item_get_inconsistent, 1, 0, 0, H_gtk_check_menu_item_get_inconsistent, pl_bu);
+  s7_define_typed_function(sc, "gtk_clipboard_get", lg_gtk_clipboard_get, 1, 0, 0, H_gtk_clipboard_get, pl_pt);
+  s7_define_typed_function(sc, "gtk_clipboard_set_with_data", lg_gtk_clipboard_set_with_data, 5, 1, 0, H_gtk_clipboard_set_with_data, pl_buuit);
+  s7_define_typed_function(sc, "gtk_clipboard_get_owner", lg_gtk_clipboard_get_owner, 1, 0, 0, H_gtk_clipboard_get_owner, pl_pu);
+  s7_define_typed_function(sc, "gtk_clipboard_clear", lg_gtk_clipboard_clear, 1, 0, 0, H_gtk_clipboard_clear, pl_tu);
+  s7_define_typed_function(sc, "gtk_clipboard_set_text", lg_gtk_clipboard_set_text, 3, 0, 0, H_gtk_clipboard_set_text, pl_tusi);
+  s7_define_typed_function(sc, "gtk_clipboard_request_contents", lg_gtk_clipboard_request_contents, 3, 1, 0, H_gtk_clipboard_request_contents, pl_tut);
+  s7_define_typed_function(sc, "gtk_clipboard_request_text", lg_gtk_clipboard_request_text, 2, 1, 0, H_gtk_clipboard_request_text, pl_tut);
+  s7_define_typed_function(sc, "gtk_clipboard_wait_for_contents", lg_gtk_clipboard_wait_for_contents, 2, 0, 0, H_gtk_clipboard_wait_for_contents, pl_put);
+  s7_define_typed_function(sc, "gtk_clipboard_wait_for_text", lg_gtk_clipboard_wait_for_text, 1, 0, 0, H_gtk_clipboard_wait_for_text, pl_su);
+  s7_define_typed_function(sc, "gtk_clipboard_wait_is_text_available", lg_gtk_clipboard_wait_is_text_available, 1, 0, 0, H_gtk_clipboard_wait_is_text_available, pl_bu);
+  s7_define_typed_function(sc, "gtk_container_add", lg_gtk_container_add, 2, 0, 0, H_gtk_container_add, pl_tu);
+  s7_define_typed_function(sc, "gtk_container_remove", lg_gtk_container_remove, 2, 0, 0, H_gtk_container_remove, pl_tu);
+  s7_define_typed_function(sc, "gtk_container_check_resize", lg_gtk_container_check_resize, 1, 0, 0, H_gtk_container_check_resize, pl_tu);
+  s7_define_typed_function(sc, "gtk_container_foreach", lg_gtk_container_foreach, 2, 1, 0, H_gtk_container_foreach, pl_tut);
+  s7_define_typed_function(sc, "gtk_container_get_children", lg_gtk_container_get_children, 1, 0, 0, H_gtk_container_get_children, pl_pu);
+  s7_define_typed_function(sc, "gtk_dialog_new", lg_gtk_dialog_new, 0, 0, 0, H_gtk_dialog_new, pl_p);
+  s7_define_typed_function(sc, "gtk_dialog_add_action_widget", lg_gtk_dialog_add_action_widget, 3, 0, 0, H_gtk_dialog_add_action_widget, pl_tuui);
+  s7_define_typed_function(sc, "gtk_dialog_add_button", lg_gtk_dialog_add_button, 3, 0, 0, H_gtk_dialog_add_button, pl_pusi);
+  s7_define_typed_function(sc, "gtk_dialog_add_buttons", lg_gtk_dialog_add_buttons, 2, 0, 0, H_gtk_dialog_add_buttons, pl_tut);
+  s7_define_typed_function(sc, "gtk_dialog_set_response_sensitive", lg_gtk_dialog_set_response_sensitive, 3, 0, 0, H_gtk_dialog_set_response_sensitive, pl_tuib);
+  s7_define_typed_function(sc, "gtk_dialog_set_default_response", lg_gtk_dialog_set_default_response, 2, 0, 0, H_gtk_dialog_set_default_response, pl_tui);
+  s7_define_typed_function(sc, "gtk_dialog_response", lg_gtk_dialog_response, 2, 0, 0, H_gtk_dialog_response, pl_tui);
+  s7_define_typed_function(sc, "gtk_dialog_run", lg_gtk_dialog_run, 1, 0, 0, H_gtk_dialog_run, pl_iu);
+  s7_define_typed_function(sc, "gtk_drag_get_data", lg_gtk_drag_get_data, 4, 0, 0, H_gtk_drag_get_data, pl_tuuti);
+  s7_define_typed_function(sc, "gtk_drag_finish", lg_gtk_drag_finish, 4, 0, 0, H_gtk_drag_finish, pl_tubbi);
+  s7_define_typed_function(sc, "gtk_drag_get_source_widget", lg_gtk_drag_get_source_widget, 1, 0, 0, H_gtk_drag_get_source_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_drag_highlight", lg_gtk_drag_highlight, 1, 0, 0, H_gtk_drag_highlight, pl_tu);
+  s7_define_typed_function(sc, "gtk_drag_unhighlight", lg_gtk_drag_unhighlight, 1, 0, 0, H_gtk_drag_unhighlight, pl_tu);
+  s7_define_typed_function(sc, "gtk_drag_dest_set", lg_gtk_drag_dest_set, 5, 0, 0, H_gtk_drag_dest_set, pl_tuguig);
+  s7_define_typed_function(sc, "gtk_drag_dest_unset", lg_gtk_drag_dest_unset, 1, 0, 0, H_gtk_drag_dest_unset, pl_tu);
+  s7_define_typed_function(sc, "gtk_drag_dest_find_target", lg_gtk_drag_dest_find_target, 3, 0, 0, H_gtk_drag_dest_find_target, pl_tu);
+  s7_define_typed_function(sc, "gtk_drag_dest_get_target_list", lg_gtk_drag_dest_get_target_list, 1, 0, 0, H_gtk_drag_dest_get_target_list, pl_pu);
+  s7_define_typed_function(sc, "gtk_drag_dest_set_target_list", lg_gtk_drag_dest_set_target_list, 2, 0, 0, H_gtk_drag_dest_set_target_list, pl_tu);
+  s7_define_typed_function(sc, "gtk_drag_source_set", lg_gtk_drag_source_set, 5, 0, 0, H_gtk_drag_source_set, pl_tuguig);
+  s7_define_typed_function(sc, "gtk_drag_source_unset", lg_gtk_drag_source_unset, 1, 0, 0, H_gtk_drag_source_unset, pl_tu);
+  s7_define_typed_function(sc, "gtk_drag_source_set_icon_pixbuf", lg_gtk_drag_source_set_icon_pixbuf, 2, 0, 0, H_gtk_drag_source_set_icon_pixbuf, pl_tu);
+  s7_define_typed_function(sc, "gtk_drag_set_icon_widget", lg_gtk_drag_set_icon_widget, 4, 0, 0, H_gtk_drag_set_icon_widget, pl_tuui);
+  s7_define_typed_function(sc, "gtk_drag_set_icon_pixbuf", lg_gtk_drag_set_icon_pixbuf, 4, 0, 0, H_gtk_drag_set_icon_pixbuf, pl_tuui);
+  s7_define_typed_function(sc, "gtk_drag_set_icon_default", lg_gtk_drag_set_icon_default, 1, 0, 0, H_gtk_drag_set_icon_default, pl_tu);
+  s7_define_typed_function(sc, "gtk_drag_check_threshold", lg_gtk_drag_check_threshold, 5, 0, 0, H_gtk_drag_check_threshold, pl_bui);
+  s7_define_typed_function(sc, "gtk_drawing_area_new", lg_gtk_drawing_area_new, 0, 0, 0, H_gtk_drawing_area_new, pl_p);
+  s7_define_typed_function(sc, "gtk_editable_select_region", lg_gtk_editable_select_region, 3, 0, 0, H_gtk_editable_select_region, pl_tui);
+  s7_define_typed_function(sc, "gtk_editable_get_selection_bounds", lg_gtk_editable_get_selection_bounds, 1, 2, 0, H_gtk_editable_get_selection_bounds, pl_pu);
+  s7_define_typed_function(sc, "gtk_editable_insert_text", lg_gtk_editable_insert_text, 3, 1, 0, H_gtk_editable_insert_text, pl_pusiu);
+  s7_define_typed_function(sc, "gtk_editable_delete_text", lg_gtk_editable_delete_text, 3, 0, 0, H_gtk_editable_delete_text, pl_tui);
+  s7_define_typed_function(sc, "gtk_editable_get_chars", lg_gtk_editable_get_chars, 3, 0, 0, H_gtk_editable_get_chars, pl_sui);
+  s7_define_typed_function(sc, "gtk_editable_cut_clipboard", lg_gtk_editable_cut_clipboard, 1, 0, 0, H_gtk_editable_cut_clipboard, pl_tu);
+  s7_define_typed_function(sc, "gtk_editable_copy_clipboard", lg_gtk_editable_copy_clipboard, 1, 0, 0, H_gtk_editable_copy_clipboard, pl_tu);
+  s7_define_typed_function(sc, "gtk_editable_paste_clipboard", lg_gtk_editable_paste_clipboard, 1, 0, 0, H_gtk_editable_paste_clipboard, pl_tu);
+  s7_define_typed_function(sc, "gtk_editable_delete_selection", lg_gtk_editable_delete_selection, 1, 0, 0, H_gtk_editable_delete_selection, pl_tu);
+  s7_define_typed_function(sc, "gtk_editable_set_position", lg_gtk_editable_set_position, 2, 0, 0, H_gtk_editable_set_position, pl_tui);
+  s7_define_typed_function(sc, "gtk_editable_get_position", lg_gtk_editable_get_position, 1, 0, 0, H_gtk_editable_get_position, pl_iu);
+  s7_define_typed_function(sc, "gtk_editable_set_editable", lg_gtk_editable_set_editable, 2, 0, 0, H_gtk_editable_set_editable, pl_tub);
+  s7_define_typed_function(sc, "gtk_editable_get_editable", lg_gtk_editable_get_editable, 1, 0, 0, H_gtk_editable_get_editable, pl_bu);
+  s7_define_typed_function(sc, "gtk_entry_new", lg_gtk_entry_new, 0, 0, 0, H_gtk_entry_new, pl_p);
+  s7_define_typed_function(sc, "gtk_entry_set_visibility", lg_gtk_entry_set_visibility, 2, 0, 0, H_gtk_entry_set_visibility, pl_tub);
+  s7_define_typed_function(sc, "gtk_entry_get_visibility", lg_gtk_entry_get_visibility, 1, 0, 0, H_gtk_entry_get_visibility, pl_bu);
+  s7_define_typed_function(sc, "gtk_entry_set_invisible_char", lg_gtk_entry_set_invisible_char, 2, 0, 0, H_gtk_entry_set_invisible_char, pl_tui);
+  s7_define_typed_function(sc, "gtk_entry_get_invisible_char", lg_gtk_entry_get_invisible_char, 1, 0, 0, H_gtk_entry_get_invisible_char, pl_iu);
+  s7_define_typed_function(sc, "gtk_entry_set_has_frame", lg_gtk_entry_set_has_frame, 2, 0, 0, H_gtk_entry_set_has_frame, pl_tub);
+  s7_define_typed_function(sc, "gtk_entry_get_has_frame", lg_gtk_entry_get_has_frame, 1, 0, 0, H_gtk_entry_get_has_frame, pl_bu);
+  s7_define_typed_function(sc, "gtk_entry_set_max_length", lg_gtk_entry_set_max_length, 2, 0, 0, H_gtk_entry_set_max_length, pl_tui);
+  s7_define_typed_function(sc, "gtk_entry_get_max_length", lg_gtk_entry_get_max_length, 1, 0, 0, H_gtk_entry_get_max_length, pl_iu);
+  s7_define_typed_function(sc, "gtk_entry_set_activates_default", lg_gtk_entry_set_activates_default, 2, 0, 0, H_gtk_entry_set_activates_default, pl_tub);
+  s7_define_typed_function(sc, "gtk_entry_get_activates_default", lg_gtk_entry_get_activates_default, 1, 0, 0, H_gtk_entry_get_activates_default, pl_bu);
+  s7_define_typed_function(sc, "gtk_entry_set_width_chars", lg_gtk_entry_set_width_chars, 2, 0, 0, H_gtk_entry_set_width_chars, pl_tui);
+  s7_define_typed_function(sc, "gtk_entry_get_width_chars", lg_gtk_entry_get_width_chars, 1, 0, 0, H_gtk_entry_get_width_chars, pl_iu);
+  s7_define_typed_function(sc, "gtk_entry_set_text", lg_gtk_entry_set_text, 2, 0, 0, H_gtk_entry_set_text, pl_tus);
+  s7_define_typed_function(sc, "gtk_entry_get_text", lg_gtk_entry_get_text, 1, 0, 0, H_gtk_entry_get_text, pl_su);
+  s7_define_typed_function(sc, "gtk_entry_get_layout", lg_gtk_entry_get_layout, 1, 0, 0, H_gtk_entry_get_layout, pl_pu);
+  s7_define_typed_function(sc, "gtk_entry_get_layout_offsets", lg_gtk_entry_get_layout_offsets, 1, 2, 0, H_gtk_entry_get_layout_offsets, pl_pu);
+  s7_define_typed_function(sc, "gtk_event_box_new", lg_gtk_event_box_new, 0, 0, 0, H_gtk_event_box_new, pl_p);
+  s7_define_typed_function(sc, "gtk_fixed_new", lg_gtk_fixed_new, 0, 0, 0, H_gtk_fixed_new, pl_p);
+  s7_define_typed_function(sc, "gtk_fixed_put", lg_gtk_fixed_put, 4, 0, 0, H_gtk_fixed_put, pl_tuui);
+  s7_define_typed_function(sc, "gtk_fixed_move", lg_gtk_fixed_move, 4, 0, 0, H_gtk_fixed_move, pl_tuui);
+  s7_define_typed_function(sc, "gtk_frame_new", lg_gtk_frame_new, 1, 0, 0, H_gtk_frame_new, pl_ps);
+  s7_define_typed_function(sc, "gtk_frame_set_label", lg_gtk_frame_set_label, 2, 0, 0, H_gtk_frame_set_label, pl_tus);
+  s7_define_typed_function(sc, "gtk_frame_get_label", lg_gtk_frame_get_label, 1, 0, 0, H_gtk_frame_get_label, pl_su);
+  s7_define_typed_function(sc, "gtk_frame_set_label_widget", lg_gtk_frame_set_label_widget, 2, 0, 0, H_gtk_frame_set_label_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_frame_get_label_widget", lg_gtk_frame_get_label_widget, 1, 0, 0, H_gtk_frame_get_label_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_frame_set_label_align", lg_gtk_frame_set_label_align, 3, 0, 0, H_gtk_frame_set_label_align, pl_tur);
+  s7_define_typed_function(sc, "gtk_frame_get_label_align", lg_gtk_frame_get_label_align, 1, 2, 0, H_gtk_frame_get_label_align, pl_pu);
+  s7_define_typed_function(sc, "gtk_frame_set_shadow_type", lg_gtk_frame_set_shadow_type, 2, 0, 0, H_gtk_frame_set_shadow_type, pl_tug);
+  s7_define_typed_function(sc, "gtk_frame_get_shadow_type", lg_gtk_frame_get_shadow_type, 1, 0, 0, H_gtk_frame_get_shadow_type, pl_gu);
+  s7_define_typed_function(sc, "gtk_image_new", lg_gtk_image_new, 0, 0, 0, H_gtk_image_new, pl_p);
+  s7_define_typed_function(sc, "gtk_image_new_from_file", lg_gtk_image_new_from_file, 1, 0, 0, H_gtk_image_new_from_file, pl_ps);
+  s7_define_typed_function(sc, "gtk_image_new_from_pixbuf", lg_gtk_image_new_from_pixbuf, 1, 0, 0, H_gtk_image_new_from_pixbuf, pl_pu);
+  s7_define_typed_function(sc, "gtk_image_new_from_animation", lg_gtk_image_new_from_animation, 1, 0, 0, H_gtk_image_new_from_animation, pl_pu);
+  s7_define_typed_function(sc, "gtk_image_set_from_file", lg_gtk_image_set_from_file, 2, 0, 0, H_gtk_image_set_from_file, pl_tus);
+  s7_define_typed_function(sc, "gtk_image_set_from_pixbuf", lg_gtk_image_set_from_pixbuf, 2, 0, 0, H_gtk_image_set_from_pixbuf, pl_tu);
+  s7_define_typed_function(sc, "gtk_image_set_from_animation", lg_gtk_image_set_from_animation, 2, 0, 0, H_gtk_image_set_from_animation, pl_tu);
+  s7_define_typed_function(sc, "gtk_image_get_storage_type", lg_gtk_image_get_storage_type, 1, 0, 0, H_gtk_image_get_storage_type, pl_gu);
+  s7_define_typed_function(sc, "gtk_image_get_pixbuf", lg_gtk_image_get_pixbuf, 1, 0, 0, H_gtk_image_get_pixbuf, pl_pu);
+  s7_define_typed_function(sc, "gtk_image_get_animation", lg_gtk_image_get_animation, 1, 0, 0, H_gtk_image_get_animation, pl_pu);
+  s7_define_typed_function(sc, "gtk_im_context_get_preedit_string", lg_gtk_im_context_get_preedit_string, 1, 3, 0, H_gtk_im_context_get_preedit_string, pl_pu);
+  s7_define_typed_function(sc, "gtk_im_context_filter_keypress", lg_gtk_im_context_filter_keypress, 2, 0, 0, H_gtk_im_context_filter_keypress, pl_bu);
+  s7_define_typed_function(sc, "gtk_im_context_focus_in", lg_gtk_im_context_focus_in, 1, 0, 0, H_gtk_im_context_focus_in, pl_tu);
+  s7_define_typed_function(sc, "gtk_im_context_focus_out", lg_gtk_im_context_focus_out, 1, 0, 0, H_gtk_im_context_focus_out, pl_tu);
+  s7_define_typed_function(sc, "gtk_im_context_reset", lg_gtk_im_context_reset, 1, 0, 0, H_gtk_im_context_reset, pl_tu);
+  s7_define_typed_function(sc, "gtk_im_context_set_cursor_location", lg_gtk_im_context_set_cursor_location, 2, 0, 0, H_gtk_im_context_set_cursor_location, pl_tu);
+  s7_define_typed_function(sc, "gtk_im_context_set_use_preedit", lg_gtk_im_context_set_use_preedit, 2, 0, 0, H_gtk_im_context_set_use_preedit, pl_tub);
+  s7_define_typed_function(sc, "gtk_im_context_set_surrounding", lg_gtk_im_context_set_surrounding, 4, 0, 0, H_gtk_im_context_set_surrounding, pl_tusi);
+  s7_define_typed_function(sc, "gtk_im_context_get_surrounding", lg_gtk_im_context_get_surrounding, 1, 2, 0, H_gtk_im_context_get_surrounding, pl_pu);
+  s7_define_typed_function(sc, "gtk_im_context_delete_surrounding", lg_gtk_im_context_delete_surrounding, 3, 0, 0, H_gtk_im_context_delete_surrounding, pl_bui);
+  s7_define_typed_function(sc, "gtk_im_context_simple_new", lg_gtk_im_context_simple_new, 0, 0, 0, H_gtk_im_context_simple_new, pl_p);
+  s7_define_typed_function(sc, "gtk_im_context_simple_add_table", lg_gtk_im_context_simple_add_table, 4, 0, 0, H_gtk_im_context_simple_add_table, pl_tuui);
+  s7_define_typed_function(sc, "gtk_invisible_new", lg_gtk_invisible_new, 0, 0, 0, H_gtk_invisible_new, pl_p);
+  s7_define_typed_function(sc, "gtk_label_new", lg_gtk_label_new, 1, 0, 0, H_gtk_label_new, pl_ps);
+  s7_define_typed_function(sc, "gtk_label_new_with_mnemonic", lg_gtk_label_new_with_mnemonic, 1, 0, 0, H_gtk_label_new_with_mnemonic, pl_ps);
+  s7_define_typed_function(sc, "gtk_label_set_text", lg_gtk_label_set_text, 2, 0, 0, H_gtk_label_set_text, pl_tus);
+  s7_define_typed_function(sc, "gtk_label_get_text", lg_gtk_label_get_text, 1, 0, 0, H_gtk_label_get_text, pl_su);
+  s7_define_typed_function(sc, "gtk_label_set_attributes", lg_gtk_label_set_attributes, 2, 0, 0, H_gtk_label_set_attributes, pl_tu);
+  s7_define_typed_function(sc, "gtk_label_get_attributes", lg_gtk_label_get_attributes, 1, 0, 0, H_gtk_label_get_attributes, pl_pu);
+  s7_define_typed_function(sc, "gtk_label_set_label", lg_gtk_label_set_label, 2, 0, 0, H_gtk_label_set_label, pl_tus);
+  s7_define_typed_function(sc, "gtk_label_get_label", lg_gtk_label_get_label, 1, 0, 0, H_gtk_label_get_label, pl_su);
+  s7_define_typed_function(sc, "gtk_label_set_markup", lg_gtk_label_set_markup, 2, 0, 0, H_gtk_label_set_markup, pl_tus);
+  s7_define_typed_function(sc, "gtk_label_set_use_markup", lg_gtk_label_set_use_markup, 2, 0, 0, H_gtk_label_set_use_markup, pl_tub);
+  s7_define_typed_function(sc, "gtk_label_get_use_markup", lg_gtk_label_get_use_markup, 1, 0, 0, H_gtk_label_get_use_markup, pl_bu);
+  s7_define_typed_function(sc, "gtk_label_set_use_underline", lg_gtk_label_set_use_underline, 2, 0, 0, H_gtk_label_set_use_underline, pl_tub);
+  s7_define_typed_function(sc, "gtk_label_get_use_underline", lg_gtk_label_get_use_underline, 1, 0, 0, H_gtk_label_get_use_underline, pl_bu);
+  s7_define_typed_function(sc, "gtk_label_set_markup_with_mnemonic", lg_gtk_label_set_markup_with_mnemonic, 2, 0, 0, H_gtk_label_set_markup_with_mnemonic, pl_tus);
+  s7_define_typed_function(sc, "gtk_label_get_mnemonic_keyval", lg_gtk_label_get_mnemonic_keyval, 1, 0, 0, H_gtk_label_get_mnemonic_keyval, pl_iu);
+  s7_define_typed_function(sc, "gtk_label_set_mnemonic_widget", lg_gtk_label_set_mnemonic_widget, 2, 0, 0, H_gtk_label_set_mnemonic_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_label_get_mnemonic_widget", lg_gtk_label_get_mnemonic_widget, 1, 0, 0, H_gtk_label_get_mnemonic_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_label_set_text_with_mnemonic", lg_gtk_label_set_text_with_mnemonic, 2, 0, 0, H_gtk_label_set_text_with_mnemonic, pl_tus);
+  s7_define_typed_function(sc, "gtk_label_set_justify", lg_gtk_label_set_justify, 2, 0, 0, H_gtk_label_set_justify, pl_tug);
+  s7_define_typed_function(sc, "gtk_label_get_justify", lg_gtk_label_get_justify, 1, 0, 0, H_gtk_label_get_justify, pl_gu);
+  s7_define_typed_function(sc, "gtk_label_set_pattern", lg_gtk_label_set_pattern, 2, 0, 0, H_gtk_label_set_pattern, pl_tus);
+  s7_define_typed_function(sc, "gtk_label_set_line_wrap", lg_gtk_label_set_line_wrap, 2, 0, 0, H_gtk_label_set_line_wrap, pl_tub);
+  s7_define_typed_function(sc, "gtk_label_get_line_wrap", lg_gtk_label_get_line_wrap, 1, 0, 0, H_gtk_label_get_line_wrap, pl_bu);
+  s7_define_typed_function(sc, "gtk_label_set_selectable", lg_gtk_label_set_selectable, 2, 0, 0, H_gtk_label_set_selectable, pl_tub);
+  s7_define_typed_function(sc, "gtk_label_get_selectable", lg_gtk_label_get_selectable, 1, 0, 0, H_gtk_label_get_selectable, pl_bu);
+  s7_define_typed_function(sc, "gtk_label_select_region", lg_gtk_label_select_region, 3, 0, 0, H_gtk_label_select_region, pl_tui);
+  s7_define_typed_function(sc, "gtk_label_get_selection_bounds", lg_gtk_label_get_selection_bounds, 1, 2, 0, H_gtk_label_get_selection_bounds, pl_pu);
+  s7_define_typed_function(sc, "gtk_label_get_layout", lg_gtk_label_get_layout, 1, 0, 0, H_gtk_label_get_layout, pl_pu);
+  s7_define_typed_function(sc, "gtk_label_get_layout_offsets", lg_gtk_label_get_layout_offsets, 1, 2, 0, H_gtk_label_get_layout_offsets, pl_pu);
+  s7_define_typed_function(sc, "gtk_layout_new", lg_gtk_layout_new, 2, 0, 0, H_gtk_layout_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_layout_put", lg_gtk_layout_put, 4, 0, 0, H_gtk_layout_put, pl_tuui);
+  s7_define_typed_function(sc, "gtk_layout_move", lg_gtk_layout_move, 4, 0, 0, H_gtk_layout_move, pl_tuui);
+  s7_define_typed_function(sc, "gtk_layout_set_size", lg_gtk_layout_set_size, 3, 0, 0, H_gtk_layout_set_size, pl_tui);
+  s7_define_typed_function(sc, "gtk_layout_get_size", lg_gtk_layout_get_size, 1, 2, 0, H_gtk_layout_get_size, pl_pu);
+  s7_define_typed_function(sc, "gtk_list_store_new", lg_gtk_list_store_new, 2, 0, 0, H_gtk_list_store_new, pl_pit);
+  s7_define_typed_function(sc, "gtk_list_store_newv", lg_gtk_list_store_newv, 2, 0, 0, H_gtk_list_store_newv, pl_piu);
+  s7_define_typed_function(sc, "gtk_list_store_set_column_types", lg_gtk_list_store_set_column_types, 3, 0, 0, H_gtk_list_store_set_column_types, pl_tuiu);
+  s7_define_typed_function(sc, "gtk_list_store_set", lg_gtk_list_store_set, 3, 0, 0, H_gtk_list_store_set, pl_tuut);
+  s7_define_typed_function(sc, "gtk_list_store_insert", lg_gtk_list_store_insert, 3, 0, 0, H_gtk_list_store_insert, pl_tuui);
+  s7_define_typed_function(sc, "gtk_list_store_insert_before", lg_gtk_list_store_insert_before, 3, 0, 0, H_gtk_list_store_insert_before, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_store_insert_after", lg_gtk_list_store_insert_after, 3, 0, 0, H_gtk_list_store_insert_after, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_store_prepend", lg_gtk_list_store_prepend, 2, 0, 0, H_gtk_list_store_prepend, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_store_append", lg_gtk_list_store_append, 2, 0, 0, H_gtk_list_store_append, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_store_clear", lg_gtk_list_store_clear, 1, 0, 0, H_gtk_list_store_clear, pl_tu);
+  s7_define_typed_function(sc, "gtk_check_version", lg_gtk_check_version, 3, 0, 0, H_gtk_check_version, pl_si);
+  s7_define_typed_function(sc, "gtk_disable_setlocale", lg_gtk_disable_setlocale, 0, 0, 0, H_gtk_disable_setlocale, pl_t);
+  s7_define_typed_function(sc, "gtk_get_default_language", lg_gtk_get_default_language, 0, 0, 0, H_gtk_get_default_language, pl_p);
+  s7_define_typed_function(sc, "gtk_events_pending", lg_gtk_events_pending, 0, 0, 0, H_gtk_events_pending, pl_i);
+  s7_define_typed_function(sc, "gtk_main_do_event", lg_gtk_main_do_event, 1, 0, 0, H_gtk_main_do_event, pl_tu);
+  s7_define_typed_function(sc, "gtk_main", lg_gtk_main, 0, 0, 0, H_gtk_main, pl_t);
+  s7_define_typed_function(sc, "gtk_main_level", lg_gtk_main_level, 0, 0, 0, H_gtk_main_level, pl_i);
+  s7_define_typed_function(sc, "gtk_main_quit", lg_gtk_main_quit, 0, 0, 0, H_gtk_main_quit, pl_t);
+  s7_define_typed_function(sc, "gtk_main_iteration", lg_gtk_main_iteration, 0, 0, 0, H_gtk_main_iteration, pl_b);
+  s7_define_typed_function(sc, "gtk_main_iteration_do", lg_gtk_main_iteration_do, 1, 0, 0, H_gtk_main_iteration_do, pl_b);
+  s7_define_typed_function(sc, "gtk_true", lg_gtk_true, 0, 0, 0, H_gtk_true, pl_b);
+  s7_define_typed_function(sc, "gtk_false", lg_gtk_false, 0, 0, 0, H_gtk_false, pl_b);
+  s7_define_typed_function(sc, "gtk_grab_add", lg_gtk_grab_add, 1, 0, 0, H_gtk_grab_add, pl_tu);
+  s7_define_typed_function(sc, "gtk_grab_get_current", lg_gtk_grab_get_current, 0, 0, 0, H_gtk_grab_get_current, pl_p);
+  s7_define_typed_function(sc, "gtk_grab_remove", lg_gtk_grab_remove, 1, 0, 0, H_gtk_grab_remove, pl_tu);
+  s7_define_typed_function(sc, "gtk_get_current_event", lg_gtk_get_current_event, 0, 0, 0, H_gtk_get_current_event, pl_p);
+  s7_define_typed_function(sc, "gtk_get_current_event_time", lg_gtk_get_current_event_time, 0, 0, 0, H_gtk_get_current_event_time, pl_i);
+  s7_define_typed_function(sc, "gtk_get_current_event_state", lg_gtk_get_current_event_state, 0, 1, 0, H_gtk_get_current_event_state, pl_pu);
+  s7_define_typed_function(sc, "gtk_get_event_widget", lg_gtk_get_event_widget, 1, 0, 0, H_gtk_get_event_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_propagate_event", lg_gtk_propagate_event, 2, 0, 0, H_gtk_propagate_event, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_bar_new", lg_gtk_menu_bar_new, 0, 0, 0, H_gtk_menu_bar_new, pl_p);
+  s7_define_typed_function(sc, "gtk_menu_new", lg_gtk_menu_new, 0, 0, 0, H_gtk_menu_new, pl_p);
+  s7_define_typed_function(sc, "gtk_menu_reposition", lg_gtk_menu_reposition, 1, 0, 0, H_gtk_menu_reposition, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_popdown", lg_gtk_menu_popdown, 1, 0, 0, H_gtk_menu_popdown, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_get_active", lg_gtk_menu_get_active, 1, 0, 0, H_gtk_menu_get_active, pl_pu);
+  s7_define_typed_function(sc, "gtk_menu_set_active", lg_gtk_menu_set_active, 2, 0, 0, H_gtk_menu_set_active, pl_tui);
+  s7_define_typed_function(sc, "gtk_menu_set_accel_group", lg_gtk_menu_set_accel_group, 2, 0, 0, H_gtk_menu_set_accel_group, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_get_accel_group", lg_gtk_menu_get_accel_group, 1, 0, 0, H_gtk_menu_get_accel_group, pl_pu);
+  s7_define_typed_function(sc, "gtk_menu_set_accel_path", lg_gtk_menu_set_accel_path, 2, 0, 0, H_gtk_menu_set_accel_path, pl_tus);
+  s7_define_typed_function(sc, "gtk_menu_detach", lg_gtk_menu_detach, 1, 0, 0, H_gtk_menu_detach, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_get_attach_widget", lg_gtk_menu_get_attach_widget, 1, 0, 0, H_gtk_menu_get_attach_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_menu_reorder_child", lg_gtk_menu_reorder_child, 3, 0, 0, H_gtk_menu_reorder_child, pl_tuui);
+  s7_define_typed_function(sc, "gtk_menu_set_monitor", lg_gtk_menu_set_monitor, 2, 0, 0, H_gtk_menu_set_monitor, pl_tui);
+  s7_define_typed_function(sc, "gtk_menu_item_new", lg_gtk_menu_item_new, 0, 0, 0, H_gtk_menu_item_new, pl_p);
+  s7_define_typed_function(sc, "gtk_menu_item_new_with_label", lg_gtk_menu_item_new_with_label, 1, 0, 0, H_gtk_menu_item_new_with_label, pl_ps);
+  s7_define_typed_function(sc, "gtk_menu_item_new_with_mnemonic", lg_gtk_menu_item_new_with_mnemonic, 1, 0, 0, H_gtk_menu_item_new_with_mnemonic, pl_ps);
+  s7_define_typed_function(sc, "gtk_menu_item_set_submenu", lg_gtk_menu_item_set_submenu, 2, 0, 0, H_gtk_menu_item_set_submenu, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_item_get_submenu", lg_gtk_menu_item_get_submenu, 1, 0, 0, H_gtk_menu_item_get_submenu, pl_pu);
+  s7_define_typed_function(sc, "gtk_menu_item_select", lg_gtk_menu_item_select, 1, 0, 0, H_gtk_menu_item_select, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_item_deselect", lg_gtk_menu_item_deselect, 1, 0, 0, H_gtk_menu_item_deselect, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_item_activate", lg_gtk_menu_item_activate, 1, 0, 0, H_gtk_menu_item_activate, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_item_toggle_size_request", lg_gtk_menu_item_toggle_size_request, 2, 0, 0, H_gtk_menu_item_toggle_size_request, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_item_toggle_size_allocate", lg_gtk_menu_item_toggle_size_allocate, 2, 0, 0, H_gtk_menu_item_toggle_size_allocate, pl_tui);
+  s7_define_typed_function(sc, "gtk_menu_item_set_accel_path", lg_gtk_menu_item_set_accel_path, 2, 0, 0, H_gtk_menu_item_set_accel_path, pl_tus);
+  s7_define_typed_function(sc, "gtk_menu_shell_append", lg_gtk_menu_shell_append, 2, 0, 0, H_gtk_menu_shell_append, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_shell_prepend", lg_gtk_menu_shell_prepend, 2, 0, 0, H_gtk_menu_shell_prepend, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_shell_insert", lg_gtk_menu_shell_insert, 3, 0, 0, H_gtk_menu_shell_insert, pl_tuui);
+  s7_define_typed_function(sc, "gtk_menu_shell_deactivate", lg_gtk_menu_shell_deactivate, 1, 0, 0, H_gtk_menu_shell_deactivate, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_shell_select_item", lg_gtk_menu_shell_select_item, 2, 0, 0, H_gtk_menu_shell_select_item, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_shell_deselect", lg_gtk_menu_shell_deselect, 1, 0, 0, H_gtk_menu_shell_deselect, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_shell_activate_item", lg_gtk_menu_shell_activate_item, 3, 0, 0, H_gtk_menu_shell_activate_item, pl_tuub);
+  s7_define_typed_function(sc, "gtk_notebook_new", lg_gtk_notebook_new, 0, 0, 0, H_gtk_notebook_new, pl_p);
+  s7_define_typed_function(sc, "gtk_notebook_remove_page", lg_gtk_notebook_remove_page, 2, 0, 0, H_gtk_notebook_remove_page, pl_tui);
+  s7_define_typed_function(sc, "gtk_notebook_get_current_page", lg_gtk_notebook_get_current_page, 1, 0, 0, H_gtk_notebook_get_current_page, pl_iu);
+  s7_define_typed_function(sc, "gtk_notebook_get_nth_page", lg_gtk_notebook_get_nth_page, 2, 0, 0, H_gtk_notebook_get_nth_page, pl_pui);
+  s7_define_typed_function(sc, "gtk_notebook_page_num", lg_gtk_notebook_page_num, 2, 0, 0, H_gtk_notebook_page_num, pl_iu);
+  s7_define_typed_function(sc, "gtk_notebook_set_current_page", lg_gtk_notebook_set_current_page, 2, 0, 0, H_gtk_notebook_set_current_page, pl_tui);
+  s7_define_typed_function(sc, "gtk_notebook_next_page", lg_gtk_notebook_next_page, 1, 0, 0, H_gtk_notebook_next_page, pl_tu);
+  s7_define_typed_function(sc, "gtk_notebook_prev_page", lg_gtk_notebook_prev_page, 1, 0, 0, H_gtk_notebook_prev_page, pl_tu);
+  s7_define_typed_function(sc, "gtk_notebook_set_show_border", lg_gtk_notebook_set_show_border, 2, 0, 0, H_gtk_notebook_set_show_border, pl_tub);
+  s7_define_typed_function(sc, "gtk_notebook_get_show_border", lg_gtk_notebook_get_show_border, 1, 0, 0, H_gtk_notebook_get_show_border, pl_bu);
+  s7_define_typed_function(sc, "gtk_notebook_set_show_tabs", lg_gtk_notebook_set_show_tabs, 2, 0, 0, H_gtk_notebook_set_show_tabs, pl_tub);
+  s7_define_typed_function(sc, "gtk_notebook_get_show_tabs", lg_gtk_notebook_get_show_tabs, 1, 0, 0, H_gtk_notebook_get_show_tabs, pl_bu);
+  s7_define_typed_function(sc, "gtk_notebook_set_tab_pos", lg_gtk_notebook_set_tab_pos, 2, 0, 0, H_gtk_notebook_set_tab_pos, pl_tug);
+  s7_define_typed_function(sc, "gtk_notebook_get_tab_pos", lg_gtk_notebook_get_tab_pos, 1, 0, 0, H_gtk_notebook_get_tab_pos, pl_gu);
+  s7_define_typed_function(sc, "gtk_notebook_set_scrollable", lg_gtk_notebook_set_scrollable, 2, 0, 0, H_gtk_notebook_set_scrollable, pl_tub);
+  s7_define_typed_function(sc, "gtk_notebook_get_scrollable", lg_gtk_notebook_get_scrollable, 1, 0, 0, H_gtk_notebook_get_scrollable, pl_bu);
+  s7_define_typed_function(sc, "gtk_notebook_popup_enable", lg_gtk_notebook_popup_enable, 1, 0, 0, H_gtk_notebook_popup_enable, pl_tu);
+  s7_define_typed_function(sc, "gtk_notebook_popup_disable", lg_gtk_notebook_popup_disable, 1, 0, 0, H_gtk_notebook_popup_disable, pl_tu);
+  s7_define_typed_function(sc, "gtk_notebook_get_tab_label", lg_gtk_notebook_get_tab_label, 2, 0, 0, H_gtk_notebook_get_tab_label, pl_pu);
+  s7_define_typed_function(sc, "gtk_notebook_set_tab_label", lg_gtk_notebook_set_tab_label, 3, 0, 0, H_gtk_notebook_set_tab_label, pl_tu);
+  s7_define_typed_function(sc, "gtk_notebook_set_tab_label_text", lg_gtk_notebook_set_tab_label_text, 3, 0, 0, H_gtk_notebook_set_tab_label_text, pl_tuus);
+  s7_define_typed_function(sc, "gtk_notebook_get_tab_label_text", lg_gtk_notebook_get_tab_label_text, 2, 0, 0, H_gtk_notebook_get_tab_label_text, pl_su);
+  s7_define_typed_function(sc, "gtk_notebook_get_menu_label", lg_gtk_notebook_get_menu_label, 2, 0, 0, H_gtk_notebook_get_menu_label, pl_pu);
+  s7_define_typed_function(sc, "gtk_notebook_set_menu_label", lg_gtk_notebook_set_menu_label, 3, 0, 0, H_gtk_notebook_set_menu_label, pl_tu);
+  s7_define_typed_function(sc, "gtk_notebook_set_menu_label_text", lg_gtk_notebook_set_menu_label_text, 3, 0, 0, H_gtk_notebook_set_menu_label_text, pl_tuus);
+  s7_define_typed_function(sc, "gtk_notebook_get_menu_label_text", lg_gtk_notebook_get_menu_label_text, 2, 0, 0, H_gtk_notebook_get_menu_label_text, pl_su);
+  s7_define_typed_function(sc, "gtk_notebook_reorder_child", lg_gtk_notebook_reorder_child, 3, 0, 0, H_gtk_notebook_reorder_child, pl_tuui);
+  s7_define_typed_function(sc, "gtk_notebook_append_page", lg_gtk_notebook_append_page, 3, 0, 0, H_gtk_notebook_append_page, pl_iu);
+  s7_define_typed_function(sc, "gtk_notebook_append_page_menu", lg_gtk_notebook_append_page_menu, 4, 0, 0, H_gtk_notebook_append_page_menu, pl_iu);
+  s7_define_typed_function(sc, "gtk_notebook_prepend_page", lg_gtk_notebook_prepend_page, 3, 0, 0, H_gtk_notebook_prepend_page, pl_iu);
+  s7_define_typed_function(sc, "gtk_notebook_prepend_page_menu", lg_gtk_notebook_prepend_page_menu, 4, 0, 0, H_gtk_notebook_prepend_page_menu, pl_iu);
+  s7_define_typed_function(sc, "gtk_notebook_insert_page", lg_gtk_notebook_insert_page, 4, 0, 0, H_gtk_notebook_insert_page, pl_iuuui);
+  s7_define_typed_function(sc, "gtk_notebook_insert_page_menu", lg_gtk_notebook_insert_page_menu, 5, 0, 0, H_gtk_notebook_insert_page_menu, pl_iuuuui);
+  s7_define_typed_function(sc, "gtk_paned_add1", lg_gtk_paned_add1, 2, 0, 0, H_gtk_paned_add1, pl_tu);
+  s7_define_typed_function(sc, "gtk_paned_add2", lg_gtk_paned_add2, 2, 0, 0, H_gtk_paned_add2, pl_tu);
+  s7_define_typed_function(sc, "gtk_paned_pack1", lg_gtk_paned_pack1, 4, 0, 0, H_gtk_paned_pack1, pl_tuub);
+  s7_define_typed_function(sc, "gtk_paned_pack2", lg_gtk_paned_pack2, 4, 0, 0, H_gtk_paned_pack2, pl_tuub);
+  s7_define_typed_function(sc, "gtk_paned_get_position", lg_gtk_paned_get_position, 1, 0, 0, H_gtk_paned_get_position, pl_iu);
+  s7_define_typed_function(sc, "gtk_paned_set_position", lg_gtk_paned_set_position, 2, 0, 0, H_gtk_paned_set_position, pl_tui);
+  s7_define_typed_function(sc, "gtk_progress_bar_new", lg_gtk_progress_bar_new, 0, 0, 0, H_gtk_progress_bar_new, pl_p);
+  s7_define_typed_function(sc, "gtk_progress_bar_pulse", lg_gtk_progress_bar_pulse, 1, 0, 0, H_gtk_progress_bar_pulse, pl_tu);
+  s7_define_typed_function(sc, "gtk_progress_bar_set_text", lg_gtk_progress_bar_set_text, 2, 0, 0, H_gtk_progress_bar_set_text, pl_tus);
+  s7_define_typed_function(sc, "gtk_progress_bar_set_fraction", lg_gtk_progress_bar_set_fraction, 2, 0, 0, H_gtk_progress_bar_set_fraction, pl_tur);
+  s7_define_typed_function(sc, "gtk_progress_bar_set_pulse_step", lg_gtk_progress_bar_set_pulse_step, 2, 0, 0, H_gtk_progress_bar_set_pulse_step, pl_tur);
+  s7_define_typed_function(sc, "gtk_progress_bar_get_text", lg_gtk_progress_bar_get_text, 1, 0, 0, H_gtk_progress_bar_get_text, pl_su);
+  s7_define_typed_function(sc, "gtk_progress_bar_get_fraction", lg_gtk_progress_bar_get_fraction, 1, 0, 0, H_gtk_progress_bar_get_fraction, pl_du);
+  s7_define_typed_function(sc, "gtk_progress_bar_get_pulse_step", lg_gtk_progress_bar_get_pulse_step, 1, 0, 0, H_gtk_progress_bar_get_pulse_step, pl_du);
+  s7_define_typed_function(sc, "gtk_radio_button_new", lg_gtk_radio_button_new, 1, 0, 0, H_gtk_radio_button_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_radio_button_new_from_widget", lg_gtk_radio_button_new_from_widget, 1, 0, 0, H_gtk_radio_button_new_from_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_radio_button_new_with_label", lg_gtk_radio_button_new_with_label, 2, 0, 0, H_gtk_radio_button_new_with_label, pl_pus);
+  s7_define_typed_function(sc, "gtk_radio_button_new_with_label_from_widget", lg_gtk_radio_button_new_with_label_from_widget, 2, 0, 0, H_gtk_radio_button_new_with_label_from_widget, pl_pus);
+  s7_define_typed_function(sc, "gtk_radio_button_new_with_mnemonic", lg_gtk_radio_button_new_with_mnemonic, 2, 0, 0, H_gtk_radio_button_new_with_mnemonic, pl_pus);
+  s7_define_typed_function(sc, "gtk_radio_button_new_with_mnemonic_from_widget", lg_gtk_radio_button_new_with_mnemonic_from_widget, 2, 0, 0, H_gtk_radio_button_new_with_mnemonic_from_widget, pl_pus);
+  s7_define_typed_function(sc, "gtk_radio_button_get_group", lg_gtk_radio_button_get_group, 1, 0, 0, H_gtk_radio_button_get_group, pl_pu);
+  s7_define_typed_function(sc, "gtk_radio_button_set_group", lg_gtk_radio_button_set_group, 2, 0, 0, H_gtk_radio_button_set_group, pl_tu);
+  s7_define_typed_function(sc, "gtk_radio_menu_item_new", lg_gtk_radio_menu_item_new, 1, 0, 0, H_gtk_radio_menu_item_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_radio_menu_item_new_with_label", lg_gtk_radio_menu_item_new_with_label, 2, 0, 0, H_gtk_radio_menu_item_new_with_label, pl_pus);
+  s7_define_typed_function(sc, "gtk_radio_menu_item_new_with_mnemonic", lg_gtk_radio_menu_item_new_with_mnemonic, 2, 0, 0, H_gtk_radio_menu_item_new_with_mnemonic, pl_pus);
+  s7_define_typed_function(sc, "gtk_radio_menu_item_get_group", lg_gtk_radio_menu_item_get_group, 1, 0, 0, H_gtk_radio_menu_item_get_group, pl_pu);
+  s7_define_typed_function(sc, "gtk_radio_menu_item_set_group", lg_gtk_radio_menu_item_set_group, 2, 0, 0, H_gtk_radio_menu_item_set_group, pl_tu);
+  s7_define_typed_function(sc, "gtk_range_set_adjustment", lg_gtk_range_set_adjustment, 2, 0, 0, H_gtk_range_set_adjustment, pl_tu);
+  s7_define_typed_function(sc, "gtk_range_get_adjustment", lg_gtk_range_get_adjustment, 1, 0, 0, H_gtk_range_get_adjustment, pl_pu);
+  s7_define_typed_function(sc, "gtk_range_set_inverted", lg_gtk_range_set_inverted, 2, 0, 0, H_gtk_range_set_inverted, pl_tub);
+  s7_define_typed_function(sc, "gtk_range_get_inverted", lg_gtk_range_get_inverted, 1, 0, 0, H_gtk_range_get_inverted, pl_bu);
+  s7_define_typed_function(sc, "gtk_range_set_increments", lg_gtk_range_set_increments, 3, 0, 0, H_gtk_range_set_increments, pl_tur);
+  s7_define_typed_function(sc, "gtk_range_set_range", lg_gtk_range_set_range, 3, 0, 0, H_gtk_range_set_range, pl_tur);
+  s7_define_typed_function(sc, "gtk_range_set_value", lg_gtk_range_set_value, 2, 0, 0, H_gtk_range_set_value, pl_tur);
+  s7_define_typed_function(sc, "gtk_range_get_value", lg_gtk_range_get_value, 1, 0, 0, H_gtk_range_get_value, pl_du);
+  s7_define_typed_function(sc, "gtk_scale_set_digits", lg_gtk_scale_set_digits, 2, 0, 0, H_gtk_scale_set_digits, pl_tui);
+  s7_define_typed_function(sc, "gtk_scale_get_digits", lg_gtk_scale_get_digits, 1, 0, 0, H_gtk_scale_get_digits, pl_iu);
+  s7_define_typed_function(sc, "gtk_scale_set_draw_value", lg_gtk_scale_set_draw_value, 2, 0, 0, H_gtk_scale_set_draw_value, pl_tub);
+  s7_define_typed_function(sc, "gtk_scale_get_draw_value", lg_gtk_scale_get_draw_value, 1, 0, 0, H_gtk_scale_get_draw_value, pl_bu);
+  s7_define_typed_function(sc, "gtk_scale_set_value_pos", lg_gtk_scale_set_value_pos, 2, 0, 0, H_gtk_scale_set_value_pos, pl_tug);
+  s7_define_typed_function(sc, "gtk_scale_get_value_pos", lg_gtk_scale_get_value_pos, 1, 0, 0, H_gtk_scale_get_value_pos, pl_gu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_new", lg_gtk_scrolled_window_new, 2, 0, 0, H_gtk_scrolled_window_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_set_hadjustment", lg_gtk_scrolled_window_set_hadjustment, 2, 0, 0, H_gtk_scrolled_window_set_hadjustment, pl_tu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_set_vadjustment", lg_gtk_scrolled_window_set_vadjustment, 2, 0, 0, H_gtk_scrolled_window_set_vadjustment, pl_tu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_get_hadjustment", lg_gtk_scrolled_window_get_hadjustment, 1, 0, 0, H_gtk_scrolled_window_get_hadjustment, pl_pu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_get_vadjustment", lg_gtk_scrolled_window_get_vadjustment, 1, 0, 0, H_gtk_scrolled_window_get_vadjustment, pl_pu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_set_policy", lg_gtk_scrolled_window_set_policy, 3, 0, 0, H_gtk_scrolled_window_set_policy, pl_tug);
+  s7_define_typed_function(sc, "gtk_scrolled_window_get_policy", lg_gtk_scrolled_window_get_policy, 1, 2, 0, H_gtk_scrolled_window_get_policy, pl_pu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_set_placement", lg_gtk_scrolled_window_set_placement, 2, 0, 0, H_gtk_scrolled_window_set_placement, pl_tug);
+  s7_define_typed_function(sc, "gtk_scrolled_window_get_placement", lg_gtk_scrolled_window_get_placement, 1, 0, 0, H_gtk_scrolled_window_get_placement, pl_gu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_set_shadow_type", lg_gtk_scrolled_window_set_shadow_type, 2, 0, 0, H_gtk_scrolled_window_set_shadow_type, pl_tug);
+  s7_define_typed_function(sc, "gtk_scrolled_window_get_shadow_type", lg_gtk_scrolled_window_get_shadow_type, 1, 0, 0, H_gtk_scrolled_window_get_shadow_type, pl_gu);
+  s7_define_typed_function(sc, "gtk_target_list_new", lg_gtk_target_list_new, 2, 0, 0, H_gtk_target_list_new, pl_pui);
+  s7_define_typed_function(sc, "gtk_target_list_unref", lg_gtk_target_list_unref, 1, 0, 0, H_gtk_target_list_unref, pl_tu);
+  s7_define_typed_function(sc, "gtk_target_list_add", lg_gtk_target_list_add, 4, 0, 0, H_gtk_target_list_add, pl_tuti);
+  s7_define_typed_function(sc, "gtk_target_list_add_table", lg_gtk_target_list_add_table, 3, 0, 0, H_gtk_target_list_add_table, pl_tuui);
+  s7_define_typed_function(sc, "gtk_target_list_remove", lg_gtk_target_list_remove, 2, 0, 0, H_gtk_target_list_remove, pl_tut);
+  s7_define_typed_function(sc, "gtk_target_list_find", lg_gtk_target_list_find, 2, 1, 0, H_gtk_target_list_find, pl_putu);
+  s7_define_typed_function(sc, "gtk_selection_owner_set", lg_gtk_selection_owner_set, 3, 0, 0, H_gtk_selection_owner_set, pl_buti);
+  s7_define_typed_function(sc, "gtk_selection_add_target", lg_gtk_selection_add_target, 4, 0, 0, H_gtk_selection_add_target, pl_tutti);
+  s7_define_typed_function(sc, "gtk_selection_add_targets", lg_gtk_selection_add_targets, 4, 0, 0, H_gtk_selection_add_targets, pl_tutui);
+  s7_define_typed_function(sc, "gtk_selection_clear_targets", lg_gtk_selection_clear_targets, 2, 0, 0, H_gtk_selection_clear_targets, pl_tut);
+  s7_define_typed_function(sc, "gtk_selection_convert", lg_gtk_selection_convert, 4, 0, 0, H_gtk_selection_convert, pl_butti);
+  s7_define_typed_function(sc, "gtk_selection_data_set", lg_gtk_selection_data_set, 5, 0, 0, H_gtk_selection_data_set, pl_tutisi);
+  s7_define_typed_function(sc, "gtk_selection_data_set_text", lg_gtk_selection_data_set_text, 3, 0, 0, H_gtk_selection_data_set_text, pl_busi);
+  s7_define_typed_function(sc, "gtk_selection_data_get_text", lg_gtk_selection_data_get_text, 1, 0, 0, H_gtk_selection_data_get_text, pl_su);
+  s7_define_typed_function(sc, "gtk_selection_data_get_targets", lg_gtk_selection_data_get_targets, 1, 2, 0, H_gtk_selection_data_get_targets, pl_pu);
+  s7_define_typed_function(sc, "gtk_selection_data_targets_include_text", lg_gtk_selection_data_targets_include_text, 1, 0, 0, H_gtk_selection_data_targets_include_text, pl_bu);
+  s7_define_typed_function(sc, "gtk_selection_remove_all", lg_gtk_selection_remove_all, 1, 0, 0, H_gtk_selection_remove_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_selection_data_copy", lg_gtk_selection_data_copy, 1, 0, 0, H_gtk_selection_data_copy, pl_pu);
+  s7_define_typed_function(sc, "gtk_selection_data_free", lg_gtk_selection_data_free, 1, 0, 0, H_gtk_selection_data_free, pl_tu);
+  s7_define_typed_function(sc, "gtk_separator_menu_item_new", lg_gtk_separator_menu_item_new, 0, 0, 0, H_gtk_separator_menu_item_new, pl_p);
+  s7_define_typed_function(sc, "gtk_settings_get_default", lg_gtk_settings_get_default, 0, 0, 0, H_gtk_settings_get_default, pl_p);
+  s7_define_typed_function(sc, "gtk_size_group_new", lg_gtk_size_group_new, 1, 0, 0, H_gtk_size_group_new, pl_pg);
+  s7_define_typed_function(sc, "gtk_size_group_set_mode", lg_gtk_size_group_set_mode, 2, 0, 0, H_gtk_size_group_set_mode, pl_tug);
+  s7_define_typed_function(sc, "gtk_size_group_get_mode", lg_gtk_size_group_get_mode, 1, 0, 0, H_gtk_size_group_get_mode, pl_gu);
+  s7_define_typed_function(sc, "gtk_size_group_add_widget", lg_gtk_size_group_add_widget, 2, 0, 0, H_gtk_size_group_add_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_size_group_remove_widget", lg_gtk_size_group_remove_widget, 2, 0, 0, H_gtk_size_group_remove_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_spin_button_configure", lg_gtk_spin_button_configure, 4, 0, 0, H_gtk_spin_button_configure, pl_tuuri);
+  s7_define_typed_function(sc, "gtk_spin_button_new", lg_gtk_spin_button_new, 3, 0, 0, H_gtk_spin_button_new, pl_puri);
+  s7_define_typed_function(sc, "gtk_spin_button_new_with_range", lg_gtk_spin_button_new_with_range, 3, 0, 0, H_gtk_spin_button_new_with_range, pl_pr);
+  s7_define_typed_function(sc, "gtk_spin_button_set_adjustment", lg_gtk_spin_button_set_adjustment, 2, 0, 0, H_gtk_spin_button_set_adjustment, pl_tu);
+  s7_define_typed_function(sc, "gtk_spin_button_get_adjustment", lg_gtk_spin_button_get_adjustment, 1, 0, 0, H_gtk_spin_button_get_adjustment, pl_pu);
+  s7_define_typed_function(sc, "gtk_spin_button_set_digits", lg_gtk_spin_button_set_digits, 2, 0, 0, H_gtk_spin_button_set_digits, pl_tui);
+  s7_define_typed_function(sc, "gtk_spin_button_get_digits", lg_gtk_spin_button_get_digits, 1, 0, 0, H_gtk_spin_button_get_digits, pl_iu);
+  s7_define_typed_function(sc, "gtk_spin_button_set_increments", lg_gtk_spin_button_set_increments, 3, 0, 0, H_gtk_spin_button_set_increments, pl_tur);
+  s7_define_typed_function(sc, "gtk_spin_button_get_increments", lg_gtk_spin_button_get_increments, 1, 2, 0, H_gtk_spin_button_get_increments, pl_pu);
+  s7_define_typed_function(sc, "gtk_spin_button_set_range", lg_gtk_spin_button_set_range, 3, 0, 0, H_gtk_spin_button_set_range, pl_tur);
+  s7_define_typed_function(sc, "gtk_spin_button_get_range", lg_gtk_spin_button_get_range, 1, 2, 0, H_gtk_spin_button_get_range, pl_pu);
+  s7_define_typed_function(sc, "gtk_spin_button_get_value", lg_gtk_spin_button_get_value, 1, 0, 0, H_gtk_spin_button_get_value, pl_du);
+  s7_define_typed_function(sc, "gtk_spin_button_get_value_as_int", lg_gtk_spin_button_get_value_as_int, 1, 0, 0, H_gtk_spin_button_get_value_as_int, pl_iu);
+  s7_define_typed_function(sc, "gtk_spin_button_set_value", lg_gtk_spin_button_set_value, 2, 0, 0, H_gtk_spin_button_set_value, pl_tur);
+  s7_define_typed_function(sc, "gtk_spin_button_set_update_policy", lg_gtk_spin_button_set_update_policy, 2, 0, 0, H_gtk_spin_button_set_update_policy, pl_tug);
+  s7_define_typed_function(sc, "gtk_spin_button_get_update_policy", lg_gtk_spin_button_get_update_policy, 1, 0, 0, H_gtk_spin_button_get_update_policy, pl_gu);
+  s7_define_typed_function(sc, "gtk_spin_button_set_numeric", lg_gtk_spin_button_set_numeric, 2, 0, 0, H_gtk_spin_button_set_numeric, pl_tub);
+  s7_define_typed_function(sc, "gtk_spin_button_get_numeric", lg_gtk_spin_button_get_numeric, 1, 0, 0, H_gtk_spin_button_get_numeric, pl_bu);
+  s7_define_typed_function(sc, "gtk_spin_button_spin", lg_gtk_spin_button_spin, 3, 0, 0, H_gtk_spin_button_spin, pl_tugr);
+  s7_define_typed_function(sc, "gtk_spin_button_set_wrap", lg_gtk_spin_button_set_wrap, 2, 0, 0, H_gtk_spin_button_set_wrap, pl_tub);
+  s7_define_typed_function(sc, "gtk_spin_button_get_wrap", lg_gtk_spin_button_get_wrap, 1, 0, 0, H_gtk_spin_button_get_wrap, pl_bu);
+  s7_define_typed_function(sc, "gtk_spin_button_set_snap_to_ticks", lg_gtk_spin_button_set_snap_to_ticks, 2, 0, 0, H_gtk_spin_button_set_snap_to_ticks, pl_tub);
+  s7_define_typed_function(sc, "gtk_spin_button_get_snap_to_ticks", lg_gtk_spin_button_get_snap_to_ticks, 1, 0, 0, H_gtk_spin_button_get_snap_to_ticks, pl_bu);
+  s7_define_typed_function(sc, "gtk_spin_button_update", lg_gtk_spin_button_update, 1, 0, 0, H_gtk_spin_button_update, pl_tu);
+  s7_define_typed_function(sc, "gtk_statusbar_new", lg_gtk_statusbar_new, 0, 0, 0, H_gtk_statusbar_new, pl_p);
+  s7_define_typed_function(sc, "gtk_statusbar_get_context_id", lg_gtk_statusbar_get_context_id, 2, 0, 0, H_gtk_statusbar_get_context_id, pl_ius);
+  s7_define_typed_function(sc, "gtk_statusbar_push", lg_gtk_statusbar_push, 3, 0, 0, H_gtk_statusbar_push, pl_iuis);
+  s7_define_typed_function(sc, "gtk_statusbar_pop", lg_gtk_statusbar_pop, 2, 0, 0, H_gtk_statusbar_pop, pl_tui);
+  s7_define_typed_function(sc, "gtk_statusbar_remove", lg_gtk_statusbar_remove, 3, 0, 0, H_gtk_statusbar_remove, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_buffer_new", lg_gtk_text_buffer_new, 1, 0, 0, H_gtk_text_buffer_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_line_count", lg_gtk_text_buffer_get_line_count, 1, 0, 0, H_gtk_text_buffer_get_line_count, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_char_count", lg_gtk_text_buffer_get_char_count, 1, 0, 0, H_gtk_text_buffer_get_char_count, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_tag_table", lg_gtk_text_buffer_get_tag_table, 1, 0, 0, H_gtk_text_buffer_get_tag_table, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_buffer_set_text", lg_gtk_text_buffer_set_text, 3, 0, 0, H_gtk_text_buffer_set_text, pl_tusi);
+  s7_define_typed_function(sc, "gtk_text_buffer_insert", lg_gtk_text_buffer_insert, 4, 0, 0, H_gtk_text_buffer_insert, pl_tuusi);
+  s7_define_typed_function(sc, "gtk_text_buffer_insert_at_cursor", lg_gtk_text_buffer_insert_at_cursor, 3, 0, 0, H_gtk_text_buffer_insert_at_cursor, pl_tusi);
+  s7_define_typed_function(sc, "gtk_text_buffer_insert_interactive", lg_gtk_text_buffer_insert_interactive, 5, 0, 0, H_gtk_text_buffer_insert_interactive, pl_buusib);
+  s7_define_typed_function(sc, "gtk_text_buffer_insert_interactive_at_cursor", lg_gtk_text_buffer_insert_interactive_at_cursor, 4, 0, 0, H_gtk_text_buffer_insert_interactive_at_cursor, pl_busib);
+  s7_define_typed_function(sc, "gtk_text_buffer_insert_range", lg_gtk_text_buffer_insert_range, 4, 0, 0, H_gtk_text_buffer_insert_range, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_insert_range_interactive", lg_gtk_text_buffer_insert_range_interactive, 5, 0, 0, H_gtk_text_buffer_insert_range_interactive, pl_buuuub);
+  s7_define_typed_function(sc, "gtk_text_buffer_insert_with_tags", lg_gtk_text_buffer_insert_with_tags, 5, 0, 0, H_gtk_text_buffer_insert_with_tags, pl_tuusit);
+  s7_define_typed_function(sc, "gtk_text_buffer_insert_with_tags_by_name", lg_gtk_text_buffer_insert_with_tags_by_name, 5, 0, 0, H_gtk_text_buffer_insert_with_tags_by_name, pl_tuusit);
+  s7_define_typed_function(sc, "gtk_text_buffer_delete", lg_gtk_text_buffer_delete, 3, 0, 0, H_gtk_text_buffer_delete, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_delete_interactive", lg_gtk_text_buffer_delete_interactive, 4, 0, 0, H_gtk_text_buffer_delete_interactive, pl_buuub);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_text", lg_gtk_text_buffer_get_text, 4, 0, 0, H_gtk_text_buffer_get_text, pl_suuub);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_slice", lg_gtk_text_buffer_get_slice, 4, 0, 0, H_gtk_text_buffer_get_slice, pl_suuub);
+  s7_define_typed_function(sc, "gtk_text_buffer_insert_pixbuf", lg_gtk_text_buffer_insert_pixbuf, 3, 0, 0, H_gtk_text_buffer_insert_pixbuf, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_insert_child_anchor", lg_gtk_text_buffer_insert_child_anchor, 3, 0, 0, H_gtk_text_buffer_insert_child_anchor, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_create_child_anchor", lg_gtk_text_buffer_create_child_anchor, 2, 0, 0, H_gtk_text_buffer_create_child_anchor, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_buffer_create_mark", lg_gtk_text_buffer_create_mark, 4, 0, 0, H_gtk_text_buffer_create_mark, pl_pusub);
+  s7_define_typed_function(sc, "gtk_text_buffer_move_mark", lg_gtk_text_buffer_move_mark, 3, 0, 0, H_gtk_text_buffer_move_mark, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_delete_mark", lg_gtk_text_buffer_delete_mark, 2, 0, 0, H_gtk_text_buffer_delete_mark, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_mark", lg_gtk_text_buffer_get_mark, 2, 0, 0, H_gtk_text_buffer_get_mark, pl_pus);
+  s7_define_typed_function(sc, "gtk_text_buffer_move_mark_by_name", lg_gtk_text_buffer_move_mark_by_name, 3, 0, 0, H_gtk_text_buffer_move_mark_by_name, pl_tusu);
+  s7_define_typed_function(sc, "gtk_text_buffer_delete_mark_by_name", lg_gtk_text_buffer_delete_mark_by_name, 2, 0, 0, H_gtk_text_buffer_delete_mark_by_name, pl_tus);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_insert", lg_gtk_text_buffer_get_insert, 1, 0, 0, H_gtk_text_buffer_get_insert, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_selection_bound", lg_gtk_text_buffer_get_selection_bound, 1, 0, 0, H_gtk_text_buffer_get_selection_bound, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_buffer_place_cursor", lg_gtk_text_buffer_place_cursor, 2, 0, 0, H_gtk_text_buffer_place_cursor, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_apply_tag", lg_gtk_text_buffer_apply_tag, 4, 0, 0, H_gtk_text_buffer_apply_tag, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_remove_tag", lg_gtk_text_buffer_remove_tag, 4, 0, 0, H_gtk_text_buffer_remove_tag, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_apply_tag_by_name", lg_gtk_text_buffer_apply_tag_by_name, 4, 0, 0, H_gtk_text_buffer_apply_tag_by_name, pl_tusu);
+  s7_define_typed_function(sc, "gtk_text_buffer_remove_tag_by_name", lg_gtk_text_buffer_remove_tag_by_name, 4, 0, 0, H_gtk_text_buffer_remove_tag_by_name, pl_tusu);
+  s7_define_typed_function(sc, "gtk_text_buffer_remove_all_tags", lg_gtk_text_buffer_remove_all_tags, 3, 0, 0, H_gtk_text_buffer_remove_all_tags, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_create_tag", lg_gtk_text_buffer_create_tag, 2, 1, 0, H_gtk_text_buffer_create_tag, pl_pust);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_iter_at_line_offset", lg_gtk_text_buffer_get_iter_at_line_offset, 4, 0, 0, H_gtk_text_buffer_get_iter_at_line_offset, pl_tuui);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_iter_at_line_index", lg_gtk_text_buffer_get_iter_at_line_index, 4, 0, 0, H_gtk_text_buffer_get_iter_at_line_index, pl_tuui);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_iter_at_offset", lg_gtk_text_buffer_get_iter_at_offset, 3, 0, 0, H_gtk_text_buffer_get_iter_at_offset, pl_tuui);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_iter_at_line", lg_gtk_text_buffer_get_iter_at_line, 3, 0, 0, H_gtk_text_buffer_get_iter_at_line, pl_tuui);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_start_iter", lg_gtk_text_buffer_get_start_iter, 2, 0, 0, H_gtk_text_buffer_get_start_iter, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_end_iter", lg_gtk_text_buffer_get_end_iter, 2, 0, 0, H_gtk_text_buffer_get_end_iter, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_bounds", lg_gtk_text_buffer_get_bounds, 3, 0, 0, H_gtk_text_buffer_get_bounds, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_iter_at_mark", lg_gtk_text_buffer_get_iter_at_mark, 3, 0, 0, H_gtk_text_buffer_get_iter_at_mark, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_iter_at_child_anchor", lg_gtk_text_buffer_get_iter_at_child_anchor, 3, 0, 0, H_gtk_text_buffer_get_iter_at_child_anchor, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_modified", lg_gtk_text_buffer_get_modified, 1, 0, 0, H_gtk_text_buffer_get_modified, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_buffer_set_modified", lg_gtk_text_buffer_set_modified, 2, 0, 0, H_gtk_text_buffer_set_modified, pl_tub);
+  s7_define_typed_function(sc, "gtk_text_buffer_add_selection_clipboard", lg_gtk_text_buffer_add_selection_clipboard, 2, 0, 0, H_gtk_text_buffer_add_selection_clipboard, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_remove_selection_clipboard", lg_gtk_text_buffer_remove_selection_clipboard, 2, 0, 0, H_gtk_text_buffer_remove_selection_clipboard, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_cut_clipboard", lg_gtk_text_buffer_cut_clipboard, 3, 0, 0, H_gtk_text_buffer_cut_clipboard, pl_tuub);
+  s7_define_typed_function(sc, "gtk_text_buffer_copy_clipboard", lg_gtk_text_buffer_copy_clipboard, 2, 0, 0, H_gtk_text_buffer_copy_clipboard, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_paste_clipboard", lg_gtk_text_buffer_paste_clipboard, 4, 0, 0, H_gtk_text_buffer_paste_clipboard, pl_tuuub);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_selection_bounds", lg_gtk_text_buffer_get_selection_bounds, 3, 0, 0, H_gtk_text_buffer_get_selection_bounds, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_buffer_delete_selection", lg_gtk_text_buffer_delete_selection, 3, 0, 0, H_gtk_text_buffer_delete_selection, pl_bub);
+  s7_define_typed_function(sc, "gtk_text_buffer_begin_user_action", lg_gtk_text_buffer_begin_user_action, 1, 0, 0, H_gtk_text_buffer_begin_user_action, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_buffer_end_user_action", lg_gtk_text_buffer_end_user_action, 1, 0, 0, H_gtk_text_buffer_end_user_action, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_child_anchor_new", lg_gtk_text_child_anchor_new, 0, 0, 0, H_gtk_text_child_anchor_new, pl_p);
+  s7_define_typed_function(sc, "gtk_text_child_anchor_get_widgets", lg_gtk_text_child_anchor_get_widgets, 1, 0, 0, H_gtk_text_child_anchor_get_widgets, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_child_anchor_get_deleted", lg_gtk_text_child_anchor_get_deleted, 1, 0, 0, H_gtk_text_child_anchor_get_deleted, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_buffer", lg_gtk_text_iter_get_buffer, 1, 0, 0, H_gtk_text_iter_get_buffer, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_iter_copy", lg_gtk_text_iter_copy, 1, 0, 0, H_gtk_text_iter_copy, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_iter_free", lg_gtk_text_iter_free, 1, 0, 0, H_gtk_text_iter_free, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_offset", lg_gtk_text_iter_get_offset, 1, 0, 0, H_gtk_text_iter_get_offset, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_line", lg_gtk_text_iter_get_line, 1, 0, 0, H_gtk_text_iter_get_line, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_line_offset", lg_gtk_text_iter_get_line_offset, 1, 0, 0, H_gtk_text_iter_get_line_offset, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_line_index", lg_gtk_text_iter_get_line_index, 1, 0, 0, H_gtk_text_iter_get_line_index, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_visible_line_offset", lg_gtk_text_iter_get_visible_line_offset, 1, 0, 0, H_gtk_text_iter_get_visible_line_offset, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_visible_line_index", lg_gtk_text_iter_get_visible_line_index, 1, 0, 0, H_gtk_text_iter_get_visible_line_index, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_char", lg_gtk_text_iter_get_char, 1, 0, 0, H_gtk_text_iter_get_char, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_slice", lg_gtk_text_iter_get_slice, 2, 0, 0, H_gtk_text_iter_get_slice, pl_su);
+  s7_define_typed_function(sc, "gtk_text_iter_get_text", lg_gtk_text_iter_get_text, 2, 0, 0, H_gtk_text_iter_get_text, pl_su);
+  s7_define_typed_function(sc, "gtk_text_iter_get_visible_slice", lg_gtk_text_iter_get_visible_slice, 2, 0, 0, H_gtk_text_iter_get_visible_slice, pl_su);
+  s7_define_typed_function(sc, "gtk_text_iter_get_visible_text", lg_gtk_text_iter_get_visible_text, 2, 0, 0, H_gtk_text_iter_get_visible_text, pl_su);
+  s7_define_typed_function(sc, "gtk_text_iter_get_pixbuf", lg_gtk_text_iter_get_pixbuf, 1, 0, 0, H_gtk_text_iter_get_pixbuf, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_marks", lg_gtk_text_iter_get_marks, 1, 0, 0, H_gtk_text_iter_get_marks, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_child_anchor", lg_gtk_text_iter_get_child_anchor, 1, 0, 0, H_gtk_text_iter_get_child_anchor, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_toggled_tags", lg_gtk_text_iter_get_toggled_tags, 2, 0, 0, H_gtk_text_iter_get_toggled_tags, pl_pub);
+  s7_define_typed_function(sc, "gtk_text_iter_ends_tag", lg_gtk_text_iter_ends_tag, 2, 0, 0, H_gtk_text_iter_ends_tag, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_toggles_tag", lg_gtk_text_iter_toggles_tag, 2, 0, 0, H_gtk_text_iter_toggles_tag, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_has_tag", lg_gtk_text_iter_has_tag, 2, 0, 0, H_gtk_text_iter_has_tag, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_tags", lg_gtk_text_iter_get_tags, 1, 0, 0, H_gtk_text_iter_get_tags, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_iter_editable", lg_gtk_text_iter_editable, 2, 0, 0, H_gtk_text_iter_editable, pl_bub);
+  s7_define_typed_function(sc, "gtk_text_iter_can_insert", lg_gtk_text_iter_can_insert, 2, 0, 0, H_gtk_text_iter_can_insert, pl_bub);
+  s7_define_typed_function(sc, "gtk_text_iter_starts_word", lg_gtk_text_iter_starts_word, 1, 0, 0, H_gtk_text_iter_starts_word, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_ends_word", lg_gtk_text_iter_ends_word, 1, 0, 0, H_gtk_text_iter_ends_word, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_inside_word", lg_gtk_text_iter_inside_word, 1, 0, 0, H_gtk_text_iter_inside_word, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_starts_sentence", lg_gtk_text_iter_starts_sentence, 1, 0, 0, H_gtk_text_iter_starts_sentence, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_ends_sentence", lg_gtk_text_iter_ends_sentence, 1, 0, 0, H_gtk_text_iter_ends_sentence, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_inside_sentence", lg_gtk_text_iter_inside_sentence, 1, 0, 0, H_gtk_text_iter_inside_sentence, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_starts_line", lg_gtk_text_iter_starts_line, 1, 0, 0, H_gtk_text_iter_starts_line, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_ends_line", lg_gtk_text_iter_ends_line, 1, 0, 0, H_gtk_text_iter_ends_line, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_is_cursor_position", lg_gtk_text_iter_is_cursor_position, 1, 0, 0, H_gtk_text_iter_is_cursor_position, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_chars_in_line", lg_gtk_text_iter_get_chars_in_line, 1, 0, 0, H_gtk_text_iter_get_chars_in_line, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_bytes_in_line", lg_gtk_text_iter_get_bytes_in_line, 1, 0, 0, H_gtk_text_iter_get_bytes_in_line, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_iter_get_language", lg_gtk_text_iter_get_language, 1, 0, 0, H_gtk_text_iter_get_language, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_iter_is_end", lg_gtk_text_iter_is_end, 1, 0, 0, H_gtk_text_iter_is_end, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_is_start", lg_gtk_text_iter_is_start, 1, 0, 0, H_gtk_text_iter_is_start, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_char", lg_gtk_text_iter_forward_char, 1, 0, 0, H_gtk_text_iter_forward_char, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_char", lg_gtk_text_iter_backward_char, 1, 0, 0, H_gtk_text_iter_backward_char, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_chars", lg_gtk_text_iter_forward_chars, 2, 0, 0, H_gtk_text_iter_forward_chars, pl_bui);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_chars", lg_gtk_text_iter_backward_chars, 2, 0, 0, H_gtk_text_iter_backward_chars, pl_bui);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_line", lg_gtk_text_iter_forward_line, 1, 0, 0, H_gtk_text_iter_forward_line, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_line", lg_gtk_text_iter_backward_line, 1, 0, 0, H_gtk_text_iter_backward_line, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_lines", lg_gtk_text_iter_forward_lines, 2, 0, 0, H_gtk_text_iter_forward_lines, pl_bui);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_lines", lg_gtk_text_iter_backward_lines, 2, 0, 0, H_gtk_text_iter_backward_lines, pl_bui);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_word_end", lg_gtk_text_iter_forward_word_end, 1, 0, 0, H_gtk_text_iter_forward_word_end, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_word_start", lg_gtk_text_iter_backward_word_start, 1, 0, 0, H_gtk_text_iter_backward_word_start, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_word_ends", lg_gtk_text_iter_forward_word_ends, 2, 0, 0, H_gtk_text_iter_forward_word_ends, pl_bui);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_word_starts", lg_gtk_text_iter_backward_word_starts, 2, 0, 0, H_gtk_text_iter_backward_word_starts, pl_bui);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_sentence_end", lg_gtk_text_iter_forward_sentence_end, 1, 0, 0, H_gtk_text_iter_forward_sentence_end, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_sentence_start", lg_gtk_text_iter_backward_sentence_start, 1, 0, 0, H_gtk_text_iter_backward_sentence_start, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_sentence_ends", lg_gtk_text_iter_forward_sentence_ends, 2, 0, 0, H_gtk_text_iter_forward_sentence_ends, pl_bui);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_sentence_starts", lg_gtk_text_iter_backward_sentence_starts, 2, 0, 0, H_gtk_text_iter_backward_sentence_starts, pl_bui);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_cursor_position", lg_gtk_text_iter_forward_cursor_position, 1, 0, 0, H_gtk_text_iter_forward_cursor_position, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_cursor_position", lg_gtk_text_iter_backward_cursor_position, 1, 0, 0, H_gtk_text_iter_backward_cursor_position, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_cursor_positions", lg_gtk_text_iter_forward_cursor_positions, 2, 0, 0, H_gtk_text_iter_forward_cursor_positions, pl_bui);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_cursor_positions", lg_gtk_text_iter_backward_cursor_positions, 2, 0, 0, H_gtk_text_iter_backward_cursor_positions, pl_bui);
+  s7_define_typed_function(sc, "gtk_text_iter_set_offset", lg_gtk_text_iter_set_offset, 2, 0, 0, H_gtk_text_iter_set_offset, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_iter_set_line", lg_gtk_text_iter_set_line, 2, 0, 0, H_gtk_text_iter_set_line, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_iter_set_line_offset", lg_gtk_text_iter_set_line_offset, 2, 0, 0, H_gtk_text_iter_set_line_offset, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_iter_set_line_index", lg_gtk_text_iter_set_line_index, 2, 0, 0, H_gtk_text_iter_set_line_index, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_to_end", lg_gtk_text_iter_forward_to_end, 1, 0, 0, H_gtk_text_iter_forward_to_end, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_to_line_end", lg_gtk_text_iter_forward_to_line_end, 1, 0, 0, H_gtk_text_iter_forward_to_line_end, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_set_visible_line_offset", lg_gtk_text_iter_set_visible_line_offset, 2, 0, 0, H_gtk_text_iter_set_visible_line_offset, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_iter_set_visible_line_index", lg_gtk_text_iter_set_visible_line_index, 2, 0, 0, H_gtk_text_iter_set_visible_line_index, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_to_tag_toggle", lg_gtk_text_iter_forward_to_tag_toggle, 2, 0, 0, H_gtk_text_iter_forward_to_tag_toggle, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_to_tag_toggle", lg_gtk_text_iter_backward_to_tag_toggle, 2, 0, 0, H_gtk_text_iter_backward_to_tag_toggle, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_find_char", lg_gtk_text_iter_forward_find_char, 4, 0, 0, H_gtk_text_iter_forward_find_char, pl_buttu);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_find_char", lg_gtk_text_iter_backward_find_char, 4, 0, 0, H_gtk_text_iter_backward_find_char, pl_buttu);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_search", lg_gtk_text_iter_forward_search, 6, 0, 0, H_gtk_text_iter_forward_search, pl_busgu);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_search", lg_gtk_text_iter_backward_search, 6, 0, 0, H_gtk_text_iter_backward_search, pl_busgu);
+  s7_define_typed_function(sc, "gtk_text_iter_equal", lg_gtk_text_iter_equal, 2, 0, 0, H_gtk_text_iter_equal, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_compare", lg_gtk_text_iter_compare, 2, 0, 0, H_gtk_text_iter_compare, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_iter_in_range", lg_gtk_text_iter_in_range, 3, 0, 0, H_gtk_text_iter_in_range, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_order", lg_gtk_text_iter_order, 2, 0, 0, H_gtk_text_iter_order, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_mark_set_visible", lg_gtk_text_mark_set_visible, 2, 0, 0, H_gtk_text_mark_set_visible, pl_tub);
+  s7_define_typed_function(sc, "gtk_text_mark_get_visible", lg_gtk_text_mark_get_visible, 1, 0, 0, H_gtk_text_mark_get_visible, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_mark_get_name", lg_gtk_text_mark_get_name, 1, 0, 0, H_gtk_text_mark_get_name, pl_su);
+  s7_define_typed_function(sc, "gtk_text_mark_get_deleted", lg_gtk_text_mark_get_deleted, 1, 0, 0, H_gtk_text_mark_get_deleted, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_mark_get_buffer", lg_gtk_text_mark_get_buffer, 1, 0, 0, H_gtk_text_mark_get_buffer, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_mark_get_left_gravity", lg_gtk_text_mark_get_left_gravity, 1, 0, 0, H_gtk_text_mark_get_left_gravity, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_tag_new", lg_gtk_text_tag_new, 1, 0, 0, H_gtk_text_tag_new, pl_ps);
+  s7_define_typed_function(sc, "gtk_text_tag_get_priority", lg_gtk_text_tag_get_priority, 1, 0, 0, H_gtk_text_tag_get_priority, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_tag_set_priority", lg_gtk_text_tag_set_priority, 2, 0, 0, H_gtk_text_tag_set_priority, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_tag_event", lg_gtk_text_tag_event, 4, 0, 0, H_gtk_text_tag_event, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_attributes_new", lg_gtk_text_attributes_new, 0, 0, 0, H_gtk_text_attributes_new, pl_p);
+  s7_define_typed_function(sc, "gtk_text_attributes_copy", lg_gtk_text_attributes_copy, 1, 0, 0, H_gtk_text_attributes_copy, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_attributes_copy_values", lg_gtk_text_attributes_copy_values, 2, 0, 0, H_gtk_text_attributes_copy_values, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_attributes_unref", lg_gtk_text_attributes_unref, 1, 0, 0, H_gtk_text_attributes_unref, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_tag_table_new", lg_gtk_text_tag_table_new, 0, 0, 0, H_gtk_text_tag_table_new, pl_p);
+  s7_define_typed_function(sc, "gtk_text_tag_table_add", lg_gtk_text_tag_table_add, 2, 0, 0, H_gtk_text_tag_table_add, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_tag_table_remove", lg_gtk_text_tag_table_remove, 2, 0, 0, H_gtk_text_tag_table_remove, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_tag_table_lookup", lg_gtk_text_tag_table_lookup, 2, 0, 0, H_gtk_text_tag_table_lookup, pl_pus);
+  s7_define_typed_function(sc, "gtk_text_tag_table_foreach", lg_gtk_text_tag_table_foreach, 2, 1, 0, H_gtk_text_tag_table_foreach, pl_tut);
+  s7_define_typed_function(sc, "gtk_text_tag_table_get_size", lg_gtk_text_tag_table_get_size, 1, 0, 0, H_gtk_text_tag_table_get_size, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_view_new", lg_gtk_text_view_new, 0, 0, 0, H_gtk_text_view_new, pl_p);
+  s7_define_typed_function(sc, "gtk_text_view_new_with_buffer", lg_gtk_text_view_new_with_buffer, 1, 0, 0, H_gtk_text_view_new_with_buffer, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_view_set_buffer", lg_gtk_text_view_set_buffer, 2, 0, 0, H_gtk_text_view_set_buffer, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_view_get_buffer", lg_gtk_text_view_get_buffer, 1, 0, 0, H_gtk_text_view_get_buffer, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_view_scroll_to_iter", lg_gtk_text_view_scroll_to_iter, 6, 0, 0, H_gtk_text_view_scroll_to_iter, pl_buurbr);
+  s7_define_typed_function(sc, "gtk_text_view_scroll_to_mark", lg_gtk_text_view_scroll_to_mark, 6, 0, 0, H_gtk_text_view_scroll_to_mark, pl_tuurbr);
+  s7_define_typed_function(sc, "gtk_text_view_scroll_mark_onscreen", lg_gtk_text_view_scroll_mark_onscreen, 2, 0, 0, H_gtk_text_view_scroll_mark_onscreen, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_view_move_mark_onscreen", lg_gtk_text_view_move_mark_onscreen, 2, 0, 0, H_gtk_text_view_move_mark_onscreen, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_view_place_cursor_onscreen", lg_gtk_text_view_place_cursor_onscreen, 1, 0, 0, H_gtk_text_view_place_cursor_onscreen, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_view_get_visible_rect", lg_gtk_text_view_get_visible_rect, 2, 0, 0, H_gtk_text_view_get_visible_rect, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_view_set_cursor_visible", lg_gtk_text_view_set_cursor_visible, 2, 0, 0, H_gtk_text_view_set_cursor_visible, pl_tub);
+  s7_define_typed_function(sc, "gtk_text_view_get_cursor_visible", lg_gtk_text_view_get_cursor_visible, 1, 0, 0, H_gtk_text_view_get_cursor_visible, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_view_get_iter_location", lg_gtk_text_view_get_iter_location, 3, 0, 0, H_gtk_text_view_get_iter_location, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_view_get_line_yrange", lg_gtk_text_view_get_line_yrange, 2, 2, 0, H_gtk_text_view_get_line_yrange, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_view_get_line_at_y", lg_gtk_text_view_get_line_at_y, 3, 1, 0, H_gtk_text_view_get_line_at_y, pl_puuiu);
+  s7_define_typed_function(sc, "gtk_text_view_buffer_to_window_coords", lg_gtk_text_view_buffer_to_window_coords, 4, 2, 0, H_gtk_text_view_buffer_to_window_coords, pl_pugiiu);
+  s7_define_typed_function(sc, "gtk_text_view_window_to_buffer_coords", lg_gtk_text_view_window_to_buffer_coords, 4, 2, 0, H_gtk_text_view_window_to_buffer_coords, pl_pugiiu);
+  s7_define_typed_function(sc, "gtk_text_view_get_window", lg_gtk_text_view_get_window, 2, 0, 0, H_gtk_text_view_get_window, pl_pug);
+  s7_define_typed_function(sc, "gtk_text_view_get_window_type", lg_gtk_text_view_get_window_type, 2, 0, 0, H_gtk_text_view_get_window_type, pl_gu);
+  s7_define_typed_function(sc, "gtk_text_view_set_border_window_size", lg_gtk_text_view_set_border_window_size, 3, 0, 0, H_gtk_text_view_set_border_window_size, pl_tugi);
+  s7_define_typed_function(sc, "gtk_text_view_get_border_window_size", lg_gtk_text_view_get_border_window_size, 2, 0, 0, H_gtk_text_view_get_border_window_size, pl_iug);
+  s7_define_typed_function(sc, "gtk_text_view_forward_display_line", lg_gtk_text_view_forward_display_line, 2, 0, 0, H_gtk_text_view_forward_display_line, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_view_backward_display_line", lg_gtk_text_view_backward_display_line, 2, 0, 0, H_gtk_text_view_backward_display_line, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_view_forward_display_line_end", lg_gtk_text_view_forward_display_line_end, 2, 0, 0, H_gtk_text_view_forward_display_line_end, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_view_backward_display_line_start", lg_gtk_text_view_backward_display_line_start, 2, 0, 0, H_gtk_text_view_backward_display_line_start, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_view_starts_display_line", lg_gtk_text_view_starts_display_line, 2, 0, 0, H_gtk_text_view_starts_display_line, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_view_move_visually", lg_gtk_text_view_move_visually, 3, 0, 0, H_gtk_text_view_move_visually, pl_buui);
+  s7_define_typed_function(sc, "gtk_text_view_add_child_at_anchor", lg_gtk_text_view_add_child_at_anchor, 3, 0, 0, H_gtk_text_view_add_child_at_anchor, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_view_add_child_in_window", lg_gtk_text_view_add_child_in_window, 5, 0, 0, H_gtk_text_view_add_child_in_window, pl_tuugi);
+  s7_define_typed_function(sc, "gtk_text_view_move_child", lg_gtk_text_view_move_child, 4, 0, 0, H_gtk_text_view_move_child, pl_tuui);
+  s7_define_typed_function(sc, "gtk_text_view_set_wrap_mode", lg_gtk_text_view_set_wrap_mode, 2, 0, 0, H_gtk_text_view_set_wrap_mode, pl_tug);
+  s7_define_typed_function(sc, "gtk_text_view_get_wrap_mode", lg_gtk_text_view_get_wrap_mode, 1, 0, 0, H_gtk_text_view_get_wrap_mode, pl_gu);
+  s7_define_typed_function(sc, "gtk_text_view_set_editable", lg_gtk_text_view_set_editable, 2, 0, 0, H_gtk_text_view_set_editable, pl_tub);
+  s7_define_typed_function(sc, "gtk_text_view_get_editable", lg_gtk_text_view_get_editable, 1, 0, 0, H_gtk_text_view_get_editable, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_view_set_pixels_above_lines", lg_gtk_text_view_set_pixels_above_lines, 2, 0, 0, H_gtk_text_view_set_pixels_above_lines, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_view_get_pixels_above_lines", lg_gtk_text_view_get_pixels_above_lines, 1, 0, 0, H_gtk_text_view_get_pixels_above_lines, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_view_set_pixels_below_lines", lg_gtk_text_view_set_pixels_below_lines, 2, 0, 0, H_gtk_text_view_set_pixels_below_lines, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_view_get_pixels_below_lines", lg_gtk_text_view_get_pixels_below_lines, 1, 0, 0, H_gtk_text_view_get_pixels_below_lines, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_view_set_pixels_inside_wrap", lg_gtk_text_view_set_pixels_inside_wrap, 2, 0, 0, H_gtk_text_view_set_pixels_inside_wrap, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_view_get_pixels_inside_wrap", lg_gtk_text_view_get_pixels_inside_wrap, 1, 0, 0, H_gtk_text_view_get_pixels_inside_wrap, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_view_set_justification", lg_gtk_text_view_set_justification, 2, 0, 0, H_gtk_text_view_set_justification, pl_tug);
+  s7_define_typed_function(sc, "gtk_text_view_get_justification", lg_gtk_text_view_get_justification, 1, 0, 0, H_gtk_text_view_get_justification, pl_gu);
+  s7_define_typed_function(sc, "gtk_text_view_set_left_margin", lg_gtk_text_view_set_left_margin, 2, 0, 0, H_gtk_text_view_set_left_margin, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_view_get_left_margin", lg_gtk_text_view_get_left_margin, 1, 0, 0, H_gtk_text_view_get_left_margin, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_view_set_right_margin", lg_gtk_text_view_set_right_margin, 2, 0, 0, H_gtk_text_view_set_right_margin, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_view_get_right_margin", lg_gtk_text_view_get_right_margin, 1, 0, 0, H_gtk_text_view_get_right_margin, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_view_set_indent", lg_gtk_text_view_set_indent, 2, 0, 0, H_gtk_text_view_set_indent, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_view_get_indent", lg_gtk_text_view_get_indent, 1, 0, 0, H_gtk_text_view_get_indent, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_view_set_tabs", lg_gtk_text_view_set_tabs, 2, 0, 0, H_gtk_text_view_set_tabs, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_view_get_tabs", lg_gtk_text_view_get_tabs, 1, 0, 0, H_gtk_text_view_get_tabs, pl_pu);
+  s7_define_typed_function(sc, "gtk_toggle_button_new", lg_gtk_toggle_button_new, 0, 0, 0, H_gtk_toggle_button_new, pl_p);
+  s7_define_typed_function(sc, "gtk_toggle_button_new_with_label", lg_gtk_toggle_button_new_with_label, 1, 0, 0, H_gtk_toggle_button_new_with_label, pl_ps);
+  s7_define_typed_function(sc, "gtk_toggle_button_new_with_mnemonic", lg_gtk_toggle_button_new_with_mnemonic, 1, 0, 0, H_gtk_toggle_button_new_with_mnemonic, pl_ps);
+  s7_define_typed_function(sc, "gtk_toggle_button_set_active", lg_gtk_toggle_button_set_active, 2, 0, 0, H_gtk_toggle_button_set_active, pl_tub);
+  s7_define_typed_function(sc, "gtk_toggle_button_get_active", lg_gtk_toggle_button_get_active, 1, 0, 0, H_gtk_toggle_button_get_active, pl_bu);
+  s7_define_typed_function(sc, "gtk_toggle_button_toggled", lg_gtk_toggle_button_toggled, 1, 0, 0, H_gtk_toggle_button_toggled, pl_tu);
+  s7_define_typed_function(sc, "gtk_toolbar_new", lg_gtk_toolbar_new, 0, 0, 0, H_gtk_toolbar_new, pl_p);
+  s7_define_typed_function(sc, "gtk_toolbar_set_style", lg_gtk_toolbar_set_style, 2, 0, 0, H_gtk_toolbar_set_style, pl_tug);
+  s7_define_typed_function(sc, "gtk_toolbar_unset_style", lg_gtk_toolbar_unset_style, 1, 0, 0, H_gtk_toolbar_unset_style, pl_tu);
+  s7_define_typed_function(sc, "gtk_toolbar_get_style", lg_gtk_toolbar_get_style, 1, 0, 0, H_gtk_toolbar_get_style, pl_gu);
+  s7_define_typed_function(sc, "gtk_tree_drag_source_row_draggable", lg_gtk_tree_drag_source_row_draggable, 2, 0, 0, H_gtk_tree_drag_source_row_draggable, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_drag_source_drag_data_delete", lg_gtk_tree_drag_source_drag_data_delete, 2, 0, 0, H_gtk_tree_drag_source_drag_data_delete, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_drag_source_drag_data_get", lg_gtk_tree_drag_source_drag_data_get, 3, 0, 0, H_gtk_tree_drag_source_drag_data_get, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_drag_dest_drag_data_received", lg_gtk_tree_drag_dest_drag_data_received, 3, 0, 0, H_gtk_tree_drag_dest_drag_data_received, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_drag_dest_row_drop_possible", lg_gtk_tree_drag_dest_row_drop_possible, 3, 0, 0, H_gtk_tree_drag_dest_row_drop_possible, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_set_row_drag_data", lg_gtk_tree_set_row_drag_data, 3, 0, 0, H_gtk_tree_set_row_drag_data, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_get_row_drag_data", lg_gtk_tree_get_row_drag_data, 1, 2, 0, H_gtk_tree_get_row_drag_data, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_path_new", lg_gtk_tree_path_new, 0, 0, 0, H_gtk_tree_path_new, pl_p);
+  s7_define_typed_function(sc, "gtk_tree_path_new_from_string", lg_gtk_tree_path_new_from_string, 1, 0, 0, H_gtk_tree_path_new_from_string, pl_ps);
+  s7_define_typed_function(sc, "gtk_tree_path_to_string", lg_gtk_tree_path_to_string, 1, 0, 0, H_gtk_tree_path_to_string, pl_su);
+  s7_define_typed_function(sc, "gtk_tree_path_new_first", lg_gtk_tree_path_new_first, 0, 0, 0, H_gtk_tree_path_new_first, pl_p);
+  s7_define_typed_function(sc, "gtk_tree_path_append_index", lg_gtk_tree_path_append_index, 2, 0, 0, H_gtk_tree_path_append_index, pl_tui);
+  s7_define_typed_function(sc, "gtk_tree_path_prepend_index", lg_gtk_tree_path_prepend_index, 2, 0, 0, H_gtk_tree_path_prepend_index, pl_tui);
+  s7_define_typed_function(sc, "gtk_tree_path_get_depth", lg_gtk_tree_path_get_depth, 1, 0, 0, H_gtk_tree_path_get_depth, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_path_get_indices", lg_gtk_tree_path_get_indices, 1, 0, 0, H_gtk_tree_path_get_indices, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_path_free", lg_gtk_tree_path_free, 1, 0, 0, H_gtk_tree_path_free, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_path_copy", lg_gtk_tree_path_copy, 1, 0, 0, H_gtk_tree_path_copy, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_path_compare", lg_gtk_tree_path_compare, 2, 0, 0, H_gtk_tree_path_compare, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_path_next", lg_gtk_tree_path_next, 1, 0, 0, H_gtk_tree_path_next, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_path_prev", lg_gtk_tree_path_prev, 1, 0, 0, H_gtk_tree_path_prev, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_path_up", lg_gtk_tree_path_up, 1, 0, 0, H_gtk_tree_path_up, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_path_down", lg_gtk_tree_path_down, 1, 0, 0, H_gtk_tree_path_down, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_path_is_ancestor", lg_gtk_tree_path_is_ancestor, 2, 0, 0, H_gtk_tree_path_is_ancestor, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_path_is_descendant", lg_gtk_tree_path_is_descendant, 2, 0, 0, H_gtk_tree_path_is_descendant, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_row_reference_new", lg_gtk_tree_row_reference_new, 2, 0, 0, H_gtk_tree_row_reference_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_row_reference_new_proxy", lg_gtk_tree_row_reference_new_proxy, 3, 0, 0, H_gtk_tree_row_reference_new_proxy, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_row_reference_get_path", lg_gtk_tree_row_reference_get_path, 1, 0, 0, H_gtk_tree_row_reference_get_path, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_row_reference_valid", lg_gtk_tree_row_reference_valid, 1, 0, 0, H_gtk_tree_row_reference_valid, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_row_reference_free", lg_gtk_tree_row_reference_free, 1, 0, 0, H_gtk_tree_row_reference_free, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_row_reference_inserted", lg_gtk_tree_row_reference_inserted, 2, 0, 0, H_gtk_tree_row_reference_inserted, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_row_reference_deleted", lg_gtk_tree_row_reference_deleted, 2, 0, 0, H_gtk_tree_row_reference_deleted, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_row_reference_reordered", lg_gtk_tree_row_reference_reordered, 4, 0, 0, H_gtk_tree_row_reference_reordered, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_iter_copy", lg_gtk_tree_iter_copy, 1, 0, 0, H_gtk_tree_iter_copy, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_iter_free", lg_gtk_tree_iter_free, 1, 0, 0, H_gtk_tree_iter_free, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_model_get_flags", lg_gtk_tree_model_get_flags, 1, 0, 0, H_gtk_tree_model_get_flags, pl_gu);
+  s7_define_typed_function(sc, "gtk_tree_model_get_n_columns", lg_gtk_tree_model_get_n_columns, 1, 0, 0, H_gtk_tree_model_get_n_columns, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_model_get_column_type", lg_gtk_tree_model_get_column_type, 2, 0, 0, H_gtk_tree_model_get_column_type, pl_iui);
+  s7_define_typed_function(sc, "gtk_tree_model_get_iter", lg_gtk_tree_model_get_iter, 3, 0, 0, H_gtk_tree_model_get_iter, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_model_get_iter_from_string", lg_gtk_tree_model_get_iter_from_string, 3, 0, 0, H_gtk_tree_model_get_iter_from_string, pl_buus);
+  s7_define_typed_function(sc, "gtk_tree_model_get_iter_first", lg_gtk_tree_model_get_iter_first, 2, 0, 0, H_gtk_tree_model_get_iter_first, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_model_get_path", lg_gtk_tree_model_get_path, 2, 0, 0, H_gtk_tree_model_get_path, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_model_iter_next", lg_gtk_tree_model_iter_next, 2, 0, 0, H_gtk_tree_model_iter_next, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_model_iter_children", lg_gtk_tree_model_iter_children, 3, 0, 0, H_gtk_tree_model_iter_children, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_model_iter_has_child", lg_gtk_tree_model_iter_has_child, 2, 0, 0, H_gtk_tree_model_iter_has_child, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_model_iter_n_children", lg_gtk_tree_model_iter_n_children, 2, 0, 0, H_gtk_tree_model_iter_n_children, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_model_iter_nth_child", lg_gtk_tree_model_iter_nth_child, 4, 0, 0, H_gtk_tree_model_iter_nth_child, pl_buuui);
+  s7_define_typed_function(sc, "gtk_tree_model_iter_parent", lg_gtk_tree_model_iter_parent, 3, 0, 0, H_gtk_tree_model_iter_parent, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_model_ref_node", lg_gtk_tree_model_ref_node, 2, 0, 0, H_gtk_tree_model_ref_node, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_model_unref_node", lg_gtk_tree_model_unref_node, 2, 0, 0, H_gtk_tree_model_unref_node, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_model_foreach", lg_gtk_tree_model_foreach, 2, 1, 0, H_gtk_tree_model_foreach, pl_tut);
+  s7_define_typed_function(sc, "gtk_tree_model_row_changed", lg_gtk_tree_model_row_changed, 3, 0, 0, H_gtk_tree_model_row_changed, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_model_row_inserted", lg_gtk_tree_model_row_inserted, 3, 0, 0, H_gtk_tree_model_row_inserted, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_model_row_has_child_toggled", lg_gtk_tree_model_row_has_child_toggled, 3, 0, 0, H_gtk_tree_model_row_has_child_toggled, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_model_row_deleted", lg_gtk_tree_model_row_deleted, 2, 0, 0, H_gtk_tree_model_row_deleted, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_model_rows_reordered", lg_gtk_tree_model_rows_reordered, 4, 0, 0, H_gtk_tree_model_rows_reordered, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_model_sort_new_with_model", lg_gtk_tree_model_sort_new_with_model, 1, 0, 0, H_gtk_tree_model_sort_new_with_model, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_model_sort_get_model", lg_gtk_tree_model_sort_get_model, 1, 0, 0, H_gtk_tree_model_sort_get_model, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_model_sort_convert_child_path_to_path", lg_gtk_tree_model_sort_convert_child_path_to_path, 2, 0, 0, H_gtk_tree_model_sort_convert_child_path_to_path, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_model_sort_convert_child_iter_to_iter", lg_gtk_tree_model_sort_convert_child_iter_to_iter, 3, 0, 0, H_gtk_tree_model_sort_convert_child_iter_to_iter, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_model_sort_convert_path_to_child_path", lg_gtk_tree_model_sort_convert_path_to_child_path, 2, 0, 0, H_gtk_tree_model_sort_convert_path_to_child_path, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_model_sort_convert_iter_to_child_iter", lg_gtk_tree_model_sort_convert_iter_to_child_iter, 3, 0, 0, H_gtk_tree_model_sort_convert_iter_to_child_iter, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_model_sort_reset_default_sort_func", lg_gtk_tree_model_sort_reset_default_sort_func, 1, 0, 0, H_gtk_tree_model_sort_reset_default_sort_func, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_model_sort_clear_cache", lg_gtk_tree_model_sort_clear_cache, 1, 0, 0, H_gtk_tree_model_sort_clear_cache, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_selection_set_mode", lg_gtk_tree_selection_set_mode, 2, 0, 0, H_gtk_tree_selection_set_mode, pl_tug);
+  s7_define_typed_function(sc, "gtk_tree_selection_get_mode", lg_gtk_tree_selection_get_mode, 1, 0, 0, H_gtk_tree_selection_get_mode, pl_gu);
+  s7_define_typed_function(sc, "gtk_tree_selection_set_select_function", lg_gtk_tree_selection_set_select_function, 4, 0, 0, H_gtk_tree_selection_set_select_function, pl_tut);
+  s7_define_typed_function(sc, "gtk_tree_selection_get_user_data", lg_gtk_tree_selection_get_user_data, 1, 0, 0, H_gtk_tree_selection_get_user_data, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_selection_get_tree_view", lg_gtk_tree_selection_get_tree_view, 1, 0, 0, H_gtk_tree_selection_get_tree_view, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_selection_get_selected", lg_gtk_tree_selection_get_selected, 3, 0, 0, H_gtk_tree_selection_get_selected, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_selection_selected_foreach", lg_gtk_tree_selection_selected_foreach, 2, 1, 0, H_gtk_tree_selection_selected_foreach, pl_tut);
+  s7_define_typed_function(sc, "gtk_tree_selection_select_path", lg_gtk_tree_selection_select_path, 2, 0, 0, H_gtk_tree_selection_select_path, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_selection_unselect_path", lg_gtk_tree_selection_unselect_path, 2, 0, 0, H_gtk_tree_selection_unselect_path, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_selection_select_iter", lg_gtk_tree_selection_select_iter, 2, 0, 0, H_gtk_tree_selection_select_iter, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_selection_unselect_iter", lg_gtk_tree_selection_unselect_iter, 2, 0, 0, H_gtk_tree_selection_unselect_iter, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_selection_path_is_selected", lg_gtk_tree_selection_path_is_selected, 2, 0, 0, H_gtk_tree_selection_path_is_selected, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_selection_iter_is_selected", lg_gtk_tree_selection_iter_is_selected, 2, 0, 0, H_gtk_tree_selection_iter_is_selected, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_selection_select_all", lg_gtk_tree_selection_select_all, 1, 0, 0, H_gtk_tree_selection_select_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_selection_unselect_all", lg_gtk_tree_selection_unselect_all, 1, 0, 0, H_gtk_tree_selection_unselect_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_selection_select_range", lg_gtk_tree_selection_select_range, 3, 0, 0, H_gtk_tree_selection_select_range, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_sortable_sort_column_changed", lg_gtk_tree_sortable_sort_column_changed, 1, 0, 0, H_gtk_tree_sortable_sort_column_changed, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_sortable_get_sort_column_id", lg_gtk_tree_sortable_get_sort_column_id, 1, 2, 0, H_gtk_tree_sortable_get_sort_column_id, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_sortable_set_sort_column_id", lg_gtk_tree_sortable_set_sort_column_id, 3, 0, 0, H_gtk_tree_sortable_set_sort_column_id, pl_tuig);
+  s7_define_typed_function(sc, "gtk_tree_sortable_set_sort_func", lg_gtk_tree_sortable_set_sort_func, 5, 0, 0, H_gtk_tree_sortable_set_sort_func, pl_tuit);
+  s7_define_typed_function(sc, "gtk_tree_sortable_set_default_sort_func", lg_gtk_tree_sortable_set_default_sort_func, 4, 0, 0, H_gtk_tree_sortable_set_default_sort_func, pl_tut);
+  s7_define_typed_function(sc, "gtk_tree_sortable_has_default_sort_func", lg_gtk_tree_sortable_has_default_sort_func, 1, 0, 0, H_gtk_tree_sortable_has_default_sort_func, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_store_new", lg_gtk_tree_store_new, 2, 0, 0, H_gtk_tree_store_new, pl_pit);
+  s7_define_typed_function(sc, "gtk_tree_store_newv", lg_gtk_tree_store_newv, 2, 0, 0, H_gtk_tree_store_newv, pl_piu);
+  s7_define_typed_function(sc, "gtk_tree_store_set_column_types", lg_gtk_tree_store_set_column_types, 3, 0, 0, H_gtk_tree_store_set_column_types, pl_tuiu);
+  s7_define_typed_function(sc, "gtk_tree_store_set", lg_gtk_tree_store_set, 3, 0, 0, H_gtk_tree_store_set, pl_tuut);
+  s7_define_typed_function(sc, "gtk_tree_store_remove", lg_gtk_tree_store_remove, 2, 0, 0, H_gtk_tree_store_remove, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_store_insert", lg_gtk_tree_store_insert, 4, 0, 0, H_gtk_tree_store_insert, pl_tuuui);
+  s7_define_typed_function(sc, "gtk_tree_store_insert_before", lg_gtk_tree_store_insert_before, 4, 0, 0, H_gtk_tree_store_insert_before, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_store_insert_after", lg_gtk_tree_store_insert_after, 4, 0, 0, H_gtk_tree_store_insert_after, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_store_prepend", lg_gtk_tree_store_prepend, 3, 0, 0, H_gtk_tree_store_prepend, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_store_append", lg_gtk_tree_store_append, 3, 0, 0, H_gtk_tree_store_append, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_store_is_ancestor", lg_gtk_tree_store_is_ancestor, 3, 0, 0, H_gtk_tree_store_is_ancestor, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_store_iter_depth", lg_gtk_tree_store_iter_depth, 2, 0, 0, H_gtk_tree_store_iter_depth, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_store_clear", lg_gtk_tree_store_clear, 1, 0, 0, H_gtk_tree_store_clear, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_new", lg_gtk_tree_view_column_new, 0, 0, 0, H_gtk_tree_view_column_new, pl_p);
+  s7_define_typed_function(sc, "gtk_tree_view_column_new_with_attributes", lg_gtk_tree_view_column_new_with_attributes, 3, 0, 0, H_gtk_tree_view_column_new_with_attributes, pl_psut);
+  s7_define_typed_function(sc, "gtk_tree_view_column_pack_start", lg_gtk_tree_view_column_pack_start, 3, 0, 0, H_gtk_tree_view_column_pack_start, pl_tuub);
+  s7_define_typed_function(sc, "gtk_tree_view_column_pack_end", lg_gtk_tree_view_column_pack_end, 3, 0, 0, H_gtk_tree_view_column_pack_end, pl_tuub);
+  s7_define_typed_function(sc, "gtk_tree_view_column_clear", lg_gtk_tree_view_column_clear, 1, 0, 0, H_gtk_tree_view_column_clear, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_add_attribute", lg_gtk_tree_view_column_add_attribute, 4, 0, 0, H_gtk_tree_view_column_add_attribute, pl_tuusi);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_attributes", lg_gtk_tree_view_column_set_attributes, 3, 0, 0, H_gtk_tree_view_column_set_attributes, pl_tuut);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_cell_data_func", lg_gtk_tree_view_column_set_cell_data_func, 5, 0, 0, H_gtk_tree_view_column_set_cell_data_func, pl_tuut);
+  s7_define_typed_function(sc, "gtk_tree_view_column_clear_attributes", lg_gtk_tree_view_column_clear_attributes, 2, 0, 0, H_gtk_tree_view_column_clear_attributes, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_spacing", lg_gtk_tree_view_column_set_spacing, 2, 0, 0, H_gtk_tree_view_column_set_spacing, pl_tui);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_spacing", lg_gtk_tree_view_column_get_spacing, 1, 0, 0, H_gtk_tree_view_column_get_spacing, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_visible", lg_gtk_tree_view_column_set_visible, 2, 0, 0, H_gtk_tree_view_column_set_visible, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_visible", lg_gtk_tree_view_column_get_visible, 1, 0, 0, H_gtk_tree_view_column_get_visible, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_resizable", lg_gtk_tree_view_column_set_resizable, 2, 0, 0, H_gtk_tree_view_column_set_resizable, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_resizable", lg_gtk_tree_view_column_get_resizable, 1, 0, 0, H_gtk_tree_view_column_get_resizable, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_sizing", lg_gtk_tree_view_column_set_sizing, 2, 0, 0, H_gtk_tree_view_column_set_sizing, pl_tug);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_sizing", lg_gtk_tree_view_column_get_sizing, 1, 0, 0, H_gtk_tree_view_column_get_sizing, pl_gu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_width", lg_gtk_tree_view_column_get_width, 1, 0, 0, H_gtk_tree_view_column_get_width, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_fixed_width", lg_gtk_tree_view_column_get_fixed_width, 1, 0, 0, H_gtk_tree_view_column_get_fixed_width, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_fixed_width", lg_gtk_tree_view_column_set_fixed_width, 2, 0, 0, H_gtk_tree_view_column_set_fixed_width, pl_tui);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_min_width", lg_gtk_tree_view_column_set_min_width, 2, 0, 0, H_gtk_tree_view_column_set_min_width, pl_tui);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_min_width", lg_gtk_tree_view_column_get_min_width, 1, 0, 0, H_gtk_tree_view_column_get_min_width, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_max_width", lg_gtk_tree_view_column_set_max_width, 2, 0, 0, H_gtk_tree_view_column_set_max_width, pl_tui);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_max_width", lg_gtk_tree_view_column_get_max_width, 1, 0, 0, H_gtk_tree_view_column_get_max_width, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_clicked", lg_gtk_tree_view_column_clicked, 1, 0, 0, H_gtk_tree_view_column_clicked, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_title", lg_gtk_tree_view_column_set_title, 2, 0, 0, H_gtk_tree_view_column_set_title, pl_tus);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_title", lg_gtk_tree_view_column_get_title, 1, 0, 0, H_gtk_tree_view_column_get_title, pl_su);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_clickable", lg_gtk_tree_view_column_set_clickable, 2, 0, 0, H_gtk_tree_view_column_set_clickable, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_clickable", lg_gtk_tree_view_column_get_clickable, 1, 0, 0, H_gtk_tree_view_column_get_clickable, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_widget", lg_gtk_tree_view_column_set_widget, 2, 0, 0, H_gtk_tree_view_column_set_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_widget", lg_gtk_tree_view_column_get_widget, 1, 0, 0, H_gtk_tree_view_column_get_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_alignment", lg_gtk_tree_view_column_set_alignment, 2, 0, 0, H_gtk_tree_view_column_set_alignment, pl_tur);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_alignment", lg_gtk_tree_view_column_get_alignment, 1, 0, 0, H_gtk_tree_view_column_get_alignment, pl_du);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_reorderable", lg_gtk_tree_view_column_set_reorderable, 2, 0, 0, H_gtk_tree_view_column_set_reorderable, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_reorderable", lg_gtk_tree_view_column_get_reorderable, 1, 0, 0, H_gtk_tree_view_column_get_reorderable, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_sort_column_id", lg_gtk_tree_view_column_set_sort_column_id, 2, 0, 0, H_gtk_tree_view_column_set_sort_column_id, pl_tui);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_sort_column_id", lg_gtk_tree_view_column_get_sort_column_id, 1, 0, 0, H_gtk_tree_view_column_get_sort_column_id, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_sort_indicator", lg_gtk_tree_view_column_set_sort_indicator, 2, 0, 0, H_gtk_tree_view_column_set_sort_indicator, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_sort_indicator", lg_gtk_tree_view_column_get_sort_indicator, 1, 0, 0, H_gtk_tree_view_column_get_sort_indicator, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_sort_order", lg_gtk_tree_view_column_set_sort_order, 2, 0, 0, H_gtk_tree_view_column_set_sort_order, pl_tug);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_sort_order", lg_gtk_tree_view_column_get_sort_order, 1, 0, 0, H_gtk_tree_view_column_get_sort_order, pl_gu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_cell_set_cell_data", lg_gtk_tree_view_column_cell_set_cell_data, 5, 0, 0, H_gtk_tree_view_column_cell_set_cell_data, pl_tuuub);
+  s7_define_typed_function(sc, "gtk_tree_view_column_cell_get_size", lg_gtk_tree_view_column_cell_get_size, 2, 4, 0, H_gtk_tree_view_column_cell_get_size, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_cell_is_visible", lg_gtk_tree_view_column_cell_is_visible, 1, 0, 0, H_gtk_tree_view_column_cell_is_visible, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_cell_get_position", lg_gtk_tree_view_column_cell_get_position, 2, 2, 0, H_gtk_tree_view_column_cell_get_position, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_new", lg_gtk_tree_view_new, 0, 0, 0, H_gtk_tree_view_new, pl_p);
+  s7_define_typed_function(sc, "gtk_tree_view_new_with_model", lg_gtk_tree_view_new_with_model, 1, 0, 0, H_gtk_tree_view_new_with_model, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_model", lg_gtk_tree_view_get_model, 1, 0, 0, H_gtk_tree_view_get_model, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_model", lg_gtk_tree_view_set_model, 2, 0, 0, H_gtk_tree_view_set_model, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_selection", lg_gtk_tree_view_get_selection, 1, 0, 0, H_gtk_tree_view_get_selection, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_headers_visible", lg_gtk_tree_view_get_headers_visible, 1, 0, 0, H_gtk_tree_view_get_headers_visible, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_headers_visible", lg_gtk_tree_view_set_headers_visible, 2, 0, 0, H_gtk_tree_view_set_headers_visible, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_columns_autosize", lg_gtk_tree_view_columns_autosize, 1, 0, 0, H_gtk_tree_view_columns_autosize, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_headers_clickable", lg_gtk_tree_view_set_headers_clickable, 2, 0, 0, H_gtk_tree_view_set_headers_clickable, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_append_column", lg_gtk_tree_view_append_column, 2, 0, 0, H_gtk_tree_view_append_column, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_view_remove_column", lg_gtk_tree_view_remove_column, 2, 0, 0, H_gtk_tree_view_remove_column, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_view_insert_column", lg_gtk_tree_view_insert_column, 3, 0, 0, H_gtk_tree_view_insert_column, pl_iuui);
+  s7_define_typed_function(sc, "gtk_tree_view_insert_column_with_attributes", lg_gtk_tree_view_insert_column_with_attributes, 5, 0, 0, H_gtk_tree_view_insert_column_with_attributes, pl_iuisut);
+  s7_define_typed_function(sc, "gtk_tree_view_insert_column_with_data_func", lg_gtk_tree_view_insert_column_with_data_func, 7, 0, 0, H_gtk_tree_view_insert_column_with_data_func, pl_iuisut);
+  s7_define_typed_function(sc, "gtk_tree_view_get_column", lg_gtk_tree_view_get_column, 2, 0, 0, H_gtk_tree_view_get_column, pl_pui);
+  s7_define_typed_function(sc, "gtk_tree_view_get_columns", lg_gtk_tree_view_get_columns, 1, 0, 0, H_gtk_tree_view_get_columns, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_move_column_after", lg_gtk_tree_view_move_column_after, 3, 0, 0, H_gtk_tree_view_move_column_after, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_expander_column", lg_gtk_tree_view_set_expander_column, 2, 0, 0, H_gtk_tree_view_set_expander_column, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_expander_column", lg_gtk_tree_view_get_expander_column, 1, 0, 0, H_gtk_tree_view_get_expander_column, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_column_drag_function", lg_gtk_tree_view_set_column_drag_function, 4, 0, 0, H_gtk_tree_view_set_column_drag_function, pl_tut);
+  s7_define_typed_function(sc, "gtk_tree_view_scroll_to_point", lg_gtk_tree_view_scroll_to_point, 3, 0, 0, H_gtk_tree_view_scroll_to_point, pl_tui);
+  s7_define_typed_function(sc, "gtk_tree_view_scroll_to_cell", lg_gtk_tree_view_scroll_to_cell, 6, 0, 0, H_gtk_tree_view_scroll_to_cell, pl_tuuubr);
+  s7_define_typed_function(sc, "gtk_tree_view_row_activated", lg_gtk_tree_view_row_activated, 3, 0, 0, H_gtk_tree_view_row_activated, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_expand_all", lg_gtk_tree_view_expand_all, 1, 0, 0, H_gtk_tree_view_expand_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_collapse_all", lg_gtk_tree_view_collapse_all, 1, 0, 0, H_gtk_tree_view_collapse_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_expand_row", lg_gtk_tree_view_expand_row, 3, 0, 0, H_gtk_tree_view_expand_row, pl_buub);
+  s7_define_typed_function(sc, "gtk_tree_view_collapse_row", lg_gtk_tree_view_collapse_row, 2, 0, 0, H_gtk_tree_view_collapse_row, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_map_expanded_rows", lg_gtk_tree_view_map_expanded_rows, 2, 1, 0, H_gtk_tree_view_map_expanded_rows, pl_tut);
+  s7_define_typed_function(sc, "gtk_tree_view_row_expanded", lg_gtk_tree_view_row_expanded, 2, 0, 0, H_gtk_tree_view_row_expanded, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_reorderable", lg_gtk_tree_view_set_reorderable, 2, 0, 0, H_gtk_tree_view_set_reorderable, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_get_reorderable", lg_gtk_tree_view_get_reorderable, 1, 0, 0, H_gtk_tree_view_get_reorderable, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_cursor", lg_gtk_tree_view_set_cursor, 4, 0, 0, H_gtk_tree_view_set_cursor, pl_tuuub);
+  s7_define_typed_function(sc, "gtk_tree_view_get_cursor", lg_gtk_tree_view_get_cursor, 1, 2, 0, H_gtk_tree_view_get_cursor, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_path_at_pos", lg_gtk_tree_view_get_path_at_pos, 3, 4, 0, H_gtk_tree_view_get_path_at_pos, pl_puiiu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_cell_area", lg_gtk_tree_view_get_cell_area, 4, 0, 0, H_gtk_tree_view_get_cell_area, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_background_area", lg_gtk_tree_view_get_background_area, 4, 0, 0, H_gtk_tree_view_get_background_area, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_visible_rect", lg_gtk_tree_view_get_visible_rect, 2, 0, 0, H_gtk_tree_view_get_visible_rect, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_enable_model_drag_source", lg_gtk_tree_view_enable_model_drag_source, 5, 0, 0, H_gtk_tree_view_enable_model_drag_source, pl_tuguig);
+  s7_define_typed_function(sc, "gtk_tree_view_enable_model_drag_dest", lg_gtk_tree_view_enable_model_drag_dest, 4, 0, 0, H_gtk_tree_view_enable_model_drag_dest, pl_tuuig);
+  s7_define_typed_function(sc, "gtk_tree_view_unset_rows_drag_source", lg_gtk_tree_view_unset_rows_drag_source, 1, 0, 0, H_gtk_tree_view_unset_rows_drag_source, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_unset_rows_drag_dest", lg_gtk_tree_view_unset_rows_drag_dest, 1, 0, 0, H_gtk_tree_view_unset_rows_drag_dest, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_drag_dest_row", lg_gtk_tree_view_set_drag_dest_row, 3, 0, 0, H_gtk_tree_view_set_drag_dest_row, pl_tuug);
+  s7_define_typed_function(sc, "gtk_tree_view_get_drag_dest_row", lg_gtk_tree_view_get_drag_dest_row, 1, 2, 0, H_gtk_tree_view_get_drag_dest_row, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_dest_row_at_pos", lg_gtk_tree_view_get_dest_row_at_pos, 3, 2, 0, H_gtk_tree_view_get_dest_row_at_pos, pl_puiiu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_enable_search", lg_gtk_tree_view_set_enable_search, 2, 0, 0, H_gtk_tree_view_set_enable_search, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_get_enable_search", lg_gtk_tree_view_get_enable_search, 1, 0, 0, H_gtk_tree_view_get_enable_search, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_search_column", lg_gtk_tree_view_get_search_column, 1, 0, 0, H_gtk_tree_view_get_search_column, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_search_column", lg_gtk_tree_view_set_search_column, 2, 0, 0, H_gtk_tree_view_set_search_column, pl_tui);
+  s7_define_typed_function(sc, "gtk_tree_view_get_search_equal_func", lg_gtk_tree_view_get_search_equal_func, 1, 0, 0, H_gtk_tree_view_get_search_equal_func, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_search_equal_func", lg_gtk_tree_view_set_search_equal_func, 4, 0, 0, H_gtk_tree_view_set_search_equal_func, pl_tut);
+  s7_define_typed_function(sc, "gtk_viewport_new", lg_gtk_viewport_new, 2, 0, 0, H_gtk_viewport_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_viewport_set_shadow_type", lg_gtk_viewport_set_shadow_type, 2, 0, 0, H_gtk_viewport_set_shadow_type, pl_tug);
+  s7_define_typed_function(sc, "gtk_viewport_get_shadow_type", lg_gtk_viewport_get_shadow_type, 1, 0, 0, H_gtk_viewport_get_shadow_type, pl_gu);
+  s7_define_typed_function(sc, "gtk_widget_destroy", lg_gtk_widget_destroy, 1, 0, 0, H_gtk_widget_destroy, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_destroyed", lg_gtk_widget_destroyed, 1, 1, 0, H_gtk_widget_destroyed, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_unparent", lg_gtk_widget_unparent, 1, 0, 0, H_gtk_widget_unparent, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_show", lg_gtk_widget_show, 1, 0, 0, H_gtk_widget_show, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_show_now", lg_gtk_widget_show_now, 1, 0, 0, H_gtk_widget_show_now, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_hide", lg_gtk_widget_hide, 1, 0, 0, H_gtk_widget_hide, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_map", lg_gtk_widget_map, 1, 0, 0, H_gtk_widget_map, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_unmap", lg_gtk_widget_unmap, 1, 0, 0, H_gtk_widget_unmap, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_realize", lg_gtk_widget_realize, 1, 0, 0, H_gtk_widget_realize, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_unrealize", lg_gtk_widget_unrealize, 1, 0, 0, H_gtk_widget_unrealize, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_queue_draw", lg_gtk_widget_queue_draw, 1, 0, 0, H_gtk_widget_queue_draw, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_queue_draw_area", lg_gtk_widget_queue_draw_area, 5, 0, 0, H_gtk_widget_queue_draw_area, pl_tui);
+  s7_define_typed_function(sc, "gtk_widget_queue_resize", lg_gtk_widget_queue_resize, 1, 0, 0, H_gtk_widget_queue_resize, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_size_allocate", lg_gtk_widget_size_allocate, 2, 0, 0, H_gtk_widget_size_allocate, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_add_accelerator", lg_gtk_widget_add_accelerator, 6, 0, 0, H_gtk_widget_add_accelerator, pl_tusuig);
+  s7_define_typed_function(sc, "gtk_widget_remove_accelerator", lg_gtk_widget_remove_accelerator, 4, 0, 0, H_gtk_widget_remove_accelerator, pl_buuig);
+  s7_define_typed_function(sc, "gtk_widget_list_accel_closures", lg_gtk_widget_list_accel_closures, 1, 0, 0, H_gtk_widget_list_accel_closures, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_mnemonic_activate", lg_gtk_widget_mnemonic_activate, 2, 0, 0, H_gtk_widget_mnemonic_activate, pl_bub);
+  s7_define_typed_function(sc, "gtk_widget_event", lg_gtk_widget_event, 2, 0, 0, H_gtk_widget_event, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_activate", lg_gtk_widget_activate, 1, 0, 0, H_gtk_widget_activate, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_intersect", lg_gtk_widget_intersect, 3, 0, 0, H_gtk_widget_intersect, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_freeze_child_notify", lg_gtk_widget_freeze_child_notify, 1, 0, 0, H_gtk_widget_freeze_child_notify, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_child_notify", lg_gtk_widget_child_notify, 2, 0, 0, H_gtk_widget_child_notify, pl_tus);
+  s7_define_typed_function(sc, "gtk_widget_thaw_child_notify", lg_gtk_widget_thaw_child_notify, 1, 0, 0, H_gtk_widget_thaw_child_notify, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_is_focus", lg_gtk_widget_is_focus, 1, 0, 0, H_gtk_widget_is_focus, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_grab_focus", lg_gtk_widget_grab_focus, 1, 0, 0, H_gtk_widget_grab_focus, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_grab_default", lg_gtk_widget_grab_default, 1, 0, 0, H_gtk_widget_grab_default, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_set_name", lg_gtk_widget_set_name, 2, 0, 0, H_gtk_widget_set_name, pl_tus);
+  s7_define_typed_function(sc, "gtk_widget_get_name", lg_gtk_widget_get_name, 1, 0, 0, H_gtk_widget_get_name, pl_su);
+  s7_define_typed_function(sc, "gtk_widget_set_sensitive", lg_gtk_widget_set_sensitive, 2, 0, 0, H_gtk_widget_set_sensitive, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_set_redraw_on_allocate", lg_gtk_widget_set_redraw_on_allocate, 2, 0, 0, H_gtk_widget_set_redraw_on_allocate, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_set_parent", lg_gtk_widget_set_parent, 2, 0, 0, H_gtk_widget_set_parent, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_set_parent_window", lg_gtk_widget_set_parent_window, 2, 0, 0, H_gtk_widget_set_parent_window, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_set_child_visible", lg_gtk_widget_set_child_visible, 2, 0, 0, H_gtk_widget_set_child_visible, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_set_accel_path", lg_gtk_widget_set_accel_path, 3, 0, 0, H_gtk_widget_set_accel_path, pl_tusu);
+  s7_define_typed_function(sc, "gtk_widget_get_child_visible", lg_gtk_widget_get_child_visible, 1, 0, 0, H_gtk_widget_get_child_visible, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_get_parent", lg_gtk_widget_get_parent, 1, 0, 0, H_gtk_widget_get_parent, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_get_parent_window", lg_gtk_widget_get_parent_window, 1, 0, 0, H_gtk_widget_get_parent_window, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_child_focus", lg_gtk_widget_child_focus, 2, 0, 0, H_gtk_widget_child_focus, pl_bug);
+  s7_define_typed_function(sc, "gtk_widget_set_size_request", lg_gtk_widget_set_size_request, 3, 0, 0, H_gtk_widget_set_size_request, pl_tui);
+  s7_define_typed_function(sc, "gtk_widget_get_size_request", lg_gtk_widget_get_size_request, 1, 2, 0, H_gtk_widget_get_size_request, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_get_toplevel", lg_gtk_widget_get_toplevel, 1, 0, 0, H_gtk_widget_get_toplevel, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_get_ancestor", lg_gtk_widget_get_ancestor, 2, 0, 0, H_gtk_widget_get_ancestor, pl_pui);
+  s7_define_typed_function(sc, "gtk_widget_get_settings", lg_gtk_widget_get_settings, 1, 0, 0, H_gtk_widget_get_settings, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_get_accessible", lg_gtk_widget_get_accessible, 1, 0, 0, H_gtk_widget_get_accessible, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_is_ancestor", lg_gtk_widget_is_ancestor, 2, 0, 0, H_gtk_widget_is_ancestor, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_translate_coordinates", lg_gtk_widget_translate_coordinates, 4, 2, 0, H_gtk_widget_translate_coordinates, pl_puuiiu);
+  s7_define_typed_function(sc, "gtk_widget_hide_on_delete", lg_gtk_widget_hide_on_delete, 1, 0, 0, H_gtk_widget_hide_on_delete, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_create_pango_context", lg_gtk_widget_create_pango_context, 1, 0, 0, H_gtk_widget_create_pango_context, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_get_pango_context", lg_gtk_widget_get_pango_context, 1, 0, 0, H_gtk_widget_get_pango_context, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_create_pango_layout", lg_gtk_widget_create_pango_layout, 2, 0, 0, H_gtk_widget_create_pango_layout, pl_pus);
+  s7_define_typed_function(sc, "gtk_widget_set_direction", lg_gtk_widget_set_direction, 2, 0, 0, H_gtk_widget_set_direction, pl_tug);
+  s7_define_typed_function(sc, "gtk_widget_get_direction", lg_gtk_widget_get_direction, 1, 0, 0, H_gtk_widget_get_direction, pl_gu);
+  s7_define_typed_function(sc, "gtk_widget_set_default_direction", lg_gtk_widget_set_default_direction, 1, 0, 0, H_gtk_widget_set_default_direction, pl_tg);
+  s7_define_typed_function(sc, "gtk_widget_get_default_direction", lg_gtk_widget_get_default_direction, 0, 0, 0, H_gtk_widget_get_default_direction, pl_g);
+  s7_define_typed_function(sc, "gtk_widget_can_activate_accel", lg_gtk_widget_can_activate_accel, 2, 0, 0, H_gtk_widget_can_activate_accel, pl_bui);
+  s7_define_typed_function(sc, "gtk_window_is_active", lg_gtk_window_is_active, 1, 0, 0, H_gtk_window_is_active, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_new", lg_gtk_window_new, 1, 0, 0, H_gtk_window_new, pl_pg);
+  s7_define_typed_function(sc, "gtk_window_set_title", lg_gtk_window_set_title, 2, 0, 0, H_gtk_window_set_title, pl_tus);
+  s7_define_typed_function(sc, "gtk_window_set_auto_startup_notification", lg_gtk_window_set_auto_startup_notification, 1, 0, 0, H_gtk_window_set_auto_startup_notification, pl_tb);
+  s7_define_typed_function(sc, "gtk_window_get_title", lg_gtk_window_get_title, 1, 0, 0, H_gtk_window_get_title, pl_su);
+  s7_define_typed_function(sc, "gtk_window_set_role", lg_gtk_window_set_role, 2, 0, 0, H_gtk_window_set_role, pl_tus);
+  s7_define_typed_function(sc, "gtk_window_get_role", lg_gtk_window_get_role, 1, 0, 0, H_gtk_window_get_role, pl_su);
+  s7_define_typed_function(sc, "gtk_window_add_accel_group", lg_gtk_window_add_accel_group, 2, 0, 0, H_gtk_window_add_accel_group, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_remove_accel_group", lg_gtk_window_remove_accel_group, 2, 0, 0, H_gtk_window_remove_accel_group, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_set_position", lg_gtk_window_set_position, 2, 0, 0, H_gtk_window_set_position, pl_tug);
+  s7_define_typed_function(sc, "gtk_window_activate_focus", lg_gtk_window_activate_focus, 1, 0, 0, H_gtk_window_activate_focus, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_set_focus", lg_gtk_window_set_focus, 2, 0, 0, H_gtk_window_set_focus, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_get_focus", lg_gtk_window_get_focus, 1, 0, 0, H_gtk_window_get_focus, pl_pu);
+  s7_define_typed_function(sc, "gtk_window_set_default", lg_gtk_window_set_default, 2, 0, 0, H_gtk_window_set_default, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_activate_default", lg_gtk_window_activate_default, 1, 0, 0, H_gtk_window_activate_default, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_set_transient_for", lg_gtk_window_set_transient_for, 2, 0, 0, H_gtk_window_set_transient_for, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_get_transient_for", lg_gtk_window_get_transient_for, 1, 0, 0, H_gtk_window_get_transient_for, pl_pu);
+  s7_define_typed_function(sc, "gtk_window_set_type_hint", lg_gtk_window_set_type_hint, 2, 0, 0, H_gtk_window_set_type_hint, pl_tug);
+  s7_define_typed_function(sc, "gtk_window_get_type_hint", lg_gtk_window_get_type_hint, 1, 0, 0, H_gtk_window_get_type_hint, pl_gu);
+  s7_define_typed_function(sc, "gtk_window_set_destroy_with_parent", lg_gtk_window_set_destroy_with_parent, 2, 0, 0, H_gtk_window_set_destroy_with_parent, pl_tub);
+  s7_define_typed_function(sc, "gtk_window_get_destroy_with_parent", lg_gtk_window_get_destroy_with_parent, 1, 0, 0, H_gtk_window_get_destroy_with_parent, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_set_resizable", lg_gtk_window_set_resizable, 2, 0, 0, H_gtk_window_set_resizable, pl_tub);
+  s7_define_typed_function(sc, "gtk_window_get_resizable", lg_gtk_window_get_resizable, 1, 0, 0, H_gtk_window_get_resizable, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_set_gravity", lg_gtk_window_set_gravity, 2, 0, 0, H_gtk_window_set_gravity, pl_tug);
+  s7_define_typed_function(sc, "gtk_window_get_gravity", lg_gtk_window_get_gravity, 1, 0, 0, H_gtk_window_get_gravity, pl_gu);
+  s7_define_typed_function(sc, "gtk_window_set_geometry_hints", lg_gtk_window_set_geometry_hints, 4, 0, 0, H_gtk_window_set_geometry_hints, pl_tuuug);
+  s7_define_typed_function(sc, "gtk_window_set_decorated", lg_gtk_window_set_decorated, 2, 0, 0, H_gtk_window_set_decorated, pl_tub);
+  s7_define_typed_function(sc, "gtk_window_get_decorated", lg_gtk_window_get_decorated, 1, 0, 0, H_gtk_window_get_decorated, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_set_icon_list", lg_gtk_window_set_icon_list, 2, 0, 0, H_gtk_window_set_icon_list, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_get_icon_list", lg_gtk_window_get_icon_list, 1, 0, 0, H_gtk_window_get_icon_list, pl_pu);
+  s7_define_typed_function(sc, "gtk_window_set_icon", lg_gtk_window_set_icon, 2, 0, 0, H_gtk_window_set_icon, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_get_icon", lg_gtk_window_get_icon, 1, 0, 0, H_gtk_window_get_icon, pl_pu);
+  s7_define_typed_function(sc, "gtk_window_set_default_icon_list", lg_gtk_window_set_default_icon_list, 1, 0, 0, H_gtk_window_set_default_icon_list, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_get_default_icon_list", lg_gtk_window_get_default_icon_list, 0, 0, 0, H_gtk_window_get_default_icon_list, pl_p);
+  s7_define_typed_function(sc, "gtk_window_set_modal", lg_gtk_window_set_modal, 2, 0, 0, H_gtk_window_set_modal, pl_tub);
+  s7_define_typed_function(sc, "gtk_window_get_modal", lg_gtk_window_get_modal, 1, 0, 0, H_gtk_window_get_modal, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_list_toplevels", lg_gtk_window_list_toplevels, 0, 0, 0, H_gtk_window_list_toplevels, pl_p);
+  s7_define_typed_function(sc, "gtk_window_add_mnemonic", lg_gtk_window_add_mnemonic, 3, 0, 0, H_gtk_window_add_mnemonic, pl_tuiu);
+  s7_define_typed_function(sc, "gtk_window_remove_mnemonic", lg_gtk_window_remove_mnemonic, 3, 0, 0, H_gtk_window_remove_mnemonic, pl_tuiu);
+  s7_define_typed_function(sc, "gtk_window_mnemonic_activate", lg_gtk_window_mnemonic_activate, 3, 0, 0, H_gtk_window_mnemonic_activate, pl_buig);
+  s7_define_typed_function(sc, "gtk_window_set_mnemonic_modifier", lg_gtk_window_set_mnemonic_modifier, 2, 0, 0, H_gtk_window_set_mnemonic_modifier, pl_tug);
+  s7_define_typed_function(sc, "gtk_window_get_mnemonic_modifier", lg_gtk_window_get_mnemonic_modifier, 1, 0, 0, H_gtk_window_get_mnemonic_modifier, pl_gu);
+  s7_define_typed_function(sc, "gtk_window_present", lg_gtk_window_present, 1, 0, 0, H_gtk_window_present, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_iconify", lg_gtk_window_iconify, 1, 0, 0, H_gtk_window_iconify, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_deiconify", lg_gtk_window_deiconify, 1, 0, 0, H_gtk_window_deiconify, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_stick", lg_gtk_window_stick, 1, 0, 0, H_gtk_window_stick, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_unstick", lg_gtk_window_unstick, 1, 0, 0, H_gtk_window_unstick, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_maximize", lg_gtk_window_maximize, 1, 0, 0, H_gtk_window_maximize, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_unmaximize", lg_gtk_window_unmaximize, 1, 0, 0, H_gtk_window_unmaximize, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_begin_resize_drag", lg_gtk_window_begin_resize_drag, 6, 0, 0, H_gtk_window_begin_resize_drag, pl_tugi);
+  s7_define_typed_function(sc, "gtk_window_begin_move_drag", lg_gtk_window_begin_move_drag, 5, 0, 0, H_gtk_window_begin_move_drag, pl_tui);
+  s7_define_typed_function(sc, "gtk_window_set_default_size", lg_gtk_window_set_default_size, 3, 0, 0, H_gtk_window_set_default_size, pl_tui);
+  s7_define_typed_function(sc, "gtk_window_get_default_size", lg_gtk_window_get_default_size, 1, 2, 0, H_gtk_window_get_default_size, pl_pu);
+  s7_define_typed_function(sc, "gtk_window_resize", lg_gtk_window_resize, 3, 0, 0, H_gtk_window_resize, pl_tui);
+  s7_define_typed_function(sc, "gtk_window_get_size", lg_gtk_window_get_size, 1, 2, 0, H_gtk_window_get_size, pl_pu);
+  s7_define_typed_function(sc, "gtk_window_move", lg_gtk_window_move, 3, 0, 0, H_gtk_window_move, pl_tui);
+  s7_define_typed_function(sc, "gtk_window_get_position", lg_gtk_window_get_position, 1, 2, 0, H_gtk_window_get_position, pl_pu);
+  s7_define_typed_function(sc, "pango_color_copy", lg_pango_color_copy, 1, 0, 0, H_pango_color_copy, pl_pu);
+  s7_define_typed_function(sc, "pango_color_free", lg_pango_color_free, 1, 0, 0, H_pango_color_free, pl_tu);
+  s7_define_typed_function(sc, "pango_color_parse", lg_pango_color_parse, 2, 0, 0, H_pango_color_parse, pl_bus);
+  s7_define_typed_function(sc, "pango_attr_type_register", lg_pango_attr_type_register, 1, 0, 0, H_pango_attr_type_register, pl_gs);
+  s7_define_typed_function(sc, "pango_attribute_copy", lg_pango_attribute_copy, 1, 0, 0, H_pango_attribute_copy, pl_pu);
+  s7_define_typed_function(sc, "pango_attribute_destroy", lg_pango_attribute_destroy, 1, 0, 0, H_pango_attribute_destroy, pl_tu);
+  s7_define_typed_function(sc, "pango_attribute_equal", lg_pango_attribute_equal, 2, 0, 0, H_pango_attribute_equal, pl_bu);
+  s7_define_typed_function(sc, "pango_attr_language_new", lg_pango_attr_language_new, 1, 0, 0, H_pango_attr_language_new, pl_pu);
+  s7_define_typed_function(sc, "pango_attr_family_new", lg_pango_attr_family_new, 1, 0, 0, H_pango_attr_family_new, pl_ps);
+  s7_define_typed_function(sc, "pango_attr_foreground_new", lg_pango_attr_foreground_new, 3, 0, 0, H_pango_attr_foreground_new, pl_pi);
+  s7_define_typed_function(sc, "pango_attr_background_new", lg_pango_attr_background_new, 3, 0, 0, H_pango_attr_background_new, pl_pi);
+  s7_define_typed_function(sc, "pango_attr_size_new", lg_pango_attr_size_new, 1, 0, 0, H_pango_attr_size_new, pl_pi);
+  s7_define_typed_function(sc, "pango_attr_style_new", lg_pango_attr_style_new, 1, 0, 0, H_pango_attr_style_new, pl_pg);
+  s7_define_typed_function(sc, "pango_attr_weight_new", lg_pango_attr_weight_new, 1, 0, 0, H_pango_attr_weight_new, pl_pg);
+  s7_define_typed_function(sc, "pango_attr_variant_new", lg_pango_attr_variant_new, 1, 0, 0, H_pango_attr_variant_new, pl_pg);
+  s7_define_typed_function(sc, "pango_attr_stretch_new", lg_pango_attr_stretch_new, 1, 0, 0, H_pango_attr_stretch_new, pl_pg);
+  s7_define_typed_function(sc, "pango_attr_font_desc_new", lg_pango_attr_font_desc_new, 1, 0, 0, H_pango_attr_font_desc_new, pl_pu);
+  s7_define_typed_function(sc, "pango_attr_underline_new", lg_pango_attr_underline_new, 1, 0, 0, H_pango_attr_underline_new, pl_pg);
+  s7_define_typed_function(sc, "pango_attr_strikethrough_new", lg_pango_attr_strikethrough_new, 1, 0, 0, H_pango_attr_strikethrough_new, pl_pb);
+  s7_define_typed_function(sc, "pango_attr_rise_new", lg_pango_attr_rise_new, 1, 0, 0, H_pango_attr_rise_new, pl_pi);
+  s7_define_typed_function(sc, "pango_attr_shape_new", lg_pango_attr_shape_new, 2, 0, 0, H_pango_attr_shape_new, pl_pu);
+  s7_define_typed_function(sc, "pango_attr_scale_new", lg_pango_attr_scale_new, 1, 0, 0, H_pango_attr_scale_new, pl_pr);
+  s7_define_typed_function(sc, "pango_attr_list_new", lg_pango_attr_list_new, 0, 0, 0, H_pango_attr_list_new, pl_p);
+  s7_define_typed_function(sc, "pango_attr_list_unref", lg_pango_attr_list_unref, 1, 0, 0, H_pango_attr_list_unref, pl_tu);
+  s7_define_typed_function(sc, "pango_attr_list_copy", lg_pango_attr_list_copy, 1, 0, 0, H_pango_attr_list_copy, pl_pu);
+  s7_define_typed_function(sc, "pango_attr_list_insert", lg_pango_attr_list_insert, 2, 0, 0, H_pango_attr_list_insert, pl_tu);
+  s7_define_typed_function(sc, "pango_attr_list_insert_before", lg_pango_attr_list_insert_before, 2, 0, 0, H_pango_attr_list_insert_before, pl_tu);
+  s7_define_typed_function(sc, "pango_attr_list_change", lg_pango_attr_list_change, 2, 0, 0, H_pango_attr_list_change, pl_tu);
+  s7_define_typed_function(sc, "pango_attr_list_splice", lg_pango_attr_list_splice, 4, 0, 0, H_pango_attr_list_splice, pl_tuui);
+  s7_define_typed_function(sc, "pango_attr_list_get_iterator", lg_pango_attr_list_get_iterator, 1, 0, 0, H_pango_attr_list_get_iterator, pl_pu);
+  s7_define_typed_function(sc, "pango_attr_iterator_range", lg_pango_attr_iterator_range, 1, 2, 0, H_pango_attr_iterator_range, pl_pu);
+  s7_define_typed_function(sc, "pango_attr_iterator_next", lg_pango_attr_iterator_next, 1, 0, 0, H_pango_attr_iterator_next, pl_bu);
+  s7_define_typed_function(sc, "pango_attr_iterator_copy", lg_pango_attr_iterator_copy, 1, 0, 0, H_pango_attr_iterator_copy, pl_pu);
+  s7_define_typed_function(sc, "pango_attr_iterator_destroy", lg_pango_attr_iterator_destroy, 1, 0, 0, H_pango_attr_iterator_destroy, pl_tu);
+  s7_define_typed_function(sc, "pango_attr_iterator_get", lg_pango_attr_iterator_get, 2, 0, 0, H_pango_attr_iterator_get, pl_pug);
+  s7_define_typed_function(sc, "pango_attr_iterator_get_font", lg_pango_attr_iterator_get_font, 2, 2, 0, H_pango_attr_iterator_get_font, pl_pu);
+  s7_define_typed_function(sc, "pango_parse_markup", lg_pango_parse_markup, 6, 1, 0, H_pango_parse_markup, pl_psiiuusu);
+  s7_define_typed_function(sc, "pango_break", lg_pango_break, 5, 0, 0, H_pango_break, pl_tsiuui);
+  s7_define_typed_function(sc, "pango_find_paragraph_boundary", lg_pango_find_paragraph_boundary, 2, 2, 0, H_pango_find_paragraph_boundary, pl_psiu);
+  s7_define_typed_function(sc, "pango_get_log_attrs", lg_pango_get_log_attrs, 6, 0, 0, H_pango_get_log_attrs, pl_tsiiuui);
+  s7_define_typed_function(sc, "pango_context_list_families", lg_pango_context_list_families, 1, 2, 0, H_pango_context_list_families, pl_pu);
+  s7_define_typed_function(sc, "pango_context_load_font", lg_pango_context_load_font, 2, 0, 0, H_pango_context_load_font, pl_pu);
+  s7_define_typed_function(sc, "pango_context_load_fontset", lg_pango_context_load_fontset, 3, 0, 0, H_pango_context_load_fontset, pl_pu);
+  s7_define_typed_function(sc, "pango_context_get_metrics", lg_pango_context_get_metrics, 3, 0, 0, H_pango_context_get_metrics, pl_pu);
+  s7_define_typed_function(sc, "pango_context_set_font_description", lg_pango_context_set_font_description, 2, 0, 0, H_pango_context_set_font_description, pl_tu);
+  s7_define_typed_function(sc, "pango_context_get_font_description", lg_pango_context_get_font_description, 1, 0, 0, H_pango_context_get_font_description, pl_pu);
+  s7_define_typed_function(sc, "pango_context_get_language", lg_pango_context_get_language, 1, 0, 0, H_pango_context_get_language, pl_pu);
+  s7_define_typed_function(sc, "pango_context_set_language", lg_pango_context_set_language, 2, 0, 0, H_pango_context_set_language, pl_tu);
+  s7_define_typed_function(sc, "pango_context_set_base_dir", lg_pango_context_set_base_dir, 2, 0, 0, H_pango_context_set_base_dir, pl_tug);
+  s7_define_typed_function(sc, "pango_context_get_base_dir", lg_pango_context_get_base_dir, 1, 0, 0, H_pango_context_get_base_dir, pl_gu);
+  s7_define_typed_function(sc, "pango_itemize", lg_pango_itemize, 6, 0, 0, H_pango_itemize, pl_pusiiu);
+  s7_define_typed_function(sc, "pango_coverage_new", lg_pango_coverage_new, 0, 0, 0, H_pango_coverage_new, pl_p);
+  s7_define_typed_function(sc, "pango_coverage_ref", lg_pango_coverage_ref, 1, 0, 0, H_pango_coverage_ref, pl_pu);
+  s7_define_typed_function(sc, "pango_coverage_unref", lg_pango_coverage_unref, 1, 0, 0, H_pango_coverage_unref, pl_tu);
+  s7_define_typed_function(sc, "pango_coverage_copy", lg_pango_coverage_copy, 1, 0, 0, H_pango_coverage_copy, pl_pu);
+  s7_define_typed_function(sc, "pango_coverage_get", lg_pango_coverage_get, 2, 0, 0, H_pango_coverage_get, pl_gui);
+  s7_define_typed_function(sc, "pango_coverage_set", lg_pango_coverage_set, 3, 0, 0, H_pango_coverage_set, pl_tuig);
+  s7_define_typed_function(sc, "pango_coverage_max", lg_pango_coverage_max, 2, 0, 0, H_pango_coverage_max, pl_tu);
+  s7_define_typed_function(sc, "pango_coverage_to_bytes", lg_pango_coverage_to_bytes, 1, 2, 0, H_pango_coverage_to_bytes, pl_pu);
+  s7_define_typed_function(sc, "pango_coverage_from_bytes", lg_pango_coverage_from_bytes, 2, 0, 0, H_pango_coverage_from_bytes, pl_psi);
+  s7_define_typed_function(sc, "pango_font_description_new", lg_pango_font_description_new, 0, 0, 0, H_pango_font_description_new, pl_p);
+  s7_define_typed_function(sc, "pango_font_description_copy", lg_pango_font_description_copy, 1, 0, 0, H_pango_font_description_copy, pl_pu);
+  s7_define_typed_function(sc, "pango_font_description_copy_static", lg_pango_font_description_copy_static, 1, 0, 0, H_pango_font_description_copy_static, pl_pu);
+  s7_define_typed_function(sc, "pango_font_description_hash", lg_pango_font_description_hash, 1, 0, 0, H_pango_font_description_hash, pl_iu);
+  s7_define_typed_function(sc, "pango_font_description_equal", lg_pango_font_description_equal, 2, 0, 0, H_pango_font_description_equal, pl_bu);
+  s7_define_typed_function(sc, "pango_font_description_free", lg_pango_font_description_free, 1, 0, 0, H_pango_font_description_free, pl_tu);
+  s7_define_typed_function(sc, "pango_font_descriptions_free", lg_pango_font_descriptions_free, 2, 0, 0, H_pango_font_descriptions_free, pl_tui);
+  s7_define_typed_function(sc, "pango_font_description_set_family", lg_pango_font_description_set_family, 2, 0, 0, H_pango_font_description_set_family, pl_tus);
+  s7_define_typed_function(sc, "pango_font_description_set_family_static", lg_pango_font_description_set_family_static, 2, 0, 0, H_pango_font_description_set_family_static, pl_tus);
+  s7_define_typed_function(sc, "pango_font_description_get_family", lg_pango_font_description_get_family, 1, 0, 0, H_pango_font_description_get_family, pl_su);
+  s7_define_typed_function(sc, "pango_font_description_set_style", lg_pango_font_description_set_style, 2, 0, 0, H_pango_font_description_set_style, pl_tug);
+  s7_define_typed_function(sc, "pango_font_description_get_style", lg_pango_font_description_get_style, 1, 0, 0, H_pango_font_description_get_style, pl_gu);
+  s7_define_typed_function(sc, "pango_font_description_set_variant", lg_pango_font_description_set_variant, 2, 0, 0, H_pango_font_description_set_variant, pl_tug);
+  s7_define_typed_function(sc, "pango_font_description_get_variant", lg_pango_font_description_get_variant, 1, 0, 0, H_pango_font_description_get_variant, pl_gu);
+  s7_define_typed_function(sc, "pango_font_description_set_weight", lg_pango_font_description_set_weight, 2, 0, 0, H_pango_font_description_set_weight, pl_tug);
+  s7_define_typed_function(sc, "pango_font_description_get_weight", lg_pango_font_description_get_weight, 1, 0, 0, H_pango_font_description_get_weight, pl_gu);
+  s7_define_typed_function(sc, "pango_font_description_set_stretch", lg_pango_font_description_set_stretch, 2, 0, 0, H_pango_font_description_set_stretch, pl_tug);
+  s7_define_typed_function(sc, "pango_font_description_get_stretch", lg_pango_font_description_get_stretch, 1, 0, 0, H_pango_font_description_get_stretch, pl_gu);
+  s7_define_typed_function(sc, "pango_font_description_set_size", lg_pango_font_description_set_size, 2, 0, 0, H_pango_font_description_set_size, pl_tui);
+  s7_define_typed_function(sc, "pango_font_description_get_size", lg_pango_font_description_get_size, 1, 0, 0, H_pango_font_description_get_size, pl_iu);
+  s7_define_typed_function(sc, "pango_font_description_get_set_fields", lg_pango_font_description_get_set_fields, 1, 0, 0, H_pango_font_description_get_set_fields, pl_gu);
+  s7_define_typed_function(sc, "pango_font_description_unset_fields", lg_pango_font_description_unset_fields, 2, 0, 0, H_pango_font_description_unset_fields, pl_tug);
+  s7_define_typed_function(sc, "pango_font_description_merge", lg_pango_font_description_merge, 3, 0, 0, H_pango_font_description_merge, pl_tuub);
+  s7_define_typed_function(sc, "pango_font_description_merge_static", lg_pango_font_description_merge_static, 3, 0, 0, H_pango_font_description_merge_static, pl_tuub);
+  s7_define_typed_function(sc, "pango_font_description_better_match", lg_pango_font_description_better_match, 3, 0, 0, H_pango_font_description_better_match, pl_bu);
+  s7_define_typed_function(sc, "pango_font_description_from_string", lg_pango_font_description_from_string, 1, 0, 0, H_pango_font_description_from_string, pl_ps);
+  s7_define_typed_function(sc, "pango_font_description_to_string", lg_pango_font_description_to_string, 1, 0, 0, H_pango_font_description_to_string, pl_su);
+  s7_define_typed_function(sc, "pango_font_description_to_filename", lg_pango_font_description_to_filename, 1, 0, 0, H_pango_font_description_to_filename, pl_su);
+  s7_define_typed_function(sc, "pango_font_metrics_ref", lg_pango_font_metrics_ref, 1, 0, 0, H_pango_font_metrics_ref, pl_pu);
+  s7_define_typed_function(sc, "pango_font_metrics_unref", lg_pango_font_metrics_unref, 1, 0, 0, H_pango_font_metrics_unref, pl_tu);
+  s7_define_typed_function(sc, "pango_font_metrics_get_ascent", lg_pango_font_metrics_get_ascent, 1, 0, 0, H_pango_font_metrics_get_ascent, pl_iu);
+  s7_define_typed_function(sc, "pango_font_metrics_get_descent", lg_pango_font_metrics_get_descent, 1, 0, 0, H_pango_font_metrics_get_descent, pl_iu);
+  s7_define_typed_function(sc, "pango_font_metrics_get_approximate_char_width", lg_pango_font_metrics_get_approximate_char_width, 1, 0, 0, H_pango_font_metrics_get_approximate_char_width, pl_iu);
+  s7_define_typed_function(sc, "pango_font_metrics_get_approximate_digit_width", lg_pango_font_metrics_get_approximate_digit_width, 1, 0, 0, H_pango_font_metrics_get_approximate_digit_width, pl_iu);
+  s7_define_typed_function(sc, "pango_font_family_list_faces", lg_pango_font_family_list_faces, 1, 2, 0, H_pango_font_family_list_faces, pl_pu);
+  s7_define_typed_function(sc, "pango_font_family_get_name", lg_pango_font_family_get_name, 1, 0, 0, H_pango_font_family_get_name, pl_su);
+  s7_define_typed_function(sc, "pango_font_face_describe", lg_pango_font_face_describe, 1, 0, 0, H_pango_font_face_describe, pl_pu);
+  s7_define_typed_function(sc, "pango_font_face_get_face_name", lg_pango_font_face_get_face_name, 1, 0, 0, H_pango_font_face_get_face_name, pl_su);
+  s7_define_typed_function(sc, "pango_font_describe", lg_pango_font_describe, 1, 0, 0, H_pango_font_describe, pl_pu);
+  s7_define_typed_function(sc, "pango_font_get_coverage", lg_pango_font_get_coverage, 2, 0, 0, H_pango_font_get_coverage, pl_pu);
+  s7_define_typed_function(sc, "pango_font_get_metrics", lg_pango_font_get_metrics, 2, 0, 0, H_pango_font_get_metrics, pl_pu);
+  s7_define_typed_function(sc, "pango_font_get_glyph_extents", lg_pango_font_get_glyph_extents, 4, 0, 0, H_pango_font_get_glyph_extents, pl_tuiu);
+  s7_define_typed_function(sc, "pango_font_map_load_font", lg_pango_font_map_load_font, 3, 0, 0, H_pango_font_map_load_font, pl_pu);
+  s7_define_typed_function(sc, "pango_font_map_load_fontset", lg_pango_font_map_load_fontset, 4, 0, 0, H_pango_font_map_load_fontset, pl_pu);
+  s7_define_typed_function(sc, "pango_font_map_list_families", lg_pango_font_map_list_families, 1, 2, 0, H_pango_font_map_list_families, pl_pu);
+  s7_define_typed_function(sc, "pango_glyph_string_new", lg_pango_glyph_string_new, 0, 0, 0, H_pango_glyph_string_new, pl_p);
+  s7_define_typed_function(sc, "pango_glyph_string_set_size", lg_pango_glyph_string_set_size, 2, 0, 0, H_pango_glyph_string_set_size, pl_tui);
+  s7_define_typed_function(sc, "pango_glyph_string_copy", lg_pango_glyph_string_copy, 1, 0, 0, H_pango_glyph_string_copy, pl_pu);
+  s7_define_typed_function(sc, "pango_glyph_string_free", lg_pango_glyph_string_free, 1, 0, 0, H_pango_glyph_string_free, pl_tu);
+  s7_define_typed_function(sc, "pango_glyph_string_extents", lg_pango_glyph_string_extents, 4, 0, 0, H_pango_glyph_string_extents, pl_tu);
+  s7_define_typed_function(sc, "pango_glyph_string_extents_range", lg_pango_glyph_string_extents_range, 6, 0, 0, H_pango_glyph_string_extents_range, pl_tuiiu);
+  s7_define_typed_function(sc, "pango_glyph_string_get_logical_widths", lg_pango_glyph_string_get_logical_widths, 4, 1, 0, H_pango_glyph_string_get_logical_widths, pl_pusiiu);
+  s7_define_typed_function(sc, "pango_glyph_string_index_to_x", lg_pango_glyph_string_index_to_x, 6, 1, 0, H_pango_glyph_string_index_to_x, pl_pusiuibu);
+  s7_define_typed_function(sc, "pango_glyph_string_x_to_index", lg_pango_glyph_string_x_to_index, 5, 2, 0, H_pango_glyph_string_x_to_index, pl_pusiuiu);
+  s7_define_typed_function(sc, "pango_shape", lg_pango_shape, 4, 0, 0, H_pango_shape, pl_tsiu);
+  s7_define_typed_function(sc, "pango_reorder_items", lg_pango_reorder_items, 1, 0, 0, H_pango_reorder_items, pl_pu);
+  s7_define_typed_function(sc, "pango_item_new", lg_pango_item_new, 0, 0, 0, H_pango_item_new, pl_p);
+  s7_define_typed_function(sc, "pango_item_copy", lg_pango_item_copy, 1, 0, 0, H_pango_item_copy, pl_pu);
+  s7_define_typed_function(sc, "pango_item_free", lg_pango_item_free, 1, 0, 0, H_pango_item_free, pl_tu);
+  s7_define_typed_function(sc, "pango_item_split", lg_pango_item_split, 3, 0, 0, H_pango_item_split, pl_pui);
+  s7_define_typed_function(sc, "pango_layout_new", lg_pango_layout_new, 1, 0, 0, H_pango_layout_new, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_copy", lg_pango_layout_copy, 1, 0, 0, H_pango_layout_copy, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_get_context", lg_pango_layout_get_context, 1, 0, 0, H_pango_layout_get_context, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_set_attributes", lg_pango_layout_set_attributes, 2, 0, 0, H_pango_layout_set_attributes, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_get_attributes", lg_pango_layout_get_attributes, 1, 0, 0, H_pango_layout_get_attributes, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_set_text", lg_pango_layout_set_text, 3, 0, 0, H_pango_layout_set_text, pl_tusi);
+  s7_define_typed_function(sc, "pango_layout_get_text", lg_pango_layout_get_text, 1, 0, 0, H_pango_layout_get_text, pl_su);
+  s7_define_typed_function(sc, "pango_layout_set_markup", lg_pango_layout_set_markup, 3, 0, 0, H_pango_layout_set_markup, pl_tusi);
+  s7_define_typed_function(sc, "pango_layout_set_markup_with_accel", lg_pango_layout_set_markup_with_accel, 5, 0, 0, H_pango_layout_set_markup_with_accel, pl_tusiis);
+  s7_define_typed_function(sc, "pango_layout_set_font_description", lg_pango_layout_set_font_description, 2, 0, 0, H_pango_layout_set_font_description, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_set_width", lg_pango_layout_set_width, 2, 0, 0, H_pango_layout_set_width, pl_tui);
+  s7_define_typed_function(sc, "pango_layout_get_width", lg_pango_layout_get_width, 1, 0, 0, H_pango_layout_get_width, pl_iu);
+  s7_define_typed_function(sc, "pango_layout_set_wrap", lg_pango_layout_set_wrap, 2, 0, 0, H_pango_layout_set_wrap, pl_tug);
+  s7_define_typed_function(sc, "pango_layout_get_wrap", lg_pango_layout_get_wrap, 1, 0, 0, H_pango_layout_get_wrap, pl_gu);
+  s7_define_typed_function(sc, "pango_layout_set_indent", lg_pango_layout_set_indent, 2, 0, 0, H_pango_layout_set_indent, pl_tui);
+  s7_define_typed_function(sc, "pango_layout_get_indent", lg_pango_layout_get_indent, 1, 0, 0, H_pango_layout_get_indent, pl_iu);
+  s7_define_typed_function(sc, "pango_layout_set_spacing", lg_pango_layout_set_spacing, 2, 0, 0, H_pango_layout_set_spacing, pl_tui);
+  s7_define_typed_function(sc, "pango_layout_get_spacing", lg_pango_layout_get_spacing, 1, 0, 0, H_pango_layout_get_spacing, pl_iu);
+  s7_define_typed_function(sc, "pango_layout_set_justify", lg_pango_layout_set_justify, 2, 0, 0, H_pango_layout_set_justify, pl_tub);
+  s7_define_typed_function(sc, "pango_layout_get_justify", lg_pango_layout_get_justify, 1, 0, 0, H_pango_layout_get_justify, pl_bu);
+  s7_define_typed_function(sc, "pango_layout_set_alignment", lg_pango_layout_set_alignment, 2, 0, 0, H_pango_layout_set_alignment, pl_tug);
+  s7_define_typed_function(sc, "pango_layout_get_alignment", lg_pango_layout_get_alignment, 1, 0, 0, H_pango_layout_get_alignment, pl_gu);
+  s7_define_typed_function(sc, "pango_layout_set_tabs", lg_pango_layout_set_tabs, 2, 0, 0, H_pango_layout_set_tabs, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_get_tabs", lg_pango_layout_get_tabs, 1, 0, 0, H_pango_layout_get_tabs, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_set_single_paragraph_mode", lg_pango_layout_set_single_paragraph_mode, 2, 0, 0, H_pango_layout_set_single_paragraph_mode, pl_tub);
+  s7_define_typed_function(sc, "pango_layout_get_single_paragraph_mode", lg_pango_layout_get_single_paragraph_mode, 1, 0, 0, H_pango_layout_get_single_paragraph_mode, pl_bu);
+  s7_define_typed_function(sc, "pango_layout_context_changed", lg_pango_layout_context_changed, 1, 0, 0, H_pango_layout_context_changed, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_get_log_attrs", lg_pango_layout_get_log_attrs, 1, 2, 0, H_pango_layout_get_log_attrs, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_index_to_pos", lg_pango_layout_index_to_pos, 3, 0, 0, H_pango_layout_index_to_pos, pl_tuiu);
+  s7_define_typed_function(sc, "pango_layout_get_cursor_pos", lg_pango_layout_get_cursor_pos, 4, 0, 0, H_pango_layout_get_cursor_pos, pl_tuiu);
+  s7_define_typed_function(sc, "pango_layout_move_cursor_visually", lg_pango_layout_move_cursor_visually, 7, 0, 0, H_pango_layout_move_cursor_visually, pl_tubiiiu);
+  s7_define_typed_function(sc, "pango_layout_xy_to_index", lg_pango_layout_xy_to_index, 3, 2, 0, H_pango_layout_xy_to_index, pl_puiiu);
+  s7_define_typed_function(sc, "pango_layout_get_extents", lg_pango_layout_get_extents, 3, 0, 0, H_pango_layout_get_extents, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_get_pixel_extents", lg_pango_layout_get_pixel_extents, 3, 0, 0, H_pango_layout_get_pixel_extents, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_get_size", lg_pango_layout_get_size, 1, 2, 0, H_pango_layout_get_size, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_get_pixel_size", lg_pango_layout_get_pixel_size, 1, 2, 0, H_pango_layout_get_pixel_size, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_get_line_count", lg_pango_layout_get_line_count, 1, 0, 0, H_pango_layout_get_line_count, pl_iu);
+  s7_define_typed_function(sc, "pango_layout_get_line", lg_pango_layout_get_line, 2, 0, 0, H_pango_layout_get_line, pl_pui);
+  s7_define_typed_function(sc, "pango_layout_get_lines", lg_pango_layout_get_lines, 1, 0, 0, H_pango_layout_get_lines, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_line_unref", lg_pango_layout_line_unref, 1, 0, 0, H_pango_layout_line_unref, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_line_x_to_index", lg_pango_layout_line_x_to_index, 2, 2, 0, H_pango_layout_line_x_to_index, pl_puiu);
+  s7_define_typed_function(sc, "pango_layout_line_index_to_x", lg_pango_layout_line_index_to_x, 3, 1, 0, H_pango_layout_line_index_to_x, pl_puibu);
+  s7_define_typed_function(sc, "pango_layout_line_get_x_ranges", lg_pango_layout_line_get_x_ranges, 3, 2, 0, H_pango_layout_line_get_x_ranges, pl_puiiu);
+  s7_define_typed_function(sc, "pango_layout_line_get_extents", lg_pango_layout_line_get_extents, 3, 0, 0, H_pango_layout_line_get_extents, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_line_get_pixel_extents", lg_pango_layout_line_get_pixel_extents, 3, 0, 0, H_pango_layout_line_get_pixel_extents, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_get_iter", lg_pango_layout_get_iter, 1, 0, 0, H_pango_layout_get_iter, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_iter_free", lg_pango_layout_iter_free, 1, 0, 0, H_pango_layout_iter_free, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_iter_get_index", lg_pango_layout_iter_get_index, 1, 0, 0, H_pango_layout_iter_get_index, pl_iu);
+  s7_define_typed_function(sc, "pango_layout_iter_get_run", lg_pango_layout_iter_get_run, 1, 0, 0, H_pango_layout_iter_get_run, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_iter_get_line", lg_pango_layout_iter_get_line, 1, 0, 0, H_pango_layout_iter_get_line, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_iter_at_last_line", lg_pango_layout_iter_at_last_line, 1, 0, 0, H_pango_layout_iter_at_last_line, pl_bu);
+  s7_define_typed_function(sc, "pango_layout_iter_next_char", lg_pango_layout_iter_next_char, 1, 0, 0, H_pango_layout_iter_next_char, pl_bu);
+  s7_define_typed_function(sc, "pango_layout_iter_next_cluster", lg_pango_layout_iter_next_cluster, 1, 0, 0, H_pango_layout_iter_next_cluster, pl_bu);
+  s7_define_typed_function(sc, "pango_layout_iter_next_run", lg_pango_layout_iter_next_run, 1, 0, 0, H_pango_layout_iter_next_run, pl_bu);
+  s7_define_typed_function(sc, "pango_layout_iter_next_line", lg_pango_layout_iter_next_line, 1, 0, 0, H_pango_layout_iter_next_line, pl_bu);
+  s7_define_typed_function(sc, "pango_layout_iter_get_char_extents", lg_pango_layout_iter_get_char_extents, 2, 0, 0, H_pango_layout_iter_get_char_extents, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_iter_get_cluster_extents", lg_pango_layout_iter_get_cluster_extents, 3, 0, 0, H_pango_layout_iter_get_cluster_extents, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_iter_get_run_extents", lg_pango_layout_iter_get_run_extents, 3, 0, 0, H_pango_layout_iter_get_run_extents, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_iter_get_line_extents", lg_pango_layout_iter_get_line_extents, 3, 0, 0, H_pango_layout_iter_get_line_extents, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_iter_get_line_yrange", lg_pango_layout_iter_get_line_yrange, 1, 2, 0, H_pango_layout_iter_get_line_yrange, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_iter_get_layout_extents", lg_pango_layout_iter_get_layout_extents, 3, 0, 0, H_pango_layout_iter_get_layout_extents, pl_tu);
+  s7_define_typed_function(sc, "pango_layout_iter_get_baseline", lg_pango_layout_iter_get_baseline, 1, 0, 0, H_pango_layout_iter_get_baseline, pl_iu);
+  s7_define_typed_function(sc, "pango_language_from_string", lg_pango_language_from_string, 1, 0, 0, H_pango_language_from_string, pl_ps);
+  s7_define_typed_function(sc, "pango_language_matches", lg_pango_language_matches, 2, 0, 0, H_pango_language_matches, pl_bus);
+  s7_define_typed_function(sc, "G_OBJECT_TYPE", lg_G_OBJECT_TYPE, 1, 0, 0, H_G_OBJECT_TYPE, pl_iu);
+  s7_define_typed_function(sc, "gtk_tree_model_get_string_from_iter", lg_gtk_tree_model_get_string_from_iter, 2, 0, 0, H_gtk_tree_model_get_string_from_iter, pl_su);
+  s7_define_typed_function(sc, "gtk_tree_model_sort_iter_is_valid", lg_gtk_tree_model_sort_iter_is_valid, 2, 0, 0, H_gtk_tree_model_sort_iter_is_valid, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_expand_to_path", lg_gtk_tree_view_expand_to_path, 2, 0, 0, H_gtk_tree_view_expand_to_path, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_selection_get_selected_rows", lg_gtk_tree_selection_get_selected_rows, 2, 0, 0, H_gtk_tree_selection_get_selected_rows, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_selection_count_selected_rows", lg_gtk_tree_selection_count_selected_rows, 1, 0, 0, H_gtk_tree_selection_count_selected_rows, pl_iu);
+  s7_define_typed_function(sc, "gtk_menu_shell_select_first", lg_gtk_menu_shell_select_first, 2, 0, 0, H_gtk_menu_shell_select_first, pl_tub);
+  s7_define_typed_function(sc, "gtk_notebook_get_n_pages", lg_gtk_notebook_get_n_pages, 1, 0, 0, H_gtk_notebook_get_n_pages, pl_iu);
+  s7_define_typed_function(sc, "gtk_list_store_reorder", lg_gtk_list_store_reorder, 2, 0, 0, H_gtk_list_store_reorder, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_store_swap", lg_gtk_list_store_swap, 3, 0, 0, H_gtk_list_store_swap, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_store_move_after", lg_gtk_list_store_move_after, 3, 0, 0, H_gtk_list_store_move_after, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_store_move_before", lg_gtk_list_store_move_before, 3, 0, 0, H_gtk_list_store_move_before, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_store_reorder", lg_gtk_tree_store_reorder, 3, 0, 0, H_gtk_tree_store_reorder, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_store_swap", lg_gtk_tree_store_swap, 3, 0, 0, H_gtk_tree_store_swap, pl_tu);
+  s7_define_typed_function(sc, "gdk_display_open", lg_gdk_display_open, 1, 0, 0, H_gdk_display_open, pl_ps);
+  s7_define_typed_function(sc, "gdk_display_get_name", lg_gdk_display_get_name, 1, 0, 0, H_gdk_display_get_name, pl_su);
+  s7_define_typed_function(sc, "gdk_display_get_default_screen", lg_gdk_display_get_default_screen, 1, 0, 0, H_gdk_display_get_default_screen, pl_pu);
+  s7_define_typed_function(sc, "gdk_display_beep", lg_gdk_display_beep, 1, 0, 0, H_gdk_display_beep, pl_tu);
+  s7_define_typed_function(sc, "gdk_display_sync", lg_gdk_display_sync, 1, 0, 0, H_gdk_display_sync, pl_tu);
+  s7_define_typed_function(sc, "gdk_display_close", lg_gdk_display_close, 1, 0, 0, H_gdk_display_close, pl_tu);
+  s7_define_typed_function(sc, "gdk_display_get_event", lg_gdk_display_get_event, 1, 0, 0, H_gdk_display_get_event, pl_pu);
+  s7_define_typed_function(sc, "gdk_display_peek_event", lg_gdk_display_peek_event, 1, 0, 0, H_gdk_display_peek_event, pl_pu);
+  s7_define_typed_function(sc, "gdk_display_put_event", lg_gdk_display_put_event, 2, 0, 0, H_gdk_display_put_event, pl_tu);
+  s7_define_typed_function(sc, "gdk_display_set_double_click_time", lg_gdk_display_set_double_click_time, 2, 0, 0, H_gdk_display_set_double_click_time, pl_tui);
+  s7_define_typed_function(sc, "gdk_display_get_default", lg_gdk_display_get_default, 0, 0, 0, H_gdk_display_get_default, pl_p);
+  s7_define_typed_function(sc, "gdk_screen_get_root_window", lg_gdk_screen_get_root_window, 1, 0, 0, H_gdk_screen_get_root_window, pl_pu);
+  s7_define_typed_function(sc, "gdk_screen_get_display", lg_gdk_screen_get_display, 1, 0, 0, H_gdk_screen_get_display, pl_pu);
+  s7_define_typed_function(sc, "gdk_screen_get_toplevel_windows", lg_gdk_screen_get_toplevel_windows, 1, 0, 0, H_gdk_screen_get_toplevel_windows, pl_pu);
+  s7_define_typed_function(sc, "gdk_screen_get_default", lg_gdk_screen_get_default, 0, 0, 0, H_gdk_screen_get_default, pl_p);
+  s7_define_typed_function(sc, "gtk_clipboard_get_for_display", lg_gtk_clipboard_get_for_display, 2, 0, 0, H_gtk_clipboard_get_for_display, pl_put);
+  s7_define_typed_function(sc, "gtk_clipboard_get_display", lg_gtk_clipboard_get_display, 1, 0, 0, H_gtk_clipboard_get_display, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_get_screen", lg_gtk_widget_get_screen, 1, 0, 0, H_gtk_widget_get_screen, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_has_screen", lg_gtk_widget_has_screen, 1, 0, 0, H_gtk_widget_has_screen, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_get_display", lg_gtk_widget_get_display, 1, 0, 0, H_gtk_widget_get_display, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_get_clipboard", lg_gtk_widget_get_clipboard, 2, 0, 0, H_gtk_widget_get_clipboard, pl_put);
+  s7_define_typed_function(sc, "g_list_free", lg_g_list_free, 1, 0, 0, H_g_list_free, pl_tu);
+  s7_define_typed_function(sc, "g_list_reverse", lg_g_list_reverse, 1, 0, 0, H_g_list_reverse, pl_pu);
+  s7_define_typed_function(sc, "g_list_copy", lg_g_list_copy, 1, 0, 0, H_g_list_copy, pl_pu);
+  s7_define_typed_function(sc, "g_list_last", lg_g_list_last, 1, 0, 0, H_g_list_last, pl_pu);
+  s7_define_typed_function(sc, "g_list_first", lg_g_list_first, 1, 0, 0, H_g_list_first, pl_pu);
+  s7_define_typed_function(sc, "g_list_length", lg_g_list_length, 1, 0, 0, H_g_list_length, pl_iu);
+  s7_define_typed_function(sc, "g_free", lg_g_free, 1, 0, 0, H_g_free, pl_t);
+  s7_define_typed_function(sc, "g_list_remove_link", lg_g_list_remove_link, 2, 0, 0, H_g_list_remove_link, pl_pu);
+  s7_define_typed_function(sc, "g_object_get_data", lg_g_object_get_data, 2, 0, 0, H_g_object_get_data, pl_tus);
+  s7_define_typed_function(sc, "g_object_set_data", lg_g_object_set_data, 3, 0, 0, H_g_object_set_data, pl_tust);
+  s7_define_typed_function(sc, "gdk_cursor_new_from_pixbuf", lg_gdk_cursor_new_from_pixbuf, 4, 0, 0, H_gdk_cursor_new_from_pixbuf, pl_puui);
+  s7_define_typed_function(sc, "gdk_display_flush", lg_gdk_display_flush, 1, 0, 0, H_gdk_display_flush, pl_tu);
+  s7_define_typed_function(sc, "gdk_display_supports_cursor_alpha", lg_gdk_display_supports_cursor_alpha, 1, 0, 0, H_gdk_display_supports_cursor_alpha, pl_bu);
+  s7_define_typed_function(sc, "gdk_display_supports_cursor_color", lg_gdk_display_supports_cursor_color, 1, 0, 0, H_gdk_display_supports_cursor_color, pl_bu);
+  s7_define_typed_function(sc, "gdk_display_get_default_cursor_size", lg_gdk_display_get_default_cursor_size, 1, 0, 0, H_gdk_display_get_default_cursor_size, pl_iu);
+  s7_define_typed_function(sc, "gdk_display_get_maximal_cursor_size", lg_gdk_display_get_maximal_cursor_size, 1, 2, 0, H_gdk_display_get_maximal_cursor_size, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_set_keep_above", lg_gdk_window_set_keep_above, 2, 0, 0, H_gdk_window_set_keep_above, pl_tub);
+  s7_define_typed_function(sc, "gdk_window_set_keep_below", lg_gdk_window_set_keep_below, 2, 0, 0, H_gdk_window_set_keep_below, pl_tub);
+  s7_define_typed_function(sc, "gtk_button_box_get_child_secondary", lg_gtk_button_box_get_child_secondary, 2, 0, 0, H_gtk_button_box_get_child_secondary, pl_bu);
+  s7_define_typed_function(sc, "gtk_calendar_set_display_options", lg_gtk_calendar_set_display_options, 2, 0, 0, H_gtk_calendar_set_display_options, pl_tug);
+  s7_define_typed_function(sc, "gtk_calendar_get_display_options", lg_gtk_calendar_get_display_options, 1, 0, 0, H_gtk_calendar_get_display_options, pl_gu);
+  s7_define_typed_function(sc, "gtk_check_menu_item_set_draw_as_radio", lg_gtk_check_menu_item_set_draw_as_radio, 2, 0, 0, H_gtk_check_menu_item_set_draw_as_radio, pl_tub);
+  s7_define_typed_function(sc, "gtk_check_menu_item_get_draw_as_radio", lg_gtk_check_menu_item_get_draw_as_radio, 1, 0, 0, H_gtk_check_menu_item_get_draw_as_radio, pl_bu);
+  s7_define_typed_function(sc, "gtk_entry_set_completion", lg_gtk_entry_set_completion, 2, 0, 0, H_gtk_entry_set_completion, pl_tu);
+  s7_define_typed_function(sc, "gtk_entry_get_completion", lg_gtk_entry_get_completion, 1, 0, 0, H_gtk_entry_get_completion, pl_pu);
+  s7_define_typed_function(sc, "gtk_event_box_get_visible_window", lg_gtk_event_box_get_visible_window, 1, 0, 0, H_gtk_event_box_get_visible_window, pl_bu);
+  s7_define_typed_function(sc, "gtk_event_box_set_visible_window", lg_gtk_event_box_set_visible_window, 2, 0, 0, H_gtk_event_box_set_visible_window, pl_tub);
+  s7_define_typed_function(sc, "gtk_event_box_get_above_child", lg_gtk_event_box_get_above_child, 1, 0, 0, H_gtk_event_box_get_above_child, pl_bu);
+  s7_define_typed_function(sc, "gtk_event_box_set_above_child", lg_gtk_event_box_set_above_child, 2, 0, 0, H_gtk_event_box_set_above_child, pl_tub);
+  s7_define_typed_function(sc, "gtk_menu_attach", lg_gtk_menu_attach, 6, 0, 0, H_gtk_menu_attach, pl_tuui);
+  s7_define_typed_function(sc, "gtk_text_buffer_select_range", lg_gtk_text_buffer_select_range, 3, 0, 0, H_gtk_text_buffer_select_range, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_view_set_overwrite", lg_gtk_text_view_set_overwrite, 2, 0, 0, H_gtk_text_view_set_overwrite, pl_tub);
+  s7_define_typed_function(sc, "gtk_text_view_get_overwrite", lg_gtk_text_view_get_overwrite, 1, 0, 0, H_gtk_text_view_get_overwrite, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_view_set_accepts_tab", lg_gtk_text_view_set_accepts_tab, 2, 0, 0, H_gtk_text_view_set_accepts_tab, pl_tub);
+  s7_define_typed_function(sc, "gtk_text_view_get_accepts_tab", lg_gtk_text_view_get_accepts_tab, 1, 0, 0, H_gtk_text_view_get_accepts_tab, pl_bu);
+  s7_define_typed_function(sc, "gtk_toolbar_insert", lg_gtk_toolbar_insert, 3, 0, 0, H_gtk_toolbar_insert, pl_tuui);
+  s7_define_typed_function(sc, "gtk_toolbar_get_item_index", lg_gtk_toolbar_get_item_index, 2, 0, 0, H_gtk_toolbar_get_item_index, pl_iu);
+  s7_define_typed_function(sc, "gtk_toolbar_get_n_items", lg_gtk_toolbar_get_n_items, 1, 0, 0, H_gtk_toolbar_get_n_items, pl_iu);
+  s7_define_typed_function(sc, "gtk_toolbar_get_nth_item", lg_gtk_toolbar_get_nth_item, 2, 0, 0, H_gtk_toolbar_get_nth_item, pl_pui);
+  s7_define_typed_function(sc, "gtk_toolbar_set_show_arrow", lg_gtk_toolbar_set_show_arrow, 2, 0, 0, H_gtk_toolbar_set_show_arrow, pl_tub);
+  s7_define_typed_function(sc, "gtk_toolbar_get_show_arrow", lg_gtk_toolbar_get_show_arrow, 1, 0, 0, H_gtk_toolbar_get_show_arrow, pl_bu);
+  s7_define_typed_function(sc, "gtk_toolbar_get_drop_index", lg_gtk_toolbar_get_drop_index, 3, 0, 0, H_gtk_toolbar_get_drop_index, pl_iui);
+  s7_define_typed_function(sc, "gtk_tree_view_column_set_expand", lg_gtk_tree_view_column_set_expand, 2, 0, 0, H_gtk_tree_view_column_set_expand, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_expand", lg_gtk_tree_view_column_get_expand, 1, 0, 0, H_gtk_tree_view_column_get_expand, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_queue_resize_no_redraw", lg_gtk_widget_queue_resize_no_redraw, 1, 0, 0, H_gtk_widget_queue_resize_no_redraw, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_set_default_icon", lg_gtk_window_set_default_icon, 1, 0, 0, H_gtk_window_set_default_icon, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_set_keep_above", lg_gtk_window_set_keep_above, 2, 0, 0, H_gtk_window_set_keep_above, pl_tub);
+  s7_define_typed_function(sc, "gtk_window_set_keep_below", lg_gtk_window_set_keep_below, 2, 0, 0, H_gtk_window_set_keep_below, pl_tub);
+  s7_define_typed_function(sc, "gtk_file_chooser_dialog_new", lg_gtk_file_chooser_dialog_new, 3, 1, 0, H_gtk_file_chooser_dialog_new, pl_psugt);
+  s7_define_typed_function(sc, "gtk_file_chooser_widget_new", lg_gtk_file_chooser_widget_new, 1, 0, 0, H_gtk_file_chooser_widget_new, pl_pg);
+  s7_define_typed_function(sc, "gtk_tree_model_filter_new", lg_gtk_tree_model_filter_new, 2, 0, 0, H_gtk_tree_model_filter_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_model_filter_set_visible_column", lg_gtk_tree_model_filter_set_visible_column, 2, 0, 0, H_gtk_tree_model_filter_set_visible_column, pl_tui);
+  s7_define_typed_function(sc, "gtk_tree_model_filter_get_model", lg_gtk_tree_model_filter_get_model, 1, 0, 0, H_gtk_tree_model_filter_get_model, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_model_filter_convert_iter_to_child_iter", lg_gtk_tree_model_filter_convert_iter_to_child_iter, 3, 0, 0, H_gtk_tree_model_filter_convert_iter_to_child_iter, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_model_filter_convert_child_path_to_path", lg_gtk_tree_model_filter_convert_child_path_to_path, 2, 0, 0, H_gtk_tree_model_filter_convert_child_path_to_path, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_model_filter_convert_path_to_child_path", lg_gtk_tree_model_filter_convert_path_to_child_path, 2, 0, 0, H_gtk_tree_model_filter_convert_path_to_child_path, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_model_filter_refilter", lg_gtk_tree_model_filter_refilter, 1, 0, 0, H_gtk_tree_model_filter_refilter, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_model_filter_clear_cache", lg_gtk_tree_model_filter_clear_cache, 1, 0, 0, H_gtk_tree_model_filter_clear_cache, pl_tu);
+  s7_define_typed_function(sc, "gtk_combo_box_new", lg_gtk_combo_box_new, 0, 0, 0, H_gtk_combo_box_new, pl_p);
+  s7_define_typed_function(sc, "gtk_combo_box_new_with_model", lg_gtk_combo_box_new_with_model, 1, 0, 0, H_gtk_combo_box_new_with_model, pl_pu);
+  s7_define_typed_function(sc, "gtk_combo_box_set_model", lg_gtk_combo_box_set_model, 2, 0, 0, H_gtk_combo_box_set_model, pl_tu);
+  s7_define_typed_function(sc, "gtk_combo_box_set_wrap_width", lg_gtk_combo_box_set_wrap_width, 2, 0, 0, H_gtk_combo_box_set_wrap_width, pl_tui);
+  s7_define_typed_function(sc, "gtk_combo_box_set_row_span_column", lg_gtk_combo_box_set_row_span_column, 2, 0, 0, H_gtk_combo_box_set_row_span_column, pl_tui);
+  s7_define_typed_function(sc, "gtk_combo_box_set_column_span_column", lg_gtk_combo_box_set_column_span_column, 2, 0, 0, H_gtk_combo_box_set_column_span_column, pl_tui);
+  s7_define_typed_function(sc, "gtk_combo_box_get_active", lg_gtk_combo_box_get_active, 1, 0, 0, H_gtk_combo_box_get_active, pl_iu);
+  s7_define_typed_function(sc, "gtk_combo_box_set_active", lg_gtk_combo_box_set_active, 2, 0, 0, H_gtk_combo_box_set_active, pl_tui);
+  s7_define_typed_function(sc, "gtk_combo_box_get_active_iter", lg_gtk_combo_box_get_active_iter, 2, 0, 0, H_gtk_combo_box_get_active_iter, pl_bu);
+  s7_define_typed_function(sc, "gtk_combo_box_set_active_iter", lg_gtk_combo_box_set_active_iter, 2, 0, 0, H_gtk_combo_box_set_active_iter, pl_tu);
+  s7_define_typed_function(sc, "gtk_combo_box_get_model", lg_gtk_combo_box_get_model, 1, 0, 0, H_gtk_combo_box_get_model, pl_pu);
+  s7_define_typed_function(sc, "gtk_expander_new", lg_gtk_expander_new, 1, 0, 0, H_gtk_expander_new, pl_ps);
+  s7_define_typed_function(sc, "gtk_expander_new_with_mnemonic", lg_gtk_expander_new_with_mnemonic, 1, 0, 0, H_gtk_expander_new_with_mnemonic, pl_ps);
+  s7_define_typed_function(sc, "gtk_expander_set_expanded", lg_gtk_expander_set_expanded, 2, 0, 0, H_gtk_expander_set_expanded, pl_tub);
+  s7_define_typed_function(sc, "gtk_expander_get_expanded", lg_gtk_expander_get_expanded, 1, 0, 0, H_gtk_expander_get_expanded, pl_bu);
+  s7_define_typed_function(sc, "gtk_expander_set_label", lg_gtk_expander_set_label, 2, 0, 0, H_gtk_expander_set_label, pl_tus);
+  s7_define_typed_function(sc, "gtk_expander_get_label", lg_gtk_expander_get_label, 1, 0, 0, H_gtk_expander_get_label, pl_su);
+  s7_define_typed_function(sc, "gtk_expander_set_use_underline", lg_gtk_expander_set_use_underline, 2, 0, 0, H_gtk_expander_set_use_underline, pl_tub);
+  s7_define_typed_function(sc, "gtk_expander_get_use_underline", lg_gtk_expander_get_use_underline, 1, 0, 0, H_gtk_expander_get_use_underline, pl_bu);
+  s7_define_typed_function(sc, "gtk_expander_set_label_widget", lg_gtk_expander_set_label_widget, 2, 0, 0, H_gtk_expander_set_label_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_expander_get_label_widget", lg_gtk_expander_get_label_widget, 1, 0, 0, H_gtk_expander_get_label_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_expander_set_use_markup", lg_gtk_expander_set_use_markup, 2, 0, 0, H_gtk_expander_set_use_markup, pl_tub);
+  s7_define_typed_function(sc, "gtk_expander_get_use_markup", lg_gtk_expander_get_use_markup, 1, 0, 0, H_gtk_expander_get_use_markup, pl_bu);
+  s7_define_typed_function(sc, "gtk_font_button_new", lg_gtk_font_button_new, 0, 0, 0, H_gtk_font_button_new, pl_p);
+  s7_define_typed_function(sc, "gtk_font_button_new_with_font", lg_gtk_font_button_new_with_font, 1, 0, 0, H_gtk_font_button_new_with_font, pl_ps);
+  s7_define_typed_function(sc, "gtk_font_button_get_title", lg_gtk_font_button_get_title, 1, 0, 0, H_gtk_font_button_get_title, pl_su);
+  s7_define_typed_function(sc, "gtk_font_button_set_title", lg_gtk_font_button_set_title, 2, 0, 0, H_gtk_font_button_set_title, pl_tus);
+  s7_define_typed_function(sc, "gtk_font_button_get_use_font", lg_gtk_font_button_get_use_font, 1, 0, 0, H_gtk_font_button_get_use_font, pl_bu);
+  s7_define_typed_function(sc, "gtk_font_button_set_use_font", lg_gtk_font_button_set_use_font, 2, 0, 0, H_gtk_font_button_set_use_font, pl_tub);
+  s7_define_typed_function(sc, "gtk_font_button_get_use_size", lg_gtk_font_button_get_use_size, 1, 0, 0, H_gtk_font_button_get_use_size, pl_bu);
+  s7_define_typed_function(sc, "gtk_font_button_set_use_size", lg_gtk_font_button_set_use_size, 2, 0, 0, H_gtk_font_button_set_use_size, pl_tub);
+  s7_define_typed_function(sc, "gtk_font_button_get_font_name", lg_gtk_font_button_get_font_name, 1, 0, 0, H_gtk_font_button_get_font_name, pl_su);
+  s7_define_typed_function(sc, "gtk_font_button_set_font_name", lg_gtk_font_button_set_font_name, 2, 0, 0, H_gtk_font_button_set_font_name, pl_bus);
+  s7_define_typed_function(sc, "gtk_font_button_get_show_style", lg_gtk_font_button_get_show_style, 1, 0, 0, H_gtk_font_button_get_show_style, pl_bu);
+  s7_define_typed_function(sc, "gtk_font_button_set_show_style", lg_gtk_font_button_set_show_style, 2, 0, 0, H_gtk_font_button_set_show_style, pl_tub);
+  s7_define_typed_function(sc, "gtk_font_button_get_show_size", lg_gtk_font_button_get_show_size, 1, 0, 0, H_gtk_font_button_get_show_size, pl_bu);
+  s7_define_typed_function(sc, "gtk_font_button_set_show_size", lg_gtk_font_button_set_show_size, 2, 0, 0, H_gtk_font_button_set_show_size, pl_tub);
+  s7_define_typed_function(sc, "gtk_entry_completion_new", lg_gtk_entry_completion_new, 0, 0, 0, H_gtk_entry_completion_new, pl_p);
+  s7_define_typed_function(sc, "gtk_entry_completion_get_entry", lg_gtk_entry_completion_get_entry, 1, 0, 0, H_gtk_entry_completion_get_entry, pl_pu);
+  s7_define_typed_function(sc, "gtk_entry_completion_set_model", lg_gtk_entry_completion_set_model, 2, 0, 0, H_gtk_entry_completion_set_model, pl_tu);
+  s7_define_typed_function(sc, "gtk_entry_completion_get_model", lg_gtk_entry_completion_get_model, 1, 0, 0, H_gtk_entry_completion_get_model, pl_pu);
+  s7_define_typed_function(sc, "gtk_entry_completion_set_match_func", lg_gtk_entry_completion_set_match_func, 4, 0, 0, H_gtk_entry_completion_set_match_func, pl_tut);
+  s7_define_typed_function(sc, "gtk_entry_completion_set_minimum_key_length", lg_gtk_entry_completion_set_minimum_key_length, 2, 0, 0, H_gtk_entry_completion_set_minimum_key_length, pl_tui);
+  s7_define_typed_function(sc, "gtk_entry_completion_get_minimum_key_length", lg_gtk_entry_completion_get_minimum_key_length, 1, 0, 0, H_gtk_entry_completion_get_minimum_key_length, pl_iu);
+  s7_define_typed_function(sc, "gtk_entry_completion_complete", lg_gtk_entry_completion_complete, 1, 0, 0, H_gtk_entry_completion_complete, pl_tu);
+  s7_define_typed_function(sc, "gtk_entry_completion_insert_action_text", lg_gtk_entry_completion_insert_action_text, 3, 0, 0, H_gtk_entry_completion_insert_action_text, pl_tuis);
+  s7_define_typed_function(sc, "gtk_entry_completion_insert_action_markup", lg_gtk_entry_completion_insert_action_markup, 3, 0, 0, H_gtk_entry_completion_insert_action_markup, pl_tuis);
+  s7_define_typed_function(sc, "gtk_entry_completion_delete_action", lg_gtk_entry_completion_delete_action, 2, 0, 0, H_gtk_entry_completion_delete_action, pl_tui);
+  s7_define_typed_function(sc, "gtk_entry_completion_set_text_column", lg_gtk_entry_completion_set_text_column, 2, 0, 0, H_gtk_entry_completion_set_text_column, pl_tui);
+  s7_define_typed_function(sc, "gtk_radio_tool_button_new", lg_gtk_radio_tool_button_new, 1, 0, 0, H_gtk_radio_tool_button_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_radio_tool_button_new_from_widget", lg_gtk_radio_tool_button_new_from_widget, 1, 0, 0, H_gtk_radio_tool_button_new_from_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_radio_tool_button_get_group", lg_gtk_radio_tool_button_get_group, 1, 0, 0, H_gtk_radio_tool_button_get_group, pl_pu);
+  s7_define_typed_function(sc, "gtk_radio_tool_button_set_group", lg_gtk_radio_tool_button_set_group, 2, 0, 0, H_gtk_radio_tool_button_set_group, pl_tu);
+  s7_define_typed_function(sc, "gtk_separator_tool_item_new", lg_gtk_separator_tool_item_new, 0, 0, 0, H_gtk_separator_tool_item_new, pl_p);
+  s7_define_typed_function(sc, "gtk_separator_tool_item_get_draw", lg_gtk_separator_tool_item_get_draw, 1, 0, 0, H_gtk_separator_tool_item_get_draw, pl_bu);
+  s7_define_typed_function(sc, "gtk_separator_tool_item_set_draw", lg_gtk_separator_tool_item_set_draw, 2, 0, 0, H_gtk_separator_tool_item_set_draw, pl_tub);
+  s7_define_typed_function(sc, "gtk_toggle_tool_button_new", lg_gtk_toggle_tool_button_new, 0, 0, 0, H_gtk_toggle_tool_button_new, pl_p);
+  s7_define_typed_function(sc, "gtk_toggle_tool_button_set_active", lg_gtk_toggle_tool_button_set_active, 2, 0, 0, H_gtk_toggle_tool_button_set_active, pl_tub);
+  s7_define_typed_function(sc, "gtk_toggle_tool_button_get_active", lg_gtk_toggle_tool_button_get_active, 1, 0, 0, H_gtk_toggle_tool_button_get_active, pl_bu);
+  s7_define_typed_function(sc, "g_timeout_add_full", lg_g_timeout_add_full, 5, 0, 0, H_g_timeout_add_full, pl_iiit);
+  s7_define_typed_function(sc, "g_timeout_add", lg_g_timeout_add, 2, 1, 0, H_g_timeout_add, pl_iit);
+  s7_define_typed_function(sc, "g_idle_add", lg_g_idle_add, 1, 1, 0, H_g_idle_add, pl_it);
+  s7_define_typed_function(sc, "g_idle_add_full", lg_g_idle_add_full, 4, 0, 0, H_g_idle_add_full, pl_iit);
+  s7_define_typed_function(sc, "g_idle_remove_by_data", lg_g_idle_remove_by_data, 1, 0, 0, H_g_idle_remove_by_data, pl_bt);
+  s7_define_typed_function(sc, "g_source_remove", lg_g_source_remove, 1, 0, 0, H_g_source_remove, pl_bi);
+  s7_define_typed_function(sc, "gtk_file_filter_new", lg_gtk_file_filter_new, 0, 0, 0, H_gtk_file_filter_new, pl_p);
+  s7_define_typed_function(sc, "gtk_file_filter_set_name", lg_gtk_file_filter_set_name, 2, 0, 0, H_gtk_file_filter_set_name, pl_tus);
+  s7_define_typed_function(sc, "gtk_file_filter_get_name", lg_gtk_file_filter_get_name, 1, 0, 0, H_gtk_file_filter_get_name, pl_su);
+  s7_define_typed_function(sc, "gtk_file_filter_add_mime_type", lg_gtk_file_filter_add_mime_type, 2, 0, 0, H_gtk_file_filter_add_mime_type, pl_tus);
+  s7_define_typed_function(sc, "gtk_file_filter_add_pattern", lg_gtk_file_filter_add_pattern, 2, 0, 0, H_gtk_file_filter_add_pattern, pl_tus);
+  s7_define_typed_function(sc, "gtk_file_filter_add_custom", lg_gtk_file_filter_add_custom, 5, 0, 0, H_gtk_file_filter_add_custom, pl_tugt);
+  s7_define_typed_function(sc, "gtk_file_filter_get_needed", lg_gtk_file_filter_get_needed, 1, 0, 0, H_gtk_file_filter_get_needed, pl_gu);
+  s7_define_typed_function(sc, "gtk_file_filter_filter", lg_gtk_file_filter_filter, 2, 0, 0, H_gtk_file_filter_filter, pl_bu);
+  s7_define_typed_function(sc, "gtk_cell_layout_pack_start", lg_gtk_cell_layout_pack_start, 3, 0, 0, H_gtk_cell_layout_pack_start, pl_tuub);
+  s7_define_typed_function(sc, "gtk_cell_layout_pack_end", lg_gtk_cell_layout_pack_end, 3, 0, 0, H_gtk_cell_layout_pack_end, pl_tuub);
+  s7_define_typed_function(sc, "gtk_cell_layout_clear", lg_gtk_cell_layout_clear, 1, 0, 0, H_gtk_cell_layout_clear, pl_tu);
+  s7_define_typed_function(sc, "gtk_cell_layout_set_attributes", lg_gtk_cell_layout_set_attributes, 3, 0, 0, H_gtk_cell_layout_set_attributes, pl_tuut);
+  s7_define_typed_function(sc, "gtk_cell_layout_add_attribute", lg_gtk_cell_layout_add_attribute, 4, 0, 0, H_gtk_cell_layout_add_attribute, pl_tuusi);
+  s7_define_typed_function(sc, "gtk_cell_layout_set_cell_data_func", lg_gtk_cell_layout_set_cell_data_func, 5, 0, 0, H_gtk_cell_layout_set_cell_data_func, pl_tuut);
+  s7_define_typed_function(sc, "gtk_cell_layout_clear_attributes", lg_gtk_cell_layout_clear_attributes, 2, 0, 0, H_gtk_cell_layout_clear_attributes, pl_tu);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_action", lg_gtk_file_chooser_set_action, 2, 0, 0, H_gtk_file_chooser_set_action, pl_tug);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_action", lg_gtk_file_chooser_get_action, 1, 0, 0, H_gtk_file_chooser_get_action, pl_gu);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_local_only", lg_gtk_file_chooser_set_local_only, 2, 0, 0, H_gtk_file_chooser_set_local_only, pl_tub);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_local_only", lg_gtk_file_chooser_get_local_only, 1, 0, 0, H_gtk_file_chooser_get_local_only, pl_bu);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_select_multiple", lg_gtk_file_chooser_set_select_multiple, 2, 0, 0, H_gtk_file_chooser_set_select_multiple, pl_tub);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_select_multiple", lg_gtk_file_chooser_get_select_multiple, 1, 0, 0, H_gtk_file_chooser_get_select_multiple, pl_bu);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_current_name", lg_gtk_file_chooser_set_current_name, 2, 0, 0, H_gtk_file_chooser_set_current_name, pl_tus);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_filename", lg_gtk_file_chooser_get_filename, 1, 0, 0, H_gtk_file_chooser_get_filename, pl_su);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_filename", lg_gtk_file_chooser_set_filename, 2, 0, 0, H_gtk_file_chooser_set_filename, pl_bus);
+  s7_define_typed_function(sc, "gtk_file_chooser_select_filename", lg_gtk_file_chooser_select_filename, 2, 0, 0, H_gtk_file_chooser_select_filename, pl_bus);
+  s7_define_typed_function(sc, "gtk_file_chooser_unselect_filename", lg_gtk_file_chooser_unselect_filename, 2, 0, 0, H_gtk_file_chooser_unselect_filename, pl_tus);
+  s7_define_typed_function(sc, "gtk_file_chooser_select_all", lg_gtk_file_chooser_select_all, 1, 0, 0, H_gtk_file_chooser_select_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_file_chooser_unselect_all", lg_gtk_file_chooser_unselect_all, 1, 0, 0, H_gtk_file_chooser_unselect_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_filenames", lg_gtk_file_chooser_get_filenames, 1, 0, 0, H_gtk_file_chooser_get_filenames, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_current_folder", lg_gtk_file_chooser_set_current_folder, 2, 0, 0, H_gtk_file_chooser_set_current_folder, pl_bus);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_current_folder", lg_gtk_file_chooser_get_current_folder, 1, 0, 0, H_gtk_file_chooser_get_current_folder, pl_su);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_uri", lg_gtk_file_chooser_get_uri, 1, 0, 0, H_gtk_file_chooser_get_uri, pl_su);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_uri", lg_gtk_file_chooser_set_uri, 2, 0, 0, H_gtk_file_chooser_set_uri, pl_bus);
+  s7_define_typed_function(sc, "gtk_file_chooser_select_uri", lg_gtk_file_chooser_select_uri, 2, 0, 0, H_gtk_file_chooser_select_uri, pl_bus);
+  s7_define_typed_function(sc, "gtk_file_chooser_unselect_uri", lg_gtk_file_chooser_unselect_uri, 2, 0, 0, H_gtk_file_chooser_unselect_uri, pl_tus);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_uris", lg_gtk_file_chooser_get_uris, 1, 0, 0, H_gtk_file_chooser_get_uris, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_current_folder_uri", lg_gtk_file_chooser_set_current_folder_uri, 2, 0, 0, H_gtk_file_chooser_set_current_folder_uri, pl_bus);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_current_folder_uri", lg_gtk_file_chooser_get_current_folder_uri, 1, 0, 0, H_gtk_file_chooser_get_current_folder_uri, pl_su);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_preview_widget", lg_gtk_file_chooser_set_preview_widget, 2, 0, 0, H_gtk_file_chooser_set_preview_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_preview_widget", lg_gtk_file_chooser_get_preview_widget, 1, 0, 0, H_gtk_file_chooser_get_preview_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_preview_widget_active", lg_gtk_file_chooser_set_preview_widget_active, 2, 0, 0, H_gtk_file_chooser_set_preview_widget_active, pl_tub);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_preview_widget_active", lg_gtk_file_chooser_get_preview_widget_active, 1, 0, 0, H_gtk_file_chooser_get_preview_widget_active, pl_bu);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_preview_filename", lg_gtk_file_chooser_get_preview_filename, 1, 0, 0, H_gtk_file_chooser_get_preview_filename, pl_su);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_preview_uri", lg_gtk_file_chooser_get_preview_uri, 1, 0, 0, H_gtk_file_chooser_get_preview_uri, pl_su);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_extra_widget", lg_gtk_file_chooser_set_extra_widget, 2, 0, 0, H_gtk_file_chooser_set_extra_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_extra_widget", lg_gtk_file_chooser_get_extra_widget, 1, 0, 0, H_gtk_file_chooser_get_extra_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_add_filter", lg_gtk_file_chooser_add_filter, 2, 0, 0, H_gtk_file_chooser_add_filter, pl_tu);
+  s7_define_typed_function(sc, "gtk_file_chooser_remove_filter", lg_gtk_file_chooser_remove_filter, 2, 0, 0, H_gtk_file_chooser_remove_filter, pl_tu);
+  s7_define_typed_function(sc, "gtk_file_chooser_list_filters", lg_gtk_file_chooser_list_filters, 1, 0, 0, H_gtk_file_chooser_list_filters, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_filter", lg_gtk_file_chooser_set_filter, 2, 0, 0, H_gtk_file_chooser_set_filter, pl_tu);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_filter", lg_gtk_file_chooser_get_filter, 1, 0, 0, H_gtk_file_chooser_get_filter, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_add_shortcut_folder", lg_gtk_file_chooser_add_shortcut_folder, 2, 1, 0, H_gtk_file_chooser_add_shortcut_folder, pl_pusu);
+  s7_define_typed_function(sc, "gtk_file_chooser_remove_shortcut_folder", lg_gtk_file_chooser_remove_shortcut_folder, 2, 1, 0, H_gtk_file_chooser_remove_shortcut_folder, pl_pusu);
+  s7_define_typed_function(sc, "gtk_file_chooser_list_shortcut_folders", lg_gtk_file_chooser_list_shortcut_folders, 1, 0, 0, H_gtk_file_chooser_list_shortcut_folders, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_add_shortcut_folder_uri", lg_gtk_file_chooser_add_shortcut_folder_uri, 2, 1, 0, H_gtk_file_chooser_add_shortcut_folder_uri, pl_pusu);
+  s7_define_typed_function(sc, "gtk_file_chooser_remove_shortcut_folder_uri", lg_gtk_file_chooser_remove_shortcut_folder_uri, 2, 1, 0, H_gtk_file_chooser_remove_shortcut_folder_uri, pl_pusu);
+  s7_define_typed_function(sc, "gtk_file_chooser_list_shortcut_folder_uris", lg_gtk_file_chooser_list_shortcut_folder_uris, 1, 0, 0, H_gtk_file_chooser_list_shortcut_folder_uris, pl_pu);
+  s7_define_typed_function(sc, "gtk_icon_theme_new", lg_gtk_icon_theme_new, 0, 0, 0, H_gtk_icon_theme_new, pl_p);
+  s7_define_typed_function(sc, "gtk_icon_theme_get_default", lg_gtk_icon_theme_get_default, 0, 0, 0, H_gtk_icon_theme_get_default, pl_p);
+  s7_define_typed_function(sc, "gtk_icon_theme_get_for_screen", lg_gtk_icon_theme_get_for_screen, 1, 0, 0, H_gtk_icon_theme_get_for_screen, pl_pu);
+  s7_define_typed_function(sc, "gtk_icon_theme_set_screen", lg_gtk_icon_theme_set_screen, 2, 0, 0, H_gtk_icon_theme_set_screen, pl_tu);
+  s7_define_typed_function(sc, "gtk_icon_theme_get_search_path", lg_gtk_icon_theme_get_search_path, 1, 2, 0, H_gtk_icon_theme_get_search_path, pl_pu);
+  s7_define_typed_function(sc, "gtk_icon_theme_append_search_path", lg_gtk_icon_theme_append_search_path, 2, 0, 0, H_gtk_icon_theme_append_search_path, pl_tus);
+  s7_define_typed_function(sc, "gtk_icon_theme_prepend_search_path", lg_gtk_icon_theme_prepend_search_path, 2, 0, 0, H_gtk_icon_theme_prepend_search_path, pl_tus);
+  s7_define_typed_function(sc, "gtk_icon_theme_set_custom_theme", lg_gtk_icon_theme_set_custom_theme, 2, 0, 0, H_gtk_icon_theme_set_custom_theme, pl_tus);
+  s7_define_typed_function(sc, "gtk_icon_theme_has_icon", lg_gtk_icon_theme_has_icon, 2, 0, 0, H_gtk_icon_theme_has_icon, pl_bus);
+  s7_define_typed_function(sc, "gtk_icon_theme_lookup_icon", lg_gtk_icon_theme_lookup_icon, 4, 0, 0, H_gtk_icon_theme_lookup_icon, pl_pusig);
+  s7_define_typed_function(sc, "gtk_icon_theme_load_icon", lg_gtk_icon_theme_load_icon, 4, 1, 0, H_gtk_icon_theme_load_icon, pl_pusigu);
+  s7_define_typed_function(sc, "gtk_icon_theme_list_icons", lg_gtk_icon_theme_list_icons, 2, 0, 0, H_gtk_icon_theme_list_icons, pl_pus);
+  s7_define_typed_function(sc, "gtk_icon_theme_get_example_icon_name", lg_gtk_icon_theme_get_example_icon_name, 1, 0, 0, H_gtk_icon_theme_get_example_icon_name, pl_su);
+  s7_define_typed_function(sc, "gtk_icon_theme_rescan_if_needed", lg_gtk_icon_theme_rescan_if_needed, 1, 0, 0, H_gtk_icon_theme_rescan_if_needed, pl_bu);
+  s7_define_typed_function(sc, "gtk_icon_info_get_base_size", lg_gtk_icon_info_get_base_size, 1, 0, 0, H_gtk_icon_info_get_base_size, pl_iu);
+  s7_define_typed_function(sc, "gtk_icon_info_get_filename", lg_gtk_icon_info_get_filename, 1, 0, 0, H_gtk_icon_info_get_filename, pl_su);
+  s7_define_typed_function(sc, "gtk_icon_info_load_icon", lg_gtk_icon_info_load_icon, 1, 1, 0, H_gtk_icon_info_load_icon, pl_pu);
+  s7_define_typed_function(sc, "gtk_tool_button_new", lg_gtk_tool_button_new, 2, 0, 0, H_gtk_tool_button_new, pl_pus);
+  s7_define_typed_function(sc, "gtk_tool_button_set_label", lg_gtk_tool_button_set_label, 2, 0, 0, H_gtk_tool_button_set_label, pl_tus);
+  s7_define_typed_function(sc, "gtk_tool_button_get_label", lg_gtk_tool_button_get_label, 1, 0, 0, H_gtk_tool_button_get_label, pl_su);
+  s7_define_typed_function(sc, "gtk_tool_button_set_use_underline", lg_gtk_tool_button_set_use_underline, 2, 0, 0, H_gtk_tool_button_set_use_underline, pl_tub);
+  s7_define_typed_function(sc, "gtk_tool_button_get_use_underline", lg_gtk_tool_button_get_use_underline, 1, 0, 0, H_gtk_tool_button_get_use_underline, pl_bu);
+  s7_define_typed_function(sc, "gtk_tool_button_set_icon_widget", lg_gtk_tool_button_set_icon_widget, 2, 0, 0, H_gtk_tool_button_set_icon_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_tool_button_get_icon_widget", lg_gtk_tool_button_get_icon_widget, 1, 0, 0, H_gtk_tool_button_get_icon_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_tool_button_set_label_widget", lg_gtk_tool_button_set_label_widget, 2, 0, 0, H_gtk_tool_button_set_label_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_tool_button_get_label_widget", lg_gtk_tool_button_get_label_widget, 1, 0, 0, H_gtk_tool_button_get_label_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_tool_item_new", lg_gtk_tool_item_new, 0, 0, 0, H_gtk_tool_item_new, pl_p);
+  s7_define_typed_function(sc, "gtk_tool_item_set_homogeneous", lg_gtk_tool_item_set_homogeneous, 2, 0, 0, H_gtk_tool_item_set_homogeneous, pl_tub);
+  s7_define_typed_function(sc, "gtk_tool_item_get_homogeneous", lg_gtk_tool_item_get_homogeneous, 1, 0, 0, H_gtk_tool_item_get_homogeneous, pl_bu);
+  s7_define_typed_function(sc, "gtk_tool_item_set_expand", lg_gtk_tool_item_set_expand, 2, 0, 0, H_gtk_tool_item_set_expand, pl_tub);
+  s7_define_typed_function(sc, "gtk_tool_item_get_expand", lg_gtk_tool_item_get_expand, 1, 0, 0, H_gtk_tool_item_get_expand, pl_bu);
+  s7_define_typed_function(sc, "gtk_tool_item_set_visible_horizontal", lg_gtk_tool_item_set_visible_horizontal, 2, 0, 0, H_gtk_tool_item_set_visible_horizontal, pl_tub);
+  s7_define_typed_function(sc, "gtk_tool_item_get_visible_horizontal", lg_gtk_tool_item_get_visible_horizontal, 1, 0, 0, H_gtk_tool_item_get_visible_horizontal, pl_bu);
+  s7_define_typed_function(sc, "gtk_tool_item_set_visible_vertical", lg_gtk_tool_item_set_visible_vertical, 2, 0, 0, H_gtk_tool_item_set_visible_vertical, pl_tub);
+  s7_define_typed_function(sc, "gtk_tool_item_get_visible_vertical", lg_gtk_tool_item_get_visible_vertical, 1, 0, 0, H_gtk_tool_item_get_visible_vertical, pl_bu);
+  s7_define_typed_function(sc, "gtk_tool_item_get_is_important", lg_gtk_tool_item_get_is_important, 1, 0, 0, H_gtk_tool_item_get_is_important, pl_bu);
+  s7_define_typed_function(sc, "gtk_tool_item_set_is_important", lg_gtk_tool_item_set_is_important, 2, 0, 0, H_gtk_tool_item_set_is_important, pl_tub);
+  s7_define_typed_function(sc, "gtk_tool_item_get_orientation", lg_gtk_tool_item_get_orientation, 1, 0, 0, H_gtk_tool_item_get_orientation, pl_gu);
+  s7_define_typed_function(sc, "gtk_tool_item_get_toolbar_style", lg_gtk_tool_item_get_toolbar_style, 1, 0, 0, H_gtk_tool_item_get_toolbar_style, pl_gu);
+  s7_define_typed_function(sc, "gtk_tool_item_retrieve_proxy_menu_item", lg_gtk_tool_item_retrieve_proxy_menu_item, 1, 0, 0, H_gtk_tool_item_retrieve_proxy_menu_item, pl_pu);
+  s7_define_typed_function(sc, "gtk_tool_item_get_proxy_menu_item", lg_gtk_tool_item_get_proxy_menu_item, 2, 0, 0, H_gtk_tool_item_get_proxy_menu_item, pl_pus);
+  s7_define_typed_function(sc, "gtk_tool_item_set_proxy_menu_item", lg_gtk_tool_item_set_proxy_menu_item, 3, 0, 0, H_gtk_tool_item_set_proxy_menu_item, pl_tusu);
+  s7_define_typed_function(sc, "gtk_list_store_remove", lg_gtk_list_store_remove, 2, 0, 0, H_gtk_list_store_remove, pl_bu);
+  s7_define_typed_function(sc, "gdk_display_set_double_click_distance", lg_gdk_display_set_double_click_distance, 2, 0, 0, H_gdk_display_set_double_click_distance, pl_tui);
+  s7_define_typed_function(sc, "gdk_display_get_default_group", lg_gdk_display_get_default_group, 1, 0, 0, H_gdk_display_get_default_group, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_get_group", lg_gdk_window_get_group, 1, 0, 0, H_gdk_window_get_group, pl_pu);
+  s7_define_typed_function(sc, "gtk_cell_layout_reorder", lg_gtk_cell_layout_reorder, 3, 0, 0, H_gtk_cell_layout_reorder, pl_tuui);
+  s7_define_typed_function(sc, "gtk_clipboard_request_targets", lg_gtk_clipboard_request_targets, 2, 1, 0, H_gtk_clipboard_request_targets, pl_tut);
+  s7_define_typed_function(sc, "gtk_clipboard_wait_for_targets", lg_gtk_clipboard_wait_for_targets, 1, 2, 0, H_gtk_clipboard_wait_for_targets, pl_pu);
+  s7_define_typed_function(sc, "gtk_menu_shell_cancel", lg_gtk_menu_shell_cancel, 1, 0, 0, H_gtk_menu_shell_cancel, pl_tu);
+  s7_define_typed_function(sc, "gtk_paned_get_child1", lg_gtk_paned_get_child1, 1, 0, 0, H_gtk_paned_get_child1, pl_pu);
+  s7_define_typed_function(sc, "gtk_paned_get_child2", lg_gtk_paned_get_child2, 1, 0, 0, H_gtk_paned_get_child2, pl_pu);
+  s7_define_typed_function(sc, "gtk_window_set_accept_focus", lg_gtk_window_set_accept_focus, 2, 0, 0, H_gtk_window_set_accept_focus, pl_tub);
+  s7_define_typed_function(sc, "gtk_window_get_accept_focus", lg_gtk_window_get_accept_focus, 1, 0, 0, H_gtk_window_get_accept_focus, pl_bu);
+  s7_define_typed_function(sc, "g_list_nth_data", lg_g_list_nth_data, 2, 0, 0, H_g_list_nth_data, pl_tui);
+  s7_define_typed_function(sc, "gtk_accel_map_get", lg_gtk_accel_map_get, 0, 0, 0, H_gtk_accel_map_get, pl_p);
+  s7_define_typed_function(sc, "gtk_combo_box_popup", lg_gtk_combo_box_popup, 1, 0, 0, H_gtk_combo_box_popup, pl_tu);
+  s7_define_typed_function(sc, "gtk_combo_box_popdown", lg_gtk_combo_box_popdown, 1, 0, 0, H_gtk_combo_box_popdown, pl_tu);
+  s7_define_typed_function(sc, "gtk_radio_menu_item_new_from_widget", lg_gtk_radio_menu_item_new_from_widget, 1, 0, 0, H_gtk_radio_menu_item_new_from_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_radio_menu_item_new_with_mnemonic_from_widget", lg_gtk_radio_menu_item_new_with_mnemonic_from_widget, 2, 0, 0, H_gtk_radio_menu_item_new_with_mnemonic_from_widget, pl_pus);
+  s7_define_typed_function(sc, "gtk_radio_menu_item_new_with_label_from_widget", lg_gtk_radio_menu_item_new_with_label_from_widget, 2, 0, 0, H_gtk_radio_menu_item_new_with_label_from_widget, pl_pus);
+  s7_define_typed_function(sc, "gtk_scale_get_layout", lg_gtk_scale_get_layout, 1, 0, 0, H_gtk_scale_get_layout, pl_pu);
+  s7_define_typed_function(sc, "gtk_scale_get_layout_offsets", lg_gtk_scale_get_layout_offsets, 1, 2, 0, H_gtk_scale_get_layout_offsets, pl_pu);
+  s7_define_typed_function(sc, "gtk_drag_source_get_target_list", lg_gtk_drag_source_get_target_list, 1, 0, 0, H_gtk_drag_source_get_target_list, pl_pu);
+  s7_define_typed_function(sc, "gtk_drag_source_set_target_list", lg_gtk_drag_source_set_target_list, 2, 0, 0, H_gtk_drag_source_set_target_list, pl_tu);
+  s7_define_typed_function(sc, "gtk_entry_set_alignment", lg_gtk_entry_set_alignment, 2, 0, 0, H_gtk_entry_set_alignment, pl_tur);
+  s7_define_typed_function(sc, "gtk_entry_get_alignment", lg_gtk_entry_get_alignment, 1, 0, 0, H_gtk_entry_get_alignment, pl_du);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_use_preview_label", lg_gtk_file_chooser_set_use_preview_label, 2, 0, 0, H_gtk_file_chooser_set_use_preview_label, pl_tub);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_use_preview_label", lg_gtk_file_chooser_get_use_preview_label, 1, 0, 0, H_gtk_file_chooser_get_use_preview_label, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_list_mnemonic_labels", lg_gtk_widget_list_mnemonic_labels, 1, 0, 0, H_gtk_widget_list_mnemonic_labels, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_add_mnemonic_label", lg_gtk_widget_add_mnemonic_label, 2, 0, 0, H_gtk_widget_add_mnemonic_label, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_remove_mnemonic_label", lg_gtk_widget_remove_mnemonic_label, 2, 0, 0, H_gtk_widget_remove_mnemonic_label, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_activate_key", lg_gtk_window_activate_key, 2, 0, 0, H_gtk_window_activate_key, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_propagate_key_event", lg_gtk_window_propagate_key_event, 2, 0, 0, H_gtk_window_propagate_key_event, pl_bu);
+  s7_define_typed_function(sc, "g_quark_from_string", lg_g_quark_from_string, 1, 0, 0, H_g_quark_from_string, pl_is);
+  s7_define_typed_function(sc, "g_quark_to_string", lg_g_quark_to_string, 1, 0, 0, H_g_quark_to_string, pl_si);
+  s7_define_typed_function(sc, "gtk_cell_view_new", lg_gtk_cell_view_new, 0, 0, 0, H_gtk_cell_view_new, pl_p);
+  s7_define_typed_function(sc, "gtk_cell_view_new_with_text", lg_gtk_cell_view_new_with_text, 1, 0, 0, H_gtk_cell_view_new_with_text, pl_ps);
+  s7_define_typed_function(sc, "gtk_cell_view_new_with_markup", lg_gtk_cell_view_new_with_markup, 1, 0, 0, H_gtk_cell_view_new_with_markup, pl_ps);
+  s7_define_typed_function(sc, "gtk_cell_view_new_with_pixbuf", lg_gtk_cell_view_new_with_pixbuf, 1, 0, 0, H_gtk_cell_view_new_with_pixbuf, pl_pu);
+  s7_define_typed_function(sc, "gtk_cell_view_set_model", lg_gtk_cell_view_set_model, 2, 0, 0, H_gtk_cell_view_set_model, pl_tu);
+  s7_define_typed_function(sc, "gtk_cell_view_set_displayed_row", lg_gtk_cell_view_set_displayed_row, 2, 0, 0, H_gtk_cell_view_set_displayed_row, pl_tu);
+  s7_define_typed_function(sc, "gtk_cell_view_get_displayed_row", lg_gtk_cell_view_get_displayed_row, 1, 0, 0, H_gtk_cell_view_get_displayed_row, pl_pu);
+  s7_define_typed_function(sc, "gtk_combo_box_get_wrap_width", lg_gtk_combo_box_get_wrap_width, 1, 0, 0, H_gtk_combo_box_get_wrap_width, pl_iu);
+  s7_define_typed_function(sc, "gtk_combo_box_get_row_span_column", lg_gtk_combo_box_get_row_span_column, 1, 0, 0, H_gtk_combo_box_get_row_span_column, pl_iu);
+  s7_define_typed_function(sc, "gtk_combo_box_get_column_span_column", lg_gtk_combo_box_get_column_span_column, 1, 0, 0, H_gtk_combo_box_get_column_span_column, pl_iu);
+  s7_define_typed_function(sc, "gtk_drag_dest_add_text_targets", lg_gtk_drag_dest_add_text_targets, 1, 0, 0, H_gtk_drag_dest_add_text_targets, pl_tu);
+  s7_define_typed_function(sc, "gtk_drag_source_add_text_targets", lg_gtk_drag_source_add_text_targets, 1, 0, 0, H_gtk_drag_source_add_text_targets, pl_tu);
+  s7_define_typed_function(sc, "gtk_entry_completion_insert_prefix", lg_gtk_entry_completion_insert_prefix, 1, 0, 0, H_gtk_entry_completion_insert_prefix, pl_tu);
+  s7_define_typed_function(sc, "gtk_entry_completion_set_inline_completion", lg_gtk_entry_completion_set_inline_completion, 2, 0, 0, H_gtk_entry_completion_set_inline_completion, pl_tub);
+  s7_define_typed_function(sc, "gtk_entry_completion_get_inline_completion", lg_gtk_entry_completion_get_inline_completion, 1, 0, 0, H_gtk_entry_completion_get_inline_completion, pl_bu);
+  s7_define_typed_function(sc, "gtk_entry_completion_set_popup_completion", lg_gtk_entry_completion_set_popup_completion, 2, 0, 0, H_gtk_entry_completion_set_popup_completion, pl_tub);
+  s7_define_typed_function(sc, "gtk_entry_completion_get_popup_completion", lg_gtk_entry_completion_get_popup_completion, 1, 0, 0, H_gtk_entry_completion_get_popup_completion, pl_bu);
+  s7_define_typed_function(sc, "gtk_entry_completion_get_text_column", lg_gtk_entry_completion_get_text_column, 1, 0, 0, H_gtk_entry_completion_get_text_column, pl_iu);
+  s7_define_typed_function(sc, "gtk_icon_theme_get_icon_sizes", lg_gtk_icon_theme_get_icon_sizes, 2, 0, 0, H_gtk_icon_theme_get_icon_sizes, pl_pus);
+  s7_define_typed_function(sc, "gtk_menu_get_for_attach_widget", lg_gtk_menu_get_for_attach_widget, 1, 0, 0, H_gtk_menu_get_for_attach_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_fixed_height_mode", lg_gtk_tree_view_set_fixed_height_mode, 2, 0, 0, H_gtk_tree_view_set_fixed_height_mode, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_get_fixed_height_mode", lg_gtk_tree_view_get_fixed_height_mode, 1, 0, 0, H_gtk_tree_view_get_fixed_height_mode, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_hover_selection", lg_gtk_tree_view_set_hover_selection, 2, 0, 0, H_gtk_tree_view_set_hover_selection, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_get_hover_selection", lg_gtk_tree_view_get_hover_selection, 1, 0, 0, H_gtk_tree_view_get_hover_selection, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_row_separator_func", lg_gtk_tree_view_set_row_separator_func, 4, 0, 0, H_gtk_tree_view_set_row_separator_func, pl_tut);
+  s7_define_typed_function(sc, "gtk_window_set_focus_on_map", lg_gtk_window_set_focus_on_map, 2, 0, 0, H_gtk_window_set_focus_on_map, pl_tub);
+  s7_define_typed_function(sc, "gtk_window_get_focus_on_map", lg_gtk_window_get_focus_on_map, 1, 0, 0, H_gtk_window_get_focus_on_map, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_set_icon_name", lg_gtk_window_set_icon_name, 2, 0, 0, H_gtk_window_set_icon_name, pl_tus);
+  s7_define_typed_function(sc, "gtk_window_get_icon_name", lg_gtk_window_get_icon_name, 1, 0, 0, H_gtk_window_get_icon_name, pl_su);
+  s7_define_typed_function(sc, "gtk_window_set_default_icon_name", lg_gtk_window_set_default_icon_name, 1, 0, 0, H_gtk_window_set_default_icon_name, pl_ts);
+  s7_define_typed_function(sc, "gtk_about_dialog_new", lg_gtk_about_dialog_new, 0, 0, 0, H_gtk_about_dialog_new, pl_p);
+  s7_define_typed_function(sc, "gtk_about_dialog_get_version", lg_gtk_about_dialog_get_version, 1, 0, 0, H_gtk_about_dialog_get_version, pl_su);
+  s7_define_typed_function(sc, "gtk_about_dialog_set_version", lg_gtk_about_dialog_set_version, 2, 0, 0, H_gtk_about_dialog_set_version, pl_tus);
+  s7_define_typed_function(sc, "gtk_about_dialog_get_copyright", lg_gtk_about_dialog_get_copyright, 1, 0, 0, H_gtk_about_dialog_get_copyright, pl_su);
+  s7_define_typed_function(sc, "gtk_about_dialog_set_copyright", lg_gtk_about_dialog_set_copyright, 2, 0, 0, H_gtk_about_dialog_set_copyright, pl_tus);
+  s7_define_typed_function(sc, "gtk_about_dialog_get_comments", lg_gtk_about_dialog_get_comments, 1, 0, 0, H_gtk_about_dialog_get_comments, pl_su);
+  s7_define_typed_function(sc, "gtk_about_dialog_set_comments", lg_gtk_about_dialog_set_comments, 2, 0, 0, H_gtk_about_dialog_set_comments, pl_tus);
+  s7_define_typed_function(sc, "gtk_about_dialog_get_website", lg_gtk_about_dialog_get_website, 1, 0, 0, H_gtk_about_dialog_get_website, pl_su);
+  s7_define_typed_function(sc, "gtk_about_dialog_set_website", lg_gtk_about_dialog_set_website, 2, 0, 0, H_gtk_about_dialog_set_website, pl_tus);
+  s7_define_typed_function(sc, "gtk_about_dialog_get_website_label", lg_gtk_about_dialog_get_website_label, 1, 0, 0, H_gtk_about_dialog_get_website_label, pl_su);
+  s7_define_typed_function(sc, "gtk_about_dialog_set_website_label", lg_gtk_about_dialog_set_website_label, 2, 0, 0, H_gtk_about_dialog_set_website_label, pl_tus);
+  s7_define_typed_function(sc, "gtk_about_dialog_get_authors", lg_gtk_about_dialog_get_authors, 1, 0, 0, H_gtk_about_dialog_get_authors, pl_pu);
+  s7_define_typed_function(sc, "gtk_about_dialog_set_authors", lg_gtk_about_dialog_set_authors, 2, 0, 0, H_gtk_about_dialog_set_authors, pl_tu);
+  s7_define_typed_function(sc, "gtk_about_dialog_get_documenters", lg_gtk_about_dialog_get_documenters, 1, 0, 0, H_gtk_about_dialog_get_documenters, pl_pu);
+  s7_define_typed_function(sc, "gtk_about_dialog_set_documenters", lg_gtk_about_dialog_set_documenters, 2, 0, 0, H_gtk_about_dialog_set_documenters, pl_tu);
+  s7_define_typed_function(sc, "gtk_about_dialog_get_artists", lg_gtk_about_dialog_get_artists, 1, 0, 0, H_gtk_about_dialog_get_artists, pl_pu);
+  s7_define_typed_function(sc, "gtk_about_dialog_set_artists", lg_gtk_about_dialog_set_artists, 2, 0, 0, H_gtk_about_dialog_set_artists, pl_tu);
+  s7_define_typed_function(sc, "gtk_about_dialog_get_translator_credits", lg_gtk_about_dialog_get_translator_credits, 1, 0, 0, H_gtk_about_dialog_get_translator_credits, pl_su);
+  s7_define_typed_function(sc, "gtk_about_dialog_set_translator_credits", lg_gtk_about_dialog_set_translator_credits, 2, 0, 0, H_gtk_about_dialog_set_translator_credits, pl_tus);
+  s7_define_typed_function(sc, "gtk_about_dialog_get_logo", lg_gtk_about_dialog_get_logo, 1, 0, 0, H_gtk_about_dialog_get_logo, pl_pu);
+  s7_define_typed_function(sc, "gtk_about_dialog_set_logo", lg_gtk_about_dialog_set_logo, 2, 0, 0, H_gtk_about_dialog_set_logo, pl_tu);
+  s7_define_typed_function(sc, "gtk_about_dialog_get_program_name", lg_gtk_about_dialog_get_program_name, 1, 0, 0, H_gtk_about_dialog_get_program_name, pl_su);
+  s7_define_typed_function(sc, "gtk_about_dialog_set_program_name", lg_gtk_about_dialog_set_program_name, 2, 0, 0, H_gtk_about_dialog_set_program_name, pl_tus);
+  s7_define_typed_function(sc, "gtk_icon_view_new", lg_gtk_icon_view_new, 0, 0, 0, H_gtk_icon_view_new, pl_p);
+  s7_define_typed_function(sc, "gtk_icon_view_new_with_model", lg_gtk_icon_view_new_with_model, 1, 0, 0, H_gtk_icon_view_new_with_model, pl_pu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_model", lg_gtk_icon_view_set_model, 2, 0, 0, H_gtk_icon_view_set_model, pl_tu);
+  s7_define_typed_function(sc, "gtk_icon_view_get_model", lg_gtk_icon_view_get_model, 1, 0, 0, H_gtk_icon_view_get_model, pl_pu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_text_column", lg_gtk_icon_view_set_text_column, 2, 0, 0, H_gtk_icon_view_set_text_column, pl_tui);
+  s7_define_typed_function(sc, "gtk_icon_view_get_text_column", lg_gtk_icon_view_get_text_column, 1, 0, 0, H_gtk_icon_view_get_text_column, pl_iu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_markup_column", lg_gtk_icon_view_set_markup_column, 2, 0, 0, H_gtk_icon_view_set_markup_column, pl_tui);
+  s7_define_typed_function(sc, "gtk_icon_view_get_markup_column", lg_gtk_icon_view_get_markup_column, 1, 0, 0, H_gtk_icon_view_get_markup_column, pl_iu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_pixbuf_column", lg_gtk_icon_view_set_pixbuf_column, 2, 0, 0, H_gtk_icon_view_set_pixbuf_column, pl_tui);
+  s7_define_typed_function(sc, "gtk_icon_view_get_pixbuf_column", lg_gtk_icon_view_get_pixbuf_column, 1, 0, 0, H_gtk_icon_view_get_pixbuf_column, pl_iu);
+  s7_define_typed_function(sc, "gtk_icon_view_get_path_at_pos", lg_gtk_icon_view_get_path_at_pos, 3, 0, 0, H_gtk_icon_view_get_path_at_pos, pl_pui);
+  s7_define_typed_function(sc, "gtk_icon_view_selected_foreach", lg_gtk_icon_view_selected_foreach, 2, 1, 0, H_gtk_icon_view_selected_foreach, pl_tut);
+  s7_define_typed_function(sc, "gtk_icon_view_set_selection_mode", lg_gtk_icon_view_set_selection_mode, 2, 0, 0, H_gtk_icon_view_set_selection_mode, pl_tug);
+  s7_define_typed_function(sc, "gtk_icon_view_get_selection_mode", lg_gtk_icon_view_get_selection_mode, 1, 0, 0, H_gtk_icon_view_get_selection_mode, pl_gu);
+  s7_define_typed_function(sc, "gtk_icon_view_select_path", lg_gtk_icon_view_select_path, 2, 0, 0, H_gtk_icon_view_select_path, pl_tu);
+  s7_define_typed_function(sc, "gtk_icon_view_unselect_path", lg_gtk_icon_view_unselect_path, 2, 0, 0, H_gtk_icon_view_unselect_path, pl_tu);
+  s7_define_typed_function(sc, "gtk_icon_view_path_is_selected", lg_gtk_icon_view_path_is_selected, 2, 0, 0, H_gtk_icon_view_path_is_selected, pl_bu);
+  s7_define_typed_function(sc, "gtk_icon_view_get_selected_items", lg_gtk_icon_view_get_selected_items, 1, 0, 0, H_gtk_icon_view_get_selected_items, pl_pu);
+  s7_define_typed_function(sc, "gtk_icon_view_select_all", lg_gtk_icon_view_select_all, 1, 0, 0, H_gtk_icon_view_select_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_icon_view_unselect_all", lg_gtk_icon_view_unselect_all, 1, 0, 0, H_gtk_icon_view_unselect_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_icon_view_item_activated", lg_gtk_icon_view_item_activated, 2, 0, 0, H_gtk_icon_view_item_activated, pl_tu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_combo_new", lg_gtk_cell_renderer_combo_new, 0, 0, 0, H_gtk_cell_renderer_combo_new, pl_p);
+  s7_define_typed_function(sc, "gtk_cell_renderer_progress_new", lg_gtk_cell_renderer_progress_new, 0, 0, 0, H_gtk_cell_renderer_progress_new, pl_p);
+  s7_define_typed_function(sc, "gtk_combo_box_set_row_separator_func", lg_gtk_combo_box_set_row_separator_func, 4, 0, 0, H_gtk_combo_box_set_row_separator_func, pl_tut);
+  s7_define_typed_function(sc, "gtk_label_set_ellipsize", lg_gtk_label_set_ellipsize, 2, 0, 0, H_gtk_label_set_ellipsize, pl_tug);
+  s7_define_typed_function(sc, "gtk_label_get_ellipsize", lg_gtk_label_get_ellipsize, 1, 0, 0, H_gtk_label_get_ellipsize, pl_gu);
+  s7_define_typed_function(sc, "pango_attr_fallback_new", lg_pango_attr_fallback_new, 1, 0, 0, H_pango_attr_fallback_new, pl_pb);
+  s7_define_typed_function(sc, "pango_attr_letter_spacing_new", lg_pango_attr_letter_spacing_new, 1, 0, 0, H_pango_attr_letter_spacing_new, pl_pi);
+  s7_define_typed_function(sc, "pango_attr_list_filter", lg_pango_attr_list_filter, 3, 0, 0, H_pango_attr_list_filter, pl_put);
+  s7_define_typed_function(sc, "pango_attr_iterator_get_attrs", lg_pango_attr_iterator_get_attrs, 1, 0, 0, H_pango_attr_iterator_get_attrs, pl_pu);
+  s7_define_typed_function(sc, "pango_font_metrics_get_underline_position", lg_pango_font_metrics_get_underline_position, 1, 0, 0, H_pango_font_metrics_get_underline_position, pl_iu);
+  s7_define_typed_function(sc, "pango_font_metrics_get_underline_thickness", lg_pango_font_metrics_get_underline_thickness, 1, 0, 0, H_pango_font_metrics_get_underline_thickness, pl_iu);
+  s7_define_typed_function(sc, "pango_font_metrics_get_strikethrough_position", lg_pango_font_metrics_get_strikethrough_position, 1, 0, 0, H_pango_font_metrics_get_strikethrough_position, pl_iu);
+  s7_define_typed_function(sc, "pango_font_metrics_get_strikethrough_thickness", lg_pango_font_metrics_get_strikethrough_thickness, 1, 0, 0, H_pango_font_metrics_get_strikethrough_thickness, pl_iu);
+  s7_define_typed_function(sc, "pango_font_family_is_monospace", lg_pango_font_family_is_monospace, 1, 0, 0, H_pango_font_family_is_monospace, pl_bu);
+  s7_define_typed_function(sc, "pango_font_face_list_sizes", lg_pango_font_face_list_sizes, 1, 2, 0, H_pango_font_face_list_sizes, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_set_auto_dir", lg_pango_layout_set_auto_dir, 2, 0, 0, H_pango_layout_set_auto_dir, pl_tub);
+  s7_define_typed_function(sc, "pango_layout_get_auto_dir", lg_pango_layout_get_auto_dir, 1, 0, 0, H_pango_layout_get_auto_dir, pl_bu);
+  s7_define_typed_function(sc, "pango_script_for_unichar", lg_pango_script_for_unichar, 1, 0, 0, H_pango_script_for_unichar, pl_gi);
+  s7_define_typed_function(sc, "pango_script_iter_new", lg_pango_script_iter_new, 2, 0, 0, H_pango_script_iter_new, pl_psi);
+  s7_define_typed_function(sc, "pango_script_iter_get_range", lg_pango_script_iter_get_range, 1, 3, 0, H_pango_script_iter_get_range, pl_pu);
+  s7_define_typed_function(sc, "pango_script_iter_next", lg_pango_script_iter_next, 1, 0, 0, H_pango_script_iter_next, pl_bu);
+  s7_define_typed_function(sc, "pango_script_iter_free", lg_pango_script_iter_free, 1, 0, 0, H_pango_script_iter_free, pl_tu);
+  s7_define_typed_function(sc, "gtk_file_chooser_button_new_with_dialog", lg_gtk_file_chooser_button_new_with_dialog, 1, 0, 0, H_gtk_file_chooser_button_new_with_dialog, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_button_get_title", lg_gtk_file_chooser_button_get_title, 1, 0, 0, H_gtk_file_chooser_button_get_title, pl_su);
+  s7_define_typed_function(sc, "gtk_file_chooser_button_set_title", lg_gtk_file_chooser_button_set_title, 2, 0, 0, H_gtk_file_chooser_button_set_title, pl_tus);
+  s7_define_typed_function(sc, "gdk_drag_drop_succeeded", lg_gdk_drag_drop_succeeded, 1, 0, 0, H_gdk_drag_drop_succeeded, pl_bu);
+  s7_define_typed_function(sc, "gtk_entry_layout_index_to_text_index", lg_gtk_entry_layout_index_to_text_index, 2, 0, 0, H_gtk_entry_layout_index_to_text_index, pl_iui);
+  s7_define_typed_function(sc, "gtk_entry_text_index_to_layout_index", lg_gtk_entry_text_index_to_layout_index, 2, 0, 0, H_gtk_entry_text_index_to_layout_index, pl_iui);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_show_hidden", lg_gtk_file_chooser_set_show_hidden, 2, 0, 0, H_gtk_file_chooser_set_show_hidden, pl_tub);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_show_hidden", lg_gtk_file_chooser_get_show_hidden, 1, 0, 0, H_gtk_file_chooser_get_show_hidden, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_hover_expand", lg_gtk_tree_view_set_hover_expand, 2, 0, 0, H_gtk_tree_view_set_hover_expand, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_get_hover_expand", lg_gtk_tree_view_get_hover_expand, 1, 0, 0, H_gtk_tree_view_get_hover_expand, pl_bu);
+  s7_define_typed_function(sc, "gtk_tool_item_rebuild_menu", lg_gtk_tool_item_rebuild_menu, 1, 0, 0, H_gtk_tool_item_rebuild_menu, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_tool_button_new", lg_gtk_menu_tool_button_new, 2, 0, 0, H_gtk_menu_tool_button_new, pl_pus);
+  s7_define_typed_function(sc, "gtk_menu_tool_button_set_menu", lg_gtk_menu_tool_button_set_menu, 2, 0, 0, H_gtk_menu_tool_button_set_menu, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_tool_button_get_menu", lg_gtk_menu_tool_button_get_menu, 1, 0, 0, H_gtk_menu_tool_button_get_menu, pl_pu);
+  s7_define_typed_function(sc, "gdk_display_supports_clipboard_persistence", lg_gdk_display_supports_clipboard_persistence, 1, 0, 0, H_gdk_display_supports_clipboard_persistence, pl_bu);
+  s7_define_typed_function(sc, "gtk_about_dialog_get_logo_icon_name", lg_gtk_about_dialog_get_logo_icon_name, 1, 0, 0, H_gtk_about_dialog_get_logo_icon_name, pl_su);
+  s7_define_typed_function(sc, "gtk_about_dialog_set_logo_icon_name", lg_gtk_about_dialog_set_logo_icon_name, 2, 0, 0, H_gtk_about_dialog_set_logo_icon_name, pl_tus);
+  s7_define_typed_function(sc, "gtk_accelerator_get_label", lg_gtk_accelerator_get_label, 2, 0, 0, H_gtk_accelerator_get_label, pl_sig);
+  s7_define_typed_function(sc, "gtk_clipboard_wait_is_target_available", lg_gtk_clipboard_wait_is_target_available, 2, 0, 0, H_gtk_clipboard_wait_is_target_available, pl_but);
+  s7_define_typed_function(sc, "gtk_clipboard_set_can_store", lg_gtk_clipboard_set_can_store, 3, 0, 0, H_gtk_clipboard_set_can_store, pl_tuui);
+  s7_define_typed_function(sc, "gtk_clipboard_store", lg_gtk_clipboard_store, 1, 0, 0, H_gtk_clipboard_store, pl_tu);
+  s7_define_typed_function(sc, "gtk_drag_dest_add_image_targets", lg_gtk_drag_dest_add_image_targets, 1, 0, 0, H_gtk_drag_dest_add_image_targets, pl_tu);
+  s7_define_typed_function(sc, "gtk_drag_dest_add_uri_targets", lg_gtk_drag_dest_add_uri_targets, 1, 0, 0, H_gtk_drag_dest_add_uri_targets, pl_tu);
+  s7_define_typed_function(sc, "gtk_drag_source_add_image_targets", lg_gtk_drag_source_add_image_targets, 1, 0, 0, H_gtk_drag_source_add_image_targets, pl_tu);
+  s7_define_typed_function(sc, "gtk_drag_source_add_uri_targets", lg_gtk_drag_source_add_uri_targets, 1, 0, 0, H_gtk_drag_source_add_uri_targets, pl_tu);
+  s7_define_typed_function(sc, "gtk_file_chooser_button_get_width_chars", lg_gtk_file_chooser_button_get_width_chars, 1, 0, 0, H_gtk_file_chooser_button_get_width_chars, pl_iu);
+  s7_define_typed_function(sc, "gtk_file_chooser_button_set_width_chars", lg_gtk_file_chooser_button_set_width_chars, 2, 0, 0, H_gtk_file_chooser_button_set_width_chars, pl_tui);
+  s7_define_typed_function(sc, "gtk_image_set_pixel_size", lg_gtk_image_set_pixel_size, 2, 0, 0, H_gtk_image_set_pixel_size, pl_tui);
+  s7_define_typed_function(sc, "gtk_image_get_pixel_size", lg_gtk_image_get_pixel_size, 1, 0, 0, H_gtk_image_get_pixel_size, pl_iu);
+  s7_define_typed_function(sc, "gtk_label_set_width_chars", lg_gtk_label_set_width_chars, 2, 0, 0, H_gtk_label_set_width_chars, pl_tui);
+  s7_define_typed_function(sc, "gtk_label_get_width_chars", lg_gtk_label_get_width_chars, 1, 0, 0, H_gtk_label_get_width_chars, pl_iu);
+  s7_define_typed_function(sc, "gtk_target_list_add_text_targets", lg_gtk_target_list_add_text_targets, 2, 0, 0, H_gtk_target_list_add_text_targets, pl_tui);
+  s7_define_typed_function(sc, "gtk_target_list_add_image_targets", lg_gtk_target_list_add_image_targets, 3, 0, 0, H_gtk_target_list_add_image_targets, pl_tuib);
+  s7_define_typed_function(sc, "gtk_target_list_add_uri_targets", lg_gtk_target_list_add_uri_targets, 2, 0, 0, H_gtk_target_list_add_uri_targets, pl_tui);
+  s7_define_typed_function(sc, "gtk_selection_data_set_pixbuf", lg_gtk_selection_data_set_pixbuf, 2, 0, 0, H_gtk_selection_data_set_pixbuf, pl_bu);
+  s7_define_typed_function(sc, "gtk_selection_data_get_pixbuf", lg_gtk_selection_data_get_pixbuf, 1, 0, 0, H_gtk_selection_data_get_pixbuf, pl_pu);
+  s7_define_typed_function(sc, "gtk_selection_data_set_uris", lg_gtk_selection_data_set_uris, 2, 0, 0, H_gtk_selection_data_set_uris, pl_bu);
+  s7_define_typed_function(sc, "gtk_selection_data_get_uris", lg_gtk_selection_data_get_uris, 1, 0, 0, H_gtk_selection_data_get_uris, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_buffer_backspace", lg_gtk_text_buffer_backspace, 4, 0, 0, H_gtk_text_buffer_backspace, pl_buub);
+  s7_define_typed_function(sc, "gtk_clipboard_set_image", lg_gtk_clipboard_set_image, 2, 0, 0, H_gtk_clipboard_set_image, pl_tu);
+  s7_define_typed_function(sc, "gtk_clipboard_request_image", lg_gtk_clipboard_request_image, 2, 1, 0, H_gtk_clipboard_request_image, pl_tut);
+  s7_define_typed_function(sc, "gtk_clipboard_wait_for_image", lg_gtk_clipboard_wait_for_image, 1, 0, 0, H_gtk_clipboard_wait_for_image, pl_pu);
+  s7_define_typed_function(sc, "gtk_clipboard_wait_is_image_available", lg_gtk_clipboard_wait_is_image_available, 1, 0, 0, H_gtk_clipboard_wait_is_image_available, pl_bu);
+  s7_define_typed_function(sc, "gtk_file_filter_add_pixbuf_formats", lg_gtk_file_filter_add_pixbuf_formats, 1, 0, 0, H_gtk_file_filter_add_pixbuf_formats, pl_tu);
+  s7_define_typed_function(sc, "gtk_label_set_single_line_mode", lg_gtk_label_set_single_line_mode, 2, 0, 0, H_gtk_label_set_single_line_mode, pl_tub);
+  s7_define_typed_function(sc, "gtk_label_get_single_line_mode", lg_gtk_label_get_single_line_mode, 1, 0, 0, H_gtk_label_get_single_line_mode, pl_bu);
+  s7_define_typed_function(sc, "gtk_progress_bar_set_ellipsize", lg_gtk_progress_bar_set_ellipsize, 2, 0, 0, H_gtk_progress_bar_set_ellipsize, pl_tug);
+  s7_define_typed_function(sc, "gtk_progress_bar_get_ellipsize", lg_gtk_progress_bar_get_ellipsize, 1, 0, 0, H_gtk_progress_bar_get_ellipsize, pl_gu);
+  s7_define_typed_function(sc, "gtk_selection_data_targets_include_image", lg_gtk_selection_data_targets_include_image, 2, 0, 0, H_gtk_selection_data_targets_include_image, pl_bub);
+  s7_define_typed_function(sc, "gtk_menu_set_screen", lg_gtk_menu_set_screen, 2, 0, 0, H_gtk_menu_set_screen, pl_tu);
+  s7_define_typed_function(sc, "pango_attr_underline_color_new", lg_pango_attr_underline_color_new, 3, 0, 0, H_pango_attr_underline_color_new, pl_pi);
+  s7_define_typed_function(sc, "pango_attr_strikethrough_color_new", lg_pango_attr_strikethrough_color_new, 3, 0, 0, H_pango_attr_strikethrough_color_new, pl_pi);
+  s7_define_typed_function(sc, "pango_renderer_draw_layout", lg_pango_renderer_draw_layout, 4, 0, 0, H_pango_renderer_draw_layout, pl_tuui);
+  s7_define_typed_function(sc, "pango_renderer_draw_layout_line", lg_pango_renderer_draw_layout_line, 4, 0, 0, H_pango_renderer_draw_layout_line, pl_tuui);
+  s7_define_typed_function(sc, "pango_renderer_draw_glyphs", lg_pango_renderer_draw_glyphs, 5, 0, 0, H_pango_renderer_draw_glyphs, pl_tuuui);
+  s7_define_typed_function(sc, "pango_renderer_draw_rectangle", lg_pango_renderer_draw_rectangle, 6, 0, 0, H_pango_renderer_draw_rectangle, pl_tugi);
+  s7_define_typed_function(sc, "pango_renderer_draw_error_underline", lg_pango_renderer_draw_error_underline, 5, 0, 0, H_pango_renderer_draw_error_underline, pl_tui);
+  s7_define_typed_function(sc, "pango_renderer_draw_trapezoid", lg_pango_renderer_draw_trapezoid, 0, 0, 1, H_pango_renderer_draw_trapezoid, pl_tugr);
+  s7_define_typed_function(sc, "pango_renderer_draw_glyph", lg_pango_renderer_draw_glyph, 5, 0, 0, H_pango_renderer_draw_glyph, pl_tuuir);
+  s7_define_typed_function(sc, "pango_renderer_activate", lg_pango_renderer_activate, 1, 0, 0, H_pango_renderer_activate, pl_tu);
+  s7_define_typed_function(sc, "pango_renderer_deactivate", lg_pango_renderer_deactivate, 1, 0, 0, H_pango_renderer_deactivate, pl_tu);
+  s7_define_typed_function(sc, "pango_renderer_part_changed", lg_pango_renderer_part_changed, 2, 0, 0, H_pango_renderer_part_changed, pl_tug);
+  s7_define_typed_function(sc, "pango_renderer_set_color", lg_pango_renderer_set_color, 3, 0, 0, H_pango_renderer_set_color, pl_tugu);
+  s7_define_typed_function(sc, "pango_renderer_get_color", lg_pango_renderer_get_color, 2, 0, 0, H_pango_renderer_get_color, pl_pug);
+  s7_define_typed_function(sc, "pango_renderer_set_matrix", lg_pango_renderer_set_matrix, 2, 0, 0, H_pango_renderer_set_matrix, pl_tu);
+  s7_define_typed_function(sc, "g_log_set_handler", lg_g_log_set_handler, 3, 1, 0, H_g_log_set_handler, pl_isgt);
+  s7_define_typed_function(sc, "g_log_remove_handler", lg_g_log_remove_handler, 2, 0, 0, H_g_log_remove_handler, pl_tsi);
+  s7_define_typed_function(sc, "gtk_cell_renderer_stop_editing", lg_gtk_cell_renderer_stop_editing, 2, 0, 0, H_gtk_cell_renderer_stop_editing, pl_tub);
+  s7_define_typed_function(sc, "gtk_file_chooser_button_new", lg_gtk_file_chooser_button_new, 2, 0, 0, H_gtk_file_chooser_button_new, pl_psg);
+  s7_define_typed_function(sc, "gtk_icon_view_set_columns", lg_gtk_icon_view_set_columns, 2, 0, 0, H_gtk_icon_view_set_columns, pl_tui);
+  s7_define_typed_function(sc, "gtk_icon_view_get_columns", lg_gtk_icon_view_get_columns, 1, 0, 0, H_gtk_icon_view_get_columns, pl_iu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_item_width", lg_gtk_icon_view_set_item_width, 2, 0, 0, H_gtk_icon_view_set_item_width, pl_tui);
+  s7_define_typed_function(sc, "gtk_icon_view_get_item_width", lg_gtk_icon_view_get_item_width, 1, 0, 0, H_gtk_icon_view_get_item_width, pl_iu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_spacing", lg_gtk_icon_view_set_spacing, 2, 0, 0, H_gtk_icon_view_set_spacing, pl_tui);
+  s7_define_typed_function(sc, "gtk_icon_view_get_spacing", lg_gtk_icon_view_get_spacing, 1, 0, 0, H_gtk_icon_view_get_spacing, pl_iu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_row_spacing", lg_gtk_icon_view_set_row_spacing, 2, 0, 0, H_gtk_icon_view_set_row_spacing, pl_tui);
+  s7_define_typed_function(sc, "gtk_icon_view_get_row_spacing", lg_gtk_icon_view_get_row_spacing, 1, 0, 0, H_gtk_icon_view_get_row_spacing, pl_iu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_column_spacing", lg_gtk_icon_view_set_column_spacing, 2, 0, 0, H_gtk_icon_view_set_column_spacing, pl_tui);
+  s7_define_typed_function(sc, "gtk_icon_view_get_column_spacing", lg_gtk_icon_view_get_column_spacing, 1, 0, 0, H_gtk_icon_view_get_column_spacing, pl_iu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_margin", lg_gtk_icon_view_set_margin, 2, 0, 0, H_gtk_icon_view_set_margin, pl_tui);
+  s7_define_typed_function(sc, "gtk_icon_view_get_margin", lg_gtk_icon_view_get_margin, 1, 0, 0, H_gtk_icon_view_get_margin, pl_iu);
+  s7_define_typed_function(sc, "gtk_label_set_max_width_chars", lg_gtk_label_set_max_width_chars, 2, 0, 0, H_gtk_label_set_max_width_chars, pl_tui);
+  s7_define_typed_function(sc, "gtk_label_get_max_width_chars", lg_gtk_label_get_max_width_chars, 1, 0, 0, H_gtk_label_get_max_width_chars, pl_iu);
+  s7_define_typed_function(sc, "gtk_list_store_insert_with_values", lg_gtk_list_store_insert_with_values, 3, 0, 0, H_gtk_list_store_insert_with_values, pl_tuui);
+  s7_define_typed_function(sc, "gtk_list_store_insert_with_valuesv", lg_gtk_list_store_insert_with_valuesv, 6, 0, 0, H_gtk_list_store_insert_with_valuesv, pl_tuuiuui);
+  s7_define_typed_function(sc, "pango_attr_size_new_absolute", lg_pango_attr_size_new_absolute, 1, 0, 0, H_pango_attr_size_new_absolute, pl_pi);
+  s7_define_typed_function(sc, "pango_font_description_set_absolute_size", lg_pango_font_description_set_absolute_size, 2, 0, 0, H_pango_font_description_set_absolute_size, pl_tur);
+  s7_define_typed_function(sc, "pango_layout_get_font_description", lg_pango_layout_get_font_description, 1, 0, 0, H_pango_layout_get_font_description, pl_pu);
+  s7_define_typed_function(sc, "gdk_cursor_new_from_name", lg_gdk_cursor_new_from_name, 2, 0, 0, H_gdk_cursor_new_from_name, pl_pus);
+  s7_define_typed_function(sc, "gdk_cursor_get_image", lg_gdk_cursor_get_image, 1, 0, 0, H_gdk_cursor_get_image, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_set_urgency_hint", lg_gdk_window_set_urgency_hint, 2, 0, 0, H_gdk_window_set_urgency_hint, pl_tub);
+  s7_define_typed_function(sc, "gtk_dialog_get_response_for_widget", lg_gtk_dialog_get_response_for_widget, 2, 0, 0, H_gtk_dialog_get_response_for_widget, pl_iu);
+  s7_define_typed_function(sc, "gtk_drag_source_set_icon_name", lg_gtk_drag_source_set_icon_name, 2, 0, 0, H_gtk_drag_source_set_icon_name, pl_tus);
+  s7_define_typed_function(sc, "gtk_drag_set_icon_name", lg_gtk_drag_set_icon_name, 4, 0, 0, H_gtk_drag_set_icon_name, pl_tusi);
+  s7_define_typed_function(sc, "gtk_entry_completion_set_popup_set_width", lg_gtk_entry_completion_set_popup_set_width, 2, 0, 0, H_gtk_entry_completion_set_popup_set_width, pl_tub);
+  s7_define_typed_function(sc, "gtk_entry_completion_get_popup_set_width", lg_gtk_entry_completion_get_popup_set_width, 1, 0, 0, H_gtk_entry_completion_get_popup_set_width, pl_bu);
+  s7_define_typed_function(sc, "gtk_entry_completion_set_popup_single_match", lg_gtk_entry_completion_set_popup_single_match, 2, 0, 0, H_gtk_entry_completion_set_popup_single_match, pl_tub);
+  s7_define_typed_function(sc, "gtk_entry_completion_get_popup_single_match", lg_gtk_entry_completion_get_popup_single_match, 1, 0, 0, H_gtk_entry_completion_get_popup_single_match, pl_bu);
+  s7_define_typed_function(sc, "gtk_icon_view_get_item_at_pos", lg_gtk_icon_view_get_item_at_pos, 3, 2, 0, H_gtk_icon_view_get_item_at_pos, pl_puiiu);
+  s7_define_typed_function(sc, "gtk_icon_view_get_visible_range", lg_gtk_icon_view_get_visible_range, 1, 2, 0, H_gtk_icon_view_get_visible_range, pl_pu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_cursor", lg_gtk_icon_view_set_cursor, 4, 0, 0, H_gtk_icon_view_set_cursor, pl_tuuub);
+  s7_define_typed_function(sc, "gtk_icon_view_get_cursor", lg_gtk_icon_view_get_cursor, 1, 2, 0, H_gtk_icon_view_get_cursor, pl_pu);
+  s7_define_typed_function(sc, "gtk_icon_view_scroll_to_path", lg_gtk_icon_view_scroll_to_path, 5, 0, 0, H_gtk_icon_view_scroll_to_path, pl_tuubr);
+  s7_define_typed_function(sc, "gtk_icon_view_enable_model_drag_source", lg_gtk_icon_view_enable_model_drag_source, 5, 0, 0, H_gtk_icon_view_enable_model_drag_source, pl_tuguig);
+  s7_define_typed_function(sc, "gtk_icon_view_enable_model_drag_dest", lg_gtk_icon_view_enable_model_drag_dest, 4, 0, 0, H_gtk_icon_view_enable_model_drag_dest, pl_tuuig);
+  s7_define_typed_function(sc, "gtk_icon_view_unset_model_drag_source", lg_gtk_icon_view_unset_model_drag_source, 1, 0, 0, H_gtk_icon_view_unset_model_drag_source, pl_tu);
+  s7_define_typed_function(sc, "gtk_icon_view_unset_model_drag_dest", lg_gtk_icon_view_unset_model_drag_dest, 1, 0, 0, H_gtk_icon_view_unset_model_drag_dest, pl_tu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_reorderable", lg_gtk_icon_view_set_reorderable, 2, 0, 0, H_gtk_icon_view_set_reorderable, pl_tub);
+  s7_define_typed_function(sc, "gtk_icon_view_get_reorderable", lg_gtk_icon_view_get_reorderable, 1, 0, 0, H_gtk_icon_view_get_reorderable, pl_bu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_drag_dest_item", lg_gtk_icon_view_set_drag_dest_item, 3, 0, 0, H_gtk_icon_view_set_drag_dest_item, pl_tuug);
+  s7_define_typed_function(sc, "gtk_icon_view_get_drag_dest_item", lg_gtk_icon_view_get_drag_dest_item, 1, 2, 0, H_gtk_icon_view_get_drag_dest_item, pl_pu);
+  s7_define_typed_function(sc, "gtk_icon_view_get_dest_item_at_pos", lg_gtk_icon_view_get_dest_item_at_pos, 3, 2, 0, H_gtk_icon_view_get_dest_item_at_pos, pl_puiiu);
+  s7_define_typed_function(sc, "gtk_image_clear", lg_gtk_image_clear, 1, 0, 0, H_gtk_image_clear, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_bar_get_pack_direction", lg_gtk_menu_bar_get_pack_direction, 1, 0, 0, H_gtk_menu_bar_get_pack_direction, pl_gu);
+  s7_define_typed_function(sc, "gtk_menu_bar_set_pack_direction", lg_gtk_menu_bar_set_pack_direction, 2, 0, 0, H_gtk_menu_bar_set_pack_direction, pl_tug);
+  s7_define_typed_function(sc, "gtk_menu_bar_get_child_pack_direction", lg_gtk_menu_bar_get_child_pack_direction, 1, 0, 0, H_gtk_menu_bar_get_child_pack_direction, pl_gu);
+  s7_define_typed_function(sc, "gtk_menu_bar_set_child_pack_direction", lg_gtk_menu_bar_set_child_pack_direction, 2, 0, 0, H_gtk_menu_bar_set_child_pack_direction, pl_tug);
+  s7_define_typed_function(sc, "gtk_menu_shell_get_take_focus", lg_gtk_menu_shell_get_take_focus, 1, 0, 0, H_gtk_menu_shell_get_take_focus, pl_bu);
+  s7_define_typed_function(sc, "gtk_menu_shell_set_take_focus", lg_gtk_menu_shell_set_take_focus, 2, 0, 0, H_gtk_menu_shell_set_take_focus, pl_tub);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_visible_line", lg_gtk_text_iter_forward_visible_line, 1, 0, 0, H_gtk_text_iter_forward_visible_line, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_visible_line", lg_gtk_text_iter_backward_visible_line, 1, 0, 0, H_gtk_text_iter_backward_visible_line, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_iter_forward_visible_lines", lg_gtk_text_iter_forward_visible_lines, 2, 0, 0, H_gtk_text_iter_forward_visible_lines, pl_bui);
+  s7_define_typed_function(sc, "gtk_text_iter_backward_visible_lines", lg_gtk_text_iter_backward_visible_lines, 2, 0, 0, H_gtk_text_iter_backward_visible_lines, pl_bui);
+  s7_define_typed_function(sc, "gtk_tool_button_set_icon_name", lg_gtk_tool_button_set_icon_name, 2, 0, 0, H_gtk_tool_button_set_icon_name, pl_tus);
+  s7_define_typed_function(sc, "gtk_tool_button_get_icon_name", lg_gtk_tool_button_get_icon_name, 1, 0, 0, H_gtk_tool_button_get_icon_name, pl_su);
+  s7_define_typed_function(sc, "gtk_window_set_urgency_hint", lg_gtk_window_set_urgency_hint, 2, 0, 0, H_gtk_window_set_urgency_hint, pl_tub);
+  s7_define_typed_function(sc, "gtk_window_get_urgency_hint", lg_gtk_window_get_urgency_hint, 1, 0, 0, H_gtk_window_get_urgency_hint, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_present_with_time", lg_gtk_window_present_with_time, 2, 0, 0, H_gtk_window_present_with_time, pl_tui);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_do_overwrite_confirmation", lg_gtk_file_chooser_set_do_overwrite_confirmation, 2, 0, 0, H_gtk_file_chooser_set_do_overwrite_confirmation, pl_tub);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_do_overwrite_confirmation", lg_gtk_file_chooser_get_do_overwrite_confirmation, 1, 0, 0, H_gtk_file_chooser_get_do_overwrite_confirmation, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_row_reference_get_model", lg_gtk_tree_row_reference_get_model, 1, 0, 0, H_gtk_tree_row_reference_get_model, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_queue_resize", lg_gtk_tree_view_column_queue_resize, 1, 0, 0, H_gtk_tree_view_column_queue_resize, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_visible_range", lg_gtk_tree_view_get_visible_range, 1, 2, 0, H_gtk_tree_view_get_visible_range, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_attributes_ref", lg_gtk_text_attributes_ref, 1, 0, 0, H_gtk_text_attributes_ref, pl_pu);
+  s7_define_typed_function(sc, "pango_attr_list_ref", lg_pango_attr_list_ref, 1, 0, 0, H_pango_attr_list_ref, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_line_ref", lg_pango_layout_line_ref, 1, 0, 0, H_pango_layout_line_ref, pl_pu);
+  s7_define_typed_function(sc, "pango_layout_index_to_line_x", lg_pango_layout_index_to_line_x, 3, 2, 0, H_pango_layout_index_to_line_x, pl_puibu);
+  s7_define_typed_function(sc, "gtk_target_list_ref", lg_gtk_target_list_ref, 1, 0, 0, H_gtk_target_list_ref, pl_pu);
+  s7_define_typed_function(sc, "gdk_display_supports_shapes", lg_gdk_display_supports_shapes, 1, 0, 0, H_gdk_display_supports_shapes, pl_bu);
+  s7_define_typed_function(sc, "gdk_display_supports_input_shapes", lg_gdk_display_supports_input_shapes, 1, 0, 0, H_gdk_display_supports_input_shapes, pl_bu);
+  s7_define_typed_function(sc, "gdk_screen_set_resolution", lg_gdk_screen_set_resolution, 2, 0, 0, H_gdk_screen_set_resolution, pl_tur);
+  s7_define_typed_function(sc, "gdk_screen_get_resolution", lg_gdk_screen_get_resolution, 1, 0, 0, H_gdk_screen_get_resolution, pl_du);
+  s7_define_typed_function(sc, "gdk_window_get_type_hint", lg_gdk_window_get_type_hint, 1, 0, 0, H_gdk_window_get_type_hint, pl_gu);
+  s7_define_typed_function(sc, "gtk_clipboard_request_rich_text", lg_gtk_clipboard_request_rich_text, 3, 1, 0, H_gtk_clipboard_request_rich_text, pl_tuut);
+  s7_define_typed_function(sc, "gtk_clipboard_wait_for_rich_text", lg_gtk_clipboard_wait_for_rich_text, 3, 1, 0, H_gtk_clipboard_wait_for_rich_text, pl_pu);
+  s7_define_typed_function(sc, "gtk_clipboard_wait_is_rich_text_available", lg_gtk_clipboard_wait_is_rich_text_available, 2, 0, 0, H_gtk_clipboard_wait_is_rich_text_available, pl_bu);
+  s7_define_typed_function(sc, "gtk_drag_dest_set_track_motion", lg_gtk_drag_dest_set_track_motion, 2, 0, 0, H_gtk_drag_dest_set_track_motion, pl_tub);
+  s7_define_typed_function(sc, "gtk_drag_dest_get_track_motion", lg_gtk_drag_dest_get_track_motion, 1, 0, 0, H_gtk_drag_dest_get_track_motion, pl_bu);
+  s7_define_typed_function(sc, "gtk_notebook_get_tab_reorderable", lg_gtk_notebook_get_tab_reorderable, 2, 0, 0, H_gtk_notebook_get_tab_reorderable, pl_bu);
+  s7_define_typed_function(sc, "gtk_notebook_set_tab_reorderable", lg_gtk_notebook_set_tab_reorderable, 3, 0, 0, H_gtk_notebook_set_tab_reorderable, pl_tuub);
+  s7_define_typed_function(sc, "gtk_notebook_get_tab_detachable", lg_gtk_notebook_get_tab_detachable, 2, 0, 0, H_gtk_notebook_get_tab_detachable, pl_bu);
+  s7_define_typed_function(sc, "gtk_notebook_set_tab_detachable", lg_gtk_notebook_set_tab_detachable, 3, 0, 0, H_gtk_notebook_set_tab_detachable, pl_tuub);
+  s7_define_typed_function(sc, "gtk_range_set_lower_stepper_sensitivity", lg_gtk_range_set_lower_stepper_sensitivity, 2, 0, 0, H_gtk_range_set_lower_stepper_sensitivity, pl_tug);
+  s7_define_typed_function(sc, "gtk_range_get_lower_stepper_sensitivity", lg_gtk_range_get_lower_stepper_sensitivity, 1, 0, 0, H_gtk_range_get_lower_stepper_sensitivity, pl_gu);
+  s7_define_typed_function(sc, "gtk_range_set_upper_stepper_sensitivity", lg_gtk_range_set_upper_stepper_sensitivity, 2, 0, 0, H_gtk_range_set_upper_stepper_sensitivity, pl_tug);
+  s7_define_typed_function(sc, "gtk_range_get_upper_stepper_sensitivity", lg_gtk_range_get_upper_stepper_sensitivity, 1, 0, 0, H_gtk_range_get_upper_stepper_sensitivity, pl_gu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_unset_placement", lg_gtk_scrolled_window_unset_placement, 1, 0, 0, H_gtk_scrolled_window_unset_placement, pl_tu);
+  s7_define_typed_function(sc, "gtk_target_list_add_rich_text_targets", lg_gtk_target_list_add_rich_text_targets, 4, 0, 0, H_gtk_target_list_add_rich_text_targets, pl_tuibu);
+  s7_define_typed_function(sc, "gtk_target_table_new_from_list", lg_gtk_target_table_new_from_list, 1, 1, 0, H_gtk_target_table_new_from_list, pl_pu);
+  s7_define_typed_function(sc, "gtk_target_table_free", lg_gtk_target_table_free, 2, 0, 0, H_gtk_target_table_free, pl_tui);
+  s7_define_typed_function(sc, "gtk_selection_data_targets_include_rich_text", lg_gtk_selection_data_targets_include_rich_text, 2, 0, 0, H_gtk_selection_data_targets_include_rich_text, pl_bu);
+  s7_define_typed_function(sc, "gtk_selection_data_targets_include_uri", lg_gtk_selection_data_targets_include_uri, 1, 0, 0, H_gtk_selection_data_targets_include_uri, pl_bu);
+  s7_define_typed_function(sc, "gtk_targets_include_text", lg_gtk_targets_include_text, 2, 0, 0, H_gtk_targets_include_text, pl_bui);
+  s7_define_typed_function(sc, "gtk_targets_include_rich_text", lg_gtk_targets_include_rich_text, 3, 0, 0, H_gtk_targets_include_rich_text, pl_buiu);
+  s7_define_typed_function(sc, "gtk_targets_include_image", lg_gtk_targets_include_image, 3, 0, 0, H_gtk_targets_include_image, pl_buib);
+  s7_define_typed_function(sc, "gtk_targets_include_uri", lg_gtk_targets_include_uri, 2, 0, 0, H_gtk_targets_include_uri, pl_bui);
+  s7_define_typed_function(sc, "gtk_size_group_get_widgets", lg_gtk_size_group_get_widgets, 1, 0, 0, H_gtk_size_group_get_widgets, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_has_selection", lg_gtk_text_buffer_get_has_selection, 1, 0, 0, H_gtk_text_buffer_get_has_selection, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_copy_target_list", lg_gtk_text_buffer_get_copy_target_list, 1, 0, 0, H_gtk_text_buffer_get_copy_target_list, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_paste_target_list", lg_gtk_text_buffer_get_paste_target_list, 1, 0, 0, H_gtk_text_buffer_get_paste_target_list, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_headers_clickable", lg_gtk_tree_view_get_headers_clickable, 1, 0, 0, H_gtk_tree_view_get_headers_clickable, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_search_entry", lg_gtk_tree_view_get_search_entry, 1, 0, 0, H_gtk_tree_view_get_search_entry, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_search_entry", lg_gtk_tree_view_set_search_entry, 2, 0, 0, H_gtk_tree_view_set_search_entry, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_search_position_func", lg_gtk_tree_view_get_search_position_func, 1, 0, 0, H_gtk_tree_view_get_search_position_func, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_search_position_func", lg_gtk_tree_view_set_search_position_func, 3, 1, 0, H_gtk_tree_view_set_search_position_func, pl_tut);
+  s7_define_typed_function(sc, "gtk_window_set_deletable", lg_gtk_window_set_deletable, 2, 0, 0, H_gtk_window_set_deletable, pl_tub);
+  s7_define_typed_function(sc, "gtk_window_get_deletable", lg_gtk_window_get_deletable, 1, 0, 0, H_gtk_window_get_deletable, pl_bu);
+  s7_define_typed_function(sc, "gtk_assistant_new", lg_gtk_assistant_new, 0, 0, 0, H_gtk_assistant_new, pl_p);
+  s7_define_typed_function(sc, "gtk_assistant_get_current_page", lg_gtk_assistant_get_current_page, 1, 0, 0, H_gtk_assistant_get_current_page, pl_iu);
+  s7_define_typed_function(sc, "gtk_assistant_set_current_page", lg_gtk_assistant_set_current_page, 2, 0, 0, H_gtk_assistant_set_current_page, pl_tui);
+  s7_define_typed_function(sc, "gtk_assistant_get_n_pages", lg_gtk_assistant_get_n_pages, 1, 0, 0, H_gtk_assistant_get_n_pages, pl_iu);
+  s7_define_typed_function(sc, "gtk_assistant_get_nth_page", lg_gtk_assistant_get_nth_page, 2, 0, 0, H_gtk_assistant_get_nth_page, pl_pui);
+  s7_define_typed_function(sc, "gtk_assistant_prepend_page", lg_gtk_assistant_prepend_page, 2, 0, 0, H_gtk_assistant_prepend_page, pl_iu);
+  s7_define_typed_function(sc, "gtk_assistant_append_page", lg_gtk_assistant_append_page, 2, 0, 0, H_gtk_assistant_append_page, pl_iu);
+  s7_define_typed_function(sc, "gtk_assistant_insert_page", lg_gtk_assistant_insert_page, 3, 0, 0, H_gtk_assistant_insert_page, pl_iuui);
+  s7_define_typed_function(sc, "gtk_assistant_set_forward_page_func", lg_gtk_assistant_set_forward_page_func, 3, 1, 0, H_gtk_assistant_set_forward_page_func, pl_tut);
+  s7_define_typed_function(sc, "gtk_assistant_set_page_type", lg_gtk_assistant_set_page_type, 3, 0, 0, H_gtk_assistant_set_page_type, pl_tuug);
+  s7_define_typed_function(sc, "gtk_assistant_get_page_type", lg_gtk_assistant_get_page_type, 2, 0, 0, H_gtk_assistant_get_page_type, pl_gu);
+  s7_define_typed_function(sc, "gtk_assistant_set_page_title", lg_gtk_assistant_set_page_title, 3, 0, 0, H_gtk_assistant_set_page_title, pl_tuus);
+  s7_define_typed_function(sc, "gtk_assistant_get_page_title", lg_gtk_assistant_get_page_title, 2, 0, 0, H_gtk_assistant_get_page_title, pl_su);
+  s7_define_typed_function(sc, "gtk_assistant_set_page_complete", lg_gtk_assistant_set_page_complete, 3, 0, 0, H_gtk_assistant_set_page_complete, pl_tuub);
+  s7_define_typed_function(sc, "gtk_assistant_get_page_complete", lg_gtk_assistant_get_page_complete, 2, 0, 0, H_gtk_assistant_get_page_complete, pl_bu);
+  s7_define_typed_function(sc, "gtk_assistant_add_action_widget", lg_gtk_assistant_add_action_widget, 2, 0, 0, H_gtk_assistant_add_action_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_assistant_remove_action_widget", lg_gtk_assistant_remove_action_widget, 2, 0, 0, H_gtk_assistant_remove_action_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_assistant_update_buttons_state", lg_gtk_assistant_update_buttons_state, 1, 0, 0, H_gtk_assistant_update_buttons_state, pl_tu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_accel_new", lg_gtk_cell_renderer_accel_new, 0, 0, 0, H_gtk_cell_renderer_accel_new, pl_p);
+  s7_define_typed_function(sc, "gtk_cell_renderer_spin_new", lg_gtk_cell_renderer_spin_new, 0, 0, 0, H_gtk_cell_renderer_spin_new, pl_p);
+  s7_define_typed_function(sc, "gtk_link_button_new", lg_gtk_link_button_new, 1, 0, 0, H_gtk_link_button_new, pl_ps);
+  s7_define_typed_function(sc, "gtk_link_button_new_with_label", lg_gtk_link_button_new_with_label, 2, 0, 0, H_gtk_link_button_new_with_label, pl_ps);
+  s7_define_typed_function(sc, "gtk_link_button_get_uri", lg_gtk_link_button_get_uri, 1, 0, 0, H_gtk_link_button_get_uri, pl_su);
+  s7_define_typed_function(sc, "gtk_link_button_set_uri", lg_gtk_link_button_set_uri, 2, 0, 0, H_gtk_link_button_set_uri, pl_tus);
+  s7_define_typed_function(sc, "gtk_recent_chooser_error_quark", lg_gtk_recent_chooser_error_quark, 0, 0, 0, H_gtk_recent_chooser_error_quark, pl_i);
+  s7_define_typed_function(sc, "gtk_recent_chooser_set_show_private", lg_gtk_recent_chooser_set_show_private, 2, 0, 0, H_gtk_recent_chooser_set_show_private, pl_tub);
+  s7_define_typed_function(sc, "gtk_recent_chooser_get_show_private", lg_gtk_recent_chooser_get_show_private, 1, 0, 0, H_gtk_recent_chooser_get_show_private, pl_bu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_set_show_not_found", lg_gtk_recent_chooser_set_show_not_found, 2, 0, 0, H_gtk_recent_chooser_set_show_not_found, pl_tub);
+  s7_define_typed_function(sc, "gtk_recent_chooser_get_show_not_found", lg_gtk_recent_chooser_get_show_not_found, 1, 0, 0, H_gtk_recent_chooser_get_show_not_found, pl_bu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_set_select_multiple", lg_gtk_recent_chooser_set_select_multiple, 2, 0, 0, H_gtk_recent_chooser_set_select_multiple, pl_tub);
+  s7_define_typed_function(sc, "gtk_recent_chooser_get_select_multiple", lg_gtk_recent_chooser_get_select_multiple, 1, 0, 0, H_gtk_recent_chooser_get_select_multiple, pl_bu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_set_limit", lg_gtk_recent_chooser_set_limit, 2, 0, 0, H_gtk_recent_chooser_set_limit, pl_tui);
+  s7_define_typed_function(sc, "gtk_recent_chooser_get_limit", lg_gtk_recent_chooser_get_limit, 1, 0, 0, H_gtk_recent_chooser_get_limit, pl_iu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_set_local_only", lg_gtk_recent_chooser_set_local_only, 2, 0, 0, H_gtk_recent_chooser_set_local_only, pl_tub);
+  s7_define_typed_function(sc, "gtk_recent_chooser_get_local_only", lg_gtk_recent_chooser_get_local_only, 1, 0, 0, H_gtk_recent_chooser_get_local_only, pl_bu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_set_show_tips", lg_gtk_recent_chooser_set_show_tips, 2, 0, 0, H_gtk_recent_chooser_set_show_tips, pl_tub);
+  s7_define_typed_function(sc, "gtk_recent_chooser_get_show_tips", lg_gtk_recent_chooser_get_show_tips, 1, 0, 0, H_gtk_recent_chooser_get_show_tips, pl_bu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_set_show_icons", lg_gtk_recent_chooser_set_show_icons, 2, 0, 0, H_gtk_recent_chooser_set_show_icons, pl_tub);
+  s7_define_typed_function(sc, "gtk_recent_chooser_get_show_icons", lg_gtk_recent_chooser_get_show_icons, 1, 0, 0, H_gtk_recent_chooser_get_show_icons, pl_bu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_set_sort_type", lg_gtk_recent_chooser_set_sort_type, 2, 0, 0, H_gtk_recent_chooser_set_sort_type, pl_tug);
+  s7_define_typed_function(sc, "gtk_recent_chooser_get_sort_type", lg_gtk_recent_chooser_get_sort_type, 1, 0, 0, H_gtk_recent_chooser_get_sort_type, pl_gu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_set_sort_func", lg_gtk_recent_chooser_set_sort_func, 3, 1, 0, H_gtk_recent_chooser_set_sort_func, pl_tut);
+  s7_define_typed_function(sc, "gtk_recent_chooser_set_current_uri", lg_gtk_recent_chooser_set_current_uri, 2, 1, 0, H_gtk_recent_chooser_set_current_uri, pl_pusu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_get_current_uri", lg_gtk_recent_chooser_get_current_uri, 1, 0, 0, H_gtk_recent_chooser_get_current_uri, pl_su);
+  s7_define_typed_function(sc, "gtk_recent_chooser_get_current_item", lg_gtk_recent_chooser_get_current_item, 1, 0, 0, H_gtk_recent_chooser_get_current_item, pl_pu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_select_uri", lg_gtk_recent_chooser_select_uri, 2, 1, 0, H_gtk_recent_chooser_select_uri, pl_pusu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_unselect_uri", lg_gtk_recent_chooser_unselect_uri, 2, 0, 0, H_gtk_recent_chooser_unselect_uri, pl_tus);
+  s7_define_typed_function(sc, "gtk_recent_chooser_select_all", lg_gtk_recent_chooser_select_all, 1, 0, 0, H_gtk_recent_chooser_select_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_unselect_all", lg_gtk_recent_chooser_unselect_all, 1, 0, 0, H_gtk_recent_chooser_unselect_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_get_items", lg_gtk_recent_chooser_get_items, 1, 0, 0, H_gtk_recent_chooser_get_items, pl_pu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_get_uris", lg_gtk_recent_chooser_get_uris, 1, 1, 0, H_gtk_recent_chooser_get_uris, pl_pu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_add_filter", lg_gtk_recent_chooser_add_filter, 2, 0, 0, H_gtk_recent_chooser_add_filter, pl_tu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_remove_filter", lg_gtk_recent_chooser_remove_filter, 2, 0, 0, H_gtk_recent_chooser_remove_filter, pl_tu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_list_filters", lg_gtk_recent_chooser_list_filters, 1, 0, 0, H_gtk_recent_chooser_list_filters, pl_pu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_set_filter", lg_gtk_recent_chooser_set_filter, 2, 0, 0, H_gtk_recent_chooser_set_filter, pl_tu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_get_filter", lg_gtk_recent_chooser_get_filter, 1, 0, 0, H_gtk_recent_chooser_get_filter, pl_pu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_menu_new", lg_gtk_recent_chooser_menu_new, 0, 0, 0, H_gtk_recent_chooser_menu_new, pl_p);
+  s7_define_typed_function(sc, "gtk_recent_chooser_menu_new_for_manager", lg_gtk_recent_chooser_menu_new_for_manager, 1, 0, 0, H_gtk_recent_chooser_menu_new_for_manager, pl_pu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_menu_get_show_numbers", lg_gtk_recent_chooser_menu_get_show_numbers, 1, 0, 0, H_gtk_recent_chooser_menu_get_show_numbers, pl_bu);
+  s7_define_typed_function(sc, "gtk_recent_chooser_menu_set_show_numbers", lg_gtk_recent_chooser_menu_set_show_numbers, 2, 0, 0, H_gtk_recent_chooser_menu_set_show_numbers, pl_tub);
+  s7_define_typed_function(sc, "gtk_recent_chooser_widget_new", lg_gtk_recent_chooser_widget_new, 0, 0, 0, H_gtk_recent_chooser_widget_new, pl_p);
+  s7_define_typed_function(sc, "gtk_recent_chooser_widget_new_for_manager", lg_gtk_recent_chooser_widget_new_for_manager, 1, 0, 0, H_gtk_recent_chooser_widget_new_for_manager, pl_pu);
+  s7_define_typed_function(sc, "gtk_recent_filter_new", lg_gtk_recent_filter_new, 0, 0, 0, H_gtk_recent_filter_new, pl_p);
+  s7_define_typed_function(sc, "gtk_recent_filter_set_name", lg_gtk_recent_filter_set_name, 2, 0, 0, H_gtk_recent_filter_set_name, pl_tus);
+  s7_define_typed_function(sc, "gtk_recent_filter_get_name", lg_gtk_recent_filter_get_name, 1, 0, 0, H_gtk_recent_filter_get_name, pl_su);
+  s7_define_typed_function(sc, "gtk_recent_filter_add_mime_type", lg_gtk_recent_filter_add_mime_type, 2, 0, 0, H_gtk_recent_filter_add_mime_type, pl_tus);
+  s7_define_typed_function(sc, "gtk_recent_filter_add_pattern", lg_gtk_recent_filter_add_pattern, 2, 0, 0, H_gtk_recent_filter_add_pattern, pl_tus);
+  s7_define_typed_function(sc, "gtk_recent_filter_add_pixbuf_formats", lg_gtk_recent_filter_add_pixbuf_formats, 1, 0, 0, H_gtk_recent_filter_add_pixbuf_formats, pl_tu);
+  s7_define_typed_function(sc, "gtk_recent_filter_add_application", lg_gtk_recent_filter_add_application, 2, 0, 0, H_gtk_recent_filter_add_application, pl_tus);
+  s7_define_typed_function(sc, "gtk_recent_filter_add_group", lg_gtk_recent_filter_add_group, 2, 0, 0, H_gtk_recent_filter_add_group, pl_tus);
+  s7_define_typed_function(sc, "gtk_recent_filter_add_age", lg_gtk_recent_filter_add_age, 2, 0, 0, H_gtk_recent_filter_add_age, pl_tui);
+  s7_define_typed_function(sc, "gtk_recent_manager_error_quark", lg_gtk_recent_manager_error_quark, 0, 0, 0, H_gtk_recent_manager_error_quark, pl_i);
+  s7_define_typed_function(sc, "gtk_recent_manager_new", lg_gtk_recent_manager_new, 0, 0, 0, H_gtk_recent_manager_new, pl_p);
+  s7_define_typed_function(sc, "gtk_recent_manager_get_default", lg_gtk_recent_manager_get_default, 0, 0, 0, H_gtk_recent_manager_get_default, pl_p);
+  s7_define_typed_function(sc, "gtk_recent_manager_remove_item", lg_gtk_recent_manager_remove_item, 2, 1, 0, H_gtk_recent_manager_remove_item, pl_pusu);
+  s7_define_typed_function(sc, "gtk_recent_manager_lookup_item", lg_gtk_recent_manager_lookup_item, 2, 1, 0, H_gtk_recent_manager_lookup_item, pl_pusu);
+  s7_define_typed_function(sc, "gtk_recent_manager_has_item", lg_gtk_recent_manager_has_item, 2, 0, 0, H_gtk_recent_manager_has_item, pl_bus);
+  s7_define_typed_function(sc, "gtk_recent_manager_move_item", lg_gtk_recent_manager_move_item, 3, 1, 0, H_gtk_recent_manager_move_item, pl_pussu);
+  s7_define_typed_function(sc, "gtk_recent_manager_get_items", lg_gtk_recent_manager_get_items, 1, 0, 0, H_gtk_recent_manager_get_items, pl_pu);
+  s7_define_typed_function(sc, "gtk_recent_manager_purge_items", lg_gtk_recent_manager_purge_items, 1, 1, 0, H_gtk_recent_manager_purge_items, pl_pu);
+  s7_define_typed_function(sc, "gtk_recent_info_ref", lg_gtk_recent_info_ref, 1, 0, 0, H_gtk_recent_info_ref, pl_pu);
+  s7_define_typed_function(sc, "gtk_recent_info_unref", lg_gtk_recent_info_unref, 1, 0, 0, H_gtk_recent_info_unref, pl_tu);
+  s7_define_typed_function(sc, "gtk_recent_info_get_uri", lg_gtk_recent_info_get_uri, 1, 0, 0, H_gtk_recent_info_get_uri, pl_su);
+  s7_define_typed_function(sc, "gtk_recent_info_get_display_name", lg_gtk_recent_info_get_display_name, 1, 0, 0, H_gtk_recent_info_get_display_name, pl_su);
+  s7_define_typed_function(sc, "gtk_recent_info_get_description", lg_gtk_recent_info_get_description, 1, 0, 0, H_gtk_recent_info_get_description, pl_su);
+  s7_define_typed_function(sc, "gtk_recent_info_get_mime_type", lg_gtk_recent_info_get_mime_type, 1, 0, 0, H_gtk_recent_info_get_mime_type, pl_su);
+  s7_define_typed_function(sc, "gtk_recent_info_get_added", lg_gtk_recent_info_get_added, 1, 0, 0, H_gtk_recent_info_get_added, pl_tu);
+  s7_define_typed_function(sc, "gtk_recent_info_get_modified", lg_gtk_recent_info_get_modified, 1, 0, 0, H_gtk_recent_info_get_modified, pl_tu);
+  s7_define_typed_function(sc, "gtk_recent_info_get_visited", lg_gtk_recent_info_get_visited, 1, 0, 0, H_gtk_recent_info_get_visited, pl_tu);
+  s7_define_typed_function(sc, "gtk_recent_info_get_private_hint", lg_gtk_recent_info_get_private_hint, 1, 0, 0, H_gtk_recent_info_get_private_hint, pl_bu);
+  s7_define_typed_function(sc, "gtk_recent_info_get_applications", lg_gtk_recent_info_get_applications, 1, 1, 0, H_gtk_recent_info_get_applications, pl_pu);
+  s7_define_typed_function(sc, "gtk_recent_info_last_application", lg_gtk_recent_info_last_application, 1, 0, 0, H_gtk_recent_info_last_application, pl_su);
+  s7_define_typed_function(sc, "gtk_recent_info_has_application", lg_gtk_recent_info_has_application, 2, 0, 0, H_gtk_recent_info_has_application, pl_bus);
+  s7_define_typed_function(sc, "gtk_recent_info_get_groups", lg_gtk_recent_info_get_groups, 1, 1, 0, H_gtk_recent_info_get_groups, pl_pu);
+  s7_define_typed_function(sc, "gtk_recent_info_has_group", lg_gtk_recent_info_has_group, 2, 0, 0, H_gtk_recent_info_has_group, pl_bus);
+  s7_define_typed_function(sc, "gtk_recent_info_get_icon", lg_gtk_recent_info_get_icon, 2, 0, 0, H_gtk_recent_info_get_icon, pl_pui);
+  s7_define_typed_function(sc, "gtk_recent_info_get_short_name", lg_gtk_recent_info_get_short_name, 1, 0, 0, H_gtk_recent_info_get_short_name, pl_su);
+  s7_define_typed_function(sc, "gtk_recent_info_get_uri_display", lg_gtk_recent_info_get_uri_display, 1, 0, 0, H_gtk_recent_info_get_uri_display, pl_su);
+  s7_define_typed_function(sc, "gtk_recent_info_get_age", lg_gtk_recent_info_get_age, 1, 0, 0, H_gtk_recent_info_get_age, pl_iu);
+  s7_define_typed_function(sc, "gtk_recent_info_is_local", lg_gtk_recent_info_is_local, 1, 0, 0, H_gtk_recent_info_is_local, pl_bu);
+  s7_define_typed_function(sc, "gtk_recent_info_exists", lg_gtk_recent_info_exists, 1, 0, 0, H_gtk_recent_info_exists, pl_bu);
+  s7_define_typed_function(sc, "gtk_recent_info_match", lg_gtk_recent_info_match, 2, 0, 0, H_gtk_recent_info_match, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_buffer_register_serialize_format", lg_gtk_text_buffer_register_serialize_format, 5, 0, 0, H_gtk_text_buffer_register_serialize_format, pl_tust);
+  s7_define_typed_function(sc, "gtk_text_buffer_register_serialize_tagset", lg_gtk_text_buffer_register_serialize_tagset, 2, 0, 0, H_gtk_text_buffer_register_serialize_tagset, pl_tus);
+  s7_define_typed_function(sc, "gtk_text_buffer_register_deserialize_format", lg_gtk_text_buffer_register_deserialize_format, 5, 0, 0, H_gtk_text_buffer_register_deserialize_format, pl_tust);
+  s7_define_typed_function(sc, "gtk_text_buffer_register_deserialize_tagset", lg_gtk_text_buffer_register_deserialize_tagset, 2, 0, 0, H_gtk_text_buffer_register_deserialize_tagset, pl_tus);
+  s7_define_typed_function(sc, "gtk_text_buffer_unregister_serialize_format", lg_gtk_text_buffer_unregister_serialize_format, 2, 0, 0, H_gtk_text_buffer_unregister_serialize_format, pl_tut);
+  s7_define_typed_function(sc, "gtk_text_buffer_unregister_deserialize_format", lg_gtk_text_buffer_unregister_deserialize_format, 2, 0, 0, H_gtk_text_buffer_unregister_deserialize_format, pl_tut);
+  s7_define_typed_function(sc, "gtk_text_buffer_deserialize_set_can_create_tags", lg_gtk_text_buffer_deserialize_set_can_create_tags, 3, 0, 0, H_gtk_text_buffer_deserialize_set_can_create_tags, pl_tutb);
+  s7_define_typed_function(sc, "gtk_text_buffer_deserialize_get_can_create_tags", lg_gtk_text_buffer_deserialize_get_can_create_tags, 2, 0, 0, H_gtk_text_buffer_deserialize_get_can_create_tags, pl_but);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_serialize_formats", lg_gtk_text_buffer_get_serialize_formats, 1, 1, 0, H_gtk_text_buffer_get_serialize_formats, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_buffer_get_deserialize_formats", lg_gtk_text_buffer_get_deserialize_formats, 1, 1, 0, H_gtk_text_buffer_get_deserialize_formats, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_buffer_serialize", lg_gtk_text_buffer_serialize, 5, 1, 0, H_gtk_text_buffer_serialize, pl_puutu);
+  s7_define_typed_function(sc, "gtk_text_buffer_deserialize", lg_gtk_text_buffer_deserialize, 6, 1, 0, H_gtk_text_buffer_deserialize, pl_puutuuiu);
+  s7_define_typed_function(sc, "gtk_recent_manager_add_item", lg_gtk_recent_manager_add_item, 2, 0, 0, H_gtk_recent_manager_add_item, pl_bus);
+  s7_define_typed_function(sc, "gtk_recent_manager_add_full", lg_gtk_recent_manager_add_full, 3, 0, 0, H_gtk_recent_manager_add_full, pl_busu);
+  s7_define_typed_function(sc, "gtk_tree_model_filter_convert_child_iter_to_iter", lg_gtk_tree_model_filter_convert_child_iter_to_iter, 3, 0, 0, H_gtk_tree_model_filter_convert_child_iter_to_iter, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_grid_lines", lg_gtk_tree_view_get_grid_lines, 1, 0, 0, H_gtk_tree_view_get_grid_lines, pl_gu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_grid_lines", lg_gtk_tree_view_set_grid_lines, 2, 0, 0, H_gtk_tree_view_set_grid_lines, pl_tug);
+  s7_define_typed_function(sc, "gtk_tree_view_get_enable_tree_lines", lg_gtk_tree_view_get_enable_tree_lines, 1, 0, 0, H_gtk_tree_view_get_enable_tree_lines, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_enable_tree_lines", lg_gtk_tree_view_set_enable_tree_lines, 2, 0, 0, H_gtk_tree_view_set_enable_tree_lines, pl_tub);
+  s7_define_typed_function(sc, "gtk_label_set_line_wrap_mode", lg_gtk_label_set_line_wrap_mode, 2, 0, 0, H_gtk_label_set_line_wrap_mode, pl_tug);
+  s7_define_typed_function(sc, "gtk_label_get_line_wrap_mode", lg_gtk_label_get_line_wrap_mode, 1, 0, 0, H_gtk_label_get_line_wrap_mode, pl_gu);
+  s7_define_typed_function(sc, "gtk_print_context_get_cairo_context", lg_gtk_print_context_get_cairo_context, 1, 0, 0, H_gtk_print_context_get_cairo_context, pl_pu);
+  s7_define_typed_function(sc, "gtk_print_context_get_page_setup", lg_gtk_print_context_get_page_setup, 1, 0, 0, H_gtk_print_context_get_page_setup, pl_pu);
+  s7_define_typed_function(sc, "gtk_print_context_get_width", lg_gtk_print_context_get_width, 1, 0, 0, H_gtk_print_context_get_width, pl_du);
+  s7_define_typed_function(sc, "gtk_print_context_get_height", lg_gtk_print_context_get_height, 1, 0, 0, H_gtk_print_context_get_height, pl_du);
+  s7_define_typed_function(sc, "gtk_print_context_get_dpi_x", lg_gtk_print_context_get_dpi_x, 1, 0, 0, H_gtk_print_context_get_dpi_x, pl_du);
+  s7_define_typed_function(sc, "gtk_print_context_get_dpi_y", lg_gtk_print_context_get_dpi_y, 1, 0, 0, H_gtk_print_context_get_dpi_y, pl_du);
+  s7_define_typed_function(sc, "gtk_print_context_create_pango_context", lg_gtk_print_context_create_pango_context, 1, 0, 0, H_gtk_print_context_create_pango_context, pl_pu);
+  s7_define_typed_function(sc, "gtk_print_context_create_pango_layout", lg_gtk_print_context_create_pango_layout, 1, 0, 0, H_gtk_print_context_create_pango_layout, pl_pu);
+  s7_define_typed_function(sc, "gtk_print_context_set_cairo_context", lg_gtk_print_context_set_cairo_context, 4, 0, 0, H_gtk_print_context_set_cairo_context, pl_tuur);
+  s7_define_typed_function(sc, "gtk_print_operation_new", lg_gtk_print_operation_new, 0, 0, 0, H_gtk_print_operation_new, pl_p);
+  s7_define_typed_function(sc, "gtk_print_operation_set_default_page_setup", lg_gtk_print_operation_set_default_page_setup, 2, 0, 0, H_gtk_print_operation_set_default_page_setup, pl_tu);
+  s7_define_typed_function(sc, "gtk_print_operation_get_default_page_setup", lg_gtk_print_operation_get_default_page_setup, 1, 0, 0, H_gtk_print_operation_get_default_page_setup, pl_pu);
+  s7_define_typed_function(sc, "gtk_print_operation_set_print_settings", lg_gtk_print_operation_set_print_settings, 2, 0, 0, H_gtk_print_operation_set_print_settings, pl_tu);
+  s7_define_typed_function(sc, "gtk_print_operation_get_print_settings", lg_gtk_print_operation_get_print_settings, 1, 0, 0, H_gtk_print_operation_get_print_settings, pl_pu);
+  s7_define_typed_function(sc, "gtk_print_operation_set_job_name", lg_gtk_print_operation_set_job_name, 2, 0, 0, H_gtk_print_operation_set_job_name, pl_tus);
+  s7_define_typed_function(sc, "gtk_print_operation_set_n_pages", lg_gtk_print_operation_set_n_pages, 2, 0, 0, H_gtk_print_operation_set_n_pages, pl_tui);
+  s7_define_typed_function(sc, "gtk_print_operation_set_current_page", lg_gtk_print_operation_set_current_page, 2, 0, 0, H_gtk_print_operation_set_current_page, pl_tui);
+  s7_define_typed_function(sc, "gtk_print_operation_set_use_full_page", lg_gtk_print_operation_set_use_full_page, 2, 0, 0, H_gtk_print_operation_set_use_full_page, pl_tub);
+  s7_define_typed_function(sc, "gtk_print_operation_set_unit", lg_gtk_print_operation_set_unit, 2, 0, 0, H_gtk_print_operation_set_unit, pl_tui);
+  s7_define_typed_function(sc, "gtk_print_operation_set_export_filename", lg_gtk_print_operation_set_export_filename, 2, 0, 0, H_gtk_print_operation_set_export_filename, pl_tus);
+  s7_define_typed_function(sc, "gtk_print_operation_set_track_print_status", lg_gtk_print_operation_set_track_print_status, 2, 0, 0, H_gtk_print_operation_set_track_print_status, pl_tub);
+  s7_define_typed_function(sc, "gtk_print_operation_set_show_progress", lg_gtk_print_operation_set_show_progress, 2, 0, 0, H_gtk_print_operation_set_show_progress, pl_tub);
+  s7_define_typed_function(sc, "gtk_print_operation_set_allow_async", lg_gtk_print_operation_set_allow_async, 2, 0, 0, H_gtk_print_operation_set_allow_async, pl_tub);
+  s7_define_typed_function(sc, "gtk_print_operation_set_custom_tab_label", lg_gtk_print_operation_set_custom_tab_label, 2, 0, 0, H_gtk_print_operation_set_custom_tab_label, pl_tus);
+  s7_define_typed_function(sc, "gtk_print_operation_run", lg_gtk_print_operation_run, 3, 1, 0, H_gtk_print_operation_run, pl_pugu);
+  s7_define_typed_function(sc, "gtk_print_operation_get_error", lg_gtk_print_operation_get_error, 1, 1, 0, H_gtk_print_operation_get_error, pl_pu);
+  s7_define_typed_function(sc, "gtk_print_operation_get_status", lg_gtk_print_operation_get_status, 1, 0, 0, H_gtk_print_operation_get_status, pl_gu);
+  s7_define_typed_function(sc, "gtk_print_operation_get_status_string", lg_gtk_print_operation_get_status_string, 1, 0, 0, H_gtk_print_operation_get_status_string, pl_su);
+  s7_define_typed_function(sc, "gtk_print_operation_is_finished", lg_gtk_print_operation_is_finished, 1, 0, 0, H_gtk_print_operation_is_finished, pl_bu);
+  s7_define_typed_function(sc, "gtk_print_operation_cancel", lg_gtk_print_operation_cancel, 1, 0, 0, H_gtk_print_operation_cancel, pl_tu);
+  s7_define_typed_function(sc, "gtk_print_run_page_setup_dialog", lg_gtk_print_run_page_setup_dialog, 3, 0, 0, H_gtk_print_run_page_setup_dialog, pl_pu);
+  s7_define_typed_function(sc, "gtk_print_run_page_setup_dialog_async", lg_gtk_print_run_page_setup_dialog_async, 5, 0, 0, H_gtk_print_run_page_setup_dialog_async, pl_tuuut);
+  s7_define_typed_function(sc, "gtk_print_settings_new", lg_gtk_print_settings_new, 0, 0, 0, H_gtk_print_settings_new, pl_p);
+  s7_define_typed_function(sc, "gtk_print_settings_copy", lg_gtk_print_settings_copy, 1, 0, 0, H_gtk_print_settings_copy, pl_pu);
+  s7_define_typed_function(sc, "gtk_print_settings_has_key", lg_gtk_print_settings_has_key, 2, 0, 0, H_gtk_print_settings_has_key, pl_bus);
+  s7_define_typed_function(sc, "gtk_print_settings_get", lg_gtk_print_settings_get, 2, 0, 0, H_gtk_print_settings_get, pl_sus);
+  s7_define_typed_function(sc, "gtk_print_settings_set", lg_gtk_print_settings_set, 3, 0, 0, H_gtk_print_settings_set, pl_tus);
+  s7_define_typed_function(sc, "gtk_print_settings_unset", lg_gtk_print_settings_unset, 2, 0, 0, H_gtk_print_settings_unset, pl_tus);
+  s7_define_typed_function(sc, "gtk_print_settings_foreach", lg_gtk_print_settings_foreach, 3, 0, 0, H_gtk_print_settings_foreach, pl_tut);
+  s7_define_typed_function(sc, "gtk_print_settings_get_bool", lg_gtk_print_settings_get_bool, 2, 0, 0, H_gtk_print_settings_get_bool, pl_bus);
+  s7_define_typed_function(sc, "gtk_print_settings_set_bool", lg_gtk_print_settings_set_bool, 3, 0, 0, H_gtk_print_settings_set_bool, pl_tusb);
+  s7_define_typed_function(sc, "gtk_print_settings_get_double", lg_gtk_print_settings_get_double, 2, 0, 0, H_gtk_print_settings_get_double, pl_dus);
+  s7_define_typed_function(sc, "gtk_print_settings_get_double_with_default", lg_gtk_print_settings_get_double_with_default, 3, 0, 0, H_gtk_print_settings_get_double_with_default, pl_dusr);
+  s7_define_typed_function(sc, "gtk_print_settings_set_double", lg_gtk_print_settings_set_double, 3, 0, 0, H_gtk_print_settings_set_double, pl_tusr);
+  s7_define_typed_function(sc, "gtk_print_settings_get_length", lg_gtk_print_settings_get_length, 3, 0, 0, H_gtk_print_settings_get_length, pl_dusi);
+  s7_define_typed_function(sc, "gtk_print_settings_set_length", lg_gtk_print_settings_set_length, 4, 0, 0, H_gtk_print_settings_set_length, pl_tusri);
+  s7_define_typed_function(sc, "gtk_print_settings_get_int", lg_gtk_print_settings_get_int, 2, 0, 0, H_gtk_print_settings_get_int, pl_ius);
+  s7_define_typed_function(sc, "gtk_print_settings_get_int_with_default", lg_gtk_print_settings_get_int_with_default, 3, 0, 0, H_gtk_print_settings_get_int_with_default, pl_iusi);
+  s7_define_typed_function(sc, "gtk_print_settings_set_int", lg_gtk_print_settings_set_int, 3, 0, 0, H_gtk_print_settings_set_int, pl_tusi);
+  s7_define_typed_function(sc, "gtk_print_settings_get_printer", lg_gtk_print_settings_get_printer, 1, 0, 0, H_gtk_print_settings_get_printer, pl_su);
+  s7_define_typed_function(sc, "gtk_print_settings_set_printer", lg_gtk_print_settings_set_printer, 2, 0, 0, H_gtk_print_settings_set_printer, pl_tus);
+  s7_define_typed_function(sc, "gtk_print_settings_get_orientation", lg_gtk_print_settings_get_orientation, 1, 0, 0, H_gtk_print_settings_get_orientation, pl_iu);
+  s7_define_typed_function(sc, "gtk_print_settings_set_orientation", lg_gtk_print_settings_set_orientation, 2, 0, 0, H_gtk_print_settings_set_orientation, pl_tui);
+  s7_define_typed_function(sc, "gtk_print_settings_get_paper_size", lg_gtk_print_settings_get_paper_size, 1, 0, 0, H_gtk_print_settings_get_paper_size, pl_pu);
+  s7_define_typed_function(sc, "gtk_print_settings_set_paper_size", lg_gtk_print_settings_set_paper_size, 2, 0, 0, H_gtk_print_settings_set_paper_size, pl_tu);
+  s7_define_typed_function(sc, "gtk_print_settings_get_paper_width", lg_gtk_print_settings_get_paper_width, 2, 0, 0, H_gtk_print_settings_get_paper_width, pl_dui);
+  s7_define_typed_function(sc, "gtk_print_settings_set_paper_width", lg_gtk_print_settings_set_paper_width, 3, 0, 0, H_gtk_print_settings_set_paper_width, pl_turi);
+  s7_define_typed_function(sc, "gtk_print_settings_get_paper_height", lg_gtk_print_settings_get_paper_height, 2, 0, 0, H_gtk_print_settings_get_paper_height, pl_dui);
+  s7_define_typed_function(sc, "gtk_print_settings_set_paper_height", lg_gtk_print_settings_set_paper_height, 3, 0, 0, H_gtk_print_settings_set_paper_height, pl_turi);
+  s7_define_typed_function(sc, "gtk_print_settings_get_use_color", lg_gtk_print_settings_get_use_color, 1, 0, 0, H_gtk_print_settings_get_use_color, pl_bu);
+  s7_define_typed_function(sc, "gtk_print_settings_set_use_color", lg_gtk_print_settings_set_use_color, 2, 0, 0, H_gtk_print_settings_set_use_color, pl_tub);
+  s7_define_typed_function(sc, "gtk_print_settings_get_collate", lg_gtk_print_settings_get_collate, 1, 0, 0, H_gtk_print_settings_get_collate, pl_bu);
+  s7_define_typed_function(sc, "gtk_print_settings_set_collate", lg_gtk_print_settings_set_collate, 2, 0, 0, H_gtk_print_settings_set_collate, pl_tub);
+  s7_define_typed_function(sc, "gtk_print_settings_get_reverse", lg_gtk_print_settings_get_reverse, 1, 0, 0, H_gtk_print_settings_get_reverse, pl_bu);
+  s7_define_typed_function(sc, "gtk_print_settings_set_reverse", lg_gtk_print_settings_set_reverse, 2, 0, 0, H_gtk_print_settings_set_reverse, pl_tub);
+  s7_define_typed_function(sc, "gtk_print_settings_get_duplex", lg_gtk_print_settings_get_duplex, 1, 0, 0, H_gtk_print_settings_get_duplex, pl_iu);
+  s7_define_typed_function(sc, "gtk_print_settings_set_duplex", lg_gtk_print_settings_set_duplex, 2, 0, 0, H_gtk_print_settings_set_duplex, pl_tui);
+  s7_define_typed_function(sc, "gtk_print_settings_get_quality", lg_gtk_print_settings_get_quality, 1, 0, 0, H_gtk_print_settings_get_quality, pl_iu);
+  s7_define_typed_function(sc, "gtk_print_settings_set_quality", lg_gtk_print_settings_set_quality, 2, 0, 0, H_gtk_print_settings_set_quality, pl_tui);
+  s7_define_typed_function(sc, "gtk_print_settings_get_n_copies", lg_gtk_print_settings_get_n_copies, 1, 0, 0, H_gtk_print_settings_get_n_copies, pl_iu);
+  s7_define_typed_function(sc, "gtk_print_settings_set_n_copies", lg_gtk_print_settings_set_n_copies, 2, 0, 0, H_gtk_print_settings_set_n_copies, pl_tui);
+  s7_define_typed_function(sc, "gtk_print_settings_get_number_up", lg_gtk_print_settings_get_number_up, 1, 0, 0, H_gtk_print_settings_get_number_up, pl_iu);
+  s7_define_typed_function(sc, "gtk_print_settings_set_number_up", lg_gtk_print_settings_set_number_up, 2, 0, 0, H_gtk_print_settings_set_number_up, pl_tui);
+  s7_define_typed_function(sc, "gtk_print_settings_get_resolution", lg_gtk_print_settings_get_resolution, 1, 0, 0, H_gtk_print_settings_get_resolution, pl_iu);
+  s7_define_typed_function(sc, "gtk_print_settings_set_resolution", lg_gtk_print_settings_set_resolution, 2, 0, 0, H_gtk_print_settings_set_resolution, pl_tui);
+  s7_define_typed_function(sc, "gtk_print_settings_get_scale", lg_gtk_print_settings_get_scale, 1, 0, 0, H_gtk_print_settings_get_scale, pl_du);
+  s7_define_typed_function(sc, "gtk_print_settings_set_scale", lg_gtk_print_settings_set_scale, 2, 0, 0, H_gtk_print_settings_set_scale, pl_tur);
+  s7_define_typed_function(sc, "gtk_print_settings_get_print_pages", lg_gtk_print_settings_get_print_pages, 1, 0, 0, H_gtk_print_settings_get_print_pages, pl_iu);
+  s7_define_typed_function(sc, "gtk_print_settings_set_print_pages", lg_gtk_print_settings_set_print_pages, 2, 0, 0, H_gtk_print_settings_set_print_pages, pl_tui);
+  s7_define_typed_function(sc, "gtk_print_settings_get_page_ranges", lg_gtk_print_settings_get_page_ranges, 2, 0, 0, H_gtk_print_settings_get_page_ranges, pl_pu);
+  s7_define_typed_function(sc, "gtk_print_settings_set_page_ranges", lg_gtk_print_settings_set_page_ranges, 3, 0, 0, H_gtk_print_settings_set_page_ranges, pl_tuui);
+  s7_define_typed_function(sc, "gtk_print_settings_get_page_set", lg_gtk_print_settings_get_page_set, 1, 0, 0, H_gtk_print_settings_get_page_set, pl_iu);
+  s7_define_typed_function(sc, "gtk_print_settings_set_page_set", lg_gtk_print_settings_set_page_set, 2, 0, 0, H_gtk_print_settings_set_page_set, pl_tui);
+  s7_define_typed_function(sc, "gtk_print_settings_get_default_source", lg_gtk_print_settings_get_default_source, 1, 0, 0, H_gtk_print_settings_get_default_source, pl_su);
+  s7_define_typed_function(sc, "gtk_print_settings_set_default_source", lg_gtk_print_settings_set_default_source, 2, 0, 0, H_gtk_print_settings_set_default_source, pl_tus);
+  s7_define_typed_function(sc, "gtk_print_settings_get_media_type", lg_gtk_print_settings_get_media_type, 1, 0, 0, H_gtk_print_settings_get_media_type, pl_su);
+  s7_define_typed_function(sc, "gtk_print_settings_set_media_type", lg_gtk_print_settings_set_media_type, 2, 0, 0, H_gtk_print_settings_set_media_type, pl_tus);
+  s7_define_typed_function(sc, "gtk_print_settings_get_dither", lg_gtk_print_settings_get_dither, 1, 0, 0, H_gtk_print_settings_get_dither, pl_su);
+  s7_define_typed_function(sc, "gtk_print_settings_set_dither", lg_gtk_print_settings_set_dither, 2, 0, 0, H_gtk_print_settings_set_dither, pl_tus);
+  s7_define_typed_function(sc, "gtk_print_settings_get_finishings", lg_gtk_print_settings_get_finishings, 1, 0, 0, H_gtk_print_settings_get_finishings, pl_su);
+  s7_define_typed_function(sc, "gtk_print_settings_set_finishings", lg_gtk_print_settings_set_finishings, 2, 0, 0, H_gtk_print_settings_set_finishings, pl_tus);
+  s7_define_typed_function(sc, "gtk_print_settings_get_output_bin", lg_gtk_print_settings_get_output_bin, 1, 0, 0, H_gtk_print_settings_get_output_bin, pl_su);
+  s7_define_typed_function(sc, "gtk_print_settings_set_output_bin", lg_gtk_print_settings_set_output_bin, 2, 0, 0, H_gtk_print_settings_set_output_bin, pl_tus);
+  s7_define_typed_function(sc, "gtk_settings_get_for_screen", lg_gtk_settings_get_for_screen, 1, 0, 0, H_gtk_settings_get_for_screen, pl_pu);
+  s7_define_typed_function(sc, "pango_cairo_create_layout", lg_pango_cairo_create_layout, 1, 0, 0, H_pango_cairo_create_layout, pl_pu);
+  s7_define_typed_function(sc, "pango_cairo_update_layout", lg_pango_cairo_update_layout, 2, 0, 0, H_pango_cairo_update_layout, pl_tu);
+  s7_define_typed_function(sc, "pango_cairo_update_context", lg_pango_cairo_update_context, 2, 0, 0, H_pango_cairo_update_context, pl_tu);
+  s7_define_typed_function(sc, "pango_cairo_context_set_font_options", lg_pango_cairo_context_set_font_options, 2, 0, 0, H_pango_cairo_context_set_font_options, pl_tu);
+  s7_define_typed_function(sc, "pango_cairo_context_get_font_options", lg_pango_cairo_context_get_font_options, 1, 0, 0, H_pango_cairo_context_get_font_options, pl_pu);
+  s7_define_typed_function(sc, "pango_cairo_context_set_resolution", lg_pango_cairo_context_set_resolution, 2, 0, 0, H_pango_cairo_context_set_resolution, pl_tur);
+  s7_define_typed_function(sc, "pango_cairo_context_get_resolution", lg_pango_cairo_context_get_resolution, 1, 0, 0, H_pango_cairo_context_get_resolution, pl_du);
+  s7_define_typed_function(sc, "pango_cairo_show_glyph_string", lg_pango_cairo_show_glyph_string, 3, 0, 0, H_pango_cairo_show_glyph_string, pl_tu);
+  s7_define_typed_function(sc, "pango_cairo_show_layout_line", lg_pango_cairo_show_layout_line, 2, 0, 0, H_pango_cairo_show_layout_line, pl_tu);
+  s7_define_typed_function(sc, "pango_cairo_show_layout", lg_pango_cairo_show_layout, 2, 0, 0, H_pango_cairo_show_layout, pl_tu);
+  s7_define_typed_function(sc, "pango_cairo_show_error_underline", lg_pango_cairo_show_error_underline, 5, 0, 0, H_pango_cairo_show_error_underline, pl_tur);
+  s7_define_typed_function(sc, "pango_cairo_glyph_string_path", lg_pango_cairo_glyph_string_path, 3, 0, 0, H_pango_cairo_glyph_string_path, pl_tu);
+  s7_define_typed_function(sc, "pango_cairo_layout_line_path", lg_pango_cairo_layout_line_path, 2, 0, 0, H_pango_cairo_layout_line_path, pl_tu);
+  s7_define_typed_function(sc, "pango_cairo_layout_path", lg_pango_cairo_layout_path, 2, 0, 0, H_pango_cairo_layout_path, pl_tu);
+  s7_define_typed_function(sc, "pango_cairo_error_underline_path", lg_pango_cairo_error_underline_path, 5, 0, 0, H_pango_cairo_error_underline_path, pl_tur);
+  s7_define_typed_function(sc, "gdk_cairo_set_source_pixbuf", lg_gdk_cairo_set_source_pixbuf, 4, 0, 0, H_gdk_cairo_set_source_pixbuf, pl_tuur);
+  s7_define_typed_function(sc, "gdk_cairo_rectangle", lg_gdk_cairo_rectangle, 2, 0, 0, H_gdk_cairo_rectangle, pl_tu);
+  s7_define_typed_function(sc, "gdk_event_request_motions", lg_gdk_event_request_motions, 1, 0, 0, H_gdk_event_request_motions, pl_tu);
+  s7_define_typed_function(sc, "gdk_notify_startup_complete_with_id", lg_gdk_notify_startup_complete_with_id, 1, 0, 0, H_gdk_notify_startup_complete_with_id, pl_ts);
+  s7_define_typed_function(sc, "gdk_threads_add_idle_full", lg_gdk_threads_add_idle_full, 4, 0, 0, H_gdk_threads_add_idle_full, pl_iit);
+  s7_define_typed_function(sc, "gdk_threads_add_idle", lg_gdk_threads_add_idle, 1, 1, 0, H_gdk_threads_add_idle, pl_it);
+  s7_define_typed_function(sc, "gdk_threads_add_timeout_full", lg_gdk_threads_add_timeout_full, 5, 0, 0, H_gdk_threads_add_timeout_full, pl_iiit);
+  s7_define_typed_function(sc, "gdk_threads_add_timeout", lg_gdk_threads_add_timeout, 2, 1, 0, H_gdk_threads_add_timeout, pl_iit);
+  s7_define_typed_function(sc, "gdk_window_set_startup_id", lg_gdk_window_set_startup_id, 2, 0, 0, H_gdk_window_set_startup_id, pl_tus);
+  s7_define_typed_function(sc, "gdk_window_beep", lg_gdk_window_beep, 1, 0, 0, H_gdk_window_beep, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_set_opacity", lg_gdk_window_set_opacity, 2, 0, 0, H_gdk_window_set_opacity, pl_tur);
+  s7_define_typed_function(sc, "gtk_binding_entry_skip", lg_gtk_binding_entry_skip, 3, 0, 0, H_gtk_binding_entry_skip, pl_tuig);
+  s7_define_typed_function(sc, "gtk_cell_layout_get_cells", lg_gtk_cell_layout_get_cells, 1, 0, 0, H_gtk_cell_layout_get_cells, pl_pu);
+  s7_define_typed_function(sc, "gtk_entry_completion_set_inline_selection", lg_gtk_entry_completion_set_inline_selection, 2, 0, 0, H_gtk_entry_completion_set_inline_selection, pl_tub);
+  s7_define_typed_function(sc, "gtk_entry_completion_get_inline_selection", lg_gtk_entry_completion_get_inline_selection, 1, 0, 0, H_gtk_entry_completion_get_inline_selection, pl_bu);
+  s7_define_typed_function(sc, "gtk_entry_completion_get_completion_prefix", lg_gtk_entry_completion_get_completion_prefix, 1, 0, 0, H_gtk_entry_completion_get_completion_prefix, pl_su);
+  s7_define_typed_function(sc, "gtk_entry_set_cursor_hadjustment", lg_gtk_entry_set_cursor_hadjustment, 2, 0, 0, H_gtk_entry_set_cursor_hadjustment, pl_tu);
+  s7_define_typed_function(sc, "gtk_entry_get_cursor_hadjustment", lg_gtk_entry_get_cursor_hadjustment, 1, 0, 0, H_gtk_entry_get_cursor_hadjustment, pl_pu);
+  s7_define_typed_function(sc, "gtk_icon_theme_list_contexts", lg_gtk_icon_theme_list_contexts, 1, 0, 0, H_gtk_icon_theme_list_contexts, pl_pu);
+  s7_define_typed_function(sc, "gtk_print_settings_new_from_file", lg_gtk_print_settings_new_from_file, 1, 1, 0, H_gtk_print_settings_new_from_file, pl_psu);
+  s7_define_typed_function(sc, "gtk_print_settings_to_file", lg_gtk_print_settings_to_file, 2, 1, 0, H_gtk_print_settings_to_file, pl_pusu);
+  s7_define_typed_function(sc, "gtk_range_set_show_fill_level", lg_gtk_range_set_show_fill_level, 2, 0, 0, H_gtk_range_set_show_fill_level, pl_tub);
+  s7_define_typed_function(sc, "gtk_range_get_show_fill_level", lg_gtk_range_get_show_fill_level, 1, 0, 0, H_gtk_range_get_show_fill_level, pl_bu);
+  s7_define_typed_function(sc, "gtk_range_set_restrict_to_fill_level", lg_gtk_range_set_restrict_to_fill_level, 2, 0, 0, H_gtk_range_set_restrict_to_fill_level, pl_tub);
+  s7_define_typed_function(sc, "gtk_range_get_restrict_to_fill_level", lg_gtk_range_get_restrict_to_fill_level, 1, 0, 0, H_gtk_range_get_restrict_to_fill_level, pl_bu);
+  s7_define_typed_function(sc, "gtk_range_set_fill_level", lg_gtk_range_set_fill_level, 2, 0, 0, H_gtk_range_set_fill_level, pl_tur);
+  s7_define_typed_function(sc, "gtk_range_get_fill_level", lg_gtk_range_get_fill_level, 1, 0, 0, H_gtk_range_get_fill_level, pl_du);
+  s7_define_typed_function(sc, "gtk_tree_view_set_show_expanders", lg_gtk_tree_view_set_show_expanders, 2, 0, 0, H_gtk_tree_view_set_show_expanders, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_get_show_expanders", lg_gtk_tree_view_get_show_expanders, 1, 0, 0, H_gtk_tree_view_get_show_expanders, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_level_indentation", lg_gtk_tree_view_set_level_indentation, 2, 0, 0, H_gtk_tree_view_set_level_indentation, pl_tui);
+  s7_define_typed_function(sc, "gtk_tree_view_get_level_indentation", lg_gtk_tree_view_get_level_indentation, 1, 0, 0, H_gtk_tree_view_get_level_indentation, pl_iu);
+  s7_define_typed_function(sc, "gtk_widget_keynav_failed", lg_gtk_widget_keynav_failed, 2, 0, 0, H_gtk_widget_keynav_failed, pl_bug);
+  s7_define_typed_function(sc, "gtk_widget_error_bell", lg_gtk_widget_error_bell, 1, 0, 0, H_gtk_widget_error_bell, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_set_tooltip_window", lg_gtk_widget_set_tooltip_window, 2, 0, 0, H_gtk_widget_set_tooltip_window, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_get_tooltip_window", lg_gtk_widget_get_tooltip_window, 1, 0, 0, H_gtk_widget_get_tooltip_window, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_trigger_tooltip_query", lg_gtk_widget_trigger_tooltip_query, 1, 0, 0, H_gtk_widget_trigger_tooltip_query, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_set_startup_id", lg_gtk_window_set_startup_id, 2, 0, 0, H_gtk_window_set_startup_id, pl_tus);
+  s7_define_typed_function(sc, "gtk_text_buffer_add_mark", lg_gtk_text_buffer_add_mark, 3, 0, 0, H_gtk_text_buffer_add_mark, pl_tu);
+  s7_define_typed_function(sc, "gtk_text_mark_new", lg_gtk_text_mark_new, 2, 0, 0, H_gtk_text_mark_new, pl_psb);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_tree_view", lg_gtk_tree_view_column_get_tree_view, 1, 0, 0, H_gtk_tree_view_column_get_tree_view, pl_pu);
+  s7_define_typed_function(sc, "gtk_tooltip_set_text", lg_gtk_tooltip_set_text, 2, 0, 0, H_gtk_tooltip_set_text, pl_tus);
+  s7_define_typed_function(sc, "gtk_tree_view_convert_widget_to_tree_coords", lg_gtk_tree_view_convert_widget_to_tree_coords, 3, 2, 0, H_gtk_tree_view_convert_widget_to_tree_coords, pl_puiiu);
+  s7_define_typed_function(sc, "gtk_tree_view_convert_tree_to_widget_coords", lg_gtk_tree_view_convert_tree_to_widget_coords, 3, 2, 0, H_gtk_tree_view_convert_tree_to_widget_coords, pl_puiiu);
+  s7_define_typed_function(sc, "gtk_tree_view_convert_widget_to_bin_window_coords", lg_gtk_tree_view_convert_widget_to_bin_window_coords, 3, 2, 0, H_gtk_tree_view_convert_widget_to_bin_window_coords, pl_puiiu);
+  s7_define_typed_function(sc, "gtk_tree_view_convert_bin_window_to_widget_coords", lg_gtk_tree_view_convert_bin_window_to_widget_coords, 3, 2, 0, H_gtk_tree_view_convert_bin_window_to_widget_coords, pl_puiiu);
+  s7_define_typed_function(sc, "gtk_tree_view_convert_tree_to_bin_window_coords", lg_gtk_tree_view_convert_tree_to_bin_window_coords, 3, 2, 0, H_gtk_tree_view_convert_tree_to_bin_window_coords, pl_puiiu);
+  s7_define_typed_function(sc, "gtk_tree_view_convert_bin_window_to_tree_coords", lg_gtk_tree_view_convert_bin_window_to_tree_coords, 3, 2, 0, H_gtk_tree_view_convert_bin_window_to_tree_coords, pl_puiiu);
+  s7_define_typed_function(sc, "gtk_widget_set_tooltip_text", lg_gtk_widget_set_tooltip_text, 2, 0, 0, H_gtk_widget_set_tooltip_text, pl_tus);
+  s7_define_typed_function(sc, "gtk_widget_get_tooltip_text", lg_gtk_widget_get_tooltip_text, 1, 0, 0, H_gtk_widget_get_tooltip_text, pl_su);
+  s7_define_typed_function(sc, "gtk_widget_set_tooltip_markup", lg_gtk_widget_set_tooltip_markup, 2, 0, 0, H_gtk_widget_set_tooltip_markup, pl_tus);
+  s7_define_typed_function(sc, "gtk_widget_get_tooltip_markup", lg_gtk_widget_get_tooltip_markup, 1, 0, 0, H_gtk_widget_get_tooltip_markup, pl_su);
+  s7_define_typed_function(sc, "gtk_tree_view_is_rubber_banding_active", lg_gtk_tree_view_is_rubber_banding_active, 1, 0, 0, H_gtk_tree_view_is_rubber_banding_active, pl_bu);
+  s7_define_typed_function(sc, "gtk_icon_view_convert_widget_to_bin_window_coords", lg_gtk_icon_view_convert_widget_to_bin_window_coords, 3, 2, 0, H_gtk_icon_view_convert_widget_to_bin_window_coords, pl_puiiu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_tooltip_item", lg_gtk_icon_view_set_tooltip_item, 3, 0, 0, H_gtk_icon_view_set_tooltip_item, pl_tu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_tooltip_cell", lg_gtk_icon_view_set_tooltip_cell, 4, 0, 0, H_gtk_icon_view_set_tooltip_cell, pl_tu);
+  s7_define_typed_function(sc, "gtk_icon_view_get_tooltip_context", lg_gtk_icon_view_get_tooltip_context, 3, 4, 0, H_gtk_icon_view_get_tooltip_context, pl_puuubu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_tooltip_column", lg_gtk_icon_view_set_tooltip_column, 2, 0, 0, H_gtk_icon_view_set_tooltip_column, pl_tui);
+  s7_define_typed_function(sc, "gtk_icon_view_get_tooltip_column", lg_gtk_icon_view_get_tooltip_column, 1, 0, 0, H_gtk_icon_view_get_tooltip_column, pl_iu);
+  s7_define_typed_function(sc, "gtk_menu_tool_button_set_arrow_tooltip_text", lg_gtk_menu_tool_button_set_arrow_tooltip_text, 2, 0, 0, H_gtk_menu_tool_button_set_arrow_tooltip_text, pl_tus);
+  s7_define_typed_function(sc, "gtk_menu_tool_button_set_arrow_tooltip_markup", lg_gtk_menu_tool_button_set_arrow_tooltip_markup, 2, 0, 0, H_gtk_menu_tool_button_set_arrow_tooltip_markup, pl_tus);
+  s7_define_typed_function(sc, "gtk_tool_item_set_tooltip_text", lg_gtk_tool_item_set_tooltip_text, 2, 0, 0, H_gtk_tool_item_set_tooltip_text, pl_tus);
+  s7_define_typed_function(sc, "gtk_tool_item_set_tooltip_markup", lg_gtk_tool_item_set_tooltip_markup, 2, 0, 0, H_gtk_tool_item_set_tooltip_markup, pl_tus);
+  s7_define_typed_function(sc, "gtk_tooltip_set_tip_area", lg_gtk_tooltip_set_tip_area, 2, 0, 0, H_gtk_tooltip_set_tip_area, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_tooltip_row", lg_gtk_tree_view_set_tooltip_row, 3, 0, 0, H_gtk_tree_view_set_tooltip_row, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_tooltip_cell", lg_gtk_tree_view_set_tooltip_cell, 5, 0, 0, H_gtk_tree_view_set_tooltip_cell, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_tooltip_context", lg_gtk_tree_view_get_tooltip_context, 3, 4, 0, H_gtk_tree_view_get_tooltip_context, pl_puuubu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_tooltip_column", lg_gtk_tree_view_set_tooltip_column, 2, 0, 0, H_gtk_tree_view_set_tooltip_column, pl_tui);
+  s7_define_typed_function(sc, "gtk_tree_view_get_tooltip_column", lg_gtk_tree_view_get_tooltip_column, 1, 0, 0, H_gtk_tree_view_get_tooltip_column, pl_iu);
+  s7_define_typed_function(sc, "gtk_widget_set_has_tooltip", lg_gtk_widget_set_has_tooltip, 2, 0, 0, H_gtk_widget_set_has_tooltip, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_get_has_tooltip", lg_gtk_widget_get_has_tooltip, 1, 0, 0, H_gtk_widget_get_has_tooltip, pl_bu);
+#if GTK_CHECK_VERSION(2, 14, 0)
+  s7_define_typed_function(sc, "gtk_calendar_set_detail_func", lg_gtk_calendar_set_detail_func, 4, 0, 0, H_gtk_calendar_set_detail_func, pl_tut);
+  s7_define_typed_function(sc, "gtk_calendar_set_detail_width_chars", lg_gtk_calendar_set_detail_width_chars, 2, 0, 0, H_gtk_calendar_set_detail_width_chars, pl_tui);
+  s7_define_typed_function(sc, "gtk_calendar_set_detail_height_rows", lg_gtk_calendar_set_detail_height_rows, 2, 0, 0, H_gtk_calendar_set_detail_height_rows, pl_tui);
+  s7_define_typed_function(sc, "gtk_calendar_get_detail_width_chars", lg_gtk_calendar_get_detail_width_chars, 1, 0, 0, H_gtk_calendar_get_detail_width_chars, pl_iu);
+  s7_define_typed_function(sc, "gtk_calendar_get_detail_height_rows", lg_gtk_calendar_get_detail_height_rows, 1, 0, 0, H_gtk_calendar_get_detail_height_rows, pl_iu);
+  s7_define_typed_function(sc, "gtk_accel_group_get_is_locked", lg_gtk_accel_group_get_is_locked, 1, 0, 0, H_gtk_accel_group_get_is_locked, pl_bu);
+  s7_define_typed_function(sc, "gtk_dialog_get_content_area", lg_gtk_dialog_get_content_area, 1, 0, 0, H_gtk_dialog_get_content_area, pl_pu);
+  s7_define_typed_function(sc, "gtk_entry_set_overwrite_mode", lg_gtk_entry_set_overwrite_mode, 2, 0, 0, H_gtk_entry_set_overwrite_mode, pl_tub);
+  s7_define_typed_function(sc, "gtk_entry_get_overwrite_mode", lg_gtk_entry_get_overwrite_mode, 1, 0, 0, H_gtk_entry_get_overwrite_mode, pl_bu);
+  s7_define_typed_function(sc, "gtk_entry_get_text_length", lg_gtk_entry_get_text_length, 1, 0, 0, H_gtk_entry_get_text_length, pl_iu);
+  s7_define_typed_function(sc, "gtk_layout_get_bin_window", lg_gtk_layout_get_bin_window, 1, 0, 0, H_gtk_layout_get_bin_window, pl_pu);
+  s7_define_typed_function(sc, "gtk_menu_get_accel_path", lg_gtk_menu_get_accel_path, 1, 0, 0, H_gtk_menu_get_accel_path, pl_su);
+  s7_define_typed_function(sc, "gtk_menu_get_monitor", lg_gtk_menu_get_monitor, 1, 0, 0, H_gtk_menu_get_monitor, pl_iu);
+  s7_define_typed_function(sc, "gtk_menu_item_get_accel_path", lg_gtk_menu_item_get_accel_path, 1, 0, 0, H_gtk_menu_item_get_accel_path, pl_su);
+  s7_define_typed_function(sc, "gtk_scale_button_get_plus_button", lg_gtk_scale_button_get_plus_button, 1, 0, 0, H_gtk_scale_button_get_plus_button, pl_pu);
+  s7_define_typed_function(sc, "gtk_scale_button_get_minus_button", lg_gtk_scale_button_get_minus_button, 1, 0, 0, H_gtk_scale_button_get_minus_button, pl_pu);
+  s7_define_typed_function(sc, "gtk_scale_button_get_popup", lg_gtk_scale_button_get_popup, 1, 0, 0, H_gtk_scale_button_get_popup, pl_pu);
+  s7_define_typed_function(sc, "gtk_selection_data_get_target", lg_gtk_selection_data_get_target, 1, 0, 0, H_gtk_selection_data_get_target, pl_tu);
+  s7_define_typed_function(sc, "gtk_selection_data_get_data_type", lg_gtk_selection_data_get_data_type, 1, 0, 0, H_gtk_selection_data_get_data_type, pl_tu);
+  s7_define_typed_function(sc, "gtk_selection_data_get_format", lg_gtk_selection_data_get_format, 1, 0, 0, H_gtk_selection_data_get_format, pl_iu);
+  s7_define_typed_function(sc, "gtk_selection_data_get_display", lg_gtk_selection_data_get_display, 1, 0, 0, H_gtk_selection_data_get_display, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_get_window", lg_gtk_widget_get_window, 1, 0, 0, H_gtk_widget_get_window, pl_pu);
+  s7_define_typed_function(sc, "gtk_accel_group_get_modifier_mask", lg_gtk_accel_group_get_modifier_mask, 1, 0, 0, H_gtk_accel_group_get_modifier_mask, pl_gu);
+  s7_define_typed_function(sc, "gdk_threads_add_timeout_seconds_full", lg_gdk_threads_add_timeout_seconds_full, 5, 0, 0, H_gdk_threads_add_timeout_seconds_full, pl_iiit);
+  s7_define_typed_function(sc, "gdk_threads_add_timeout_seconds", lg_gdk_threads_add_timeout_seconds, 2, 1, 0, H_gdk_threads_add_timeout_seconds, pl_iit);
+  s7_define_typed_function(sc, "gtk_adjustment_get_lower", lg_gtk_adjustment_get_lower, 1, 0, 0, H_gtk_adjustment_get_lower, pl_du);
+  s7_define_typed_function(sc, "gtk_adjustment_set_lower", lg_gtk_adjustment_set_lower, 2, 0, 0, H_gtk_adjustment_set_lower, pl_tur);
+  s7_define_typed_function(sc, "gtk_adjustment_get_upper", lg_gtk_adjustment_get_upper, 1, 0, 0, H_gtk_adjustment_get_upper, pl_du);
+  s7_define_typed_function(sc, "gtk_adjustment_set_upper", lg_gtk_adjustment_set_upper, 2, 0, 0, H_gtk_adjustment_set_upper, pl_tur);
+  s7_define_typed_function(sc, "gtk_adjustment_get_step_increment", lg_gtk_adjustment_get_step_increment, 1, 0, 0, H_gtk_adjustment_get_step_increment, pl_du);
+  s7_define_typed_function(sc, "gtk_adjustment_set_step_increment", lg_gtk_adjustment_set_step_increment, 2, 0, 0, H_gtk_adjustment_set_step_increment, pl_tur);
+  s7_define_typed_function(sc, "gtk_adjustment_get_page_increment", lg_gtk_adjustment_get_page_increment, 1, 0, 0, H_gtk_adjustment_get_page_increment, pl_du);
+  s7_define_typed_function(sc, "gtk_adjustment_set_page_increment", lg_gtk_adjustment_set_page_increment, 2, 0, 0, H_gtk_adjustment_set_page_increment, pl_tur);
+  s7_define_typed_function(sc, "gtk_adjustment_get_page_size", lg_gtk_adjustment_get_page_size, 1, 0, 0, H_gtk_adjustment_get_page_size, pl_du);
+  s7_define_typed_function(sc, "gtk_adjustment_set_page_size", lg_gtk_adjustment_set_page_size, 2, 0, 0, H_gtk_adjustment_set_page_size, pl_tur);
+  s7_define_typed_function(sc, "gtk_adjustment_configure", lg_gtk_adjustment_configure, 7, 0, 0, H_gtk_adjustment_configure, pl_tur);
+  s7_define_typed_function(sc, "gtk_combo_box_set_button_sensitivity", lg_gtk_combo_box_set_button_sensitivity, 2, 0, 0, H_gtk_combo_box_set_button_sensitivity, pl_tug);
+  s7_define_typed_function(sc, "gtk_combo_box_get_button_sensitivity", lg_gtk_combo_box_get_button_sensitivity, 1, 0, 0, H_gtk_combo_box_get_button_sensitivity, pl_gu);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_file", lg_gtk_file_chooser_get_file, 1, 0, 0, H_gtk_file_chooser_get_file, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_file", lg_gtk_file_chooser_set_file, 2, 1, 0, H_gtk_file_chooser_set_file, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_select_file", lg_gtk_file_chooser_select_file, 2, 1, 0, H_gtk_file_chooser_select_file, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_unselect_file", lg_gtk_file_chooser_unselect_file, 2, 0, 0, H_gtk_file_chooser_unselect_file, pl_tu);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_files", lg_gtk_file_chooser_get_files, 1, 0, 0, H_gtk_file_chooser_get_files, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_current_folder_file", lg_gtk_file_chooser_set_current_folder_file, 2, 1, 0, H_gtk_file_chooser_set_current_folder_file, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_current_folder_file", lg_gtk_file_chooser_get_current_folder_file, 1, 0, 0, H_gtk_file_chooser_get_current_folder_file, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_preview_file", lg_gtk_file_chooser_get_preview_file, 1, 0, 0, H_gtk_file_chooser_get_preview_file, pl_pu);
+  s7_define_typed_function(sc, "gtk_window_get_default_widget", lg_gtk_window_get_default_widget, 1, 0, 0, H_gtk_window_get_default_widget, pl_pu);
+#endif
+
+#if GTK_CHECK_VERSION(2, 16, 0)
+  s7_define_typed_function(sc, "gtk_link_button_get_visited", lg_gtk_link_button_get_visited, 1, 0, 0, H_gtk_link_button_get_visited, pl_bu);
+  s7_define_typed_function(sc, "gtk_link_button_set_visited", lg_gtk_link_button_set_visited, 2, 0, 0, H_gtk_link_button_set_visited, pl_tub);
+  s7_define_typed_function(sc, "gdk_keymap_get_caps_lock_state", lg_gdk_keymap_get_caps_lock_state, 1, 0, 0, H_gdk_keymap_get_caps_lock_state, pl_bu);
+  s7_define_typed_function(sc, "gtk_cell_view_get_model", lg_gtk_cell_view_get_model, 1, 0, 0, H_gtk_cell_view_get_model, pl_pu);
+  s7_define_typed_function(sc, "gtk_entry_unset_invisible_char", lg_gtk_entry_unset_invisible_char, 1, 0, 0, H_gtk_entry_unset_invisible_char, pl_tu);
+  s7_define_typed_function(sc, "gtk_entry_set_progress_fraction", lg_gtk_entry_set_progress_fraction, 2, 0, 0, H_gtk_entry_set_progress_fraction, pl_tur);
+  s7_define_typed_function(sc, "gtk_entry_get_progress_fraction", lg_gtk_entry_get_progress_fraction, 1, 0, 0, H_gtk_entry_get_progress_fraction, pl_du);
+  s7_define_typed_function(sc, "gtk_entry_set_progress_pulse_step", lg_gtk_entry_set_progress_pulse_step, 2, 0, 0, H_gtk_entry_set_progress_pulse_step, pl_tur);
+  s7_define_typed_function(sc, "gtk_entry_get_progress_pulse_step", lg_gtk_entry_get_progress_pulse_step, 1, 0, 0, H_gtk_entry_get_progress_pulse_step, pl_du);
+  s7_define_typed_function(sc, "gtk_entry_progress_pulse", lg_gtk_entry_progress_pulse, 1, 0, 0, H_gtk_entry_progress_pulse, pl_tu);
+  s7_define_typed_function(sc, "gtk_entry_set_icon_from_pixbuf", lg_gtk_entry_set_icon_from_pixbuf, 3, 0, 0, H_gtk_entry_set_icon_from_pixbuf, pl_tugu);
+  s7_define_typed_function(sc, "gtk_entry_set_icon_from_icon_name", lg_gtk_entry_set_icon_from_icon_name, 3, 0, 0, H_gtk_entry_set_icon_from_icon_name, pl_tugs);
+  s7_define_typed_function(sc, "gtk_entry_set_icon_from_gicon", lg_gtk_entry_set_icon_from_gicon, 3, 0, 0, H_gtk_entry_set_icon_from_gicon, pl_tugu);
+  s7_define_typed_function(sc, "gtk_entry_get_icon_name", lg_gtk_entry_get_icon_name, 2, 0, 0, H_gtk_entry_get_icon_name, pl_sug);
+  s7_define_typed_function(sc, "gtk_entry_set_icon_activatable", lg_gtk_entry_set_icon_activatable, 3, 0, 0, H_gtk_entry_set_icon_activatable, pl_tugb);
+  s7_define_typed_function(sc, "gtk_entry_get_icon_activatable", lg_gtk_entry_get_icon_activatable, 2, 0, 0, H_gtk_entry_get_icon_activatable, pl_bug);
+  s7_define_typed_function(sc, "gtk_entry_set_icon_sensitive", lg_gtk_entry_set_icon_sensitive, 3, 0, 0, H_gtk_entry_set_icon_sensitive, pl_tugb);
+  s7_define_typed_function(sc, "gtk_entry_get_icon_sensitive", lg_gtk_entry_get_icon_sensitive, 2, 0, 0, H_gtk_entry_get_icon_sensitive, pl_bug);
+  s7_define_typed_function(sc, "gtk_entry_get_icon_at_pos", lg_gtk_entry_get_icon_at_pos, 3, 0, 0, H_gtk_entry_get_icon_at_pos, pl_iui);
+  s7_define_typed_function(sc, "gtk_entry_set_icon_tooltip_text", lg_gtk_entry_set_icon_tooltip_text, 3, 0, 0, H_gtk_entry_set_icon_tooltip_text, pl_tugs);
+  s7_define_typed_function(sc, "gtk_entry_set_icon_tooltip_markup", lg_gtk_entry_set_icon_tooltip_markup, 3, 0, 0, H_gtk_entry_set_icon_tooltip_markup, pl_tugs);
+  s7_define_typed_function(sc, "gtk_entry_set_icon_drag_source", lg_gtk_entry_set_icon_drag_source, 4, 0, 0, H_gtk_entry_set_icon_drag_source, pl_tugug);
+  s7_define_typed_function(sc, "gtk_entry_get_current_icon_drag_source", lg_gtk_entry_get_current_icon_drag_source, 1, 0, 0, H_gtk_entry_get_current_icon_drag_source, pl_iu);
+  s7_define_typed_function(sc, "gtk_menu_item_set_label", lg_gtk_menu_item_set_label, 2, 0, 0, H_gtk_menu_item_set_label, pl_tus);
+  s7_define_typed_function(sc, "gtk_menu_item_get_label", lg_gtk_menu_item_get_label, 1, 0, 0, H_gtk_menu_item_get_label, pl_su);
+  s7_define_typed_function(sc, "gtk_menu_item_set_use_underline", lg_gtk_menu_item_set_use_underline, 2, 0, 0, H_gtk_menu_item_set_use_underline, pl_tub);
+  s7_define_typed_function(sc, "gtk_menu_item_get_use_underline", lg_gtk_menu_item_get_use_underline, 1, 0, 0, H_gtk_menu_item_get_use_underline, pl_bu);
+  s7_define_typed_function(sc, "gtk_selection_data_get_selection", lg_gtk_selection_data_get_selection, 1, 0, 0, H_gtk_selection_data_get_selection, pl_tu);
+  s7_define_typed_function(sc, "gtk_entry_get_icon_tooltip_text", lg_gtk_entry_get_icon_tooltip_text, 2, 0, 0, H_gtk_entry_get_icon_tooltip_text, pl_sug);
+  s7_define_typed_function(sc, "gtk_entry_get_icon_tooltip_markup", lg_gtk_entry_get_icon_tooltip_markup, 2, 0, 0, H_gtk_entry_get_icon_tooltip_markup, pl_sug);
+  s7_define_typed_function(sc, "gtk_scale_add_mark", lg_gtk_scale_add_mark, 4, 0, 0, H_gtk_scale_add_mark, pl_turgs);
+  s7_define_typed_function(sc, "gtk_scale_clear_marks", lg_gtk_scale_clear_marks, 1, 0, 0, H_gtk_scale_clear_marks, pl_tu);
+#endif
+
+#if GTK_CHECK_VERSION(2, 18, 0)
+  s7_define_typed_function(sc, "gtk_window_get_default_icon_name", lg_gtk_window_get_default_icon_name, 0, 0, 0, H_gtk_window_get_default_icon_name, pl_s);
+  s7_define_typed_function(sc, "gtk_label_get_current_uri", lg_gtk_label_get_current_uri, 1, 0, 0, H_gtk_label_get_current_uri, pl_su);
+  s7_define_typed_function(sc, "gtk_info_bar_new", lg_gtk_info_bar_new, 0, 0, 0, H_gtk_info_bar_new, pl_p);
+  s7_define_typed_function(sc, "gtk_info_bar_get_action_area", lg_gtk_info_bar_get_action_area, 1, 0, 0, H_gtk_info_bar_get_action_area, pl_pu);
+  s7_define_typed_function(sc, "gtk_info_bar_get_content_area", lg_gtk_info_bar_get_content_area, 1, 0, 0, H_gtk_info_bar_get_content_area, pl_pu);
+  s7_define_typed_function(sc, "gtk_info_bar_add_action_widget", lg_gtk_info_bar_add_action_widget, 3, 0, 0, H_gtk_info_bar_add_action_widget, pl_tuui);
+  s7_define_typed_function(sc, "gtk_info_bar_add_button", lg_gtk_info_bar_add_button, 3, 0, 0, H_gtk_info_bar_add_button, pl_pusi);
+  s7_define_typed_function(sc, "gtk_info_bar_set_response_sensitive", lg_gtk_info_bar_set_response_sensitive, 3, 0, 0, H_gtk_info_bar_set_response_sensitive, pl_tuib);
+  s7_define_typed_function(sc, "gtk_info_bar_set_default_response", lg_gtk_info_bar_set_default_response, 2, 0, 0, H_gtk_info_bar_set_default_response, pl_tui);
+  s7_define_typed_function(sc, "gtk_info_bar_response", lg_gtk_info_bar_response, 2, 0, 0, H_gtk_info_bar_response, pl_tui);
+  s7_define_typed_function(sc, "gtk_info_bar_set_message_type", lg_gtk_info_bar_set_message_type, 2, 0, 0, H_gtk_info_bar_set_message_type, pl_tug);
+  s7_define_typed_function(sc, "gtk_info_bar_get_message_type", lg_gtk_info_bar_get_message_type, 1, 0, 0, H_gtk_info_bar_get_message_type, pl_gu);
+  s7_define_typed_function(sc, "gdk_window_get_root_coords", lg_gdk_window_get_root_coords, 3, 2, 0, H_gdk_window_get_root_coords, pl_puiiu);
+  s7_define_typed_function(sc, "gtk_menu_set_reserve_toggle_size", lg_gtk_menu_set_reserve_toggle_size, 2, 0, 0, H_gtk_menu_set_reserve_toggle_size, pl_tub);
+  s7_define_typed_function(sc, "gtk_menu_get_reserve_toggle_size", lg_gtk_menu_get_reserve_toggle_size, 1, 0, 0, H_gtk_menu_get_reserve_toggle_size, pl_bu);
+  s7_define_typed_function(sc, "gtk_entry_new_with_buffer", lg_gtk_entry_new_with_buffer, 1, 0, 0, H_gtk_entry_new_with_buffer, pl_pu);
+  s7_define_typed_function(sc, "gtk_entry_get_buffer", lg_gtk_entry_get_buffer, 1, 0, 0, H_gtk_entry_get_buffer, pl_pu);
+  s7_define_typed_function(sc, "gtk_entry_set_buffer", lg_gtk_entry_set_buffer, 2, 0, 0, H_gtk_entry_set_buffer, pl_tu);
+  s7_define_typed_function(sc, "gtk_label_set_track_visited_links", lg_gtk_label_set_track_visited_links, 2, 0, 0, H_gtk_label_set_track_visited_links, pl_tub);
+  s7_define_typed_function(sc, "gtk_label_get_track_visited_links", lg_gtk_label_get_track_visited_links, 1, 0, 0, H_gtk_label_get_track_visited_links, pl_bu);
+  s7_define_typed_function(sc, "gtk_print_operation_set_embed_page_setup", lg_gtk_print_operation_set_embed_page_setup, 2, 0, 0, H_gtk_print_operation_set_embed_page_setup, pl_tub);
+  s7_define_typed_function(sc, "gtk_print_operation_get_embed_page_setup", lg_gtk_print_operation_get_embed_page_setup, 1, 0, 0, H_gtk_print_operation_get_embed_page_setup, pl_bu);
+  s7_define_typed_function(sc, "gtk_entry_buffer_new", lg_gtk_entry_buffer_new, 2, 0, 0, H_gtk_entry_buffer_new, pl_psi);
+  s7_define_typed_function(sc, "gtk_entry_buffer_get_bytes", lg_gtk_entry_buffer_get_bytes, 1, 0, 0, H_gtk_entry_buffer_get_bytes, pl_iu);
+  s7_define_typed_function(sc, "gtk_entry_buffer_get_length", lg_gtk_entry_buffer_get_length, 1, 0, 0, H_gtk_entry_buffer_get_length, pl_iu);
+  s7_define_typed_function(sc, "gtk_entry_buffer_get_text", lg_gtk_entry_buffer_get_text, 1, 0, 0, H_gtk_entry_buffer_get_text, pl_su);
+  s7_define_typed_function(sc, "gtk_entry_buffer_set_text", lg_gtk_entry_buffer_set_text, 3, 0, 0, H_gtk_entry_buffer_set_text, pl_tusi);
+  s7_define_typed_function(sc, "gtk_entry_buffer_set_max_length", lg_gtk_entry_buffer_set_max_length, 2, 0, 0, H_gtk_entry_buffer_set_max_length, pl_tui);
+  s7_define_typed_function(sc, "gtk_entry_buffer_get_max_length", lg_gtk_entry_buffer_get_max_length, 1, 0, 0, H_gtk_entry_buffer_get_max_length, pl_iu);
+  s7_define_typed_function(sc, "gtk_entry_buffer_insert_text", lg_gtk_entry_buffer_insert_text, 4, 0, 0, H_gtk_entry_buffer_insert_text, pl_iuisi);
+  s7_define_typed_function(sc, "gtk_entry_buffer_delete_text", lg_gtk_entry_buffer_delete_text, 3, 0, 0, H_gtk_entry_buffer_delete_text, pl_iui);
+  s7_define_typed_function(sc, "gtk_entry_buffer_emit_inserted_text", lg_gtk_entry_buffer_emit_inserted_text, 4, 0, 0, H_gtk_entry_buffer_emit_inserted_text, pl_tuisi);
+  s7_define_typed_function(sc, "gtk_entry_buffer_emit_deleted_text", lg_gtk_entry_buffer_emit_deleted_text, 3, 0, 0, H_gtk_entry_buffer_emit_deleted_text, pl_tui);
+  s7_define_typed_function(sc, "gtk_cell_renderer_set_alignment", lg_gtk_cell_renderer_set_alignment, 3, 0, 0, H_gtk_cell_renderer_set_alignment, pl_tur);
+  s7_define_typed_function(sc, "gtk_cell_renderer_get_alignment", lg_gtk_cell_renderer_get_alignment, 1, 2, 0, H_gtk_cell_renderer_get_alignment, pl_pu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_set_padding", lg_gtk_cell_renderer_set_padding, 3, 0, 0, H_gtk_cell_renderer_set_padding, pl_tui);
+  s7_define_typed_function(sc, "gtk_cell_renderer_get_padding", lg_gtk_cell_renderer_get_padding, 1, 2, 0, H_gtk_cell_renderer_get_padding, pl_pu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_set_visible", lg_gtk_cell_renderer_set_visible, 2, 0, 0, H_gtk_cell_renderer_set_visible, pl_tub);
+  s7_define_typed_function(sc, "gtk_cell_renderer_get_visible", lg_gtk_cell_renderer_get_visible, 1, 0, 0, H_gtk_cell_renderer_get_visible, pl_bu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_set_sensitive", lg_gtk_cell_renderer_set_sensitive, 2, 0, 0, H_gtk_cell_renderer_set_sensitive, pl_tub);
+  s7_define_typed_function(sc, "gtk_cell_renderer_get_sensitive", lg_gtk_cell_renderer_get_sensitive, 1, 0, 0, H_gtk_cell_renderer_get_sensitive, pl_bu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_toggle_get_activatable", lg_gtk_cell_renderer_toggle_get_activatable, 1, 0, 0, H_gtk_cell_renderer_toggle_get_activatable, pl_bu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_toggle_set_activatable", lg_gtk_cell_renderer_toggle_set_activatable, 2, 0, 0, H_gtk_cell_renderer_toggle_set_activatable, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_set_can_focus", lg_gtk_widget_set_can_focus, 2, 0, 0, H_gtk_widget_set_can_focus, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_get_can_focus", lg_gtk_widget_get_can_focus, 1, 0, 0, H_gtk_widget_get_can_focus, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_has_focus", lg_gtk_widget_has_focus, 1, 0, 0, H_gtk_widget_has_focus, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_set_can_default", lg_gtk_widget_set_can_default, 2, 0, 0, H_gtk_widget_set_can_default, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_get_can_default", lg_gtk_widget_get_can_default, 1, 0, 0, H_gtk_widget_get_can_default, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_has_default", lg_gtk_widget_has_default, 1, 0, 0, H_gtk_widget_has_default, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_get_sensitive", lg_gtk_widget_get_sensitive, 1, 0, 0, H_gtk_widget_get_sensitive, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_is_sensitive", lg_gtk_widget_is_sensitive, 1, 0, 0, H_gtk_widget_is_sensitive, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_set_has_window", lg_gtk_widget_set_has_window, 2, 0, 0, H_gtk_widget_set_has_window, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_get_has_window", lg_gtk_widget_get_has_window, 1, 0, 0, H_gtk_widget_get_has_window, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_get_cursor", lg_gdk_window_get_cursor, 1, 0, 0, H_gdk_window_get_cursor, pl_pu);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_create_folders", lg_gtk_file_chooser_set_create_folders, 2, 0, 0, H_gtk_file_chooser_set_create_folders, pl_tub);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_create_folders", lg_gtk_file_chooser_get_create_folders, 1, 0, 0, H_gtk_file_chooser_get_create_folders, pl_bu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_item_padding", lg_gtk_icon_view_set_item_padding, 2, 0, 0, H_gtk_icon_view_set_item_padding, pl_tui);
+  s7_define_typed_function(sc, "gtk_icon_view_get_item_padding", lg_gtk_icon_view_get_item_padding, 1, 0, 0, H_gtk_icon_view_get_item_padding, pl_iu);
+  s7_define_typed_function(sc, "gtk_widget_has_grab", lg_gtk_widget_has_grab, 1, 0, 0, H_gtk_widget_has_grab, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_set_visible", lg_gtk_widget_set_visible, 2, 0, 0, H_gtk_widget_set_visible, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_get_visible", lg_gtk_widget_get_visible, 1, 0, 0, H_gtk_widget_get_visible, pl_bu);
+  s7_define_typed_function(sc, "gtk_range_set_flippable", lg_gtk_range_set_flippable, 2, 0, 0, H_gtk_range_set_flippable, pl_tub);
+  s7_define_typed_function(sc, "gtk_range_get_flippable", lg_gtk_range_get_flippable, 1, 0, 0, H_gtk_range_get_flippable, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_is_toplevel", lg_gtk_widget_is_toplevel, 1, 0, 0, H_gtk_widget_is_toplevel, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_is_drawable", lg_gtk_widget_is_drawable, 1, 0, 0, H_gtk_widget_is_drawable, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_set_window", lg_gtk_widget_set_window, 2, 0, 0, H_gtk_widget_set_window, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_is_destroyed", lg_gdk_window_is_destroyed, 1, 0, 0, H_gdk_window_is_destroyed, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_restack", lg_gdk_window_restack, 3, 0, 0, H_gdk_window_restack, pl_tuub);
+  s7_define_typed_function(sc, "gtk_widget_set_receives_default", lg_gtk_widget_set_receives_default, 2, 0, 0, H_gtk_widget_set_receives_default, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_get_receives_default", lg_gtk_widget_get_receives_default, 1, 0, 0, H_gtk_widget_get_receives_default, pl_bu);
+#endif
+
+#if GTK_CHECK_VERSION(2, 20, 0)
+  s7_define_typed_function(sc, "gtk_dialog_get_widget_for_response", lg_gtk_dialog_get_widget_for_response, 2, 0, 0, H_gtk_dialog_get_widget_for_response, pl_pui);
+  s7_define_typed_function(sc, "gtk_spinner_new", lg_gtk_spinner_new, 0, 0, 0, H_gtk_spinner_new, pl_p);
+  s7_define_typed_function(sc, "gtk_spinner_start", lg_gtk_spinner_start, 1, 0, 0, H_gtk_spinner_start, pl_tu);
+  s7_define_typed_function(sc, "gtk_spinner_stop", lg_gtk_spinner_stop, 1, 0, 0, H_gtk_spinner_stop, pl_tu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_spinner_new", lg_gtk_cell_renderer_spinner_new, 0, 0, 0, H_gtk_cell_renderer_spinner_new, pl_p);
+  s7_define_typed_function(sc, "gtk_notebook_get_action_widget", lg_gtk_notebook_get_action_widget, 2, 0, 0, H_gtk_notebook_get_action_widget, pl_pug);
+  s7_define_typed_function(sc, "gtk_notebook_set_action_widget", lg_gtk_notebook_set_action_widget, 3, 0, 0, H_gtk_notebook_set_action_widget, pl_tuug);
+  s7_define_typed_function(sc, "gtk_statusbar_get_message_area", lg_gtk_statusbar_get_message_area, 1, 0, 0, H_gtk_statusbar_get_message_area, pl_pu);
+  s7_define_typed_function(sc, "gtk_tool_item_get_ellipsize_mode", lg_gtk_tool_item_get_ellipsize_mode, 1, 0, 0, H_gtk_tool_item_get_ellipsize_mode, pl_gu);
+  s7_define_typed_function(sc, "gtk_tool_item_get_text_alignment", lg_gtk_tool_item_get_text_alignment, 1, 0, 0, H_gtk_tool_item_get_text_alignment, pl_du);
+  s7_define_typed_function(sc, "gtk_tool_item_get_text_orientation", lg_gtk_tool_item_get_text_orientation, 1, 0, 0, H_gtk_tool_item_get_text_orientation, pl_gu);
+  s7_define_typed_function(sc, "gtk_tool_item_get_text_size_group", lg_gtk_tool_item_get_text_size_group, 1, 0, 0, H_gtk_tool_item_get_text_size_group, pl_pu);
+  s7_define_typed_function(sc, "gtk_tool_palette_new", lg_gtk_tool_palette_new, 0, 0, 0, H_gtk_tool_palette_new, pl_p);
+  s7_define_typed_function(sc, "gtk_tool_palette_set_group_position", lg_gtk_tool_palette_set_group_position, 3, 0, 0, H_gtk_tool_palette_set_group_position, pl_tuui);
+  s7_define_typed_function(sc, "gtk_tool_palette_set_exclusive", lg_gtk_tool_palette_set_exclusive, 3, 0, 0, H_gtk_tool_palette_set_exclusive, pl_tuub);
+  s7_define_typed_function(sc, "gtk_tool_palette_set_expand", lg_gtk_tool_palette_set_expand, 3, 0, 0, H_gtk_tool_palette_set_expand, pl_tuub);
+  s7_define_typed_function(sc, "gtk_tool_palette_get_group_position", lg_gtk_tool_palette_get_group_position, 2, 0, 0, H_gtk_tool_palette_get_group_position, pl_iu);
+  s7_define_typed_function(sc, "gtk_tool_palette_get_exclusive", lg_gtk_tool_palette_get_exclusive, 2, 0, 0, H_gtk_tool_palette_get_exclusive, pl_bu);
+  s7_define_typed_function(sc, "gtk_tool_palette_get_expand", lg_gtk_tool_palette_get_expand, 2, 0, 0, H_gtk_tool_palette_get_expand, pl_bu);
+  s7_define_typed_function(sc, "gtk_tool_palette_unset_icon_size", lg_gtk_tool_palette_unset_icon_size, 1, 0, 0, H_gtk_tool_palette_unset_icon_size, pl_tu);
+  s7_define_typed_function(sc, "gtk_tool_palette_set_style", lg_gtk_tool_palette_set_style, 2, 0, 0, H_gtk_tool_palette_set_style, pl_tug);
+  s7_define_typed_function(sc, "gtk_tool_palette_unset_style", lg_gtk_tool_palette_unset_style, 1, 0, 0, H_gtk_tool_palette_unset_style, pl_tu);
+  s7_define_typed_function(sc, "gtk_tool_palette_get_style", lg_gtk_tool_palette_get_style, 1, 0, 0, H_gtk_tool_palette_get_style, pl_gu);
+  s7_define_typed_function(sc, "gtk_tool_palette_get_drop_item", lg_gtk_tool_palette_get_drop_item, 3, 0, 0, H_gtk_tool_palette_get_drop_item, pl_pui);
+  s7_define_typed_function(sc, "gtk_tool_palette_get_drop_group", lg_gtk_tool_palette_get_drop_group, 3, 0, 0, H_gtk_tool_palette_get_drop_group, pl_pui);
+  s7_define_typed_function(sc, "gtk_tool_palette_get_drag_item", lg_gtk_tool_palette_get_drag_item, 2, 0, 0, H_gtk_tool_palette_get_drag_item, pl_pu);
+  s7_define_typed_function(sc, "gtk_tool_palette_set_drag_source", lg_gtk_tool_palette_set_drag_source, 2, 0, 0, H_gtk_tool_palette_set_drag_source, pl_tug);
+  s7_define_typed_function(sc, "gtk_tool_palette_add_drag_dest", lg_gtk_tool_palette_add_drag_dest, 5, 0, 0, H_gtk_tool_palette_add_drag_dest, pl_tuug);
+  s7_define_typed_function(sc, "gtk_tool_palette_get_drag_target_item", lg_gtk_tool_palette_get_drag_target_item, 0, 0, 0, H_gtk_tool_palette_get_drag_target_item, pl_p);
+  s7_define_typed_function(sc, "gtk_tool_palette_get_drag_target_group", lg_gtk_tool_palette_get_drag_target_group, 0, 0, 0, H_gtk_tool_palette_get_drag_target_group, pl_p);
+  s7_define_typed_function(sc, "gtk_tool_item_group_new", lg_gtk_tool_item_group_new, 1, 0, 0, H_gtk_tool_item_group_new, pl_ps);
+  s7_define_typed_function(sc, "gtk_tool_item_group_set_label", lg_gtk_tool_item_group_set_label, 2, 0, 0, H_gtk_tool_item_group_set_label, pl_tus);
+  s7_define_typed_function(sc, "gtk_tool_item_group_set_label_widget", lg_gtk_tool_item_group_set_label_widget, 2, 0, 0, H_gtk_tool_item_group_set_label_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_tool_item_group_set_collapsed", lg_gtk_tool_item_group_set_collapsed, 2, 0, 0, H_gtk_tool_item_group_set_collapsed, pl_tub);
+  s7_define_typed_function(sc, "gtk_tool_item_group_set_ellipsize", lg_gtk_tool_item_group_set_ellipsize, 2, 0, 0, H_gtk_tool_item_group_set_ellipsize, pl_tug);
+  s7_define_typed_function(sc, "gtk_tool_item_group_set_header_relief", lg_gtk_tool_item_group_set_header_relief, 2, 0, 0, H_gtk_tool_item_group_set_header_relief, pl_tug);
+  s7_define_typed_function(sc, "gtk_tool_item_group_get_label", lg_gtk_tool_item_group_get_label, 1, 0, 0, H_gtk_tool_item_group_get_label, pl_su);
+  s7_define_typed_function(sc, "gtk_tool_item_group_get_label_widget", lg_gtk_tool_item_group_get_label_widget, 1, 0, 0, H_gtk_tool_item_group_get_label_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_tool_item_group_get_collapsed", lg_gtk_tool_item_group_get_collapsed, 1, 0, 0, H_gtk_tool_item_group_get_collapsed, pl_bu);
+  s7_define_typed_function(sc, "gtk_tool_item_group_get_ellipsize", lg_gtk_tool_item_group_get_ellipsize, 1, 0, 0, H_gtk_tool_item_group_get_ellipsize, pl_gu);
+  s7_define_typed_function(sc, "gtk_tool_item_group_get_header_relief", lg_gtk_tool_item_group_get_header_relief, 1, 0, 0, H_gtk_tool_item_group_get_header_relief, pl_gu);
+  s7_define_typed_function(sc, "gtk_tool_item_group_insert", lg_gtk_tool_item_group_insert, 3, 0, 0, H_gtk_tool_item_group_insert, pl_tuui);
+  s7_define_typed_function(sc, "gtk_tool_item_group_set_item_position", lg_gtk_tool_item_group_set_item_position, 3, 0, 0, H_gtk_tool_item_group_set_item_position, pl_tuui);
+  s7_define_typed_function(sc, "gtk_tool_item_group_get_item_position", lg_gtk_tool_item_group_get_item_position, 2, 0, 0, H_gtk_tool_item_group_get_item_position, pl_iu);
+  s7_define_typed_function(sc, "gtk_tool_item_group_get_n_items", lg_gtk_tool_item_group_get_n_items, 1, 0, 0, H_gtk_tool_item_group_get_n_items, pl_iu);
+  s7_define_typed_function(sc, "gtk_tool_item_group_get_nth_item", lg_gtk_tool_item_group_get_nth_item, 2, 0, 0, H_gtk_tool_item_group_get_nth_item, pl_pui);
+  s7_define_typed_function(sc, "gtk_tool_item_group_get_drop_item", lg_gtk_tool_item_group_get_drop_item, 3, 0, 0, H_gtk_tool_item_group_get_drop_item, pl_pui);
+  s7_define_typed_function(sc, "gtk_window_set_mnemonics_visible", lg_gtk_window_set_mnemonics_visible, 2, 0, 0, H_gtk_window_set_mnemonics_visible, pl_tub);
+  s7_define_typed_function(sc, "gtk_window_get_mnemonics_visible", lg_gtk_window_get_mnemonics_visible, 1, 0, 0, H_gtk_window_get_mnemonics_visible, pl_bu);
+  s7_define_typed_function(sc, "gtk_range_set_slider_size_fixed", lg_gtk_range_set_slider_size_fixed, 2, 0, 0, H_gtk_range_set_slider_size_fixed, pl_tub);
+  s7_define_typed_function(sc, "gtk_range_get_slider_size_fixed", lg_gtk_range_get_slider_size_fixed, 1, 0, 0, H_gtk_range_get_slider_size_fixed, pl_bu);
+  s7_define_typed_function(sc, "gtk_range_get_range_rect", lg_gtk_range_get_range_rect, 2, 0, 0, H_gtk_range_get_range_rect, pl_tu);
+  s7_define_typed_function(sc, "gtk_range_get_slider_range", lg_gtk_range_get_slider_range, 1, 2, 0, H_gtk_range_get_slider_range, pl_pu);
+  s7_define_typed_function(sc, "gtk_paned_get_handle_window", lg_gtk_paned_get_handle_window, 1, 0, 0, H_gtk_paned_get_handle_window, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_set_realized", lg_gtk_widget_set_realized, 2, 0, 0, H_gtk_widget_set_realized, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_get_realized", lg_gtk_widget_get_realized, 1, 0, 0, H_gtk_widget_get_realized, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_get_mapped", lg_gtk_widget_get_mapped, 1, 0, 0, H_gtk_widget_get_mapped, pl_bu);
+#endif
+
+#if GTK_CHECK_VERSION(3, 0, 0)
+  s7_define_typed_function(sc, "gdk_window_get_geometry", lg_gdk_window_get_geometry, 1, 4, 0, H_gdk_window_get_geometry, pl_pu);
+  s7_define_typed_function(sc, "gdk_keymap_add_virtual_modifiers", lg_gdk_keymap_add_virtual_modifiers, 2, 0, 0, H_gdk_keymap_add_virtual_modifiers, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_coords_to_parent", lg_gdk_window_coords_to_parent, 3, 2, 0, H_gdk_window_coords_to_parent, pl_purru);
+  s7_define_typed_function(sc, "gdk_window_coords_from_parent", lg_gdk_window_coords_from_parent, 3, 2, 0, H_gdk_window_coords_from_parent, pl_purru);
+  s7_define_typed_function(sc, "gtk_accessible_get_widget", lg_gtk_accessible_get_widget, 1, 0, 0, H_gtk_accessible_get_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_send_focus_change", lg_gtk_widget_send_focus_change, 2, 0, 0, H_gtk_widget_send_focus_change, pl_bu);
+  s7_define_typed_function(sc, "gdk_drag_context_set_device", lg_gdk_drag_context_set_device, 2, 0, 0, H_gdk_drag_context_set_device, pl_tu);
+  s7_define_typed_function(sc, "gdk_drag_context_get_device", lg_gdk_drag_context_get_device, 1, 0, 0, H_gdk_drag_context_get_device, pl_pu);
+  s7_define_typed_function(sc, "gdk_drag_context_list_targets", lg_gdk_drag_context_list_targets, 1, 0, 0, H_gdk_drag_context_list_targets, pl_pu);
+  s7_define_typed_function(sc, "gdk_event_set_device", lg_gdk_event_set_device, 2, 0, 0, H_gdk_event_set_device, pl_tu);
+  s7_define_typed_function(sc, "gdk_event_get_device", lg_gdk_event_get_device, 1, 0, 0, H_gdk_event_get_device, pl_pu);
+  s7_define_typed_function(sc, "gdk_events_get_distance", lg_gdk_events_get_distance, 2, 1, 0, H_gdk_events_get_distance, pl_pu);
+  s7_define_typed_function(sc, "gdk_events_get_angle", lg_gdk_events_get_angle, 2, 1, 0, H_gdk_events_get_angle, pl_pu);
+  s7_define_typed_function(sc, "gdk_events_get_center", lg_gdk_events_get_center, 2, 2, 0, H_gdk_events_get_center, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_get_accept_focus", lg_gdk_window_get_accept_focus, 1, 0, 0, H_gdk_window_get_accept_focus, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_get_focus_on_map", lg_gdk_window_get_focus_on_map, 1, 0, 0, H_gdk_window_get_focus_on_map, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_is_input_only", lg_gdk_window_is_input_only, 1, 0, 0, H_gdk_window_is_input_only, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_is_shaped", lg_gdk_window_is_shaped, 1, 0, 0, H_gdk_window_is_shaped, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_get_modal_hint", lg_gdk_window_get_modal_hint, 1, 0, 0, H_gdk_window_get_modal_hint, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_set_device_cursor", lg_gdk_window_set_device_cursor, 3, 0, 0, H_gdk_window_set_device_cursor, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_get_device_cursor", lg_gdk_window_get_device_cursor, 2, 0, 0, H_gdk_window_get_device_cursor, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_get_device_position", lg_gdk_window_get_device_position, 2, 3, 0, H_gdk_window_get_device_position, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_set_device_events", lg_gdk_window_set_device_events, 3, 0, 0, H_gdk_window_set_device_events, pl_tuug);
+  s7_define_typed_function(sc, "gdk_window_get_device_events", lg_gdk_window_get_device_events, 2, 0, 0, H_gdk_window_get_device_events, pl_gu);
+  s7_define_typed_function(sc, "gtk_combo_box_popup_for_device", lg_gtk_combo_box_popup_for_device, 2, 0, 0, H_gtk_combo_box_popup_for_device, pl_tu);
+  s7_define_typed_function(sc, "gtk_device_grab_add", lg_gtk_device_grab_add, 3, 0, 0, H_gtk_device_grab_add, pl_tuub);
+  s7_define_typed_function(sc, "gtk_device_grab_remove", lg_gtk_device_grab_remove, 2, 0, 0, H_gtk_device_grab_remove, pl_tu);
+  s7_define_typed_function(sc, "gtk_get_current_event_device", lg_gtk_get_current_event_device, 0, 0, 0, H_gtk_get_current_event_device, pl_p);
+  s7_define_typed_function(sc, "gtk_paned_new", lg_gtk_paned_new, 1, 0, 0, H_gtk_paned_new, pl_pg);
+  s7_define_typed_function(sc, "gtk_scale_new", lg_gtk_scale_new, 2, 0, 0, H_gtk_scale_new, pl_pgu);
+  s7_define_typed_function(sc, "gtk_scale_new_with_range", lg_gtk_scale_new_with_range, 4, 0, 0, H_gtk_scale_new_with_range, pl_pgr);
+  s7_define_typed_function(sc, "gtk_scrollbar_new", lg_gtk_scrollbar_new, 2, 0, 0, H_gtk_scrollbar_new, pl_pgu);
+  s7_define_typed_function(sc, "gtk_separator_new", lg_gtk_separator_new, 1, 0, 0, H_gtk_separator_new, pl_pg);
+  s7_define_typed_function(sc, "gtk_widget_device_is_shadowed", lg_gtk_widget_device_is_shadowed, 2, 0, 0, H_gtk_widget_device_is_shadowed, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_get_support_multidevice", lg_gtk_widget_get_support_multidevice, 1, 0, 0, H_gtk_widget_get_support_multidevice, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_set_support_multidevice", lg_gtk_widget_set_support_multidevice, 2, 0, 0, H_gtk_widget_set_support_multidevice, pl_tub);
+  s7_define_typed_function(sc, "gtk_icon_view_get_item_row", lg_gtk_icon_view_get_item_row, 2, 0, 0, H_gtk_icon_view_get_item_row, pl_iu);
+  s7_define_typed_function(sc, "gtk_icon_view_get_item_column", lg_gtk_icon_view_get_item_column, 2, 0, 0, H_gtk_icon_view_get_item_column, pl_iu);
+  s7_define_typed_function(sc, "gtk_statusbar_remove_all", lg_gtk_statusbar_remove_all, 2, 0, 0, H_gtk_statusbar_remove_all, pl_tui);
+  s7_define_typed_function(sc, "gtk_window_has_group", lg_gtk_window_has_group, 1, 0, 0, H_gtk_window_has_group, pl_bu);
+  s7_define_typed_function(sc, "gtk_calendar_select_month", lg_gtk_calendar_select_month, 3, 0, 0, H_gtk_calendar_select_month, pl_tui);
+  s7_define_typed_function(sc, "gtk_calendar_mark_day", lg_gtk_calendar_mark_day, 2, 0, 0, H_gtk_calendar_mark_day, pl_tui);
+  s7_define_typed_function(sc, "gtk_calendar_unmark_day", lg_gtk_calendar_unmark_day, 2, 0, 0, H_gtk_calendar_unmark_day, pl_tui);
+  s7_define_typed_function(sc, "gdk_drag_context_get_source_window", lg_gdk_drag_context_get_source_window, 1, 0, 0, H_gdk_drag_context_get_source_window, pl_pu);
+  s7_define_typed_function(sc, "gtk_accessible_set_widget", lg_gtk_accessible_set_widget, 2, 0, 0, H_gtk_accessible_set_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_message_dialog_get_message_area", lg_gtk_message_dialog_get_message_area, 1, 0, 0, H_gtk_message_dialog_get_message_area, pl_pu);
+  s7_define_typed_function(sc, "gtk_selection_data_get_length", lg_gtk_selection_data_get_length, 1, 0, 0, H_gtk_selection_data_get_length, pl_iu);
+  s7_define_typed_function(sc, "gdk_pango_layout_line_get_clip_region", lg_gdk_pango_layout_line_get_clip_region, 5, 0, 0, H_gdk_pango_layout_line_get_clip_region, pl_puiiui);
+  s7_define_typed_function(sc, "gdk_pango_layout_get_clip_region", lg_gdk_pango_layout_get_clip_region, 5, 0, 0, H_gdk_pango_layout_get_clip_region, pl_puiiui);
+  s7_define_typed_function(sc, "gdk_window_shape_combine_region", lg_gdk_window_shape_combine_region, 4, 0, 0, H_gdk_window_shape_combine_region, pl_tuui);
+  s7_define_typed_function(sc, "gdk_window_invalidate_region", lg_gdk_window_invalidate_region, 3, 0, 0, H_gdk_window_invalidate_region, pl_tuub);
+  s7_define_typed_function(sc, "gdk_window_get_update_area", lg_gdk_window_get_update_area, 1, 0, 0, H_gdk_window_get_update_area, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_move_region", lg_gdk_window_move_region, 4, 0, 0, H_gdk_window_move_region, pl_tuui);
+  s7_define_typed_function(sc, "gdk_keymap_get_num_lock_state", lg_gdk_keymap_get_num_lock_state, 1, 0, 0, H_gdk_keymap_get_num_lock_state, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_has_native", lg_gdk_window_has_native, 1, 0, 0, H_gdk_window_has_native, pl_bu);
+  s7_define_typed_function(sc, "gdk_cursor_get_cursor_type", lg_gdk_cursor_get_cursor_type, 1, 0, 0, H_gdk_cursor_get_cursor_type, pl_gu);
+  s7_define_typed_function(sc, "gdk_display_is_closed", lg_gdk_display_is_closed, 1, 0, 0, H_gdk_display_is_closed, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_create_similar_surface", lg_gdk_window_create_similar_surface, 4, 0, 0, H_gdk_window_create_similar_surface, pl_pugi);
+  s7_define_typed_function(sc, "gtk_expander_set_label_fill", lg_gtk_expander_set_label_fill, 2, 0, 0, H_gtk_expander_set_label_fill, pl_tub);
+  s7_define_typed_function(sc, "gtk_expander_get_label_fill", lg_gtk_expander_get_label_fill, 1, 0, 0, H_gtk_expander_get_label_fill, pl_bu);
+  s7_define_typed_function(sc, "gtk_calendar_get_day_is_marked", lg_gtk_calendar_get_day_is_marked, 2, 0, 0, H_gtk_calendar_get_day_is_marked, pl_bui);
+  s7_define_typed_function(sc, "gtk_progress_bar_set_inverted", lg_gtk_progress_bar_set_inverted, 2, 0, 0, H_gtk_progress_bar_set_inverted, pl_tub);
+  s7_define_typed_function(sc, "gtk_progress_bar_get_inverted", lg_gtk_progress_bar_get_inverted, 1, 0, 0, H_gtk_progress_bar_get_inverted, pl_bu);
+  s7_define_typed_function(sc, "gtk_radio_button_join_group", lg_gtk_radio_button_join_group, 2, 0, 0, H_gtk_radio_button_join_group, pl_tu);
+  s7_define_typed_function(sc, "gtk_adjustment_new", lg_gtk_adjustment_new, 6, 0, 0, H_gtk_adjustment_new, pl_pr);
+  s7_define_typed_function(sc, "gtk_binding_set_activate", lg_gtk_binding_set_activate, 4, 0, 0, H_gtk_binding_set_activate, pl_buigu);
+  s7_define_typed_function(sc, "gtk_bindings_activate", lg_gtk_bindings_activate, 3, 0, 0, H_gtk_bindings_activate, pl_buig);
+  s7_define_typed_function(sc, "gtk_icon_view_create_drag_icon", lg_gtk_icon_view_create_drag_icon, 2, 0, 0, H_gtk_icon_view_create_drag_icon, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_create_row_drag_icon", lg_gtk_tree_view_create_row_drag_icon, 2, 0, 0, H_gtk_tree_view_create_row_drag_icon, pl_pu);
+  s7_define_typed_function(sc, "gdk_cairo_get_clip_rectangle", lg_gdk_cairo_get_clip_rectangle, 2, 0, 0, H_gdk_cairo_get_clip_rectangle, pl_bu);
+  s7_define_typed_function(sc, "gdk_cairo_region_create_from_surface", lg_gdk_cairo_region_create_from_surface, 1, 0, 0, H_gdk_cairo_region_create_from_surface, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_get_screen", lg_gdk_window_get_screen, 1, 0, 0, H_gdk_window_get_screen, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_get_display", lg_gdk_window_get_display, 1, 0, 0, H_gdk_window_get_display, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_get_width", lg_gdk_window_get_width, 1, 0, 0, H_gdk_window_get_width, pl_iu);
+  s7_define_typed_function(sc, "gdk_window_get_height", lg_gdk_window_get_height, 1, 0, 0, H_gdk_window_get_height, pl_iu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_get_request_mode", lg_gtk_cell_renderer_get_request_mode, 1, 0, 0, H_gtk_cell_renderer_get_request_mode, pl_gu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_get_preferred_width", lg_gtk_cell_renderer_get_preferred_width, 2, 2, 0, H_gtk_cell_renderer_get_preferred_width, pl_pu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_get_preferred_height_for_width", lg_gtk_cell_renderer_get_preferred_height_for_width, 3, 2, 0, H_gtk_cell_renderer_get_preferred_height_for_width, pl_puuiu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_get_preferred_height", lg_gtk_cell_renderer_get_preferred_height, 2, 2, 0, H_gtk_cell_renderer_get_preferred_height, pl_pu);
+  s7_define_typed_function(sc, "gtk_cell_renderer_get_preferred_width_for_height", lg_gtk_cell_renderer_get_preferred_width_for_height, 3, 2, 0, H_gtk_cell_renderer_get_preferred_width_for_height, pl_puuiu);
+  s7_define_typed_function(sc, "gtk_drag_set_icon_surface", lg_gtk_drag_set_icon_surface, 2, 0, 0, H_gtk_drag_set_icon_surface, pl_tu);
+  s7_define_typed_function(sc, "gtk_notebook_set_group_name", lg_gtk_notebook_set_group_name, 2, 0, 0, H_gtk_notebook_set_group_name, pl_tus);
+  s7_define_typed_function(sc, "gtk_notebook_get_group_name", lg_gtk_notebook_get_group_name, 1, 0, 0, H_gtk_notebook_get_group_name, pl_su);
+  s7_define_typed_function(sc, "gtk_widget_draw", lg_gtk_widget_draw, 2, 0, 0, H_gtk_widget_draw, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_get_request_mode", lg_gtk_widget_get_request_mode, 1, 0, 0, H_gtk_widget_get_request_mode, pl_gu);
+  s7_define_typed_function(sc, "gtk_widget_get_allocated_width", lg_gtk_widget_get_allocated_width, 1, 0, 0, H_gtk_widget_get_allocated_width, pl_iu);
+  s7_define_typed_function(sc, "gtk_widget_get_allocated_height", lg_gtk_widget_get_allocated_height, 1, 0, 0, H_gtk_widget_get_allocated_height, pl_iu);
+  s7_define_typed_function(sc, "gtk_widget_get_halign", lg_gtk_widget_get_halign, 1, 0, 0, H_gtk_widget_get_halign, pl_gu);
+  s7_define_typed_function(sc, "gtk_widget_set_halign", lg_gtk_widget_set_halign, 2, 0, 0, H_gtk_widget_set_halign, pl_tug);
+  s7_define_typed_function(sc, "gtk_widget_get_valign", lg_gtk_widget_get_valign, 1, 0, 0, H_gtk_widget_get_valign, pl_gu);
+  s7_define_typed_function(sc, "gtk_widget_set_valign", lg_gtk_widget_set_valign, 2, 0, 0, H_gtk_widget_set_valign, pl_tug);
+  s7_define_typed_function(sc, "gtk_widget_get_margin_top", lg_gtk_widget_get_margin_top, 1, 0, 0, H_gtk_widget_get_margin_top, pl_iu);
+  s7_define_typed_function(sc, "gtk_widget_set_margin_top", lg_gtk_widget_set_margin_top, 2, 0, 0, H_gtk_widget_set_margin_top, pl_tui);
+  s7_define_typed_function(sc, "gtk_widget_get_margin_bottom", lg_gtk_widget_get_margin_bottom, 1, 0, 0, H_gtk_widget_get_margin_bottom, pl_iu);
+  s7_define_typed_function(sc, "gtk_widget_set_margin_bottom", lg_gtk_widget_set_margin_bottom, 2, 0, 0, H_gtk_widget_set_margin_bottom, pl_tui);
+  s7_define_typed_function(sc, "gtk_widget_shape_combine_region", lg_gtk_widget_shape_combine_region, 2, 0, 0, H_gtk_widget_shape_combine_region, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_input_shape_combine_region", lg_gtk_widget_input_shape_combine_region, 2, 0, 0, H_gtk_widget_input_shape_combine_region, pl_tu);
+  s7_define_typed_function(sc, "gtk_cairo_transform_to_window", lg_gtk_cairo_transform_to_window, 3, 0, 0, H_gtk_cairo_transform_to_window, pl_tu);
+  s7_define_typed_function(sc, "gtk_combo_box_new_with_entry", lg_gtk_combo_box_new_with_entry, 0, 0, 0, H_gtk_combo_box_new_with_entry, pl_p);
+  s7_define_typed_function(sc, "gtk_combo_box_get_has_entry", lg_gtk_combo_box_get_has_entry, 1, 0, 0, H_gtk_combo_box_get_has_entry, pl_bu);
+  s7_define_typed_function(sc, "gtk_combo_box_set_entry_text_column", lg_gtk_combo_box_set_entry_text_column, 2, 0, 0, H_gtk_combo_box_set_entry_text_column, pl_tui);
+  s7_define_typed_function(sc, "gtk_combo_box_get_entry_text_column", lg_gtk_combo_box_get_entry_text_column, 1, 0, 0, H_gtk_combo_box_get_entry_text_column, pl_iu);
+  s7_define_typed_function(sc, "gtk_target_entry_new", lg_gtk_target_entry_new, 3, 0, 0, H_gtk_target_entry_new, pl_psi);
+  s7_define_typed_function(sc, "gtk_target_entry_copy", lg_gtk_target_entry_copy, 1, 0, 0, H_gtk_target_entry_copy, pl_pu);
+  s7_define_typed_function(sc, "gtk_target_entry_free", lg_gtk_target_entry_free, 1, 0, 0, H_gtk_target_entry_free, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_get_hexpand", lg_gtk_widget_get_hexpand, 1, 0, 0, H_gtk_widget_get_hexpand, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_set_hexpand", lg_gtk_widget_set_hexpand, 2, 0, 0, H_gtk_widget_set_hexpand, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_get_hexpand_set", lg_gtk_widget_get_hexpand_set, 1, 0, 0, H_gtk_widget_get_hexpand_set, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_set_hexpand_set", lg_gtk_widget_set_hexpand_set, 2, 0, 0, H_gtk_widget_set_hexpand_set, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_get_vexpand", lg_gtk_widget_get_vexpand, 1, 0, 0, H_gtk_widget_get_vexpand, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_set_vexpand", lg_gtk_widget_set_vexpand, 2, 0, 0, H_gtk_widget_set_vexpand, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_get_vexpand_set", lg_gtk_widget_get_vexpand_set, 1, 0, 0, H_gtk_widget_get_vexpand_set, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_set_vexpand_set", lg_gtk_widget_set_vexpand_set, 2, 0, 0, H_gtk_widget_set_vexpand_set, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_queue_compute_expand", lg_gtk_widget_queue_compute_expand, 1, 0, 0, H_gtk_widget_queue_compute_expand, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_compute_expand", lg_gtk_widget_compute_expand, 2, 0, 0, H_gtk_widget_compute_expand, pl_bug);
+  s7_define_typed_function(sc, "gtk_combo_box_text_new", lg_gtk_combo_box_text_new, 0, 0, 0, H_gtk_combo_box_text_new, pl_p);
+  s7_define_typed_function(sc, "gtk_combo_box_text_new_with_entry", lg_gtk_combo_box_text_new_with_entry, 0, 0, 0, H_gtk_combo_box_text_new_with_entry, pl_p);
+  s7_define_typed_function(sc, "gtk_combo_box_text_append_text", lg_gtk_combo_box_text_append_text, 2, 0, 0, H_gtk_combo_box_text_append_text, pl_tus);
+  s7_define_typed_function(sc, "gtk_combo_box_text_insert_text", lg_gtk_combo_box_text_insert_text, 3, 0, 0, H_gtk_combo_box_text_insert_text, pl_tuis);
+  s7_define_typed_function(sc, "gtk_combo_box_text_prepend_text", lg_gtk_combo_box_text_prepend_text, 2, 0, 0, H_gtk_combo_box_text_prepend_text, pl_tus);
+  s7_define_typed_function(sc, "gtk_combo_box_text_remove", lg_gtk_combo_box_text_remove, 2, 0, 0, H_gtk_combo_box_text_remove, pl_tui);
+  s7_define_typed_function(sc, "gtk_combo_box_text_get_active_text", lg_gtk_combo_box_text_get_active_text, 1, 0, 0, H_gtk_combo_box_text_get_active_text, pl_su);
+  s7_define_typed_function(sc, "gdk_cairo_set_source_rgba", lg_gdk_cairo_set_source_rgba, 2, 0, 0, H_gdk_cairo_set_source_rgba, pl_tu);
+  s7_define_typed_function(sc, "gtk_combo_box_text_remove_all", lg_gtk_combo_box_text_remove_all, 1, 0, 0, H_gtk_combo_box_text_remove_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_combo_box_set_popup_fixed_width", lg_gtk_combo_box_set_popup_fixed_width, 2, 0, 0, H_gtk_combo_box_set_popup_fixed_width, pl_tub);
+  s7_define_typed_function(sc, "gtk_combo_box_get_popup_fixed_width", lg_gtk_combo_box_get_popup_fixed_width, 1, 0, 0, H_gtk_combo_box_get_popup_fixed_width, pl_bu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_get_min_content_width", lg_gtk_scrolled_window_get_min_content_width, 1, 0, 0, H_gtk_scrolled_window_get_min_content_width, pl_iu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_set_min_content_width", lg_gtk_scrolled_window_set_min_content_width, 2, 0, 0, H_gtk_scrolled_window_set_min_content_width, pl_tui);
+  s7_define_typed_function(sc, "gtk_scrolled_window_get_min_content_height", lg_gtk_scrolled_window_get_min_content_height, 1, 0, 0, H_gtk_scrolled_window_get_min_content_height, pl_iu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_set_min_content_height", lg_gtk_scrolled_window_set_min_content_height, 2, 0, 0, H_gtk_scrolled_window_set_min_content_height, pl_tui);
+  s7_define_typed_function(sc, "gtk_grid_new", lg_gtk_grid_new, 0, 0, 0, H_gtk_grid_new, pl_p);
+  s7_define_typed_function(sc, "gtk_grid_attach", lg_gtk_grid_attach, 6, 0, 0, H_gtk_grid_attach, pl_tuui);
+  s7_define_typed_function(sc, "gtk_grid_attach_next_to", lg_gtk_grid_attach_next_to, 6, 0, 0, H_gtk_grid_attach_next_to, pl_tuuugi);
+  s7_define_typed_function(sc, "gtk_grid_set_row_homogeneous", lg_gtk_grid_set_row_homogeneous, 2, 0, 0, H_gtk_grid_set_row_homogeneous, pl_tub);
+  s7_define_typed_function(sc, "gtk_grid_get_row_homogeneous", lg_gtk_grid_get_row_homogeneous, 1, 0, 0, H_gtk_grid_get_row_homogeneous, pl_bu);
+  s7_define_typed_function(sc, "gtk_grid_set_row_spacing", lg_gtk_grid_set_row_spacing, 2, 0, 0, H_gtk_grid_set_row_spacing, pl_tui);
+  s7_define_typed_function(sc, "gtk_grid_get_row_spacing", lg_gtk_grid_get_row_spacing, 1, 0, 0, H_gtk_grid_get_row_spacing, pl_iu);
+  s7_define_typed_function(sc, "gtk_grid_set_column_homogeneous", lg_gtk_grid_set_column_homogeneous, 2, 0, 0, H_gtk_grid_set_column_homogeneous, pl_tub);
+  s7_define_typed_function(sc, "gtk_grid_get_column_homogeneous", lg_gtk_grid_get_column_homogeneous, 1, 0, 0, H_gtk_grid_get_column_homogeneous, pl_bu);
+  s7_define_typed_function(sc, "gtk_grid_set_column_spacing", lg_gtk_grid_set_column_spacing, 2, 0, 0, H_gtk_grid_set_column_spacing, pl_tui);
+  s7_define_typed_function(sc, "gtk_grid_get_column_spacing", lg_gtk_grid_get_column_spacing, 1, 0, 0, H_gtk_grid_get_column_spacing, pl_iu);
+  s7_define_typed_function(sc, "gtk_scrollable_get_hadjustment", lg_gtk_scrollable_get_hadjustment, 1, 0, 0, H_gtk_scrollable_get_hadjustment, pl_pu);
+  s7_define_typed_function(sc, "gtk_scrollable_set_hadjustment", lg_gtk_scrollable_set_hadjustment, 2, 0, 0, H_gtk_scrollable_set_hadjustment, pl_tu);
+  s7_define_typed_function(sc, "gtk_scrollable_get_vadjustment", lg_gtk_scrollable_get_vadjustment, 1, 0, 0, H_gtk_scrollable_get_vadjustment, pl_pu);
+  s7_define_typed_function(sc, "gtk_scrollable_set_vadjustment", lg_gtk_scrollable_set_vadjustment, 2, 0, 0, H_gtk_scrollable_set_vadjustment, pl_tu);
+  s7_define_typed_function(sc, "gtk_assistant_next_page", lg_gtk_assistant_next_page, 1, 0, 0, H_gtk_assistant_next_page, pl_tu);
+  s7_define_typed_function(sc, "gtk_assistant_previous_page", lg_gtk_assistant_previous_page, 1, 0, 0, H_gtk_assistant_previous_page, pl_tu);
+  s7_define_typed_function(sc, "gtk_combo_box_new_with_model_and_entry", lg_gtk_combo_box_new_with_model_and_entry, 1, 0, 0, H_gtk_combo_box_new_with_model_and_entry, pl_pu);
+  s7_define_typed_function(sc, "gtk_scrollable_get_hscroll_policy", lg_gtk_scrollable_get_hscroll_policy, 1, 0, 0, H_gtk_scrollable_get_hscroll_policy, pl_gu);
+  s7_define_typed_function(sc, "gtk_scrollable_set_hscroll_policy", lg_gtk_scrollable_set_hscroll_policy, 2, 0, 0, H_gtk_scrollable_set_hscroll_policy, pl_tug);
+  s7_define_typed_function(sc, "gtk_scrollable_get_vscroll_policy", lg_gtk_scrollable_get_vscroll_policy, 1, 0, 0, H_gtk_scrollable_get_vscroll_policy, pl_gu);
+  s7_define_typed_function(sc, "gtk_scrollable_set_vscroll_policy", lg_gtk_scrollable_set_vscroll_policy, 2, 0, 0, H_gtk_scrollable_set_vscroll_policy, pl_tug);
+  s7_define_typed_function(sc, "gtk_switch_new", lg_gtk_switch_new, 0, 0, 0, H_gtk_switch_new, pl_p);
+  s7_define_typed_function(sc, "gtk_switch_set_active", lg_gtk_switch_set_active, 2, 0, 0, H_gtk_switch_set_active, pl_tub);
+  s7_define_typed_function(sc, "gtk_switch_get_active", lg_gtk_switch_get_active, 1, 0, 0, H_gtk_switch_get_active, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_get_clip_region", lg_gdk_window_get_clip_region, 1, 0, 0, H_gdk_window_get_clip_region, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_get_visible_region", lg_gdk_window_get_visible_region, 1, 0, 0, H_gdk_window_get_visible_region, pl_pu);
+  s7_define_typed_function(sc, "gtk_border_new", lg_gtk_border_new, 0, 0, 0, H_gtk_border_new, pl_p);
+  s7_define_typed_function(sc, "gtk_border_copy", lg_gtk_border_copy, 1, 0, 0, H_gtk_border_copy, pl_pu);
+  s7_define_typed_function(sc, "gtk_border_free", lg_gtk_border_free, 1, 0, 0, H_gtk_border_free, pl_tu);
+  s7_define_typed_function(sc, "gtk_combo_box_get_id_column", lg_gtk_combo_box_get_id_column, 1, 0, 0, H_gtk_combo_box_get_id_column, pl_iu);
+  s7_define_typed_function(sc, "gtk_combo_box_set_id_column", lg_gtk_combo_box_set_id_column, 2, 0, 0, H_gtk_combo_box_set_id_column, pl_tui);
+  s7_define_typed_function(sc, "gtk_combo_box_get_active_id", lg_gtk_combo_box_get_active_id, 1, 0, 0, H_gtk_combo_box_get_active_id, pl_su);
+  s7_define_typed_function(sc, "gtk_combo_box_text_insert", lg_gtk_combo_box_text_insert, 4, 0, 0, H_gtk_combo_box_text_insert, pl_tuis);
+  s7_define_typed_function(sc, "gtk_combo_box_text_append", lg_gtk_combo_box_text_append, 3, 0, 0, H_gtk_combo_box_text_append, pl_tus);
+  s7_define_typed_function(sc, "gtk_combo_box_text_prepend", lg_gtk_combo_box_text_prepend, 3, 0, 0, H_gtk_combo_box_text_prepend, pl_tus);
+  s7_define_typed_function(sc, "gtk_button_box_new", lg_gtk_button_box_new, 1, 0, 0, H_gtk_button_box_new, pl_pg);
+  s7_define_typed_function(sc, "gtk_box_new", lg_gtk_box_new, 2, 0, 0, H_gtk_box_new, pl_pgi);
+  s7_define_typed_function(sc, "gtk_tree_view_set_cursor_on_cell", lg_gtk_tree_view_set_cursor_on_cell, 5, 0, 0, H_gtk_tree_view_set_cursor_on_cell, pl_tuuuub);
+  s7_define_typed_function(sc, "gtk_tree_view_set_rubber_banding", lg_gtk_tree_view_set_rubber_banding, 2, 0, 0, H_gtk_tree_view_set_rubber_banding, pl_tub);
+  s7_define_typed_function(sc, "gtk_tree_view_get_rubber_banding", lg_gtk_tree_view_get_rubber_banding, 1, 0, 0, H_gtk_tree_view_get_rubber_banding, pl_bu);
+  s7_define_typed_function(sc, "gtk_tooltip_set_markup", lg_gtk_tooltip_set_markup, 2, 0, 0, H_gtk_tooltip_set_markup, pl_tus);
+  s7_define_typed_function(sc, "gtk_tooltip_set_icon", lg_gtk_tooltip_set_icon, 2, 0, 0, H_gtk_tooltip_set_icon, pl_tu);
+  s7_define_typed_function(sc, "gtk_tooltip_set_custom", lg_gtk_tooltip_set_custom, 2, 0, 0, H_gtk_tooltip_set_custom, pl_tu);
+  s7_define_typed_function(sc, "gtk_tooltip_trigger_tooltip_query", lg_gtk_tooltip_trigger_tooltip_query, 1, 0, 0, H_gtk_tooltip_trigger_tooltip_query, pl_tu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_new_with_area", lg_gtk_tree_view_column_new_with_area, 1, 0, 0, H_gtk_tree_view_column_new_with_area, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_button", lg_gtk_tree_view_column_get_button, 1, 0, 0, H_gtk_tree_view_column_get_button, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_view_column_focus_cell", lg_gtk_tree_view_column_focus_cell, 2, 0, 0, H_gtk_tree_view_column_focus_cell, pl_tu);
+  s7_define_typed_function(sc, "gtk_clipboard_wait_is_uris_available", lg_gtk_clipboard_wait_is_uris_available, 1, 0, 0, H_gtk_clipboard_wait_is_uris_available, pl_bu);
+  s7_define_typed_function(sc, "gtk_toolbar_set_drop_highlight_item", lg_gtk_toolbar_set_drop_highlight_item, 3, 0, 0, H_gtk_toolbar_set_drop_highlight_item, pl_tuui);
+  s7_define_typed_function(sc, "gtk_tool_item_toolbar_reconfigured", lg_gtk_tool_item_toolbar_reconfigured, 1, 0, 0, H_gtk_tool_item_toolbar_reconfigured, pl_tu);
+  s7_define_typed_function(sc, "gtk_orientable_set_orientation", lg_gtk_orientable_set_orientation, 2, 0, 0, H_gtk_orientable_set_orientation, pl_tug);
+  s7_define_typed_function(sc, "gtk_orientable_get_orientation", lg_gtk_orientable_get_orientation, 1, 0, 0, H_gtk_orientable_get_orientation, pl_gu);
+  s7_define_typed_function(sc, "gtk_get_major_version", lg_gtk_get_major_version, 0, 0, 0, H_gtk_get_major_version, pl_i);
+  s7_define_typed_function(sc, "gtk_get_minor_version", lg_gtk_get_minor_version, 0, 0, 0, H_gtk_get_minor_version, pl_i);
+  s7_define_typed_function(sc, "gtk_get_micro_version", lg_gtk_get_micro_version, 0, 0, 0, H_gtk_get_micro_version, pl_i);
+  s7_define_typed_function(sc, "gtk_get_binary_age", lg_gtk_get_binary_age, 0, 0, 0, H_gtk_get_binary_age, pl_i);
+  s7_define_typed_function(sc, "gtk_get_interface_age", lg_gtk_get_interface_age, 0, 0, 0, H_gtk_get_interface_age, pl_i);
+  s7_define_typed_function(sc, "gtk_progress_bar_set_show_text", lg_gtk_progress_bar_set_show_text, 2, 0, 0, H_gtk_progress_bar_set_show_text, pl_tub);
+  s7_define_typed_function(sc, "gtk_progress_bar_get_show_text", lg_gtk_progress_bar_get_show_text, 1, 0, 0, H_gtk_progress_bar_get_show_text, pl_bu);
+  s7_define_typed_function(sc, "gtk_invisible_new_for_screen", lg_gtk_invisible_new_for_screen, 1, 0, 0, H_gtk_invisible_new_for_screen, pl_pu);
+  s7_define_typed_function(sc, "gtk_invisible_set_screen", lg_gtk_invisible_set_screen, 2, 0, 0, H_gtk_invisible_set_screen, pl_tu);
+  s7_define_typed_function(sc, "gtk_invisible_get_screen", lg_gtk_invisible_get_screen, 1, 0, 0, H_gtk_invisible_get_screen, pl_pu);
+  s7_define_typed_function(sc, "gtk_entry_get_icon_storage_type", lg_gtk_entry_get_icon_storage_type, 2, 0, 0, H_gtk_entry_get_icon_storage_type, pl_gug);
+  s7_define_typed_function(sc, "gtk_entry_get_icon_pixbuf", lg_gtk_entry_get_icon_pixbuf, 2, 0, 0, H_gtk_entry_get_icon_pixbuf, pl_pug);
+  s7_define_typed_function(sc, "gtk_entry_get_icon_gicon", lg_gtk_entry_get_icon_gicon, 2, 0, 0, H_gtk_entry_get_icon_gicon, pl_pug);
+  s7_define_typed_function(sc, "gtk_container_propagate_draw", lg_gtk_container_propagate_draw, 3, 0, 0, H_gtk_container_propagate_draw, pl_tu);
+  s7_define_typed_function(sc, "gtk_container_set_focus_chain", lg_gtk_container_set_focus_chain, 2, 0, 0, H_gtk_container_set_focus_chain, pl_tu);
+  s7_define_typed_function(sc, "gtk_container_get_focus_chain", lg_gtk_container_get_focus_chain, 1, 1, 0, H_gtk_container_get_focus_chain, pl_pu);
+  s7_define_typed_function(sc, "gtk_container_unset_focus_chain", lg_gtk_container_unset_focus_chain, 1, 0, 0, H_gtk_container_unset_focus_chain, pl_tu);
+  s7_define_typed_function(sc, "gtk_container_set_focus_vadjustment", lg_gtk_container_set_focus_vadjustment, 2, 0, 0, H_gtk_container_set_focus_vadjustment, pl_tu);
+  s7_define_typed_function(sc, "gtk_container_get_focus_vadjustment", lg_gtk_container_get_focus_vadjustment, 1, 0, 0, H_gtk_container_get_focus_vadjustment, pl_pu);
+  s7_define_typed_function(sc, "gtk_container_set_focus_hadjustment", lg_gtk_container_set_focus_hadjustment, 2, 0, 0, H_gtk_container_set_focus_hadjustment, pl_tu);
+  s7_define_typed_function(sc, "gtk_container_get_focus_hadjustment", lg_gtk_container_get_focus_hadjustment, 1, 0, 0, H_gtk_container_get_focus_hadjustment, pl_pu);
+  s7_define_typed_function(sc, "gtk_assistant_commit", lg_gtk_assistant_commit, 1, 0, 0, H_gtk_assistant_commit, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_set_skip_taskbar_hint", lg_gtk_window_set_skip_taskbar_hint, 2, 0, 0, H_gtk_window_set_skip_taskbar_hint, pl_tub);
+  s7_define_typed_function(sc, "gtk_window_get_skip_taskbar_hint", lg_gtk_window_get_skip_taskbar_hint, 1, 0, 0, H_gtk_window_get_skip_taskbar_hint, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_set_skip_pager_hint", lg_gtk_window_set_skip_pager_hint, 2, 0, 0, H_gtk_window_set_skip_pager_hint, pl_tub);
+  s7_define_typed_function(sc, "gtk_window_get_skip_pager_hint", lg_gtk_window_get_skip_pager_hint, 1, 0, 0, H_gtk_window_get_skip_pager_hint, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_set_screen", lg_gtk_window_set_screen, 2, 0, 0, H_gtk_window_set_screen, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_get_screen", lg_gtk_window_get_screen, 1, 0, 0, H_gtk_window_get_screen, pl_pu);
+  s7_define_typed_function(sc, "gtk_window_set_icon_from_file", lg_gtk_window_set_icon_from_file, 2, 1, 0, H_gtk_window_set_icon_from_file, pl_pusu);
+  s7_define_typed_function(sc, "gtk_window_set_default_icon_from_file", lg_gtk_window_set_default_icon_from_file, 1, 1, 0, H_gtk_window_set_default_icon_from_file, pl_psu);
+  s7_define_typed_function(sc, "gtk_window_fullscreen", lg_gtk_window_fullscreen, 1, 0, 0, H_gtk_window_fullscreen, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_unfullscreen", lg_gtk_window_unfullscreen, 1, 0, 0, H_gtk_window_unfullscreen, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_get_window_type", lg_gtk_window_get_window_type, 1, 0, 0, H_gtk_window_get_window_type, pl_gu);
+  s7_define_typed_function(sc, "gtk_window_group_add_window", lg_gtk_window_group_add_window, 2, 0, 0, H_gtk_window_group_add_window, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_group_remove_window", lg_gtk_window_group_remove_window, 2, 0, 0, H_gtk_window_group_remove_window, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_group_new", lg_gtk_window_group_new, 0, 0, 0, H_gtk_window_group_new, pl_p);
+  s7_define_typed_function(sc, "gtk_window_get_group", lg_gtk_window_get_group, 1, 0, 0, H_gtk_window_get_group, pl_pu);
+  s7_define_typed_function(sc, "gtk_window_group_list_windows", lg_gtk_window_group_list_windows, 1, 0, 0, H_gtk_window_group_list_windows, pl_pu);
+  s7_define_typed_function(sc, "gtk_window_group_get_current_device_grab", lg_gtk_window_group_get_current_device_grab, 2, 0, 0, H_gtk_window_group_get_current_device_grab, pl_pu);
+  s7_define_typed_function(sc, "gtk_window_group_get_current_grab", lg_gtk_window_group_get_current_grab, 1, 0, 0, H_gtk_window_group_get_current_grab, pl_pu);
+  s7_define_typed_function(sc, "gtk_selection_data_get_data", lg_gtk_selection_data_get_data, 1, 0, 0, H_gtk_selection_data_get_data, pl_su);
+  s7_define_typed_function(sc, "gtk_selection_owner_set_for_display", lg_gtk_selection_owner_set_for_display, 4, 0, 0, H_gtk_selection_owner_set_for_display, pl_buuti);
+  s7_define_typed_function(sc, "gtk_tool_shell_get_text_orientation", lg_gtk_tool_shell_get_text_orientation, 1, 0, 0, H_gtk_tool_shell_get_text_orientation, pl_gu);
+  s7_define_typed_function(sc, "gtk_tool_shell_get_text_alignment", lg_gtk_tool_shell_get_text_alignment, 1, 0, 0, H_gtk_tool_shell_get_text_alignment, pl_du);
+  s7_define_typed_function(sc, "gtk_tool_shell_get_ellipsize_mode", lg_gtk_tool_shell_get_ellipsize_mode, 1, 0, 0, H_gtk_tool_shell_get_ellipsize_mode, pl_gu);
+  s7_define_typed_function(sc, "gtk_tool_shell_get_text_size_group", lg_gtk_tool_shell_get_text_size_group, 1, 0, 0, H_gtk_tool_shell_get_text_size_group, pl_pu);
+  s7_define_typed_function(sc, "gtk_tool_shell_get_orientation", lg_gtk_tool_shell_get_orientation, 1, 0, 0, H_gtk_tool_shell_get_orientation, pl_gu);
+  s7_define_typed_function(sc, "gtk_tool_shell_get_style", lg_gtk_tool_shell_get_style, 1, 0, 0, H_gtk_tool_shell_get_style, pl_gu);
+  s7_define_typed_function(sc, "gtk_tool_shell_rebuild_menu", lg_gtk_tool_shell_rebuild_menu, 1, 0, 0, H_gtk_tool_shell_rebuild_menu, pl_tu);
+  s7_define_typed_function(sc, "gtk_accel_map_lock_path", lg_gtk_accel_map_lock_path, 1, 0, 0, H_gtk_accel_map_lock_path, pl_ts);
+  s7_define_typed_function(sc, "gtk_accel_map_unlock_path", lg_gtk_accel_map_unlock_path, 1, 0, 0, H_gtk_accel_map_unlock_path, pl_ts);
+  s7_define_typed_function(sc, "gtk_icon_theme_lookup_by_gicon", lg_gtk_icon_theme_lookup_by_gicon, 4, 0, 0, H_gtk_icon_theme_lookup_by_gicon, pl_puuig);
+  s7_define_typed_function(sc, "gtk_icon_info_new_for_pixbuf", lg_gtk_icon_info_new_for_pixbuf, 2, 0, 0, H_gtk_icon_info_new_for_pixbuf, pl_pu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_item_orientation", lg_gtk_icon_view_set_item_orientation, 2, 0, 0, H_gtk_icon_view_set_item_orientation, pl_tug);
+  s7_define_typed_function(sc, "gtk_icon_view_get_item_orientation", lg_gtk_icon_view_get_item_orientation, 1, 0, 0, H_gtk_icon_view_get_item_orientation, pl_gu);
+  s7_define_typed_function(sc, "gtk_text_view_im_context_filter_keypress", lg_gtk_text_view_im_context_filter_keypress, 2, 0, 0, H_gtk_text_view_im_context_filter_keypress, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_view_reset_im_context", lg_gtk_text_view_reset_im_context, 1, 0, 0, H_gtk_text_view_reset_im_context, pl_tu);
+  s7_define_typed_function(sc, "gdk_device_get_position", lg_gdk_device_get_position, 2, 2, 0, H_gdk_device_get_position, pl_pu);
+  s7_define_typed_function(sc, "gdk_device_get_window_at_position", lg_gdk_device_get_window_at_position, 1, 2, 0, H_gdk_device_get_window_at_position, pl_pu);
+  s7_define_typed_function(sc, "gtk_cell_view_get_draw_sensitive", lg_gtk_cell_view_get_draw_sensitive, 1, 0, 0, H_gtk_cell_view_get_draw_sensitive, pl_bu);
+  s7_define_typed_function(sc, "gtk_cell_view_set_draw_sensitive", lg_gtk_cell_view_set_draw_sensitive, 2, 0, 0, H_gtk_cell_view_set_draw_sensitive, pl_tub);
+  s7_define_typed_function(sc, "gtk_cell_view_get_fit_model", lg_gtk_cell_view_get_fit_model, 1, 0, 0, H_gtk_cell_view_get_fit_model, pl_bu);
+  s7_define_typed_function(sc, "gtk_cell_view_set_fit_model", lg_gtk_cell_view_set_fit_model, 2, 0, 0, H_gtk_cell_view_set_fit_model, pl_tub);
+  s7_define_typed_function(sc, "gtk_icon_view_new_with_area", lg_gtk_icon_view_new_with_area, 1, 0, 0, H_gtk_icon_view_new_with_area, pl_pu);
+  s7_define_typed_function(sc, "gtk_menu_item_set_reserve_indicator", lg_gtk_menu_item_set_reserve_indicator, 2, 0, 0, H_gtk_menu_item_set_reserve_indicator, pl_tub);
+  s7_define_typed_function(sc, "gtk_menu_item_get_reserve_indicator", lg_gtk_menu_item_get_reserve_indicator, 1, 0, 0, H_gtk_menu_item_get_reserve_indicator, pl_bu);
+  s7_define_typed_function(sc, "gtk_menu_shell_get_selected_item", lg_gtk_menu_shell_get_selected_item, 1, 0, 0, H_gtk_menu_shell_get_selected_item, pl_pu);
+  s7_define_typed_function(sc, "gtk_menu_shell_get_parent_shell", lg_gtk_menu_shell_get_parent_shell, 1, 0, 0, H_gtk_menu_shell_get_parent_shell, pl_pu);
+  s7_define_typed_function(sc, "gtk_selection_data_get_data_with_length", lg_gtk_selection_data_get_data_with_length, 1, 1, 0, H_gtk_selection_data_get_data_with_length, pl_pu);
+  s7_define_typed_function(sc, "gtk_tree_model_iter_previous", lg_gtk_tree_model_iter_previous, 2, 0, 0, H_gtk_tree_model_iter_previous, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_is_blank_at_pos", lg_gtk_tree_view_is_blank_at_pos, 3, 4, 0, H_gtk_tree_view_is_blank_at_pos, pl_puiiu);
+  s7_define_typed_function(sc, "gtk_widget_set_device_enabled", lg_gtk_widget_set_device_enabled, 3, 0, 0, H_gtk_widget_set_device_enabled, pl_tuub);
+  s7_define_typed_function(sc, "gtk_widget_get_device_enabled", lg_gtk_widget_get_device_enabled, 2, 0, 0, H_gtk_widget_get_device_enabled, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_set_has_user_ref_count", lg_gtk_window_set_has_user_ref_count, 2, 0, 0, H_gtk_window_set_has_user_ref_count, pl_tub);
+  s7_define_typed_function(sc, "gdk_selection_send_notify", lg_gdk_selection_send_notify, 5, 0, 0, H_gdk_selection_send_notify, pl_tuttti);
+  s7_define_typed_function(sc, "gdk_selection_send_notify_for_display", lg_gdk_selection_send_notify_for_display, 6, 0, 0, H_gdk_selection_send_notify_for_display, pl_tuuttti);
+  s7_define_typed_function(sc, "gdk_rgba_copy", lg_gdk_rgba_copy, 1, 0, 0, H_gdk_rgba_copy, pl_pu);
+  s7_define_typed_function(sc, "gdk_rgba_free", lg_gdk_rgba_free, 1, 0, 0, H_gdk_rgba_free, pl_tu);
+  s7_define_typed_function(sc, "gdk_rgba_parse", lg_gdk_rgba_parse, 2, 0, 0, H_gdk_rgba_parse, pl_bus);
+  s7_define_typed_function(sc, "gdk_rgba_to_string", lg_gdk_rgba_to_string, 1, 0, 0, H_gdk_rgba_to_string, pl_su);
+  s7_define_typed_function(sc, "gtk_widget_set_state_flags", lg_gtk_widget_set_state_flags, 3, 0, 0, H_gtk_widget_set_state_flags, pl_tugb);
+  s7_define_typed_function(sc, "gtk_widget_unset_state_flags", lg_gtk_widget_unset_state_flags, 2, 0, 0, H_gtk_widget_unset_state_flags, pl_tug);
+  s7_define_typed_function(sc, "gtk_widget_get_state_flags", lg_gtk_widget_get_state_flags, 1, 0, 0, H_gtk_widget_get_state_flags, pl_gu);
+#endif
+
+#if GTK_CHECK_VERSION(3, 2, 0)
+  s7_define_typed_function(sc, "gtk_entry_get_placeholder_text", lg_gtk_entry_get_placeholder_text, 1, 0, 0, H_gtk_entry_get_placeholder_text, pl_su);
+  s7_define_typed_function(sc, "gtk_entry_set_placeholder_text", lg_gtk_entry_set_placeholder_text, 2, 0, 0, H_gtk_entry_set_placeholder_text, pl_tus);
+  s7_define_typed_function(sc, "gtk_expander_set_resize_toplevel", lg_gtk_expander_set_resize_toplevel, 2, 0, 0, H_gtk_expander_set_resize_toplevel, pl_tub);
+  s7_define_typed_function(sc, "gtk_expander_get_resize_toplevel", lg_gtk_expander_get_resize_toplevel, 1, 0, 0, H_gtk_expander_get_resize_toplevel, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_path_to_string", lg_gtk_widget_path_to_string, 1, 0, 0, H_gtk_widget_path_to_string, pl_su);
+  s7_define_typed_function(sc, "gtk_button_box_get_child_non_homogeneous", lg_gtk_button_box_get_child_non_homogeneous, 2, 0, 0, H_gtk_button_box_get_child_non_homogeneous, pl_bu);
+  s7_define_typed_function(sc, "gtk_button_box_set_child_non_homogeneous", lg_gtk_button_box_set_child_non_homogeneous, 3, 0, 0, H_gtk_button_box_set_child_non_homogeneous, pl_tuub);
+  s7_define_typed_function(sc, "gtk_container_child_notify", lg_gtk_container_child_notify, 3, 0, 0, H_gtk_container_child_notify, pl_tuus);
+  s7_define_typed_function(sc, "gtk_drag_source_set_icon_gicon", lg_gtk_drag_source_set_icon_gicon, 2, 0, 0, H_gtk_drag_source_set_icon_gicon, pl_tu);
+  s7_define_typed_function(sc, "gtk_drag_set_icon_gicon", lg_gtk_drag_set_icon_gicon, 4, 0, 0, H_gtk_drag_set_icon_gicon, pl_tuui);
+  s7_define_typed_function(sc, "gtk_combo_box_set_active_id", lg_gtk_combo_box_set_active_id, 2, 0, 0, H_gtk_combo_box_set_active_id, pl_bus);
+  s7_define_typed_function(sc, "gtk_tree_view_column_get_x_offset", lg_gtk_tree_view_column_get_x_offset, 1, 0, 0, H_gtk_tree_view_column_get_x_offset, pl_iu);
+  s7_define_typed_function(sc, "gtk_overlay_new", lg_gtk_overlay_new, 0, 0, 0, H_gtk_overlay_new, pl_p);
+  s7_define_typed_function(sc, "gtk_overlay_add_overlay", lg_gtk_overlay_add_overlay, 2, 0, 0, H_gtk_overlay_add_overlay, pl_tu);
+  s7_define_typed_function(sc, "gtk_adjustment_get_minimum_increment", lg_gtk_adjustment_get_minimum_increment, 1, 0, 0, H_gtk_adjustment_get_minimum_increment, pl_du);
+  s7_define_typed_function(sc, "gtk_grid_insert_row", lg_gtk_grid_insert_row, 2, 0, 0, H_gtk_grid_insert_row, pl_tui);
+  s7_define_typed_function(sc, "gtk_grid_insert_column", lg_gtk_grid_insert_column, 2, 0, 0, H_gtk_grid_insert_column, pl_tui);
+  s7_define_typed_function(sc, "gtk_grid_insert_next_to", lg_gtk_grid_insert_next_to, 3, 0, 0, H_gtk_grid_insert_next_to, pl_tuug);
+  s7_define_typed_function(sc, "gtk_text_iter_assign", lg_gtk_text_iter_assign, 2, 0, 0, H_gtk_text_iter_assign, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_has_visible_focus", lg_gtk_widget_has_visible_focus, 1, 0, 0, H_gtk_widget_has_visible_focus, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_set_focus_visible", lg_gtk_window_set_focus_visible, 2, 0, 0, H_gtk_window_set_focus_visible, pl_tub);
+  s7_define_typed_function(sc, "gtk_window_get_focus_visible", lg_gtk_window_get_focus_visible, 1, 0, 0, H_gtk_window_get_focus_visible, pl_bu);
+  s7_define_typed_function(sc, "gtk_font_chooser_dialog_new", lg_gtk_font_chooser_dialog_new, 2, 0, 0, H_gtk_font_chooser_dialog_new, pl_psu);
+  s7_define_typed_function(sc, "gdk_event_get_button", lg_gdk_event_get_button, 2, 0, 0, H_gdk_event_get_button, pl_bu);
+  s7_define_typed_function(sc, "gdk_event_get_click_count", lg_gdk_event_get_click_count, 2, 0, 0, H_gdk_event_get_click_count, pl_bu);
+  s7_define_typed_function(sc, "gdk_event_get_keyval", lg_gdk_event_get_keyval, 2, 0, 0, H_gdk_event_get_keyval, pl_bu);
+  s7_define_typed_function(sc, "gdk_event_get_keycode", lg_gdk_event_get_keycode, 2, 0, 0, H_gdk_event_get_keycode, pl_bu);
+  s7_define_typed_function(sc, "gdk_event_get_scroll_direction", lg_gdk_event_get_scroll_direction, 1, 1, 0, H_gdk_event_get_scroll_direction, pl_pu);
+  s7_define_typed_function(sc, "gtk_grid_get_child_at", lg_gtk_grid_get_child_at, 3, 0, 0, H_gtk_grid_get_child_at, pl_pui);
+  s7_define_typed_function(sc, "gtk_font_chooser_get_font_family", lg_gtk_font_chooser_get_font_family, 1, 0, 0, H_gtk_font_chooser_get_font_family, pl_pu);
+  s7_define_typed_function(sc, "gtk_font_chooser_get_font_face", lg_gtk_font_chooser_get_font_face, 1, 0, 0, H_gtk_font_chooser_get_font_face, pl_pu);
+  s7_define_typed_function(sc, "gtk_font_chooser_get_font_size", lg_gtk_font_chooser_get_font_size, 1, 0, 0, H_gtk_font_chooser_get_font_size, pl_iu);
+  s7_define_typed_function(sc, "gtk_font_chooser_get_font_desc", lg_gtk_font_chooser_get_font_desc, 1, 0, 0, H_gtk_font_chooser_get_font_desc, pl_pu);
+  s7_define_typed_function(sc, "gtk_font_chooser_set_font_desc", lg_gtk_font_chooser_set_font_desc, 2, 0, 0, H_gtk_font_chooser_set_font_desc, pl_tu);
+  s7_define_typed_function(sc, "gtk_font_chooser_get_font", lg_gtk_font_chooser_get_font, 1, 0, 0, H_gtk_font_chooser_get_font, pl_su);
+  s7_define_typed_function(sc, "gtk_font_chooser_set_font", lg_gtk_font_chooser_set_font, 2, 0, 0, H_gtk_font_chooser_set_font, pl_tus);
+  s7_define_typed_function(sc, "gtk_font_chooser_get_preview_text", lg_gtk_font_chooser_get_preview_text, 1, 0, 0, H_gtk_font_chooser_get_preview_text, pl_su);
+  s7_define_typed_function(sc, "gtk_font_chooser_set_preview_text", lg_gtk_font_chooser_set_preview_text, 2, 0, 0, H_gtk_font_chooser_set_preview_text, pl_tus);
+  s7_define_typed_function(sc, "gtk_font_chooser_get_show_preview_entry", lg_gtk_font_chooser_get_show_preview_entry, 1, 0, 0, H_gtk_font_chooser_get_show_preview_entry, pl_bu);
+  s7_define_typed_function(sc, "gtk_font_chooser_set_show_preview_entry", lg_gtk_font_chooser_set_show_preview_entry, 2, 0, 0, H_gtk_font_chooser_set_show_preview_entry, pl_tub);
+  s7_define_typed_function(sc, "gtk_font_chooser_widget_new", lg_gtk_font_chooser_widget_new, 0, 0, 0, H_gtk_font_chooser_widget_new, pl_p);
+#endif
+
+#if GTK_CHECK_VERSION(3, 4, 0)
+  s7_define_typed_function(sc, "gdk_keymap_get_modifier_mask", lg_gdk_keymap_get_modifier_mask, 2, 0, 0, H_gdk_keymap_get_modifier_mask, pl_gug);
+  s7_define_typed_function(sc, "gdk_window_begin_resize_drag_for_device", lg_gdk_window_begin_resize_drag_for_device, 7, 0, 0, H_gdk_window_begin_resize_drag_for_device, pl_tugui);
+  s7_define_typed_function(sc, "gdk_window_begin_move_drag_for_device", lg_gdk_window_begin_move_drag_for_device, 6, 0, 0, H_gdk_window_begin_move_drag_for_device, pl_tuui);
+  s7_define_typed_function(sc, "gtk_accelerator_parse_with_keycode", lg_gtk_accelerator_parse_with_keycode, 4, 0, 0, H_gtk_accelerator_parse_with_keycode, pl_tsu);
+  s7_define_typed_function(sc, "gtk_accelerator_name_with_keycode", lg_gtk_accelerator_name_with_keycode, 4, 0, 0, H_gtk_accelerator_name_with_keycode, pl_suiig);
+  s7_define_typed_function(sc, "gtk_accelerator_get_label_with_keycode", lg_gtk_accelerator_get_label_with_keycode, 4, 0, 0, H_gtk_accelerator_get_label_with_keycode, pl_suiig);
+  s7_define_typed_function(sc, "gtk_application_get_app_menu", lg_gtk_application_get_app_menu, 1, 0, 0, H_gtk_application_get_app_menu, pl_pu);
+  s7_define_typed_function(sc, "gtk_application_set_app_menu", lg_gtk_application_set_app_menu, 2, 0, 0, H_gtk_application_set_app_menu, pl_tu);
+  s7_define_typed_function(sc, "gtk_application_get_menubar", lg_gtk_application_get_menubar, 1, 0, 0, H_gtk_application_get_menubar, pl_pu);
+  s7_define_typed_function(sc, "gtk_application_set_menubar", lg_gtk_application_set_menubar, 2, 0, 0, H_gtk_application_set_menubar, pl_tu);
+  s7_define_typed_function(sc, "gtk_entry_completion_compute_prefix", lg_gtk_entry_completion_compute_prefix, 2, 0, 0, H_gtk_entry_completion_compute_prefix, pl_sus);
+  s7_define_typed_function(sc, "gtk_scale_set_has_origin", lg_gtk_scale_set_has_origin, 2, 0, 0, H_gtk_scale_set_has_origin, pl_tub);
+  s7_define_typed_function(sc, "gtk_scale_get_has_origin", lg_gtk_scale_get_has_origin, 1, 0, 0, H_gtk_scale_get_has_origin, pl_bu);
+  s7_define_typed_function(sc, "gtk_application_window_new", lg_gtk_application_window_new, 1, 0, 0, H_gtk_application_window_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_application_window_set_show_menubar", lg_gtk_application_window_set_show_menubar, 2, 0, 0, H_gtk_application_window_set_show_menubar, pl_tub);
+  s7_define_typed_function(sc, "gtk_application_window_get_show_menubar", lg_gtk_application_window_get_show_menubar, 1, 0, 0, H_gtk_application_window_get_show_menubar, pl_bu);
+  s7_define_typed_function(sc, "gtk_image_new_from_resource", lg_gtk_image_new_from_resource, 1, 0, 0, H_gtk_image_new_from_resource, pl_ps);
+  s7_define_typed_function(sc, "gtk_image_set_from_resource", lg_gtk_image_set_from_resource, 2, 0, 0, H_gtk_image_set_from_resource, pl_tus);
+  s7_define_typed_function(sc, "gtk_window_set_attached_to", lg_gtk_window_set_attached_to, 2, 0, 0, H_gtk_window_set_attached_to, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_get_attached_to", lg_gtk_window_get_attached_to, 1, 0, 0, H_gtk_window_get_attached_to, pl_pu);
+  s7_define_typed_function(sc, "gtk_about_dialog_add_credit_section", lg_gtk_about_dialog_add_credit_section, 3, 0, 0, H_gtk_about_dialog_add_credit_section, pl_tusu);
+  s7_define_typed_function(sc, "gdk_keymap_get_modifier_state", lg_gdk_keymap_get_modifier_state, 1, 0, 0, H_gdk_keymap_get_modifier_state, pl_iu);
+  s7_define_typed_function(sc, "gtk_hsv_to_rgb", lg_gtk_hsv_to_rgb, 3, 3, 0, H_gtk_hsv_to_rgb, pl_prrru);
+  s7_define_typed_function(sc, "gtk_rgb_to_hsv", lg_gtk_rgb_to_hsv, 3, 3, 0, H_gtk_rgb_to_hsv, pl_prrru);
+  s7_define_typed_function(sc, "gtk_color_chooser_get_rgba", lg_gtk_color_chooser_get_rgba, 2, 0, 0, H_gtk_color_chooser_get_rgba, pl_tu);
+  s7_define_typed_function(sc, "gtk_color_chooser_set_rgba", lg_gtk_color_chooser_set_rgba, 2, 0, 0, H_gtk_color_chooser_set_rgba, pl_tu);
+  s7_define_typed_function(sc, "gtk_color_chooser_get_use_alpha", lg_gtk_color_chooser_get_use_alpha, 1, 0, 0, H_gtk_color_chooser_get_use_alpha, pl_bu);
+  s7_define_typed_function(sc, "gtk_color_chooser_set_use_alpha", lg_gtk_color_chooser_set_use_alpha, 2, 0, 0, H_gtk_color_chooser_set_use_alpha, pl_tub);
+  s7_define_typed_function(sc, "gtk_color_chooser_dialog_new", lg_gtk_color_chooser_dialog_new, 2, 0, 0, H_gtk_color_chooser_dialog_new, pl_psu);
+  s7_define_typed_function(sc, "gtk_color_chooser_widget_new", lg_gtk_color_chooser_widget_new, 0, 0, 0, H_gtk_color_chooser_widget_new, pl_p);
+#endif
+
+#if GTK_CHECK_VERSION(3, 6, 0)
+  s7_define_typed_function(sc, "gdk_event_get_scroll_deltas", lg_gdk_event_get_scroll_deltas, 1, 2, 0, H_gdk_event_get_scroll_deltas, pl_pu);
+  s7_define_typed_function(sc, "gtk_color_chooser_add_palette", lg_gtk_color_chooser_add_palette, 5, 0, 0, H_gtk_color_chooser_add_palette, pl_tugiiu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_n_columns", lg_gtk_tree_view_get_n_columns, 1, 0, 0, H_gtk_tree_view_get_n_columns, pl_iu);
+  s7_define_typed_function(sc, "gtk_menu_button_new", lg_gtk_menu_button_new, 0, 0, 0, H_gtk_menu_button_new, pl_p);
+  s7_define_typed_function(sc, "gtk_menu_button_set_menu_model", lg_gtk_menu_button_set_menu_model, 2, 0, 0, H_gtk_menu_button_set_menu_model, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_button_get_menu_model", lg_gtk_menu_button_get_menu_model, 1, 0, 0, H_gtk_menu_button_get_menu_model, pl_pu);
+  s7_define_typed_function(sc, "gtk_menu_button_set_align_widget", lg_gtk_menu_button_set_align_widget, 2, 0, 0, H_gtk_menu_button_set_align_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_menu_button_get_align_widget", lg_gtk_menu_button_get_align_widget, 1, 0, 0, H_gtk_menu_button_get_align_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_search_entry_new", lg_gtk_search_entry_new, 0, 0, 0, H_gtk_search_entry_new, pl_p);
+  s7_define_typed_function(sc, "gtk_level_bar_new", lg_gtk_level_bar_new, 0, 0, 0, H_gtk_level_bar_new, pl_p);
+  s7_define_typed_function(sc, "gtk_level_bar_new_for_interval", lg_gtk_level_bar_new_for_interval, 2, 0, 0, H_gtk_level_bar_new_for_interval, pl_pr);
+  s7_define_typed_function(sc, "gtk_level_bar_set_mode", lg_gtk_level_bar_set_mode, 2, 0, 0, H_gtk_level_bar_set_mode, pl_tug);
+  s7_define_typed_function(sc, "gtk_level_bar_get_mode", lg_gtk_level_bar_get_mode, 1, 0, 0, H_gtk_level_bar_get_mode, pl_gu);
+  s7_define_typed_function(sc, "gtk_level_bar_set_value", lg_gtk_level_bar_set_value, 2, 0, 0, H_gtk_level_bar_set_value, pl_tur);
+  s7_define_typed_function(sc, "gtk_level_bar_get_value", lg_gtk_level_bar_get_value, 1, 0, 0, H_gtk_level_bar_get_value, pl_du);
+  s7_define_typed_function(sc, "gtk_level_bar_set_min_value", lg_gtk_level_bar_set_min_value, 2, 0, 0, H_gtk_level_bar_set_min_value, pl_tur);
+  s7_define_typed_function(sc, "gtk_level_bar_get_min_value", lg_gtk_level_bar_get_min_value, 1, 0, 0, H_gtk_level_bar_get_min_value, pl_du);
+  s7_define_typed_function(sc, "gtk_level_bar_set_max_value", lg_gtk_level_bar_set_max_value, 2, 0, 0, H_gtk_level_bar_set_max_value, pl_tur);
+  s7_define_typed_function(sc, "gtk_level_bar_get_max_value", lg_gtk_level_bar_get_max_value, 1, 0, 0, H_gtk_level_bar_get_max_value, pl_du);
+  s7_define_typed_function(sc, "gtk_level_bar_add_offset_value", lg_gtk_level_bar_add_offset_value, 3, 0, 0, H_gtk_level_bar_add_offset_value, pl_tusr);
+  s7_define_typed_function(sc, "gtk_level_bar_remove_offset_value", lg_gtk_level_bar_remove_offset_value, 2, 0, 0, H_gtk_level_bar_remove_offset_value, pl_tus);
+  s7_define_typed_function(sc, "gtk_level_bar_get_offset_value", lg_gtk_level_bar_get_offset_value, 2, 1, 0, H_gtk_level_bar_get_offset_value, pl_pusu);
+  s7_define_typed_function(sc, "gtk_application_get_active_window", lg_gtk_application_get_active_window, 1, 0, 0, H_gtk_application_get_active_window, pl_pu);
+  s7_define_typed_function(sc, "gtk_entry_set_input_purpose", lg_gtk_entry_set_input_purpose, 2, 0, 0, H_gtk_entry_set_input_purpose, pl_tug);
+  s7_define_typed_function(sc, "gtk_entry_get_input_purpose", lg_gtk_entry_get_input_purpose, 1, 0, 0, H_gtk_entry_get_input_purpose, pl_gu);
+  s7_define_typed_function(sc, "gtk_entry_set_input_hints", lg_gtk_entry_set_input_hints, 2, 0, 0, H_gtk_entry_set_input_hints, pl_tug);
+  s7_define_typed_function(sc, "gtk_entry_get_input_hints", lg_gtk_entry_get_input_hints, 1, 0, 0, H_gtk_entry_get_input_hints, pl_gu);
+  s7_define_typed_function(sc, "gtk_menu_button_get_popup", lg_gtk_menu_button_get_popup, 1, 0, 0, H_gtk_menu_button_get_popup, pl_pu);
+  s7_define_typed_function(sc, "gtk_text_view_set_input_purpose", lg_gtk_text_view_set_input_purpose, 2, 0, 0, H_gtk_text_view_set_input_purpose, pl_tug);
+  s7_define_typed_function(sc, "gtk_text_view_get_input_purpose", lg_gtk_text_view_get_input_purpose, 1, 0, 0, H_gtk_text_view_get_input_purpose, pl_gu);
+  s7_define_typed_function(sc, "gtk_text_view_set_input_hints", lg_gtk_text_view_set_input_hints, 2, 0, 0, H_gtk_text_view_set_input_hints, pl_tug);
+  s7_define_typed_function(sc, "gtk_text_view_get_input_hints", lg_gtk_text_view_get_input_hints, 1, 0, 0, H_gtk_text_view_get_input_hints, pl_gu);
+  s7_define_typed_function(sc, "gtk_entry_set_attributes", lg_gtk_entry_set_attributes, 2, 0, 0, H_gtk_entry_set_attributes, pl_tu);
+  s7_define_typed_function(sc, "gtk_entry_get_attributes", lg_gtk_entry_get_attributes, 1, 0, 0, H_gtk_entry_get_attributes, pl_pu);
+  s7_define_typed_function(sc, "gtk_accel_label_set_accel", lg_gtk_accel_label_set_accel, 3, 0, 0, H_gtk_accel_label_set_accel, pl_tuig);
+  s7_define_typed_function(sc, "gtk_menu_shell_bind_model", lg_gtk_menu_shell_bind_model, 4, 0, 0, H_gtk_menu_shell_bind_model, pl_tuusb);
+#endif
+
+#if GTK_CHECK_VERSION(3, 8, 0)
+  s7_define_typed_function(sc, "gtk_level_bar_set_inverted", lg_gtk_level_bar_set_inverted, 2, 0, 0, H_gtk_level_bar_set_inverted, pl_tub);
+  s7_define_typed_function(sc, "gtk_level_bar_get_inverted", lg_gtk_level_bar_get_inverted, 1, 0, 0, H_gtk_level_bar_get_inverted, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_is_visible", lg_gtk_widget_is_visible, 1, 0, 0, H_gtk_widget_is_visible, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_set_fullscreen_mode", lg_gdk_window_set_fullscreen_mode, 2, 0, 0, H_gdk_window_set_fullscreen_mode, pl_tug);
+  s7_define_typed_function(sc, "gdk_window_get_fullscreen_mode", lg_gdk_window_get_fullscreen_mode, 1, 0, 0, H_gdk_window_get_fullscreen_mode, pl_gu);
+  s7_define_typed_function(sc, "gtk_icon_view_set_activate_on_single_click", lg_gtk_icon_view_set_activate_on_single_click, 2, 0, 0, H_gtk_icon_view_set_activate_on_single_click, pl_tub);
+  s7_define_typed_function(sc, "gtk_icon_view_get_activate_on_single_click", lg_gtk_icon_view_get_activate_on_single_click, 1, 0, 0, H_gtk_icon_view_get_activate_on_single_click, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_get_activate_on_single_click", lg_gtk_tree_view_get_activate_on_single_click, 1, 0, 0, H_gtk_tree_view_get_activate_on_single_click, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_view_set_activate_on_single_click", lg_gtk_tree_view_set_activate_on_single_click, 2, 0, 0, H_gtk_tree_view_set_activate_on_single_click, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_register_window", lg_gtk_widget_register_window, 2, 0, 0, H_gtk_widget_register_window, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_unregister_window", lg_gtk_widget_unregister_window, 2, 0, 0, H_gtk_widget_unregister_window, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_set_opacity", lg_gtk_widget_set_opacity, 2, 0, 0, H_gtk_widget_set_opacity, pl_tur);
+  s7_define_typed_function(sc, "gtk_widget_get_opacity", lg_gtk_widget_get_opacity, 1, 0, 0, H_gtk_widget_get_opacity, pl_du);
+  s7_define_typed_function(sc, "pango_font_map_changed", lg_pango_font_map_changed, 1, 0, 0, H_pango_font_map_changed, pl_tu);
+#endif
+
+#if GTK_CHECK_VERSION(3, 10, 0)
+  s7_define_typed_function(sc, "gdk_set_allowed_backends", lg_gdk_set_allowed_backends, 1, 0, 0, H_gdk_set_allowed_backends, pl_ts);
+  s7_define_typed_function(sc, "gtk_box_set_baseline_position", lg_gtk_box_set_baseline_position, 2, 0, 0, H_gtk_box_set_baseline_position, pl_tug);
+  s7_define_typed_function(sc, "gtk_box_get_baseline_position", lg_gtk_box_get_baseline_position, 1, 0, 0, H_gtk_box_get_baseline_position, pl_gu);
+  s7_define_typed_function(sc, "gtk_grid_remove_row", lg_gtk_grid_remove_row, 2, 0, 0, H_gtk_grid_remove_row, pl_tui);
+  s7_define_typed_function(sc, "gtk_grid_remove_column", lg_gtk_grid_remove_column, 2, 0, 0, H_gtk_grid_remove_column, pl_tui);
+  s7_define_typed_function(sc, "gtk_grid_set_row_baseline_position", lg_gtk_grid_set_row_baseline_position, 3, 0, 0, H_gtk_grid_set_row_baseline_position, pl_tuig);
+  s7_define_typed_function(sc, "gtk_grid_get_row_baseline_position", lg_gtk_grid_get_row_baseline_position, 2, 0, 0, H_gtk_grid_get_row_baseline_position, pl_gui);
+  s7_define_typed_function(sc, "gtk_grid_set_baseline_row", lg_gtk_grid_set_baseline_row, 2, 0, 0, H_gtk_grid_set_baseline_row, pl_tui);
+  s7_define_typed_function(sc, "gtk_grid_get_baseline_row", lg_gtk_grid_get_baseline_row, 1, 0, 0, H_gtk_grid_get_baseline_row, pl_iu);
+  s7_define_typed_function(sc, "gtk_widget_size_allocate_with_baseline", lg_gtk_widget_size_allocate_with_baseline, 3, 0, 0, H_gtk_widget_size_allocate_with_baseline, pl_tuui);
+  s7_define_typed_function(sc, "gtk_widget_get_allocated_baseline", lg_gtk_widget_get_allocated_baseline, 1, 0, 0, H_gtk_widget_get_allocated_baseline, pl_iu);
+  s7_define_typed_function(sc, "gtk_widget_init_template", lg_gtk_widget_init_template, 1, 0, 0, H_gtk_widget_init_template, pl_tu);
+  s7_define_typed_function(sc, "gtk_window_set_titlebar", lg_gtk_window_set_titlebar, 2, 0, 0, H_gtk_window_set_titlebar, pl_tu);
+  s7_define_typed_function(sc, "gtk_places_sidebar_new", lg_gtk_places_sidebar_new, 0, 0, 0, H_gtk_places_sidebar_new, pl_p);
+  s7_define_typed_function(sc, "gtk_places_sidebar_get_open_flags", lg_gtk_places_sidebar_get_open_flags, 1, 0, 0, H_gtk_places_sidebar_get_open_flags, pl_gu);
+  s7_define_typed_function(sc, "gtk_places_sidebar_set_open_flags", lg_gtk_places_sidebar_set_open_flags, 2, 0, 0, H_gtk_places_sidebar_set_open_flags, pl_tug);
+  s7_define_typed_function(sc, "gtk_places_sidebar_get_location", lg_gtk_places_sidebar_get_location, 1, 0, 0, H_gtk_places_sidebar_get_location, pl_pu);
+  s7_define_typed_function(sc, "gtk_places_sidebar_set_location", lg_gtk_places_sidebar_set_location, 2, 0, 0, H_gtk_places_sidebar_set_location, pl_tu);
+  s7_define_typed_function(sc, "gtk_places_sidebar_get_show_desktop", lg_gtk_places_sidebar_get_show_desktop, 1, 0, 0, H_gtk_places_sidebar_get_show_desktop, pl_bu);
+  s7_define_typed_function(sc, "gtk_places_sidebar_set_show_desktop", lg_gtk_places_sidebar_set_show_desktop, 2, 0, 0, H_gtk_places_sidebar_set_show_desktop, pl_tub);
+  s7_define_typed_function(sc, "gtk_places_sidebar_add_shortcut", lg_gtk_places_sidebar_add_shortcut, 2, 0, 0, H_gtk_places_sidebar_add_shortcut, pl_tu);
+  s7_define_typed_function(sc, "gtk_places_sidebar_remove_shortcut", lg_gtk_places_sidebar_remove_shortcut, 2, 0, 0, H_gtk_places_sidebar_remove_shortcut, pl_tu);
+  s7_define_typed_function(sc, "gtk_places_sidebar_list_shortcuts", lg_gtk_places_sidebar_list_shortcuts, 1, 0, 0, H_gtk_places_sidebar_list_shortcuts, pl_pu);
+  s7_define_typed_function(sc, "gtk_places_sidebar_get_nth_bookmark", lg_gtk_places_sidebar_get_nth_bookmark, 2, 0, 0, H_gtk_places_sidebar_get_nth_bookmark, pl_pui);
+  s7_define_typed_function(sc, "gtk_stack_switcher_new", lg_gtk_stack_switcher_new, 0, 0, 0, H_gtk_stack_switcher_new, pl_p);
+  s7_define_typed_function(sc, "gtk_stack_switcher_set_stack", lg_gtk_stack_switcher_set_stack, 2, 0, 0, H_gtk_stack_switcher_set_stack, pl_tu);
+  s7_define_typed_function(sc, "gtk_stack_switcher_get_stack", lg_gtk_stack_switcher_get_stack, 1, 0, 0, H_gtk_stack_switcher_get_stack, pl_pu);
+  s7_define_typed_function(sc, "gtk_stack_new", lg_gtk_stack_new, 0, 0, 0, H_gtk_stack_new, pl_p);
+  s7_define_typed_function(sc, "gtk_stack_add_named", lg_gtk_stack_add_named, 3, 0, 0, H_gtk_stack_add_named, pl_tuus);
+  s7_define_typed_function(sc, "gtk_stack_add_titled", lg_gtk_stack_add_titled, 4, 0, 0, H_gtk_stack_add_titled, pl_tuus);
+  s7_define_typed_function(sc, "gtk_stack_set_visible_child", lg_gtk_stack_set_visible_child, 2, 0, 0, H_gtk_stack_set_visible_child, pl_tu);
+  s7_define_typed_function(sc, "gtk_stack_get_visible_child", lg_gtk_stack_get_visible_child, 1, 0, 0, H_gtk_stack_get_visible_child, pl_pu);
+  s7_define_typed_function(sc, "gtk_stack_set_visible_child_name", lg_gtk_stack_set_visible_child_name, 2, 0, 0, H_gtk_stack_set_visible_child_name, pl_tus);
+  s7_define_typed_function(sc, "gtk_stack_get_visible_child_name", lg_gtk_stack_get_visible_child_name, 1, 0, 0, H_gtk_stack_get_visible_child_name, pl_su);
+  s7_define_typed_function(sc, "gtk_stack_set_visible_child_full", lg_gtk_stack_set_visible_child_full, 3, 0, 0, H_gtk_stack_set_visible_child_full, pl_tusg);
+  s7_define_typed_function(sc, "gtk_stack_set_homogeneous", lg_gtk_stack_set_homogeneous, 2, 0, 0, H_gtk_stack_set_homogeneous, pl_tub);
+  s7_define_typed_function(sc, "gtk_stack_get_homogeneous", lg_gtk_stack_get_homogeneous, 1, 0, 0, H_gtk_stack_get_homogeneous, pl_bu);
+  s7_define_typed_function(sc, "gtk_stack_set_transition_duration", lg_gtk_stack_set_transition_duration, 2, 0, 0, H_gtk_stack_set_transition_duration, pl_tui);
+  s7_define_typed_function(sc, "gtk_stack_get_transition_duration", lg_gtk_stack_get_transition_duration, 1, 0, 0, H_gtk_stack_get_transition_duration, pl_iu);
+  s7_define_typed_function(sc, "gtk_stack_set_transition_type", lg_gtk_stack_set_transition_type, 2, 0, 0, H_gtk_stack_set_transition_type, pl_tug);
+  s7_define_typed_function(sc, "gtk_stack_get_transition_type", lg_gtk_stack_get_transition_type, 1, 0, 0, H_gtk_stack_get_transition_type, pl_gu);
+  s7_define_typed_function(sc, "gtk_revealer_new", lg_gtk_revealer_new, 0, 0, 0, H_gtk_revealer_new, pl_p);
+  s7_define_typed_function(sc, "gtk_revealer_get_reveal_child", lg_gtk_revealer_get_reveal_child, 1, 0, 0, H_gtk_revealer_get_reveal_child, pl_bu);
+  s7_define_typed_function(sc, "gtk_revealer_set_reveal_child", lg_gtk_revealer_set_reveal_child, 2, 0, 0, H_gtk_revealer_set_reveal_child, pl_tub);
+  s7_define_typed_function(sc, "gtk_revealer_get_child_revealed", lg_gtk_revealer_get_child_revealed, 1, 0, 0, H_gtk_revealer_get_child_revealed, pl_bu);
+  s7_define_typed_function(sc, "gtk_revealer_get_transition_duration", lg_gtk_revealer_get_transition_duration, 1, 0, 0, H_gtk_revealer_get_transition_duration, pl_iu);
+  s7_define_typed_function(sc, "gtk_revealer_set_transition_duration", lg_gtk_revealer_set_transition_duration, 2, 0, 0, H_gtk_revealer_set_transition_duration, pl_tui);
+  s7_define_typed_function(sc, "gtk_revealer_set_transition_type", lg_gtk_revealer_set_transition_type, 2, 0, 0, H_gtk_revealer_set_transition_type, pl_tug);
+  s7_define_typed_function(sc, "gtk_revealer_get_transition_type", lg_gtk_revealer_get_transition_type, 1, 0, 0, H_gtk_revealer_get_transition_type, pl_gu);
+  s7_define_typed_function(sc, "gtk_header_bar_new", lg_gtk_header_bar_new, 0, 0, 0, H_gtk_header_bar_new, pl_p);
+  s7_define_typed_function(sc, "gtk_header_bar_set_title", lg_gtk_header_bar_set_title, 2, 0, 0, H_gtk_header_bar_set_title, pl_tus);
+  s7_define_typed_function(sc, "gtk_header_bar_get_title", lg_gtk_header_bar_get_title, 1, 0, 0, H_gtk_header_bar_get_title, pl_su);
+  s7_define_typed_function(sc, "gtk_header_bar_set_subtitle", lg_gtk_header_bar_set_subtitle, 2, 0, 0, H_gtk_header_bar_set_subtitle, pl_tus);
+  s7_define_typed_function(sc, "gtk_header_bar_get_subtitle", lg_gtk_header_bar_get_subtitle, 1, 0, 0, H_gtk_header_bar_get_subtitle, pl_su);
+  s7_define_typed_function(sc, "gtk_header_bar_set_custom_title", lg_gtk_header_bar_set_custom_title, 2, 0, 0, H_gtk_header_bar_set_custom_title, pl_tu);
+  s7_define_typed_function(sc, "gtk_header_bar_get_custom_title", lg_gtk_header_bar_get_custom_title, 1, 0, 0, H_gtk_header_bar_get_custom_title, pl_pu);
+  s7_define_typed_function(sc, "gtk_header_bar_pack_start", lg_gtk_header_bar_pack_start, 2, 0, 0, H_gtk_header_bar_pack_start, pl_tu);
+  s7_define_typed_function(sc, "gtk_header_bar_pack_end", lg_gtk_header_bar_pack_end, 2, 0, 0, H_gtk_header_bar_pack_end, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_row_new", lg_gtk_list_box_row_new, 0, 0, 0, H_gtk_list_box_row_new, pl_p);
+  s7_define_typed_function(sc, "gtk_list_box_row_get_header", lg_gtk_list_box_row_get_header, 1, 0, 0, H_gtk_list_box_row_get_header, pl_pu);
+  s7_define_typed_function(sc, "gtk_list_box_row_set_header", lg_gtk_list_box_row_set_header, 2, 0, 0, H_gtk_list_box_row_set_header, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_row_changed", lg_gtk_list_box_row_changed, 1, 0, 0, H_gtk_list_box_row_changed, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_get_selected_row", lg_gtk_list_box_get_selected_row, 1, 0, 0, H_gtk_list_box_get_selected_row, pl_pu);
+  s7_define_typed_function(sc, "gtk_list_box_get_row_at_index", lg_gtk_list_box_get_row_at_index, 2, 0, 0, H_gtk_list_box_get_row_at_index, pl_pui);
+  s7_define_typed_function(sc, "gtk_list_box_get_row_at_y", lg_gtk_list_box_get_row_at_y, 2, 0, 0, H_gtk_list_box_get_row_at_y, pl_pui);
+  s7_define_typed_function(sc, "gtk_list_box_select_row", lg_gtk_list_box_select_row, 2, 0, 0, H_gtk_list_box_select_row, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_set_placeholder", lg_gtk_list_box_set_placeholder, 2, 0, 0, H_gtk_list_box_set_placeholder, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_set_adjustment", lg_gtk_list_box_set_adjustment, 2, 0, 0, H_gtk_list_box_set_adjustment, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_get_adjustment", lg_gtk_list_box_get_adjustment, 1, 0, 0, H_gtk_list_box_get_adjustment, pl_pu);
+  s7_define_typed_function(sc, "gtk_list_box_set_selection_mode", lg_gtk_list_box_set_selection_mode, 2, 0, 0, H_gtk_list_box_set_selection_mode, pl_tug);
+  s7_define_typed_function(sc, "gtk_list_box_get_selection_mode", lg_gtk_list_box_get_selection_mode, 1, 0, 0, H_gtk_list_box_get_selection_mode, pl_gu);
+  s7_define_typed_function(sc, "gtk_list_box_invalidate_filter", lg_gtk_list_box_invalidate_filter, 1, 0, 0, H_gtk_list_box_invalidate_filter, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_invalidate_sort", lg_gtk_list_box_invalidate_sort, 1, 0, 0, H_gtk_list_box_invalidate_sort, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_invalidate_headers", lg_gtk_list_box_invalidate_headers, 1, 0, 0, H_gtk_list_box_invalidate_headers, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_set_activate_on_single_click", lg_gtk_list_box_set_activate_on_single_click, 2, 0, 0, H_gtk_list_box_set_activate_on_single_click, pl_tub);
+  s7_define_typed_function(sc, "gtk_list_box_get_activate_on_single_click", lg_gtk_list_box_get_activate_on_single_click, 1, 0, 0, H_gtk_list_box_get_activate_on_single_click, pl_bu);
+  s7_define_typed_function(sc, "gtk_list_box_drag_unhighlight_row", lg_gtk_list_box_drag_unhighlight_row, 1, 0, 0, H_gtk_list_box_drag_unhighlight_row, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_drag_highlight_row", lg_gtk_list_box_drag_highlight_row, 2, 0, 0, H_gtk_list_box_drag_highlight_row, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_new", lg_gtk_list_box_new, 0, 0, 0, H_gtk_list_box_new, pl_p);
+  s7_define_typed_function(sc, "gtk_search_bar_new", lg_gtk_search_bar_new, 0, 0, 0, H_gtk_search_bar_new, pl_p);
+  s7_define_typed_function(sc, "gtk_search_bar_connect_entry", lg_gtk_search_bar_connect_entry, 2, 0, 0, H_gtk_search_bar_connect_entry, pl_tu);
+  s7_define_typed_function(sc, "gtk_search_bar_get_search_mode", lg_gtk_search_bar_get_search_mode, 1, 0, 0, H_gtk_search_bar_get_search_mode, pl_bu);
+  s7_define_typed_function(sc, "gtk_search_bar_set_search_mode", lg_gtk_search_bar_set_search_mode, 2, 0, 0, H_gtk_search_bar_set_search_mode, pl_tub);
+  s7_define_typed_function(sc, "gtk_search_bar_get_show_close_button", lg_gtk_search_bar_get_show_close_button, 1, 0, 0, H_gtk_search_bar_get_show_close_button, pl_bu);
+  s7_define_typed_function(sc, "gtk_search_bar_set_show_close_button", lg_gtk_search_bar_set_show_close_button, 2, 0, 0, H_gtk_search_bar_set_show_close_button, pl_tub);
+  s7_define_typed_function(sc, "gtk_search_bar_handle_event", lg_gtk_search_bar_handle_event, 2, 0, 0, H_gtk_search_bar_handle_event, pl_bu);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_current_name", lg_gtk_file_chooser_get_current_name, 1, 0, 0, H_gtk_file_chooser_get_current_name, pl_su);
+  s7_define_typed_function(sc, "gdk_cairo_surface_create_from_pixbuf", lg_gdk_cairo_surface_create_from_pixbuf, 3, 0, 0, H_gdk_cairo_surface_create_from_pixbuf, pl_puiu);
+  s7_define_typed_function(sc, "gdk_device_get_position_double", lg_gdk_device_get_position_double, 1, 3, 0, H_gdk_device_get_position_double, pl_pu);
+  s7_define_typed_function(sc, "gdk_device_get_window_at_position_double", lg_gdk_device_get_window_at_position_double, 1, 2, 0, H_gdk_device_get_window_at_position_double, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_get_scale_factor", lg_gdk_window_get_scale_factor, 1, 0, 0, H_gdk_window_get_scale_factor, pl_iu);
+  s7_define_typed_function(sc, "gdk_window_get_device_position_double", lg_gdk_window_get_device_position_double, 2, 3, 0, H_gdk_window_get_device_position_double, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_create_similar_image_surface", lg_gdk_window_create_similar_image_surface, 5, 0, 0, H_gdk_window_create_similar_image_surface, pl_pugi);
+  s7_define_typed_function(sc, "gtk_icon_theme_lookup_icon_for_scale", lg_gtk_icon_theme_lookup_icon_for_scale, 5, 0, 0, H_gtk_icon_theme_lookup_icon_for_scale, pl_pusiig);
+  s7_define_typed_function(sc, "gtk_icon_theme_load_icon_for_scale", lg_gtk_icon_theme_load_icon_for_scale, 5, 1, 0, H_gtk_icon_theme_load_icon_for_scale, pl_pusiigu);
+  s7_define_typed_function(sc, "gtk_icon_theme_load_surface", lg_gtk_icon_theme_load_surface, 6, 1, 0, H_gtk_icon_theme_load_surface, pl_pusiiugu);
+  s7_define_typed_function(sc, "gtk_icon_theme_lookup_by_gicon_for_scale", lg_gtk_icon_theme_lookup_by_gicon_for_scale, 5, 0, 0, H_gtk_icon_theme_lookup_by_gicon_for_scale, pl_puuiig);
+  s7_define_typed_function(sc, "gtk_icon_info_get_base_scale", lg_gtk_icon_info_get_base_scale, 1, 0, 0, H_gtk_icon_info_get_base_scale, pl_iu);
+  s7_define_typed_function(sc, "gtk_icon_info_load_surface", lg_gtk_icon_info_load_surface, 2, 1, 0, H_gtk_icon_info_load_surface, pl_pu);
+  s7_define_typed_function(sc, "gtk_image_new_from_surface", lg_gtk_image_new_from_surface, 1, 0, 0, H_gtk_image_new_from_surface, pl_pu);
+  s7_define_typed_function(sc, "gtk_image_set_from_surface", lg_gtk_image_set_from_surface, 2, 0, 0, H_gtk_image_set_from_surface, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_row_get_index", lg_gtk_list_box_row_get_index, 1, 0, 0, H_gtk_list_box_row_get_index, pl_iu);
+  s7_define_typed_function(sc, "gtk_widget_get_scale_factor", lg_gtk_widget_get_scale_factor, 1, 0, 0, H_gtk_widget_get_scale_factor, pl_iu);
+  s7_define_typed_function(sc, "gtk_window_close", lg_gtk_window_close, 1, 0, 0, H_gtk_window_close, pl_tu);
+  s7_define_typed_function(sc, "gtk_info_bar_set_show_close_button", lg_gtk_info_bar_set_show_close_button, 2, 0, 0, H_gtk_info_bar_set_show_close_button, pl_tub);
+  s7_define_typed_function(sc, "gtk_info_bar_get_show_close_button", lg_gtk_info_bar_get_show_close_button, 1, 0, 0, H_gtk_info_bar_get_show_close_button, pl_bu);
+  s7_define_typed_function(sc, "gtk_tree_model_rows_reordered_with_length", lg_gtk_tree_model_rows_reordered_with_length, 5, 0, 0, H_gtk_tree_model_rows_reordered_with_length, pl_tuuuui);
+  s7_define_typed_function(sc, "gdk_cursor_new_from_surface", lg_gdk_cursor_new_from_surface, 4, 0, 0, H_gdk_cursor_new_from_surface, pl_puur);
+  s7_define_typed_function(sc, "gdk_cursor_get_surface", lg_gdk_cursor_get_surface, 1, 2, 0, H_gdk_cursor_get_surface, pl_pu);
+  s7_define_typed_function(sc, "gdk_event_get_event_type", lg_gdk_event_get_event_type, 1, 0, 0, H_gdk_event_get_event_type, pl_gu);
+  s7_define_typed_function(sc, "gtk_entry_set_tabs", lg_gtk_entry_set_tabs, 2, 0, 0, H_gtk_entry_set_tabs, pl_tu);
+  s7_define_typed_function(sc, "gtk_entry_get_tabs", lg_gtk_entry_get_tabs, 1, 0, 0, H_gtk_entry_get_tabs, pl_pu);
+  s7_define_typed_function(sc, "gtk_header_bar_get_show_close_button", lg_gtk_header_bar_get_show_close_button, 1, 0, 0, H_gtk_header_bar_get_show_close_button, pl_bu);
+  s7_define_typed_function(sc, "gtk_header_bar_set_show_close_button", lg_gtk_header_bar_set_show_close_button, 2, 0, 0, H_gtk_header_bar_set_show_close_button, pl_tub);
+  s7_define_typed_function(sc, "gtk_list_box_prepend", lg_gtk_list_box_prepend, 2, 0, 0, H_gtk_list_box_prepend, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_insert", lg_gtk_list_box_insert, 3, 0, 0, H_gtk_list_box_insert, pl_tuui);
+  s7_define_typed_function(sc, "gdk_window_set_opaque_region", lg_gdk_window_set_opaque_region, 2, 0, 0, H_gdk_window_set_opaque_region, pl_tu);
+  s7_define_typed_function(sc, "gtk_label_set_lines", lg_gtk_label_set_lines, 2, 0, 0, H_gtk_label_set_lines, pl_tui);
+  s7_define_typed_function(sc, "gtk_label_get_lines", lg_gtk_label_get_lines, 1, 0, 0, H_gtk_label_get_lines, pl_iu);
+  s7_define_typed_function(sc, "gdk_event_get_window", lg_gdk_event_get_window, 1, 0, 0, H_gdk_event_get_window, pl_pu);
+#endif
+
+#if GTK_CHECK_VERSION(3, 12, 0)
+  s7_define_typed_function(sc, "gtk_flow_box_child_new", lg_gtk_flow_box_child_new, 0, 0, 0, H_gtk_flow_box_child_new, pl_p);
+  s7_define_typed_function(sc, "gtk_flow_box_child_get_index", lg_gtk_flow_box_child_get_index, 1, 0, 0, H_gtk_flow_box_child_get_index, pl_iu);
+  s7_define_typed_function(sc, "gtk_flow_box_child_is_selected", lg_gtk_flow_box_child_is_selected, 1, 0, 0, H_gtk_flow_box_child_is_selected, pl_bu);
+  s7_define_typed_function(sc, "gtk_flow_box_child_changed", lg_gtk_flow_box_child_changed, 1, 0, 0, H_gtk_flow_box_child_changed, pl_tu);
+  s7_define_typed_function(sc, "gtk_flow_box_new", lg_gtk_flow_box_new, 0, 0, 0, H_gtk_flow_box_new, pl_p);
+  s7_define_typed_function(sc, "gtk_flow_box_set_homogeneous", lg_gtk_flow_box_set_homogeneous, 2, 0, 0, H_gtk_flow_box_set_homogeneous, pl_tub);
+  s7_define_typed_function(sc, "gtk_flow_box_get_homogeneous", lg_gtk_flow_box_get_homogeneous, 1, 0, 0, H_gtk_flow_box_get_homogeneous, pl_bu);
+  s7_define_typed_function(sc, "gtk_flow_box_set_row_spacing", lg_gtk_flow_box_set_row_spacing, 2, 0, 0, H_gtk_flow_box_set_row_spacing, pl_tui);
+  s7_define_typed_function(sc, "gtk_flow_box_get_row_spacing", lg_gtk_flow_box_get_row_spacing, 1, 0, 0, H_gtk_flow_box_get_row_spacing, pl_iu);
+  s7_define_typed_function(sc, "gtk_flow_box_set_column_spacing", lg_gtk_flow_box_set_column_spacing, 2, 0, 0, H_gtk_flow_box_set_column_spacing, pl_tui);
+  s7_define_typed_function(sc, "gtk_flow_box_get_column_spacing", lg_gtk_flow_box_get_column_spacing, 1, 0, 0, H_gtk_flow_box_get_column_spacing, pl_iu);
+  s7_define_typed_function(sc, "gtk_flow_box_set_min_children_per_line", lg_gtk_flow_box_set_min_children_per_line, 2, 0, 0, H_gtk_flow_box_set_min_children_per_line, pl_tui);
+  s7_define_typed_function(sc, "gtk_flow_box_get_min_children_per_line", lg_gtk_flow_box_get_min_children_per_line, 1, 0, 0, H_gtk_flow_box_get_min_children_per_line, pl_iu);
+  s7_define_typed_function(sc, "gtk_flow_box_set_max_children_per_line", lg_gtk_flow_box_set_max_children_per_line, 2, 0, 0, H_gtk_flow_box_set_max_children_per_line, pl_tui);
+  s7_define_typed_function(sc, "gtk_flow_box_get_max_children_per_line", lg_gtk_flow_box_get_max_children_per_line, 1, 0, 0, H_gtk_flow_box_get_max_children_per_line, pl_iu);
+  s7_define_typed_function(sc, "gtk_flow_box_set_activate_on_single_click", lg_gtk_flow_box_set_activate_on_single_click, 2, 0, 0, H_gtk_flow_box_set_activate_on_single_click, pl_tub);
+  s7_define_typed_function(sc, "gtk_flow_box_get_activate_on_single_click", lg_gtk_flow_box_get_activate_on_single_click, 1, 0, 0, H_gtk_flow_box_get_activate_on_single_click, pl_bu);
+  s7_define_typed_function(sc, "gtk_flow_box_insert", lg_gtk_flow_box_insert, 3, 0, 0, H_gtk_flow_box_insert, pl_tuui);
+  s7_define_typed_function(sc, "gtk_flow_box_get_child_at_index", lg_gtk_flow_box_get_child_at_index, 2, 0, 0, H_gtk_flow_box_get_child_at_index, pl_pui);
+  s7_define_typed_function(sc, "gtk_flow_box_get_selected_children", lg_gtk_flow_box_get_selected_children, 1, 0, 0, H_gtk_flow_box_get_selected_children, pl_pu);
+  s7_define_typed_function(sc, "gtk_flow_box_select_child", lg_gtk_flow_box_select_child, 2, 0, 0, H_gtk_flow_box_select_child, pl_tu);
+  s7_define_typed_function(sc, "gtk_flow_box_unselect_child", lg_gtk_flow_box_unselect_child, 2, 0, 0, H_gtk_flow_box_unselect_child, pl_tu);
+  s7_define_typed_function(sc, "gtk_flow_box_select_all", lg_gtk_flow_box_select_all, 1, 0, 0, H_gtk_flow_box_select_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_flow_box_unselect_all", lg_gtk_flow_box_unselect_all, 1, 0, 0, H_gtk_flow_box_unselect_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_flow_box_set_selection_mode", lg_gtk_flow_box_set_selection_mode, 2, 0, 0, H_gtk_flow_box_set_selection_mode, pl_tug);
+  s7_define_typed_function(sc, "gtk_flow_box_get_selection_mode", lg_gtk_flow_box_get_selection_mode, 1, 0, 0, H_gtk_flow_box_get_selection_mode, pl_gu);
+  s7_define_typed_function(sc, "gtk_flow_box_set_hadjustment", lg_gtk_flow_box_set_hadjustment, 2, 0, 0, H_gtk_flow_box_set_hadjustment, pl_tu);
+  s7_define_typed_function(sc, "gtk_flow_box_set_vadjustment", lg_gtk_flow_box_set_vadjustment, 2, 0, 0, H_gtk_flow_box_set_vadjustment, pl_tu);
+  s7_define_typed_function(sc, "gtk_flow_box_invalidate_filter", lg_gtk_flow_box_invalidate_filter, 1, 0, 0, H_gtk_flow_box_invalidate_filter, pl_tu);
+  s7_define_typed_function(sc, "gtk_flow_box_invalidate_sort", lg_gtk_flow_box_invalidate_sort, 1, 0, 0, H_gtk_flow_box_invalidate_sort, pl_tu);
+  s7_define_typed_function(sc, "gdk_window_set_event_compression", lg_gdk_window_set_event_compression, 2, 0, 0, H_gdk_window_set_event_compression, pl_tub);
+  s7_define_typed_function(sc, "gdk_window_get_event_compression", lg_gdk_window_get_event_compression, 1, 0, 0, H_gdk_window_get_event_compression, pl_bu);
+  s7_define_typed_function(sc, "gtk_places_sidebar_set_local_only", lg_gtk_places_sidebar_set_local_only, 2, 0, 0, H_gtk_places_sidebar_set_local_only, pl_tub);
+  s7_define_typed_function(sc, "gtk_places_sidebar_get_local_only", lg_gtk_places_sidebar_get_local_only, 1, 0, 0, H_gtk_places_sidebar_get_local_only, pl_bu);
+  s7_define_typed_function(sc, "gtk_stack_get_transition_running", lg_gtk_stack_get_transition_running, 1, 0, 0, H_gtk_stack_get_transition_running, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_get_margin_start", lg_gtk_widget_get_margin_start, 1, 0, 0, H_gtk_widget_get_margin_start, pl_iu);
+  s7_define_typed_function(sc, "gtk_widget_set_margin_start", lg_gtk_widget_set_margin_start, 2, 0, 0, H_gtk_widget_set_margin_start, pl_tui);
+  s7_define_typed_function(sc, "gtk_widget_get_margin_end", lg_gtk_widget_get_margin_end, 1, 0, 0, H_gtk_widget_get_margin_end, pl_iu);
+  s7_define_typed_function(sc, "gtk_widget_set_margin_end", lg_gtk_widget_set_margin_end, 2, 0, 0, H_gtk_widget_set_margin_end, pl_tui);
+  s7_define_typed_function(sc, "gtk_accel_label_get_accel", lg_gtk_accel_label_get_accel, 1, 2, 0, H_gtk_accel_label_get_accel, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_set_shadow_width", lg_gdk_window_set_shadow_width, 5, 0, 0, H_gdk_window_set_shadow_width, pl_tui);
+  s7_define_typed_function(sc, "gtk_action_bar_new", lg_gtk_action_bar_new, 0, 0, 0, H_gtk_action_bar_new, pl_p);
+  s7_define_typed_function(sc, "gtk_action_bar_get_center_widget", lg_gtk_action_bar_get_center_widget, 1, 0, 0, H_gtk_action_bar_get_center_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_action_bar_set_center_widget", lg_gtk_action_bar_set_center_widget, 2, 0, 0, H_gtk_action_bar_set_center_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_action_bar_pack_start", lg_gtk_action_bar_pack_start, 2, 0, 0, H_gtk_action_bar_pack_start, pl_tu);
+  s7_define_typed_function(sc, "gtk_action_bar_pack_end", lg_gtk_action_bar_pack_end, 2, 0, 0, H_gtk_action_bar_pack_end, pl_tu);
+  s7_define_typed_function(sc, "gtk_header_bar_set_has_subtitle", lg_gtk_header_bar_set_has_subtitle, 2, 0, 0, H_gtk_header_bar_set_has_subtitle, pl_tub);
+  s7_define_typed_function(sc, "gtk_header_bar_get_has_subtitle", lg_gtk_header_bar_get_has_subtitle, 1, 0, 0, H_gtk_header_bar_get_has_subtitle, pl_bu);
+  s7_define_typed_function(sc, "gtk_header_bar_set_decoration_layout", lg_gtk_header_bar_set_decoration_layout, 2, 0, 0, H_gtk_header_bar_set_decoration_layout, pl_tus);
+  s7_define_typed_function(sc, "gtk_header_bar_get_decoration_layout", lg_gtk_header_bar_get_decoration_layout, 1, 0, 0, H_gtk_header_bar_get_decoration_layout, pl_su);
+  s7_define_typed_function(sc, "gtk_icon_info_is_symbolic", lg_gtk_icon_info_is_symbolic, 1, 0, 0, H_gtk_icon_info_is_symbolic, pl_bu);
+  s7_define_typed_function(sc, "gtk_get_locale_direction", lg_gtk_get_locale_direction, 0, 0, 0, H_gtk_get_locale_direction, pl_g);
+  s7_define_typed_function(sc, "gtk_window_is_maximized", lg_gtk_window_is_maximized, 1, 0, 0, H_gtk_window_is_maximized, pl_bu);
+  s7_define_typed_function(sc, "gtk_dialog_get_header_bar", lg_gtk_dialog_get_header_bar, 1, 0, 0, H_gtk_dialog_get_header_bar, pl_pu);
+  s7_define_typed_function(sc, "gtk_popover_new", lg_gtk_popover_new, 1, 0, 0, H_gtk_popover_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_popover_set_relative_to", lg_gtk_popover_set_relative_to, 2, 0, 0, H_gtk_popover_set_relative_to, pl_tu);
+  s7_define_typed_function(sc, "gtk_popover_get_relative_to", lg_gtk_popover_get_relative_to, 1, 0, 0, H_gtk_popover_get_relative_to, pl_pu);
+  s7_define_typed_function(sc, "gtk_popover_set_position", lg_gtk_popover_set_position, 2, 0, 0, H_gtk_popover_set_position, pl_tug);
+  s7_define_typed_function(sc, "gtk_popover_get_position", lg_gtk_popover_get_position, 1, 0, 0, H_gtk_popover_get_position, pl_gu);
+  s7_define_typed_function(sc, "gtk_popover_set_modal", lg_gtk_popover_set_modal, 2, 0, 0, H_gtk_popover_set_modal, pl_tub);
+  s7_define_typed_function(sc, "gtk_popover_get_modal", lg_gtk_popover_get_modal, 1, 0, 0, H_gtk_popover_get_modal, pl_bu);
+  s7_define_typed_function(sc, "gtk_entry_set_max_width_chars", lg_gtk_entry_set_max_width_chars, 2, 0, 0, H_gtk_entry_set_max_width_chars, pl_tui);
+  s7_define_typed_function(sc, "gtk_entry_get_max_width_chars", lg_gtk_entry_get_max_width_chars, 1, 0, 0, H_gtk_entry_get_max_width_chars, pl_iu);
+  s7_define_typed_function(sc, "gdk_device_get_last_event_window", lg_gdk_device_get_last_event_window, 1, 0, 0, H_gdk_device_get_last_event_window, pl_pu);
+#endif
+
+#if GTK_CHECK_VERSION(3, 14, 0)
+  s7_define_typed_function(sc, "gtk_list_box_row_is_selected", lg_gtk_list_box_row_is_selected, 1, 0, 0, H_gtk_list_box_row_is_selected, pl_bu);
+  s7_define_typed_function(sc, "gtk_list_box_unselect_row", lg_gtk_list_box_unselect_row, 2, 0, 0, H_gtk_list_box_unselect_row, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_select_all", lg_gtk_list_box_select_all, 1, 0, 0, H_gtk_list_box_select_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_list_box_unselect_all", lg_gtk_list_box_unselect_all, 1, 0, 0, H_gtk_list_box_unselect_all, pl_tu);
+  s7_define_typed_function(sc, "gtk_places_sidebar_get_show_enter_location", lg_gtk_places_sidebar_get_show_enter_location, 1, 0, 0, H_gtk_places_sidebar_get_show_enter_location, pl_bu);
+  s7_define_typed_function(sc, "gtk_places_sidebar_set_show_enter_location", lg_gtk_places_sidebar_set_show_enter_location, 2, 0, 0, H_gtk_places_sidebar_set_show_enter_location, pl_tub);
+  s7_define_typed_function(sc, "gtk_switch_set_state", lg_gtk_switch_set_state, 2, 0, 0, H_gtk_switch_set_state, pl_tub);
+  s7_define_typed_function(sc, "gtk_switch_get_state", lg_gtk_switch_get_state, 1, 0, 0, H_gtk_switch_get_state, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_show_window_menu", lg_gdk_window_show_window_menu, 2, 0, 0, H_gdk_window_show_window_menu, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_set_clip", lg_gtk_widget_set_clip, 2, 0, 0, H_gtk_widget_set_clip, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_get_clip", lg_gtk_widget_get_clip, 2, 0, 0, H_gtk_widget_get_clip, pl_tu);
+  s7_define_typed_function(sc, "gtk_gesture_get_device", lg_gtk_gesture_get_device, 1, 0, 0, H_gtk_gesture_get_device, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_set_state", lg_gtk_gesture_set_state, 2, 0, 0, H_gtk_gesture_set_state, pl_bui);
+  s7_define_typed_function(sc, "gtk_gesture_get_sequence_state", lg_gtk_gesture_get_sequence_state, 2, 0, 0, H_gtk_gesture_get_sequence_state, pl_iu);
+  s7_define_typed_function(sc, "gtk_gesture_set_sequence_state", lg_gtk_gesture_set_sequence_state, 3, 0, 0, H_gtk_gesture_set_sequence_state, pl_buui);
+  s7_define_typed_function(sc, "gtk_gesture_get_sequences", lg_gtk_gesture_get_sequences, 1, 0, 0, H_gtk_gesture_get_sequences, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_get_last_updated_sequence", lg_gtk_gesture_get_last_updated_sequence, 1, 0, 0, H_gtk_gesture_get_last_updated_sequence, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_handles_sequence", lg_gtk_gesture_handles_sequence, 2, 0, 0, H_gtk_gesture_handles_sequence, pl_bu);
+  s7_define_typed_function(sc, "gtk_gesture_get_last_event", lg_gtk_gesture_get_last_event, 2, 0, 0, H_gtk_gesture_get_last_event, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_get_point", lg_gtk_gesture_get_point, 2, 2, 0, H_gtk_gesture_get_point, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_get_bounding_box", lg_gtk_gesture_get_bounding_box, 2, 0, 0, H_gtk_gesture_get_bounding_box, pl_bu);
+  s7_define_typed_function(sc, "gtk_gesture_get_bounding_box_center", lg_gtk_gesture_get_bounding_box_center, 1, 2, 0, H_gtk_gesture_get_bounding_box_center, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_is_active", lg_gtk_gesture_is_active, 1, 0, 0, H_gtk_gesture_is_active, pl_bu);
+  s7_define_typed_function(sc, "gtk_gesture_is_recognized", lg_gtk_gesture_is_recognized, 1, 0, 0, H_gtk_gesture_is_recognized, pl_bu);
+  s7_define_typed_function(sc, "gtk_gesture_group", lg_gtk_gesture_group, 2, 0, 0, H_gtk_gesture_group, pl_tu);
+  s7_define_typed_function(sc, "gtk_gesture_ungroup", lg_gtk_gesture_ungroup, 1, 0, 0, H_gtk_gesture_ungroup, pl_tu);
+  s7_define_typed_function(sc, "gtk_gesture_get_group", lg_gtk_gesture_get_group, 1, 0, 0, H_gtk_gesture_get_group, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_is_grouped_with", lg_gtk_gesture_is_grouped_with, 2, 0, 0, H_gtk_gesture_is_grouped_with, pl_bu);
+  s7_define_typed_function(sc, "gtk_gesture_drag_new", lg_gtk_gesture_drag_new, 1, 0, 0, H_gtk_gesture_drag_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_drag_get_start_point", lg_gtk_gesture_drag_get_start_point, 1, 2, 0, H_gtk_gesture_drag_get_start_point, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_drag_get_offset", lg_gtk_gesture_drag_get_offset, 1, 2, 0, H_gtk_gesture_drag_get_offset, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_long_press_new", lg_gtk_gesture_long_press_new, 1, 0, 0, H_gtk_gesture_long_press_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_pan_new", lg_gtk_gesture_pan_new, 2, 0, 0, H_gtk_gesture_pan_new, pl_pug);
+  s7_define_typed_function(sc, "gtk_gesture_pan_get_orientation", lg_gtk_gesture_pan_get_orientation, 1, 0, 0, H_gtk_gesture_pan_get_orientation, pl_gu);
+  s7_define_typed_function(sc, "gtk_gesture_pan_set_orientation", lg_gtk_gesture_pan_set_orientation, 2, 0, 0, H_gtk_gesture_pan_set_orientation, pl_tug);
+  s7_define_typed_function(sc, "gtk_gesture_multi_press_new", lg_gtk_gesture_multi_press_new, 1, 0, 0, H_gtk_gesture_multi_press_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_multi_press_set_area", lg_gtk_gesture_multi_press_set_area, 2, 0, 0, H_gtk_gesture_multi_press_set_area, pl_tu);
+  s7_define_typed_function(sc, "gtk_gesture_multi_press_get_area", lg_gtk_gesture_multi_press_get_area, 2, 0, 0, H_gtk_gesture_multi_press_get_area, pl_bu);
+  s7_define_typed_function(sc, "gtk_gesture_rotate_new", lg_gtk_gesture_rotate_new, 1, 0, 0, H_gtk_gesture_rotate_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_rotate_get_angle_delta", lg_gtk_gesture_rotate_get_angle_delta, 1, 0, 0, H_gtk_gesture_rotate_get_angle_delta, pl_du);
+  s7_define_typed_function(sc, "gtk_gesture_single_get_touch_only", lg_gtk_gesture_single_get_touch_only, 1, 0, 0, H_gtk_gesture_single_get_touch_only, pl_bu);
+  s7_define_typed_function(sc, "gtk_gesture_single_set_touch_only", lg_gtk_gesture_single_set_touch_only, 2, 0, 0, H_gtk_gesture_single_set_touch_only, pl_tub);
+  s7_define_typed_function(sc, "gtk_gesture_single_get_exclusive", lg_gtk_gesture_single_get_exclusive, 1, 0, 0, H_gtk_gesture_single_get_exclusive, pl_bu);
+  s7_define_typed_function(sc, "gtk_gesture_single_set_exclusive", lg_gtk_gesture_single_set_exclusive, 2, 0, 0, H_gtk_gesture_single_set_exclusive, pl_tub);
+  s7_define_typed_function(sc, "gtk_gesture_single_get_button", lg_gtk_gesture_single_get_button, 1, 0, 0, H_gtk_gesture_single_get_button, pl_iu);
+  s7_define_typed_function(sc, "gtk_gesture_single_set_button", lg_gtk_gesture_single_set_button, 2, 0, 0, H_gtk_gesture_single_set_button, pl_tui);
+  s7_define_typed_function(sc, "gtk_gesture_single_get_current_button", lg_gtk_gesture_single_get_current_button, 1, 0, 0, H_gtk_gesture_single_get_current_button, pl_iu);
+  s7_define_typed_function(sc, "gtk_gesture_single_get_current_sequence", lg_gtk_gesture_single_get_current_sequence, 1, 0, 0, H_gtk_gesture_single_get_current_sequence, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_swipe_new", lg_gtk_gesture_swipe_new, 1, 0, 0, H_gtk_gesture_swipe_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_swipe_get_velocity", lg_gtk_gesture_swipe_get_velocity, 1, 2, 0, H_gtk_gesture_swipe_get_velocity, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_zoom_new", lg_gtk_gesture_zoom_new, 1, 0, 0, H_gtk_gesture_zoom_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_gesture_zoom_get_scale_delta", lg_gtk_gesture_zoom_get_scale_delta, 1, 0, 0, H_gtk_gesture_zoom_get_scale_delta, pl_du);
+  s7_define_typed_function(sc, "gtk_event_controller_get_widget", lg_gtk_event_controller_get_widget, 1, 0, 0, H_gtk_event_controller_get_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_event_controller_handle_event", lg_gtk_event_controller_handle_event, 2, 0, 0, H_gtk_event_controller_handle_event, pl_bu);
+  s7_define_typed_function(sc, "gtk_event_controller_reset", lg_gtk_event_controller_reset, 1, 0, 0, H_gtk_event_controller_reset, pl_tu);
+  s7_define_typed_function(sc, "gtk_event_controller_get_propagation_phase", lg_gtk_event_controller_get_propagation_phase, 1, 0, 0, H_gtk_event_controller_get_propagation_phase, pl_gu);
+  s7_define_typed_function(sc, "gtk_event_controller_set_propagation_phase", lg_gtk_event_controller_set_propagation_phase, 2, 0, 0, H_gtk_event_controller_set_propagation_phase, pl_tug);
+  s7_define_typed_function(sc, "gtk_icon_theme_add_resource_path", lg_gtk_icon_theme_add_resource_path, 2, 0, 0, H_gtk_icon_theme_add_resource_path, pl_tus);
+  s7_define_typed_function(sc, "gtk_list_box_row_set_activatable", lg_gtk_list_box_row_set_activatable, 2, 0, 0, H_gtk_list_box_row_set_activatable, pl_tub);
+  s7_define_typed_function(sc, "gtk_list_box_row_get_activatable", lg_gtk_list_box_row_get_activatable, 1, 0, 0, H_gtk_list_box_row_get_activatable, pl_bu);
+  s7_define_typed_function(sc, "gtk_list_box_row_set_selectable", lg_gtk_list_box_row_set_selectable, 2, 0, 0, H_gtk_list_box_row_set_selectable, pl_tub);
+  s7_define_typed_function(sc, "gtk_list_box_row_get_selectable", lg_gtk_list_box_row_get_selectable, 1, 0, 0, H_gtk_list_box_row_get_selectable, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_path_iter_get_state", lg_gtk_widget_path_iter_get_state, 2, 0, 0, H_gtk_widget_path_iter_get_state, pl_gui);
+  s7_define_typed_function(sc, "gtk_widget_path_iter_set_state", lg_gtk_widget_path_iter_set_state, 3, 0, 0, H_gtk_widget_path_iter_set_state, pl_tuig);
+#endif
+
+#if GTK_CHECK_VERSION(3, 16, 0)
+  s7_define_typed_function(sc, "gdk_cairo_draw_from_gl", lg_gdk_cairo_draw_from_gl, 0, 0, 1, H_gdk_cairo_draw_from_gl, pl_tuui);
+  s7_define_typed_function(sc, "gdk_window_mark_paint_from_clip", lg_gdk_window_mark_paint_from_clip, 2, 0, 0, H_gdk_window_mark_paint_from_clip, pl_tu);
+  s7_define_typed_function(sc, "gtk_label_set_xalign", lg_gtk_label_set_xalign, 2, 0, 0, H_gtk_label_set_xalign, pl_tur);
+  s7_define_typed_function(sc, "gtk_label_get_xalign", lg_gtk_label_get_xalign, 1, 0, 0, H_gtk_label_get_xalign, pl_du);
+  s7_define_typed_function(sc, "gtk_label_set_yalign", lg_gtk_label_set_yalign, 2, 0, 0, H_gtk_label_set_yalign, pl_tur);
+  s7_define_typed_function(sc, "gtk_label_get_yalign", lg_gtk_label_get_yalign, 1, 0, 0, H_gtk_label_get_yalign, pl_du);
+  s7_define_typed_function(sc, "gtk_paned_set_wide_handle", lg_gtk_paned_set_wide_handle, 2, 0, 0, H_gtk_paned_set_wide_handle, pl_tub);
+  s7_define_typed_function(sc, "gtk_paned_get_wide_handle", lg_gtk_paned_get_wide_handle, 1, 0, 0, H_gtk_paned_get_wide_handle, pl_bu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_set_overlay_scrolling", lg_gtk_scrolled_window_set_overlay_scrolling, 2, 0, 0, H_gtk_scrolled_window_set_overlay_scrolling, pl_tub);
+  s7_define_typed_function(sc, "gtk_scrolled_window_get_overlay_scrolling", lg_gtk_scrolled_window_get_overlay_scrolling, 1, 0, 0, H_gtk_scrolled_window_get_overlay_scrolling, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_view_set_monospace", lg_gtk_text_view_set_monospace, 2, 0, 0, H_gtk_text_view_set_monospace, pl_tub);
+  s7_define_typed_function(sc, "gtk_text_view_get_monospace", lg_gtk_text_view_get_monospace, 1, 0, 0, H_gtk_text_view_get_monospace, pl_bu);
+  s7_define_typed_function(sc, "gtk_window_get_titlebar", lg_gtk_window_get_titlebar, 1, 0, 0, H_gtk_window_get_titlebar, pl_pu);
+  s7_define_typed_function(sc, "gtk_gl_area_new", lg_gtk_gl_area_new, 0, 0, 0, H_gtk_gl_area_new, pl_p);
+  s7_define_typed_function(sc, "gtk_gl_area_get_has_alpha", lg_gtk_gl_area_get_has_alpha, 1, 0, 0, H_gtk_gl_area_get_has_alpha, pl_bu);
+  s7_define_typed_function(sc, "gtk_gl_area_set_has_alpha", lg_gtk_gl_area_set_has_alpha, 2, 0, 0, H_gtk_gl_area_set_has_alpha, pl_tub);
+  s7_define_typed_function(sc, "gtk_gl_area_get_has_depth_buffer", lg_gtk_gl_area_get_has_depth_buffer, 1, 0, 0, H_gtk_gl_area_get_has_depth_buffer, pl_bu);
+  s7_define_typed_function(sc, "gtk_gl_area_set_has_depth_buffer", lg_gtk_gl_area_set_has_depth_buffer, 2, 0, 0, H_gtk_gl_area_set_has_depth_buffer, pl_tub);
+  s7_define_typed_function(sc, "gtk_gl_area_get_context", lg_gtk_gl_area_get_context, 1, 0, 0, H_gtk_gl_area_get_context, pl_pu);
+  s7_define_typed_function(sc, "gtk_gl_area_make_current", lg_gtk_gl_area_make_current, 1, 0, 0, H_gtk_gl_area_make_current, pl_tu);
+  s7_define_typed_function(sc, "gtk_render_check", lg_gtk_render_check, 6, 0, 0, H_gtk_render_check, pl_tuur);
+  s7_define_typed_function(sc, "gtk_render_option", lg_gtk_render_option, 6, 0, 0, H_gtk_render_option, pl_tuur);
+  s7_define_typed_function(sc, "gtk_render_arrow", lg_gtk_render_arrow, 6, 0, 0, H_gtk_render_arrow, pl_tuur);
+  s7_define_typed_function(sc, "gtk_render_background", lg_gtk_render_background, 6, 0, 0, H_gtk_render_background, pl_tuur);
+  s7_define_typed_function(sc, "gtk_render_frame", lg_gtk_render_frame, 6, 0, 0, H_gtk_render_frame, pl_tuur);
+  s7_define_typed_function(sc, "gtk_render_expander", lg_gtk_render_expander, 6, 0, 0, H_gtk_render_expander, pl_tuur);
+  s7_define_typed_function(sc, "gtk_render_focus", lg_gtk_render_focus, 6, 0, 0, H_gtk_render_focus, pl_tuur);
+  s7_define_typed_function(sc, "gtk_render_layout", lg_gtk_render_layout, 5, 0, 0, H_gtk_render_layout, pl_tuurru);
+  s7_define_typed_function(sc, "gtk_render_line", lg_gtk_render_line, 6, 0, 0, H_gtk_render_line, pl_tuur);
+  s7_define_typed_function(sc, "gtk_render_slider", lg_gtk_render_slider, 7, 0, 0, H_gtk_render_slider, pl_tuurrrrg);
+  s7_define_typed_function(sc, "gtk_render_frame_gap", lg_gtk_render_frame_gap, 0, 0, 1, H_gtk_render_frame_gap, pl_tuurrrrgr);
+  s7_define_typed_function(sc, "gtk_render_extension", lg_gtk_render_extension, 7, 0, 0, H_gtk_render_extension, pl_tuurrrrg);
+  s7_define_typed_function(sc, "gtk_render_handle", lg_gtk_render_handle, 6, 0, 0, H_gtk_render_handle, pl_tuur);
+  s7_define_typed_function(sc, "gtk_render_activity", lg_gtk_render_activity, 6, 0, 0, H_gtk_render_activity, pl_tuur);
+  s7_define_typed_function(sc, "gtk_render_icon", lg_gtk_render_icon, 5, 0, 0, H_gtk_render_icon, pl_tuuur);
+  s7_define_typed_function(sc, "gtk_render_icon_surface", lg_gtk_render_icon_surface, 5, 0, 0, H_gtk_render_icon_surface, pl_tuuur);
+  s7_define_typed_function(sc, "gdk_gl_context_get_window", lg_gdk_gl_context_get_window, 1, 0, 0, H_gdk_gl_context_get_window, pl_pu);
+  s7_define_typed_function(sc, "gdk_gl_context_make_current", lg_gdk_gl_context_make_current, 1, 0, 0, H_gdk_gl_context_make_current, pl_tu);
+  s7_define_typed_function(sc, "gdk_gl_context_get_current", lg_gdk_gl_context_get_current, 0, 0, 0, H_gdk_gl_context_get_current, pl_p);
+  s7_define_typed_function(sc, "gdk_gl_context_clear_current", lg_gdk_gl_context_clear_current, 0, 0, 0, H_gdk_gl_context_clear_current, pl_t);
+  s7_define_typed_function(sc, "gtk_stack_set_hhomogeneous", lg_gtk_stack_set_hhomogeneous, 2, 0, 0, H_gtk_stack_set_hhomogeneous, pl_tub);
+  s7_define_typed_function(sc, "gtk_stack_get_hhomogeneous", lg_gtk_stack_get_hhomogeneous, 1, 0, 0, H_gtk_stack_get_hhomogeneous, pl_bu);
+  s7_define_typed_function(sc, "gtk_stack_set_vhomogeneous", lg_gtk_stack_set_vhomogeneous, 2, 0, 0, H_gtk_stack_set_vhomogeneous, pl_tub);
+  s7_define_typed_function(sc, "gtk_stack_get_vhomogeneous", lg_gtk_stack_get_vhomogeneous, 1, 0, 0, H_gtk_stack_get_vhomogeneous, pl_bu);
+  s7_define_typed_function(sc, "gdk_gl_context_get_display", lg_gdk_gl_context_get_display, 1, 0, 0, H_gdk_gl_context_get_display, pl_pu);
+  s7_define_typed_function(sc, "gtk_gl_area_get_has_stencil_buffer", lg_gtk_gl_area_get_has_stencil_buffer, 1, 0, 0, H_gtk_gl_area_get_has_stencil_buffer, pl_bu);
+  s7_define_typed_function(sc, "gtk_gl_area_set_has_stencil_buffer", lg_gtk_gl_area_set_has_stencil_buffer, 2, 0, 0, H_gtk_gl_area_set_has_stencil_buffer, pl_tub);
+  s7_define_typed_function(sc, "gtk_gl_area_get_auto_render", lg_gtk_gl_area_get_auto_render, 1, 0, 0, H_gtk_gl_area_get_auto_render, pl_bu);
+  s7_define_typed_function(sc, "gtk_gl_area_set_auto_render", lg_gtk_gl_area_set_auto_render, 2, 0, 0, H_gtk_gl_area_set_auto_render, pl_tub);
+  s7_define_typed_function(sc, "gtk_gl_area_queue_render", lg_gtk_gl_area_queue_render, 1, 0, 0, H_gtk_gl_area_queue_render, pl_tu);
+  s7_define_typed_function(sc, "gtk_gl_area_attach_buffers", lg_gtk_gl_area_attach_buffers, 1, 0, 0, H_gtk_gl_area_attach_buffers, pl_tu);
+  s7_define_typed_function(sc, "gtk_gl_area_get_error", lg_gtk_gl_area_get_error, 1, 0, 0, H_gtk_gl_area_get_error, pl_pu);
+  s7_define_typed_function(sc, "gtk_popover_menu_new", lg_gtk_popover_menu_new, 0, 0, 0, H_gtk_popover_menu_new, pl_p);
+  s7_define_typed_function(sc, "gtk_popover_menu_open_submenu", lg_gtk_popover_menu_open_submenu, 2, 0, 0, H_gtk_popover_menu_open_submenu, pl_tus);
+  s7_define_typed_function(sc, "gtk_entry_grab_focus_without_selecting", lg_gtk_entry_grab_focus_without_selecting, 1, 0, 0, H_gtk_entry_grab_focus_without_selecting, pl_tu);
+  s7_define_typed_function(sc, "gtk_scrollable_get_border", lg_gtk_scrollable_get_border, 2, 0, 0, H_gtk_scrollable_get_border, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_buffer_insert_markup", lg_gtk_text_buffer_insert_markup, 4, 0, 0, H_gtk_text_buffer_insert_markup, pl_tuusi);
+  s7_define_typed_function(sc, "gdk_device_get_vendor_id", lg_gdk_device_get_vendor_id, 1, 0, 0, H_gdk_device_get_vendor_id, pl_su);
+  s7_define_typed_function(sc, "gdk_device_get_product_id", lg_gdk_device_get_product_id, 1, 0, 0, H_gdk_device_get_product_id, pl_su);
+  s7_define_typed_function(sc, "gdk_gl_context_get_shared_context", lg_gdk_gl_context_get_shared_context, 1, 0, 0, H_gdk_gl_context_get_shared_context, pl_pu);
+  s7_define_typed_function(sc, "gdk_gl_context_set_required_version", lg_gdk_gl_context_set_required_version, 3, 0, 0, H_gdk_gl_context_set_required_version, pl_tui);
+  s7_define_typed_function(sc, "gdk_gl_context_get_required_version", lg_gdk_gl_context_get_required_version, 1, 2, 0, H_gdk_gl_context_get_required_version, pl_pu);
+  s7_define_typed_function(sc, "gdk_gl_context_set_debug_enabled", lg_gdk_gl_context_set_debug_enabled, 2, 0, 0, H_gdk_gl_context_set_debug_enabled, pl_tub);
+  s7_define_typed_function(sc, "gdk_gl_context_get_debug_enabled", lg_gdk_gl_context_get_debug_enabled, 1, 0, 0, H_gdk_gl_context_get_debug_enabled, pl_bu);
+  s7_define_typed_function(sc, "gdk_gl_context_set_forward_compatible", lg_gdk_gl_context_set_forward_compatible, 2, 0, 0, H_gdk_gl_context_set_forward_compatible, pl_tub);
+  s7_define_typed_function(sc, "gdk_gl_context_get_forward_compatible", lg_gdk_gl_context_get_forward_compatible, 1, 0, 0, H_gdk_gl_context_get_forward_compatible, pl_bu);
+  s7_define_typed_function(sc, "gdk_gl_context_realize", lg_gdk_gl_context_realize, 1, 1, 0, H_gdk_gl_context_realize, pl_pu);
+  s7_define_typed_function(sc, "gtk_clipboard_get_default", lg_gtk_clipboard_get_default, 1, 0, 0, H_gtk_clipboard_get_default, pl_pu);
+  s7_define_typed_function(sc, "gtk_drag_cancel", lg_gtk_drag_cancel, 1, 0, 0, H_gtk_drag_cancel, pl_tu);
+  s7_define_typed_function(sc, "gtk_search_entry_handle_event", lg_gtk_search_entry_handle_event, 2, 0, 0, H_gtk_search_entry_handle_event, pl_bu);
+  s7_define_typed_function(sc, "gdk_gl_context_get_version", lg_gdk_gl_context_get_version, 1, 2, 0, H_gdk_gl_context_get_version, pl_pu);
+  s7_define_typed_function(sc, "gtk_gl_area_set_required_version", lg_gtk_gl_area_set_required_version, 3, 0, 0, H_gtk_gl_area_set_required_version, pl_tui);
+  s7_define_typed_function(sc, "gtk_gl_area_get_required_version", lg_gtk_gl_area_get_required_version, 1, 2, 0, H_gtk_gl_area_get_required_version, pl_pu);
+  s7_define_typed_function(sc, "gtk_notebook_detach_tab", lg_gtk_notebook_detach_tab, 2, 0, 0, H_gtk_notebook_detach_tab, pl_tu);
+  s7_define_typed_function(sc, "gtk_stack_sidebar_new", lg_gtk_stack_sidebar_new, 0, 0, 0, H_gtk_stack_sidebar_new, pl_p);
+  s7_define_typed_function(sc, "gtk_stack_sidebar_set_stack", lg_gtk_stack_sidebar_set_stack, 2, 0, 0, H_gtk_stack_sidebar_set_stack, pl_tu);
+  s7_define_typed_function(sc, "gtk_stack_sidebar_get_stack", lg_gtk_stack_sidebar_get_stack, 1, 0, 0, H_gtk_stack_sidebar_get_stack, pl_pu);
+#endif
+
+#if GTK_CHECK_VERSION(3, 18, 0)
+  s7_define_typed_function(sc, "gdk_keymap_get_scroll_lock_state", lg_gdk_keymap_get_scroll_lock_state, 1, 0, 0, H_gdk_keymap_get_scroll_lock_state, pl_bu);
+  s7_define_typed_function(sc, "gtk_radio_menu_item_join_group", lg_gtk_radio_menu_item_join_group, 2, 0, 0, H_gtk_radio_menu_item_join_group, pl_tu);
+  s7_define_typed_function(sc, "gtk_font_chooser_set_font_map", lg_gtk_font_chooser_set_font_map, 2, 0, 0, H_gtk_font_chooser_set_font_map, pl_tu);
+  s7_define_typed_function(sc, "gtk_font_chooser_get_font_map", lg_gtk_font_chooser_get_font_map, 1, 0, 0, H_gtk_font_chooser_get_font_map, pl_pu);
+  s7_define_typed_function(sc, "gtk_popover_set_default_widget", lg_gtk_popover_set_default_widget, 2, 0, 0, H_gtk_popover_set_default_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_popover_get_default_widget", lg_gtk_popover_get_default_widget, 1, 0, 0, H_gtk_popover_get_default_widget, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_set_pass_through", lg_gdk_window_set_pass_through, 2, 0, 0, H_gdk_window_set_pass_through, pl_tub);
+  s7_define_typed_function(sc, "gdk_window_get_pass_through", lg_gdk_window_get_pass_through, 1, 0, 0, H_gdk_window_get_pass_through, pl_bu);
+  s7_define_typed_function(sc, "gtk_overlay_reorder_overlay", lg_gtk_overlay_reorder_overlay, 3, 0, 0, H_gtk_overlay_reorder_overlay, pl_tuui);
+  s7_define_typed_function(sc, "gtk_overlay_get_overlay_pass_through", lg_gtk_overlay_get_overlay_pass_through, 2, 0, 0, H_gtk_overlay_get_overlay_pass_through, pl_bu);
+  s7_define_typed_function(sc, "gtk_overlay_set_overlay_pass_through", lg_gtk_overlay_set_overlay_pass_through, 3, 0, 0, H_gtk_overlay_set_overlay_pass_through, pl_tuub);
+  s7_define_typed_function(sc, "gtk_places_sidebar_get_show_recent", lg_gtk_places_sidebar_get_show_recent, 1, 0, 0, H_gtk_places_sidebar_get_show_recent, pl_bu);
+  s7_define_typed_function(sc, "gtk_places_sidebar_set_show_recent", lg_gtk_places_sidebar_set_show_recent, 2, 0, 0, H_gtk_places_sidebar_set_show_recent, pl_tub);
+  s7_define_typed_function(sc, "gtk_places_sidebar_set_drop_targets_visible", lg_gtk_places_sidebar_set_drop_targets_visible, 3, 0, 0, H_gtk_places_sidebar_set_drop_targets_visible, pl_tubu);
+  s7_define_typed_function(sc, "gtk_places_sidebar_get_show_trash", lg_gtk_places_sidebar_get_show_trash, 1, 0, 0, H_gtk_places_sidebar_get_show_trash, pl_bu);
+  s7_define_typed_function(sc, "gtk_places_sidebar_set_show_trash", lg_gtk_places_sidebar_set_show_trash, 2, 0, 0, H_gtk_places_sidebar_set_show_trash, pl_tub);
+  s7_define_typed_function(sc, "gtk_places_sidebar_set_show_other_locations", lg_gtk_places_sidebar_set_show_other_locations, 2, 0, 0, H_gtk_places_sidebar_set_show_other_locations, pl_tub);
+  s7_define_typed_function(sc, "gtk_places_sidebar_get_show_other_locations", lg_gtk_places_sidebar_get_show_other_locations, 1, 0, 0, H_gtk_places_sidebar_get_show_other_locations, pl_bu);
+  s7_define_typed_function(sc, "gtk_stack_set_interpolate_size", lg_gtk_stack_set_interpolate_size, 2, 0, 0, H_gtk_stack_set_interpolate_size, pl_tub);
+  s7_define_typed_function(sc, "gtk_stack_get_interpolate_size", lg_gtk_stack_get_interpolate_size, 1, 0, 0, H_gtk_stack_get_interpolate_size, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_set_font_options", lg_gtk_widget_set_font_options, 2, 0, 0, H_gtk_widget_set_font_options, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_get_font_options", lg_gtk_widget_get_font_options, 1, 0, 0, H_gtk_widget_get_font_options, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_set_font_map", lg_gtk_widget_set_font_map, 2, 0, 0, H_gtk_widget_set_font_map, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_get_font_map", lg_gtk_widget_get_font_map, 1, 0, 0, H_gtk_widget_get_font_map, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_fullscreen_on_monitor", lg_gdk_window_fullscreen_on_monitor, 2, 0, 0, H_gdk_window_fullscreen_on_monitor, pl_tui);
+  s7_define_typed_function(sc, "gtk_window_fullscreen_on_monitor", lg_gtk_window_fullscreen_on_monitor, 3, 0, 0, H_gtk_window_fullscreen_on_monitor, pl_tuui);
+  s7_define_typed_function(sc, "gtk_text_view_set_top_margin", lg_gtk_text_view_set_top_margin, 2, 0, 0, H_gtk_text_view_set_top_margin, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_view_get_top_margin", lg_gtk_text_view_get_top_margin, 1, 0, 0, H_gtk_text_view_get_top_margin, pl_iu);
+  s7_define_typed_function(sc, "gtk_text_view_set_bottom_margin", lg_gtk_text_view_set_bottom_margin, 2, 0, 0, H_gtk_text_view_set_bottom_margin, pl_tui);
+  s7_define_typed_function(sc, "gtk_text_view_get_bottom_margin", lg_gtk_text_view_get_bottom_margin, 1, 0, 0, H_gtk_text_view_get_bottom_margin, pl_iu);
+#endif
+
+#if GTK_CHECK_VERSION(3, 20, 0)
+  s7_define_typed_function(sc, "gdk_gl_context_is_legacy", lg_gdk_gl_context_is_legacy, 1, 0, 0, H_gdk_gl_context_is_legacy, pl_bu);
+  s7_define_typed_function(sc, "gdk_rectangle_equal", lg_gdk_rectangle_equal, 2, 0, 0, H_gdk_rectangle_equal, pl_bu);
+  s7_define_typed_function(sc, "gtk_application_window_set_help_overlay", lg_gtk_application_window_set_help_overlay, 2, 0, 0, H_gtk_application_window_set_help_overlay, pl_tu);
+  s7_define_typed_function(sc, "gtk_settings_reset_property", lg_gtk_settings_reset_property, 2, 0, 0, H_gtk_settings_reset_property, pl_tus);
+  s7_define_typed_function(sc, "gtk_text_tag_changed", lg_gtk_text_tag_changed, 2, 0, 0, H_gtk_text_tag_changed, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_path_iter_get_object_name", lg_gtk_widget_path_iter_get_object_name, 2, 0, 0, H_gtk_widget_path_iter_get_object_name, pl_sui);
+  s7_define_typed_function(sc, "gtk_widget_path_iter_set_object_name", lg_gtk_widget_path_iter_set_object_name, 3, 0, 0, H_gtk_widget_path_iter_set_object_name, pl_tuis);
+  s7_define_typed_function(sc, "gtk_widget_queue_allocate", lg_gtk_widget_queue_allocate, 1, 0, 0, H_gtk_widget_queue_allocate, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_set_focus_on_click", lg_gtk_widget_set_focus_on_click, 2, 0, 0, H_gtk_widget_set_focus_on_click, pl_tub);
+  s7_define_typed_function(sc, "gtk_widget_get_focus_on_click", lg_gtk_widget_get_focus_on_click, 1, 0, 0, H_gtk_widget_get_focus_on_click, pl_bu);
+  s7_define_typed_function(sc, "gdk_drag_context_get_drag_window", lg_gdk_drag_context_get_drag_window, 1, 0, 0, H_gdk_drag_context_get_drag_window, pl_pu);
+  s7_define_typed_function(sc, "gtk_popover_set_constrain_to", lg_gtk_popover_set_constrain_to, 2, 0, 0, H_gtk_popover_set_constrain_to, pl_tug);
+  s7_define_typed_function(sc, "gtk_popover_get_constrain_to", lg_gtk_popover_get_constrain_to, 1, 0, 0, H_gtk_popover_get_constrain_to, pl_gu);
+  s7_define_typed_function(sc, "gtk_text_iter_starts_tag", lg_gtk_text_iter_starts_tag, 2, 0, 0, H_gtk_text_iter_starts_tag, pl_bu);
+  s7_define_typed_function(sc, "gdk_device_get_seat", lg_gdk_device_get_seat, 1, 0, 0, H_gdk_device_get_seat, pl_pu);
+  s7_define_typed_function(sc, "gdk_display_get_default_seat", lg_gdk_display_get_default_seat, 1, 0, 0, H_gdk_display_get_default_seat, pl_pu);
+  s7_define_typed_function(sc, "gdk_display_list_seats", lg_gdk_display_list_seats, 1, 0, 0, H_gdk_display_list_seats, pl_pu);
+  s7_define_typed_function(sc, "gdk_drag_begin_from_point", lg_gdk_drag_begin_from_point, 5, 0, 0, H_gdk_drag_begin_from_point, pl_puuui);
+  s7_define_typed_function(sc, "gdk_drag_drop_done", lg_gdk_drag_drop_done, 2, 0, 0, H_gdk_drag_drop_done, pl_tub);
+  s7_define_typed_function(sc, "gdk_drag_context_set_hotspot", lg_gdk_drag_context_set_hotspot, 3, 0, 0, H_gdk_drag_context_set_hotspot, pl_tui);
+  s7_define_typed_function(sc, "gdk_seat_grab", lg_gdk_seat_grab, 0, 0, 1, H_gdk_seat_grab, pl_guugbuut);
+  s7_define_typed_function(sc, "gdk_seat_ungrab", lg_gdk_seat_ungrab, 1, 0, 0, H_gdk_seat_ungrab, pl_tu);
+  s7_define_typed_function(sc, "gdk_seat_get_display", lg_gdk_seat_get_display, 1, 0, 0, H_gdk_seat_get_display, pl_pu);
+  s7_define_typed_function(sc, "gdk_seat_get_capabilities", lg_gdk_seat_get_capabilities, 1, 0, 0, H_gdk_seat_get_capabilities, pl_gu);
+  s7_define_typed_function(sc, "gdk_seat_get_slaves", lg_gdk_seat_get_slaves, 2, 0, 0, H_gdk_seat_get_slaves, pl_pug);
+  s7_define_typed_function(sc, "gdk_seat_get_pointer", lg_gdk_seat_get_pointer, 1, 0, 0, H_gdk_seat_get_pointer, pl_pu);
+  s7_define_typed_function(sc, "gdk_seat_get_keyboard", lg_gdk_seat_get_keyboard, 1, 0, 0, H_gdk_seat_get_keyboard, pl_pu);
+  s7_define_typed_function(sc, "gdk_drag_context_manage_dnd", lg_gdk_drag_context_manage_dnd, 3, 0, 0, H_gdk_drag_context_manage_dnd, pl_buug);
+  s7_define_typed_function(sc, "gdk_event_is_scroll_stop_event", lg_gdk_event_is_scroll_stop_event, 1, 0, 0, H_gdk_event_is_scroll_stop_event, pl_bu);
+  s7_define_typed_function(sc, "gtk_text_view_reset_cursor_blink", lg_gtk_text_view_reset_cursor_blink, 1, 0, 0, H_gtk_text_view_reset_cursor_blink, pl_tu);
+#endif
+
+#if GTK_CHECK_VERSION(3, 22, 0)
+  s7_define_typed_function(sc, "gdk_device_get_axes", lg_gdk_device_get_axes, 1, 0, 0, H_gdk_device_get_axes, pl_gu);
+  s7_define_typed_function(sc, "gdk_event_get_device_tool", lg_gdk_event_get_device_tool, 1, 0, 0, H_gdk_event_get_device_tool, pl_pu);
+  s7_define_typed_function(sc, "gdk_event_set_device_tool", lg_gdk_event_set_device_tool, 2, 0, 0, H_gdk_event_set_device_tool, pl_tu);
+  s7_define_typed_function(sc, "gdk_event_get_scancode", lg_gdk_event_get_scancode, 1, 0, 0, H_gdk_event_get_scancode, pl_iu);
+  s7_define_typed_function(sc, "gdk_gl_context_set_use_es", lg_gdk_gl_context_set_use_es, 2, 0, 0, H_gdk_gl_context_set_use_es, pl_tui);
+  s7_define_typed_function(sc, "gdk_gl_context_get_use_es", lg_gdk_gl_context_get_use_es, 1, 0, 0, H_gdk_gl_context_get_use_es, pl_bu);
+  s7_define_typed_function(sc, "gdk_pango_context_get_for_display", lg_gdk_pango_context_get_for_display, 1, 0, 0, H_gdk_pango_context_get_for_display, pl_pu);
+  s7_define_typed_function(sc, "gtk_clipboard_get_selection", lg_gtk_clipboard_get_selection, 1, 0, 0, H_gtk_clipboard_get_selection, pl_tu);
+  s7_define_typed_function(sc, "gtk_gl_area_set_use_es", lg_gtk_gl_area_set_use_es, 2, 0, 0, H_gtk_gl_area_set_use_es, pl_tub);
+  s7_define_typed_function(sc, "gtk_gl_area_get_use_es", lg_gtk_gl_area_get_use_es, 1, 0, 0, H_gtk_gl_area_get_use_es, pl_bu);
+  s7_define_typed_function(sc, "gdk_device_tool_get_serial", lg_gdk_device_tool_get_serial, 1, 0, 0, H_gdk_device_tool_get_serial, pl_iu);
+  s7_define_typed_function(sc, "gdk_display_get_n_monitors", lg_gdk_display_get_n_monitors, 1, 0, 0, H_gdk_display_get_n_monitors, pl_iu);
+  s7_define_typed_function(sc, "gdk_display_get_monitor", lg_gdk_display_get_monitor, 2, 0, 0, H_gdk_display_get_monitor, pl_pui);
+  s7_define_typed_function(sc, "gdk_display_get_primary_monitor", lg_gdk_display_get_primary_monitor, 1, 0, 0, H_gdk_display_get_primary_monitor, pl_pu);
+  s7_define_typed_function(sc, "gdk_display_get_monitor_at_point", lg_gdk_display_get_monitor_at_point, 3, 0, 0, H_gdk_display_get_monitor_at_point, pl_pui);
+  s7_define_typed_function(sc, "gdk_display_get_monitor_at_window", lg_gdk_display_get_monitor_at_window, 2, 0, 0, H_gdk_display_get_monitor_at_window, pl_pu);
+  s7_define_typed_function(sc, "gdk_event_get_pointer_emulated", lg_gdk_event_get_pointer_emulated, 1, 0, 0, H_gdk_event_get_pointer_emulated, pl_bu);
+  s7_define_typed_function(sc, "gtk_menu_place_on_monitor", lg_gtk_menu_place_on_monitor, 2, 0, 0, H_gtk_menu_place_on_monitor, pl_tu);
+  s7_define_typed_function(sc, "gdk_monitor_get_display", lg_gdk_monitor_get_display, 1, 0, 0, H_gdk_monitor_get_display, pl_pu);
+  s7_define_typed_function(sc, "gdk_monitor_get_geometry", lg_gdk_monitor_get_geometry, 2, 0, 0, H_gdk_monitor_get_geometry, pl_tu);
+  s7_define_typed_function(sc, "gdk_monitor_get_workarea", lg_gdk_monitor_get_workarea, 2, 0, 0, H_gdk_monitor_get_workarea, pl_tu);
+  s7_define_typed_function(sc, "gdk_monitor_get_width_mm", lg_gdk_monitor_get_width_mm, 1, 0, 0, H_gdk_monitor_get_width_mm, pl_iu);
+  s7_define_typed_function(sc, "gdk_monitor_get_height_mm", lg_gdk_monitor_get_height_mm, 1, 0, 0, H_gdk_monitor_get_height_mm, pl_iu);
+  s7_define_typed_function(sc, "gdk_monitor_get_manufacturer", lg_gdk_monitor_get_manufacturer, 1, 0, 0, H_gdk_monitor_get_manufacturer, pl_su);
+  s7_define_typed_function(sc, "gdk_monitor_get_model", lg_gdk_monitor_get_model, 1, 0, 0, H_gdk_monitor_get_model, pl_su);
+  s7_define_typed_function(sc, "gdk_monitor_get_scale_factor", lg_gdk_monitor_get_scale_factor, 1, 0, 0, H_gdk_monitor_get_scale_factor, pl_iu);
+  s7_define_typed_function(sc, "gdk_monitor_get_refresh_rate", lg_gdk_monitor_get_refresh_rate, 1, 0, 0, H_gdk_monitor_get_refresh_rate, pl_iu);
+  s7_define_typed_function(sc, "gdk_monitor_get_subpixel_layout", lg_gdk_monitor_get_subpixel_layout, 1, 0, 0, H_gdk_monitor_get_subpixel_layout, pl_gu);
+  s7_define_typed_function(sc, "gdk_monitor_is_primary", lg_gdk_monitor_is_primary, 1, 0, 0, H_gdk_monitor_is_primary, pl_bu);
+  s7_define_typed_function(sc, "gdk_drawing_context_get_window", lg_gdk_drawing_context_get_window, 1, 0, 0, H_gdk_drawing_context_get_window, pl_pu);
+  s7_define_typed_function(sc, "gdk_drawing_context_get_clip", lg_gdk_drawing_context_get_clip, 1, 0, 0, H_gdk_drawing_context_get_clip, pl_pu);
+  s7_define_typed_function(sc, "gdk_drawing_context_is_valid", lg_gdk_drawing_context_is_valid, 1, 0, 0, H_gdk_drawing_context_is_valid, pl_bu);
+  s7_define_typed_function(sc, "gdk_drawing_context_get_cairo_context", lg_gdk_drawing_context_get_cairo_context, 1, 0, 0, H_gdk_drawing_context_get_cairo_context, pl_pu);
+  s7_define_typed_function(sc, "gdk_cairo_get_drawing_context", lg_gdk_cairo_get_drawing_context, 1, 0, 0, H_gdk_cairo_get_drawing_context, pl_pu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_set_max_content_width", lg_gtk_scrolled_window_set_max_content_width, 2, 0, 0, H_gtk_scrolled_window_set_max_content_width, pl_tui);
+  s7_define_typed_function(sc, "gtk_scrolled_window_get_max_content_width", lg_gtk_scrolled_window_get_max_content_width, 1, 0, 0, H_gtk_scrolled_window_get_max_content_width, pl_iu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_set_max_content_height", lg_gtk_scrolled_window_set_max_content_height, 2, 0, 0, H_gtk_scrolled_window_set_max_content_height, pl_tui);
+  s7_define_typed_function(sc, "gtk_scrolled_window_get_max_content_height", lg_gtk_scrolled_window_get_max_content_height, 1, 0, 0, H_gtk_scrolled_window_get_max_content_height, pl_iu);
+  s7_define_typed_function(sc, "gtk_file_chooser_add_choice", lg_gtk_file_chooser_add_choice, 5, 0, 0, H_gtk_file_chooser_add_choice, pl_tussu);
+  s7_define_typed_function(sc, "gtk_file_chooser_remove_choice", lg_gtk_file_chooser_remove_choice, 2, 0, 0, H_gtk_file_chooser_remove_choice, pl_tus);
+  s7_define_typed_function(sc, "gtk_file_chooser_set_choice", lg_gtk_file_chooser_set_choice, 3, 0, 0, H_gtk_file_chooser_set_choice, pl_tus);
+  s7_define_typed_function(sc, "gtk_file_chooser_get_choice", lg_gtk_file_chooser_get_choice, 2, 0, 0, H_gtk_file_chooser_get_choice, pl_sus);
+  s7_define_typed_function(sc, "gdk_device_pad_get_n_groups", lg_gdk_device_pad_get_n_groups, 1, 0, 0, H_gdk_device_pad_get_n_groups, pl_iu);
+  s7_define_typed_function(sc, "gdk_device_pad_get_group_n_modes", lg_gdk_device_pad_get_group_n_modes, 2, 0, 0, H_gdk_device_pad_get_group_n_modes, pl_iui);
+  s7_define_typed_function(sc, "gdk_device_pad_get_n_features", lg_gdk_device_pad_get_n_features, 2, 0, 0, H_gdk_device_pad_get_n_features, pl_iug);
+  s7_define_typed_function(sc, "gdk_device_pad_get_feature_group", lg_gdk_device_pad_get_feature_group, 3, 0, 0, H_gdk_device_pad_get_feature_group, pl_iugi);
+  s7_define_typed_function(sc, "gtk_menu_popup_at_rect", lg_gtk_menu_popup_at_rect, 6, 0, 0, H_gtk_menu_popup_at_rect, pl_tuuuggu);
+  s7_define_typed_function(sc, "gtk_menu_popup_at_widget", lg_gtk_menu_popup_at_widget, 5, 0, 0, H_gtk_menu_popup_at_widget, pl_tuuggu);
+  s7_define_typed_function(sc, "gtk_menu_popup_at_pointer", lg_gtk_menu_popup_at_pointer, 2, 0, 0, H_gtk_menu_popup_at_pointer, pl_tu);
+  s7_define_typed_function(sc, "gtk_pad_controller_new", lg_gtk_pad_controller_new, 3, 0, 0, H_gtk_pad_controller_new, pl_pu);
+  s7_define_typed_function(sc, "gtk_pad_controller_set_action_entries", lg_gtk_pad_controller_set_action_entries, 3, 0, 0, H_gtk_pad_controller_set_action_entries, pl_tuui);
+  s7_define_typed_function(sc, "gtk_pad_controller_set_action", lg_gtk_pad_controller_set_action, 6, 0, 0, H_gtk_pad_controller_set_action, pl_tugiis);
+  s7_define_typed_function(sc, "gtk_popover_popup", lg_gtk_popover_popup, 1, 0, 0, H_gtk_popover_popup, pl_tu);
+  s7_define_typed_function(sc, "gtk_popover_popdown", lg_gtk_popover_popdown, 1, 0, 0, H_gtk_popover_popdown, pl_tu);
+  s7_define_typed_function(sc, "gtk_shortcut_label_new", lg_gtk_shortcut_label_new, 1, 0, 0, H_gtk_shortcut_label_new, pl_ps);
+  s7_define_typed_function(sc, "gtk_shortcut_label_get_accelerator", lg_gtk_shortcut_label_get_accelerator, 1, 0, 0, H_gtk_shortcut_label_get_accelerator, pl_su);
+  s7_define_typed_function(sc, "gtk_shortcut_label_set_accelerator", lg_gtk_shortcut_label_set_accelerator, 2, 0, 0, H_gtk_shortcut_label_set_accelerator, pl_tus);
+  s7_define_typed_function(sc, "gtk_shortcut_label_get_disabled_text", lg_gtk_shortcut_label_get_disabled_text, 1, 0, 0, H_gtk_shortcut_label_get_disabled_text, pl_su);
+  s7_define_typed_function(sc, "gtk_shortcut_label_set_disabled_text", lg_gtk_shortcut_label_set_disabled_text, 2, 0, 0, H_gtk_shortcut_label_set_disabled_text, pl_tus);
+  s7_define_typed_function(sc, "gdk_window_end_draw_frame", lg_gdk_window_end_draw_frame, 2, 0, 0, H_gdk_window_end_draw_frame, pl_tu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_set_propagate_natural_width", lg_gtk_scrolled_window_set_propagate_natural_width, 2, 0, 0, H_gtk_scrolled_window_set_propagate_natural_width, pl_tub);
+  s7_define_typed_function(sc, "gtk_scrolled_window_get_propagate_natural_width", lg_gtk_scrolled_window_get_propagate_natural_width, 1, 0, 0, H_gtk_scrolled_window_get_propagate_natural_width, pl_bu);
+  s7_define_typed_function(sc, "gtk_scrolled_window_set_propagate_natural_height", lg_gtk_scrolled_window_set_propagate_natural_height, 2, 0, 0, H_gtk_scrolled_window_set_propagate_natural_height, pl_tub);
+  s7_define_typed_function(sc, "gtk_scrolled_window_get_propagate_natural_height", lg_gtk_scrolled_window_get_propagate_natural_height, 1, 0, 0, H_gtk_scrolled_window_get_propagate_natural_height, pl_bu);
+#endif
+
+#if GTK_CHECK_VERSION(3, 99, 0)
+  s7_define_typed_function(sc, "gdk_display_is_composited", lg_gdk_display_is_composited, 1, 0, 0, H_gdk_display_is_composited, pl_bu);
+  s7_define_typed_function(sc, "gdk_display_is_rgba", lg_gdk_display_is_rgba, 1, 0, 0, H_gdk_display_is_rgba, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_new_toplevel", lg_gdk_window_new_toplevel, 4, 0, 0, H_gdk_window_new_toplevel, pl_pui);
+  s7_define_typed_function(sc, "gdk_window_new_popup", lg_gdk_window_new_popup, 3, 0, 0, H_gdk_window_new_popup, pl_puiu);
+  s7_define_typed_function(sc, "gdk_window_new_temp", lg_gdk_window_new_temp, 1, 0, 0, H_gdk_window_new_temp, pl_pu);
+  s7_define_typed_function(sc, "gdk_window_new_child", lg_gdk_window_new_child, 3, 0, 0, H_gdk_window_new_child, pl_puiu);
+  s7_define_typed_function(sc, "gdk_window_new_input", lg_gdk_window_new_input, 3, 0, 0, H_gdk_window_new_input, pl_puiu);
+  s7_define_typed_function(sc, "gtk_button_set_icon_name", lg_gtk_button_set_icon_name, 2, 0, 0, H_gtk_button_set_icon_name, pl_tus);
+  s7_define_typed_function(sc, "gtk_button_get_icon_name", lg_gtk_button_get_icon_name, 1, 0, 0, H_gtk_button_get_icon_name, pl_su);
+  s7_define_typed_function(sc, "gtk_drawing_area_set_content_width", lg_gtk_drawing_area_set_content_width, 2, 0, 0, H_gtk_drawing_area_set_content_width, pl_tui);
+  s7_define_typed_function(sc, "gtk_drawing_area_get_content_width", lg_gtk_drawing_area_get_content_width, 1, 0, 0, H_gtk_drawing_area_get_content_width, pl_iu);
+  s7_define_typed_function(sc, "gtk_drawing_area_set_content_height", lg_gtk_drawing_area_set_content_height, 2, 0, 0, H_gtk_drawing_area_set_content_height, pl_tui);
+  s7_define_typed_function(sc, "gtk_drawing_area_get_content_height", lg_gtk_drawing_area_get_content_height, 1, 0, 0, H_gtk_drawing_area_get_content_height, pl_iu);
+  s7_define_typed_function(sc, "gtk_drawing_area_set_draw_func", lg_gtk_drawing_area_set_draw_func, 3, 1, 0, H_gtk_drawing_area_set_draw_func, pl_tut);
+  s7_define_typed_function(sc, "gdk_drawing_context_get_paint_context", lg_gdk_drawing_context_get_paint_context, 1, 0, 0, H_gdk_drawing_context_get_paint_context, pl_pu);
+  s7_define_typed_function(sc, "gdk_gl_context_get_damage", lg_gdk_gl_context_get_damage, 1, 0, 0, H_gdk_gl_context_get_damage, pl_pu);
+  s7_define_typed_function(sc, "gdk_rgba_is_clear", lg_gdk_rgba_is_clear, 1, 0, 0, H_gdk_rgba_is_clear, pl_bu);
+  s7_define_typed_function(sc, "gdk_rgba_is_opaque", lg_gdk_rgba_is_opaque, 1, 0, 0, H_gdk_rgba_is_opaque, pl_bu);
+  s7_define_typed_function(sc, "gdk_window_begin_draw_frame", lg_gdk_window_begin_draw_frame, 3, 0, 0, H_gdk_window_begin_draw_frame, pl_pu);
+  s7_define_typed_function(sc, "gtk_flow_box_get_child_at_pos", lg_gtk_flow_box_get_child_at_pos, 3, 0, 0, H_gtk_flow_box_get_child_at_pos, pl_pui);
+  s7_define_typed_function(sc, "gtk_about_dialog_get_system_information", lg_gtk_about_dialog_get_system_information, 1, 0, 0, H_gtk_about_dialog_get_system_information, pl_su);
+  s7_define_typed_function(sc, "gtk_about_dialog_set_system_information", lg_gtk_about_dialog_set_system_information, 2, 0, 0, H_gtk_about_dialog_set_system_information, pl_tus);
+  s7_define_typed_function(sc, "gtk_action_bar_set_revealed", lg_gtk_action_bar_set_revealed, 2, 0, 0, H_gtk_action_bar_set_revealed, pl_tub);
+  s7_define_typed_function(sc, "gtk_action_bar_get_revealed", lg_gtk_action_bar_get_revealed, 1, 0, 0, H_gtk_action_bar_get_revealed, pl_bu);
+  s7_define_typed_function(sc, "gtk_check_button_set_draw_indicator", lg_gtk_check_button_set_draw_indicator, 2, 0, 0, H_gtk_check_button_set_draw_indicator, pl_tub);
+  s7_define_typed_function(sc, "gtk_check_button_get_draw_indicator", lg_gtk_check_button_get_draw_indicator, 1, 0, 0, H_gtk_check_button_get_draw_indicator, pl_bu);
+  s7_define_typed_function(sc, "gtk_check_button_set_inconsistent", lg_gtk_check_button_set_inconsistent, 2, 0, 0, H_gtk_check_button_set_inconsistent, pl_tub);
+  s7_define_typed_function(sc, "gtk_check_button_get_inconsistent", lg_gtk_check_button_get_inconsistent, 1, 0, 0, H_gtk_check_button_get_inconsistent, pl_bu);
+  s7_define_typed_function(sc, "gtk_info_bar_set_revealed", lg_gtk_info_bar_set_revealed, 2, 0, 0, H_gtk_info_bar_set_revealed, pl_tub);
+  s7_define_typed_function(sc, "gtk_info_bar_get_revealed", lg_gtk_info_bar_get_revealed, 1, 0, 0, H_gtk_info_bar_get_revealed, pl_bu);
+  s7_define_typed_function(sc, "gtk_widget_get_first_child", lg_gtk_widget_get_first_child, 1, 0, 0, H_gtk_widget_get_first_child, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_get_last_child", lg_gtk_widget_get_last_child, 1, 0, 0, H_gtk_widget_get_last_child, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_get_next_sibling", lg_gtk_widget_get_next_sibling, 1, 0, 0, H_gtk_widget_get_next_sibling, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_get_prev_sibling", lg_gtk_widget_get_prev_sibling, 1, 0, 0, H_gtk_widget_get_prev_sibling, pl_pu);
+  s7_define_typed_function(sc, "gtk_widget_set_focus_child", lg_gtk_widget_set_focus_child, 2, 0, 0, H_gtk_widget_set_focus_child, pl_tu);
+  s7_define_typed_function(sc, "gtk_show_uri_on_window", lg_gtk_show_uri_on_window, 3, 1, 0, H_gtk_show_uri_on_window, pl_pusiu);
+  s7_define_typed_function(sc, "gtk_box_pack_start", lg_gtk_box_pack_start, 2, 0, 0, H_gtk_box_pack_start, pl_tu);
+  s7_define_typed_function(sc, "gtk_box_pack_end", lg_gtk_box_pack_end, 2, 0, 0, H_gtk_box_pack_end, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_insert_after", lg_gtk_widget_insert_after, 3, 0, 0, H_gtk_widget_insert_after, pl_tu);
+  s7_define_typed_function(sc, "gtk_widget_insert_before", lg_gtk_widget_insert_before, 3, 0, 0, H_gtk_widget_insert_before, pl_tu);
+  s7_define_typed_function(sc, "gtk_center_box_new", lg_gtk_center_box_new, 0, 0, 0, H_gtk_center_box_new, pl_p);
+  s7_define_typed_function(sc, "gtk_center_box_set_start_widget", lg_gtk_center_box_set_start_widget, 2, 0, 0, H_gtk_center_box_set_start_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_center_box_set_center_widget", lg_gtk_center_box_set_center_widget, 2, 0, 0, H_gtk_center_box_set_center_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_center_box_set_end_widget", lg_gtk_center_box_set_end_widget, 2, 0, 0, H_gtk_center_box_set_end_widget, pl_tu);
+  s7_define_typed_function(sc, "gtk_center_box_get_start_widget", lg_gtk_center_box_get_start_widget, 1, 0, 0, H_gtk_center_box_get_start_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_center_box_get_center_widget", lg_gtk_center_box_get_center_widget, 1, 0, 0, H_gtk_center_box_get_center_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_center_box_get_end_widget", lg_gtk_center_box_get_end_widget, 1, 0, 0, H_gtk_center_box_get_end_widget, pl_pu);
+  s7_define_typed_function(sc, "gtk_center_box_set_baseline_position", lg_gtk_center_box_set_baseline_position, 2, 0, 0, H_gtk_center_box_set_baseline_position, pl_tug);
+  s7_define_typed_function(sc, "gtk_center_box_get_baseline_position", lg_gtk_center_box_get_baseline_position, 1, 0, 0, H_gtk_center_box_get_baseline_position, pl_gu);
+  s7_define_typed_function(sc, "gdk_event_set_coords", lg_gdk_event_set_coords, 3, 0, 0, H_gdk_event_set_coords, pl_tur);
+  s7_define_typed_function(sc, "gdk_event_set_user_data", lg_gdk_event_set_user_data, 2, 0, 0, H_gdk_event_set_user_data, pl_tu);
+  s7_define_typed_function(sc, "gdk_event_get_user_data", lg_gdk_event_get_user_data, 1, 0, 0, H_gdk_event_get_user_data, pl_pu);
+  s7_define_typed_function(sc, "gdk_rectangle_contains_point", lg_gdk_rectangle_contains_point, 3, 0, 0, H_gdk_rectangle_contains_point, pl_bui);
+  s7_define_typed_function(sc, "gtk_get_event_target", lg_gtk_get_event_target, 1, 0, 0, H_gtk_get_event_target, pl_pu);
+#endif
+
+  s7_define_typed_function(sc, "cairo_create", lg_cairo_create, 1, 0, 0, H_cairo_create, pl_pu);
+  s7_define_typed_function(sc, "cairo_version", lg_cairo_version, 0, 0, 0, H_cairo_version, pl_i);
+  s7_define_typed_function(sc, "cairo_version_string", lg_cairo_version_string, 0, 0, 0, H_cairo_version_string, pl_s);
+  s7_define_typed_function(sc, "cairo_reference", lg_cairo_reference, 1, 0, 0, H_cairo_reference, pl_pu);
+  s7_define_typed_function(sc, "cairo_destroy", lg_cairo_destroy, 1, 0, 0, H_cairo_destroy, pl_tu);
+  s7_define_typed_function(sc, "cairo_save", lg_cairo_save, 1, 0, 0, H_cairo_save, pl_tu);
+  s7_define_typed_function(sc, "cairo_restore", lg_cairo_restore, 1, 0, 0, H_cairo_restore, pl_tu);
+  s7_define_typed_function(sc, "cairo_push_group", lg_cairo_push_group, 1, 0, 0, H_cairo_push_group, pl_tu);
+  s7_define_typed_function(sc, "cairo_push_group_with_content", lg_cairo_push_group_with_content, 2, 0, 0, H_cairo_push_group_with_content, pl_tug);
+  s7_define_typed_function(sc, "cairo_pop_group", lg_cairo_pop_group, 1, 0, 0, H_cairo_pop_group, pl_pu);
+  s7_define_typed_function(sc, "cairo_pop_group_to_source", lg_cairo_pop_group_to_source, 1, 0, 0, H_cairo_pop_group_to_source, pl_tu);
+  s7_define_typed_function(sc, "cairo_set_operator", lg_cairo_set_operator, 2, 0, 0, H_cairo_set_operator, pl_tug);
+  s7_define_typed_function(sc, "cairo_set_source", lg_cairo_set_source, 2, 0, 0, H_cairo_set_source, pl_tu);
+  s7_define_typed_function(sc, "cairo_set_source_rgb", lg_cairo_set_source_rgb, 4, 0, 0, H_cairo_set_source_rgb, pl_tur);
+  s7_define_typed_function(sc, "cairo_set_source_rgba", lg_cairo_set_source_rgba, 5, 0, 0, H_cairo_set_source_rgba, pl_tur);
+  s7_define_typed_function(sc, "cairo_set_source_surface", lg_cairo_set_source_surface, 4, 0, 0, H_cairo_set_source_surface, pl_tuur);
+  s7_define_typed_function(sc, "cairo_set_tolerance", lg_cairo_set_tolerance, 2, 0, 0, H_cairo_set_tolerance, pl_tur);
+  s7_define_typed_function(sc, "cairo_set_antialias", lg_cairo_set_antialias, 2, 0, 0, H_cairo_set_antialias, pl_tug);
+  s7_define_typed_function(sc, "cairo_set_fill_rule", lg_cairo_set_fill_rule, 2, 0, 0, H_cairo_set_fill_rule, pl_tug);
+  s7_define_typed_function(sc, "cairo_set_line_width", lg_cairo_set_line_width, 2, 0, 0, H_cairo_set_line_width, pl_tur);
+  s7_define_typed_function(sc, "cairo_set_line_cap", lg_cairo_set_line_cap, 2, 0, 0, H_cairo_set_line_cap, pl_tug);
+  s7_define_typed_function(sc, "cairo_set_line_join", lg_cairo_set_line_join, 2, 0, 0, H_cairo_set_line_join, pl_tug);
+  s7_define_typed_function(sc, "cairo_set_dash", lg_cairo_set_dash, 4, 0, 0, H_cairo_set_dash, pl_tuuir);
+  s7_define_typed_function(sc, "cairo_set_miter_limit", lg_cairo_set_miter_limit, 2, 0, 0, H_cairo_set_miter_limit, pl_tur);
+  s7_define_typed_function(sc, "cairo_translate", lg_cairo_translate, 3, 0, 0, H_cairo_translate, pl_tur);
+  s7_define_typed_function(sc, "cairo_scale", lg_cairo_scale, 3, 0, 0, H_cairo_scale, pl_tur);
+  s7_define_typed_function(sc, "cairo_rotate", lg_cairo_rotate, 2, 0, 0, H_cairo_rotate, pl_tur);
+  s7_define_typed_function(sc, "cairo_transform", lg_cairo_transform, 2, 0, 0, H_cairo_transform, pl_tu);
+  s7_define_typed_function(sc, "cairo_set_matrix", lg_cairo_set_matrix, 2, 0, 0, H_cairo_set_matrix, pl_tu);
+  s7_define_typed_function(sc, "cairo_identity_matrix", lg_cairo_identity_matrix, 1, 0, 0, H_cairo_identity_matrix, pl_tu);
+  s7_define_typed_function(sc, "cairo_user_to_device", lg_cairo_user_to_device, 1, 2, 0, H_cairo_user_to_device, pl_pu);
+  s7_define_typed_function(sc, "cairo_user_to_device_distance", lg_cairo_user_to_device_distance, 1, 2, 0, H_cairo_user_to_device_distance, pl_pu);
+  s7_define_typed_function(sc, "cairo_device_to_user", lg_cairo_device_to_user, 1, 2, 0, H_cairo_device_to_user, pl_pu);
+  s7_define_typed_function(sc, "cairo_device_to_user_distance", lg_cairo_device_to_user_distance, 1, 2, 0, H_cairo_device_to_user_distance, pl_pu);
+  s7_define_typed_function(sc, "cairo_new_path", lg_cairo_new_path, 1, 0, 0, H_cairo_new_path, pl_tu);
+  s7_define_typed_function(sc, "cairo_move_to", lg_cairo_move_to, 3, 0, 0, H_cairo_move_to, pl_tur);
+  s7_define_typed_function(sc, "cairo_new_sub_path", lg_cairo_new_sub_path, 1, 0, 0, H_cairo_new_sub_path, pl_tu);
+  s7_define_typed_function(sc, "cairo_line_to", lg_cairo_line_to, 3, 0, 0, H_cairo_line_to, pl_tur);
+  s7_define_typed_function(sc, "cairo_curve_to", lg_cairo_curve_to, 7, 0, 0, H_cairo_curve_to, pl_tur);
+  s7_define_typed_function(sc, "cairo_arc", lg_cairo_arc, 6, 0, 0, H_cairo_arc, pl_tur);
+  s7_define_typed_function(sc, "cairo_arc_negative", lg_cairo_arc_negative, 6, 0, 0, H_cairo_arc_negative, pl_tur);
+  s7_define_typed_function(sc, "cairo_rel_move_to", lg_cairo_rel_move_to, 3, 0, 0, H_cairo_rel_move_to, pl_tur);
+  s7_define_typed_function(sc, "cairo_rel_line_to", lg_cairo_rel_line_to, 3, 0, 0, H_cairo_rel_line_to, pl_tur);
+  s7_define_typed_function(sc, "cairo_rel_curve_to", lg_cairo_rel_curve_to, 7, 0, 0, H_cairo_rel_curve_to, pl_tur);
+  s7_define_typed_function(sc, "cairo_rectangle", lg_cairo_rectangle, 5, 0, 0, H_cairo_rectangle, pl_tur);
+  s7_define_typed_function(sc, "cairo_close_path", lg_cairo_close_path, 1, 0, 0, H_cairo_close_path, pl_tu);
+  s7_define_typed_function(sc, "cairo_paint", lg_cairo_paint, 1, 0, 0, H_cairo_paint, pl_tu);
+  s7_define_typed_function(sc, "cairo_paint_with_alpha", lg_cairo_paint_with_alpha, 2, 0, 0, H_cairo_paint_with_alpha, pl_tur);
+  s7_define_typed_function(sc, "cairo_mask", lg_cairo_mask, 2, 0, 0, H_cairo_mask, pl_tu);
+  s7_define_typed_function(sc, "cairo_mask_surface", lg_cairo_mask_surface, 4, 0, 0, H_cairo_mask_surface, pl_tuur);
+  s7_define_typed_function(sc, "cairo_stroke", lg_cairo_stroke, 1, 0, 0, H_cairo_stroke, pl_tu);
+  s7_define_typed_function(sc, "cairo_stroke_preserve", lg_cairo_stroke_preserve, 1, 0, 0, H_cairo_stroke_preserve, pl_tu);
+  s7_define_typed_function(sc, "cairo_fill", lg_cairo_fill, 1, 0, 0, H_cairo_fill, pl_tu);
+  s7_define_typed_function(sc, "cairo_fill_preserve", lg_cairo_fill_preserve, 1, 0, 0, H_cairo_fill_preserve, pl_tu);
+  s7_define_typed_function(sc, "cairo_copy_page", lg_cairo_copy_page, 1, 0, 0, H_cairo_copy_page, pl_tu);
+  s7_define_typed_function(sc, "cairo_show_page", lg_cairo_show_page, 1, 0, 0, H_cairo_show_page, pl_tu);
+  s7_define_typed_function(sc, "cairo_in_stroke", lg_cairo_in_stroke, 3, 0, 0, H_cairo_in_stroke, pl_bur);
+  s7_define_typed_function(sc, "cairo_in_fill", lg_cairo_in_fill, 3, 0, 0, H_cairo_in_fill, pl_bur);
+  s7_define_typed_function(sc, "cairo_reset_clip", lg_cairo_reset_clip, 1, 0, 0, H_cairo_reset_clip, pl_tu);
+  s7_define_typed_function(sc, "cairo_clip", lg_cairo_clip, 1, 0, 0, H_cairo_clip, pl_tu);
+  s7_define_typed_function(sc, "cairo_clip_preserve", lg_cairo_clip_preserve, 1, 0, 0, H_cairo_clip_preserve, pl_tu);
+  s7_define_typed_function(sc, "cairo_font_options_create", lg_cairo_font_options_create, 0, 0, 0, H_cairo_font_options_create, pl_p);
+  s7_define_typed_function(sc, "cairo_font_options_copy", lg_cairo_font_options_copy, 1, 0, 0, H_cairo_font_options_copy, pl_pu);
+  s7_define_typed_function(sc, "cairo_font_options_destroy", lg_cairo_font_options_destroy, 1, 0, 0, H_cairo_font_options_destroy, pl_tu);
+  s7_define_typed_function(sc, "cairo_font_options_status", lg_cairo_font_options_status, 1, 0, 0, H_cairo_font_options_status, pl_gu);
+  s7_define_typed_function(sc, "cairo_font_options_merge", lg_cairo_font_options_merge, 2, 0, 0, H_cairo_font_options_merge, pl_tu);
+  s7_define_typed_function(sc, "cairo_font_options_equal", lg_cairo_font_options_equal, 2, 0, 0, H_cairo_font_options_equal, pl_bu);
+  s7_define_typed_function(sc, "cairo_font_options_hash", lg_cairo_font_options_hash, 1, 0, 0, H_cairo_font_options_hash, pl_iu);
+  s7_define_typed_function(sc, "cairo_font_options_set_antialias", lg_cairo_font_options_set_antialias, 2, 0, 0, H_cairo_font_options_set_antialias, pl_tug);
+  s7_define_typed_function(sc, "cairo_font_options_get_antialias", lg_cairo_font_options_get_antialias, 1, 0, 0, H_cairo_font_options_get_antialias, pl_gu);
+  s7_define_typed_function(sc, "cairo_font_options_set_subpixel_order", lg_cairo_font_options_set_subpixel_order, 2, 0, 0, H_cairo_font_options_set_subpixel_order, pl_tug);
+  s7_define_typed_function(sc, "cairo_font_options_get_subpixel_order", lg_cairo_font_options_get_subpixel_order, 1, 0, 0, H_cairo_font_options_get_subpixel_order, pl_gu);
+  s7_define_typed_function(sc, "cairo_font_options_set_hint_style", lg_cairo_font_options_set_hint_style, 2, 0, 0, H_cairo_font_options_set_hint_style, pl_tug);
+  s7_define_typed_function(sc, "cairo_font_options_get_hint_style", lg_cairo_font_options_get_hint_style, 1, 0, 0, H_cairo_font_options_get_hint_style, pl_gu);
+  s7_define_typed_function(sc, "cairo_font_options_set_hint_metrics", lg_cairo_font_options_set_hint_metrics, 2, 0, 0, H_cairo_font_options_set_hint_metrics, pl_tug);
+  s7_define_typed_function(sc, "cairo_font_options_get_hint_metrics", lg_cairo_font_options_get_hint_metrics, 1, 0, 0, H_cairo_font_options_get_hint_metrics, pl_gu);
+  s7_define_typed_function(sc, "cairo_select_font_face", lg_cairo_select_font_face, 4, 0, 0, H_cairo_select_font_face, pl_tusg);
+  s7_define_typed_function(sc, "cairo_set_font_size", lg_cairo_set_font_size, 2, 0, 0, H_cairo_set_font_size, pl_tur);
+  s7_define_typed_function(sc, "cairo_set_font_matrix", lg_cairo_set_font_matrix, 2, 0, 0, H_cairo_set_font_matrix, pl_tu);
+  s7_define_typed_function(sc, "cairo_get_font_matrix", lg_cairo_get_font_matrix, 2, 0, 0, H_cairo_get_font_matrix, pl_tu);
+  s7_define_typed_function(sc, "cairo_set_font_options", lg_cairo_set_font_options, 2, 0, 0, H_cairo_set_font_options, pl_tu);
+  s7_define_typed_function(sc, "cairo_get_font_options", lg_cairo_get_font_options, 2, 0, 0, H_cairo_get_font_options, pl_tu);
+  s7_define_typed_function(sc, "cairo_set_scaled_font", lg_cairo_set_scaled_font, 2, 0, 0, H_cairo_set_scaled_font, pl_tu);
+  s7_define_typed_function(sc, "cairo_show_text", lg_cairo_show_text, 2, 0, 0, H_cairo_show_text, pl_tus);
+  s7_define_typed_function(sc, "cairo_show_glyphs", lg_cairo_show_glyphs, 3, 0, 0, H_cairo_show_glyphs, pl_tuui);
+  s7_define_typed_function(sc, "cairo_get_font_face", lg_cairo_get_font_face, 1, 0, 0, H_cairo_get_font_face, pl_pu);
+  s7_define_typed_function(sc, "cairo_font_extents", lg_cairo_font_extents, 2, 0, 0, H_cairo_font_extents, pl_tu);
+  s7_define_typed_function(sc, "cairo_set_font_face", lg_cairo_set_font_face, 2, 0, 0, H_cairo_set_font_face, pl_tu);
+  s7_define_typed_function(sc, "cairo_text_extents", lg_cairo_text_extents, 3, 0, 0, H_cairo_text_extents, pl_tusu);
+  s7_define_typed_function(sc, "cairo_glyph_extents", lg_cairo_glyph_extents, 4, 0, 0, H_cairo_glyph_extents, pl_tuuiu);
+  s7_define_typed_function(sc, "cairo_text_path", lg_cairo_text_path, 2, 0, 0, H_cairo_text_path, pl_tus);
+  s7_define_typed_function(sc, "cairo_glyph_path", lg_cairo_glyph_path, 3, 0, 0, H_cairo_glyph_path, pl_tuui);
+  s7_define_typed_function(sc, "cairo_font_face_reference", lg_cairo_font_face_reference, 1, 0, 0, H_cairo_font_face_reference, pl_pu);
+  s7_define_typed_function(sc, "cairo_font_face_destroy", lg_cairo_font_face_destroy, 1, 0, 0, H_cairo_font_face_destroy, pl_tu);
+  s7_define_typed_function(sc, "cairo_font_face_status", lg_cairo_font_face_status, 1, 0, 0, H_cairo_font_face_status, pl_gu);
+  s7_define_typed_function(sc, "cairo_font_face_get_user_data", lg_cairo_font_face_get_user_data, 2, 0, 0, H_cairo_font_face_get_user_data, pl_tu);
+  s7_define_typed_function(sc, "cairo_font_face_set_user_data", lg_cairo_font_face_set_user_data, 4, 0, 0, H_cairo_font_face_set_user_data, pl_guut);
+  s7_define_typed_function(sc, "cairo_scaled_font_create", lg_cairo_scaled_font_create, 4, 0, 0, H_cairo_scaled_font_create, pl_pu);
+  s7_define_typed_function(sc, "cairo_scaled_font_reference", lg_cairo_scaled_font_reference, 1, 0, 0, H_cairo_scaled_font_reference, pl_pu);
+  s7_define_typed_function(sc, "cairo_scaled_font_destroy", lg_cairo_scaled_font_destroy, 1, 0, 0, H_cairo_scaled_font_destroy, pl_tu);
+  s7_define_typed_function(sc, "cairo_scaled_font_status", lg_cairo_scaled_font_status, 1, 0, 0, H_cairo_scaled_font_status, pl_gu);
+  s7_define_typed_function(sc, "cairo_scaled_font_extents", lg_cairo_scaled_font_extents, 2, 0, 0, H_cairo_scaled_font_extents, pl_tu);
+  s7_define_typed_function(sc, "cairo_scaled_font_text_extents", lg_cairo_scaled_font_text_extents, 3, 0, 0, H_cairo_scaled_font_text_extents, pl_tusu);
+  s7_define_typed_function(sc, "cairo_scaled_font_glyph_extents", lg_cairo_scaled_font_glyph_extents, 4, 0, 0, H_cairo_scaled_font_glyph_extents, pl_tuuiu);
+  s7_define_typed_function(sc, "cairo_scaled_font_get_font_face", lg_cairo_scaled_font_get_font_face, 1, 0, 0, H_cairo_scaled_font_get_font_face, pl_pu);
+  s7_define_typed_function(sc, "cairo_scaled_font_get_font_matrix", lg_cairo_scaled_font_get_font_matrix, 2, 0, 0, H_cairo_scaled_font_get_font_matrix, pl_tu);
+  s7_define_typed_function(sc, "cairo_scaled_font_get_ctm", lg_cairo_scaled_font_get_ctm, 2, 0, 0, H_cairo_scaled_font_get_ctm, pl_tu);
+  s7_define_typed_function(sc, "cairo_scaled_font_get_font_options", lg_cairo_scaled_font_get_font_options, 2, 0, 0, H_cairo_scaled_font_get_font_options, pl_tu);
+  s7_define_typed_function(sc, "cairo_get_operator", lg_cairo_get_operator, 1, 0, 0, H_cairo_get_operator, pl_gu);
+  s7_define_typed_function(sc, "cairo_get_source", lg_cairo_get_source, 1, 0, 0, H_cairo_get_source, pl_pu);
+  s7_define_typed_function(sc, "cairo_get_tolerance", lg_cairo_get_tolerance, 1, 0, 0, H_cairo_get_tolerance, pl_du);
+  s7_define_typed_function(sc, "cairo_get_antialias", lg_cairo_get_antialias, 1, 0, 0, H_cairo_get_antialias, pl_gu);
+  s7_define_typed_function(sc, "cairo_get_current_point", lg_cairo_get_current_point, 1, 2, 0, H_cairo_get_current_point, pl_pu);
+  s7_define_typed_function(sc, "cairo_get_fill_rule", lg_cairo_get_fill_rule, 1, 0, 0, H_cairo_get_fill_rule, pl_gu);
+  s7_define_typed_function(sc, "cairo_get_line_width", lg_cairo_get_line_width, 1, 0, 0, H_cairo_get_line_width, pl_du);
+  s7_define_typed_function(sc, "cairo_get_line_cap", lg_cairo_get_line_cap, 1, 0, 0, H_cairo_get_line_cap, pl_gu);
+  s7_define_typed_function(sc, "cairo_get_line_join", lg_cairo_get_line_join, 1, 0, 0, H_cairo_get_line_join, pl_gu);
+  s7_define_typed_function(sc, "cairo_get_miter_limit", lg_cairo_get_miter_limit, 1, 0, 0, H_cairo_get_miter_limit, pl_du);
+  s7_define_typed_function(sc, "cairo_get_matrix", lg_cairo_get_matrix, 2, 0, 0, H_cairo_get_matrix, pl_tu);
+  s7_define_typed_function(sc, "cairo_get_target", lg_cairo_get_target, 1, 0, 0, H_cairo_get_target, pl_pu);
+  s7_define_typed_function(sc, "cairo_get_group_target", lg_cairo_get_group_target, 1, 0, 0, H_cairo_get_group_target, pl_pu);
+  s7_define_typed_function(sc, "cairo_copy_path", lg_cairo_copy_path, 1, 0, 0, H_cairo_copy_path, pl_pu);
+  s7_define_typed_function(sc, "cairo_copy_path_flat", lg_cairo_copy_path_flat, 1, 0, 0, H_cairo_copy_path_flat, pl_pu);
+  s7_define_typed_function(sc, "cairo_append_path", lg_cairo_append_path, 2, 0, 0, H_cairo_append_path, pl_tu);
+  s7_define_typed_function(sc, "cairo_path_destroy", lg_cairo_path_destroy, 1, 0, 0, H_cairo_path_destroy, pl_tu);
+  s7_define_typed_function(sc, "cairo_status", lg_cairo_status, 1, 0, 0, H_cairo_status, pl_gu);
+  s7_define_typed_function(sc, "cairo_status_to_string", lg_cairo_status_to_string, 1, 0, 0, H_cairo_status_to_string, pl_sg);
+  s7_define_typed_function(sc, "cairo_surface_create_similar", lg_cairo_surface_create_similar, 4, 0, 0, H_cairo_surface_create_similar, pl_pugi);
+  s7_define_typed_function(sc, "cairo_surface_reference", lg_cairo_surface_reference, 1, 0, 0, H_cairo_surface_reference, pl_pu);
+  s7_define_typed_function(sc, "cairo_surface_finish", lg_cairo_surface_finish, 1, 0, 0, H_cairo_surface_finish, pl_tu);
+  s7_define_typed_function(sc, "cairo_surface_destroy", lg_cairo_surface_destroy, 1, 0, 0, H_cairo_surface_destroy, pl_tu);
+  s7_define_typed_function(sc, "cairo_surface_status", lg_cairo_surface_status, 1, 0, 0, H_cairo_surface_status, pl_gu);
+  s7_define_typed_function(sc, "cairo_surface_get_content", lg_cairo_surface_get_content, 1, 0, 0, H_cairo_surface_get_content, pl_gu);
+  s7_define_typed_function(sc, "cairo_surface_get_user_data", lg_cairo_surface_get_user_data, 2, 0, 0, H_cairo_surface_get_user_data, pl_tu);
+  s7_define_typed_function(sc, "cairo_surface_set_user_data", lg_cairo_surface_set_user_data, 4, 0, 0, H_cairo_surface_set_user_data, pl_guut);
+  s7_define_typed_function(sc, "cairo_surface_get_font_options", lg_cairo_surface_get_font_options, 2, 0, 0, H_cairo_surface_get_font_options, pl_tu);
+  s7_define_typed_function(sc, "cairo_surface_flush", lg_cairo_surface_flush, 1, 0, 0, H_cairo_surface_flush, pl_tu);
+  s7_define_typed_function(sc, "cairo_surface_mark_dirty", lg_cairo_surface_mark_dirty, 1, 0, 0, H_cairo_surface_mark_dirty, pl_tu);
+  s7_define_typed_function(sc, "cairo_surface_mark_dirty_rectangle", lg_cairo_surface_mark_dirty_rectangle, 5, 0, 0, H_cairo_surface_mark_dirty_rectangle, pl_tui);
+  s7_define_typed_function(sc, "cairo_surface_set_device_offset", lg_cairo_surface_set_device_offset, 3, 0, 0, H_cairo_surface_set_device_offset, pl_tur);
+  s7_define_typed_function(sc, "cairo_surface_get_device_offset", lg_cairo_surface_get_device_offset, 1, 2, 0, H_cairo_surface_get_device_offset, pl_pu);
+  s7_define_typed_function(sc, "cairo_surface_set_fallback_resolution", lg_cairo_surface_set_fallback_resolution, 3, 0, 0, H_cairo_surface_set_fallback_resolution, pl_tur);
+  s7_define_typed_function(sc, "cairo_image_surface_create", lg_cairo_image_surface_create, 3, 0, 0, H_cairo_image_surface_create, pl_pgi);
+  s7_define_typed_function(sc, "cairo_image_surface_create_for_data", lg_cairo_image_surface_create_for_data, 5, 0, 0, H_cairo_image_surface_create_for_data, pl_psgi);
+  s7_define_typed_function(sc, "cairo_image_surface_get_data", lg_cairo_image_surface_get_data, 1, 0, 0, H_cairo_image_surface_get_data, pl_su);
+  s7_define_typed_function(sc, "cairo_image_surface_get_format", lg_cairo_image_surface_get_format, 1, 0, 0, H_cairo_image_surface_get_format, pl_gu);
+  s7_define_typed_function(sc, "cairo_image_surface_get_width", lg_cairo_image_surface_get_width, 1, 0, 0, H_cairo_image_surface_get_width, pl_iu);
+  s7_define_typed_function(sc, "cairo_image_surface_get_height", lg_cairo_image_surface_get_height, 1, 0, 0, H_cairo_image_surface_get_height, pl_iu);
+  s7_define_typed_function(sc, "cairo_image_surface_get_stride", lg_cairo_image_surface_get_stride, 1, 0, 0, H_cairo_image_surface_get_stride, pl_iu);
+  s7_define_typed_function(sc, "cairo_pattern_create_rgb", lg_cairo_pattern_create_rgb, 3, 0, 0, H_cairo_pattern_create_rgb, pl_pr);
+  s7_define_typed_function(sc, "cairo_pattern_create_rgba", lg_cairo_pattern_create_rgba, 4, 0, 0, H_cairo_pattern_create_rgba, pl_pr);
+  s7_define_typed_function(sc, "cairo_pattern_create_for_surface", lg_cairo_pattern_create_for_surface, 1, 0, 0, H_cairo_pattern_create_for_surface, pl_pu);
+  s7_define_typed_function(sc, "cairo_pattern_create_linear", lg_cairo_pattern_create_linear, 4, 0, 0, H_cairo_pattern_create_linear, pl_pr);
+  s7_define_typed_function(sc, "cairo_pattern_create_radial", lg_cairo_pattern_create_radial, 6, 0, 0, H_cairo_pattern_create_radial, pl_pr);
+  s7_define_typed_function(sc, "cairo_pattern_reference", lg_cairo_pattern_reference, 1, 0, 0, H_cairo_pattern_reference, pl_pu);
+  s7_define_typed_function(sc, "cairo_pattern_destroy", lg_cairo_pattern_destroy, 1, 0, 0, H_cairo_pattern_destroy, pl_tu);
+  s7_define_typed_function(sc, "cairo_pattern_status", lg_cairo_pattern_status, 1, 0, 0, H_cairo_pattern_status, pl_gu);
+  s7_define_typed_function(sc, "cairo_pattern_add_color_stop_rgb", lg_cairo_pattern_add_color_stop_rgb, 5, 0, 0, H_cairo_pattern_add_color_stop_rgb, pl_tur);
+  s7_define_typed_function(sc, "cairo_pattern_add_color_stop_rgba", lg_cairo_pattern_add_color_stop_rgba, 6, 0, 0, H_cairo_pattern_add_color_stop_rgba, pl_tur);
+  s7_define_typed_function(sc, "cairo_pattern_set_matrix", lg_cairo_pattern_set_matrix, 2, 0, 0, H_cairo_pattern_set_matrix, pl_tu);
+  s7_define_typed_function(sc, "cairo_pattern_get_matrix", lg_cairo_pattern_get_matrix, 2, 0, 0, H_cairo_pattern_get_matrix, pl_tu);
+  s7_define_typed_function(sc, "cairo_pattern_set_extend", lg_cairo_pattern_set_extend, 2, 0, 0, H_cairo_pattern_set_extend, pl_tug);
+  s7_define_typed_function(sc, "cairo_pattern_get_extend", lg_cairo_pattern_get_extend, 1, 0, 0, H_cairo_pattern_get_extend, pl_gu);
+  s7_define_typed_function(sc, "cairo_pattern_set_filter", lg_cairo_pattern_set_filter, 2, 0, 0, H_cairo_pattern_set_filter, pl_tug);
+  s7_define_typed_function(sc, "cairo_pattern_get_filter", lg_cairo_pattern_get_filter, 1, 0, 0, H_cairo_pattern_get_filter, pl_gu);
+  s7_define_typed_function(sc, "cairo_matrix_init", lg_cairo_matrix_init, 7, 0, 0, H_cairo_matrix_init, pl_tur);
+  s7_define_typed_function(sc, "cairo_matrix_init_identity", lg_cairo_matrix_init_identity, 1, 0, 0, H_cairo_matrix_init_identity, pl_tu);
+  s7_define_typed_function(sc, "cairo_matrix_init_translate", lg_cairo_matrix_init_translate, 3, 0, 0, H_cairo_matrix_init_translate, pl_tur);
+  s7_define_typed_function(sc, "cairo_matrix_init_scale", lg_cairo_matrix_init_scale, 3, 0, 0, H_cairo_matrix_init_scale, pl_tur);
+  s7_define_typed_function(sc, "cairo_matrix_init_rotate", lg_cairo_matrix_init_rotate, 2, 0, 0, H_cairo_matrix_init_rotate, pl_tur);
+  s7_define_typed_function(sc, "cairo_matrix_translate", lg_cairo_matrix_translate, 3, 0, 0, H_cairo_matrix_translate, pl_tur);
+  s7_define_typed_function(sc, "cairo_matrix_scale", lg_cairo_matrix_scale, 3, 0, 0, H_cairo_matrix_scale, pl_tur);
+  s7_define_typed_function(sc, "cairo_matrix_rotate", lg_cairo_matrix_rotate, 2, 0, 0, H_cairo_matrix_rotate, pl_tur);
+  s7_define_typed_function(sc, "cairo_matrix_invert", lg_cairo_matrix_invert, 1, 0, 0, H_cairo_matrix_invert, pl_gu);
+  s7_define_typed_function(sc, "cairo_matrix_multiply", lg_cairo_matrix_multiply, 3, 0, 0, H_cairo_matrix_multiply, pl_tu);
+  s7_define_typed_function(sc, "cairo_matrix_transform_distance", lg_cairo_matrix_transform_distance, 1, 2, 0, H_cairo_matrix_transform_distance, pl_pu);
+  s7_define_typed_function(sc, "cairo_matrix_transform_point", lg_cairo_matrix_transform_point, 1, 2, 0, H_cairo_matrix_transform_point, pl_pu);
+  s7_define_typed_function(sc, "cairo_get_reference_count", lg_cairo_get_reference_count, 1, 0, 0, H_cairo_get_reference_count, pl_iu);
+  s7_define_typed_function(sc, "cairo_get_user_data", lg_cairo_get_user_data, 2, 0, 0, H_cairo_get_user_data, pl_pu);
+  s7_define_typed_function(sc, "cairo_set_user_data", lg_cairo_set_user_data, 4, 0, 0, H_cairo_set_user_data, pl_guuut);
+  s7_define_typed_function(sc, "cairo_clip_extents", lg_cairo_clip_extents, 1, 4, 0, H_cairo_clip_extents, pl_pu);
+  s7_define_typed_function(sc, "cairo_copy_clip_rectangle_list", lg_cairo_copy_clip_rectangle_list, 1, 0, 0, H_cairo_copy_clip_rectangle_list, pl_pu);
+  s7_define_typed_function(sc, "cairo_rectangle_list_destroy", lg_cairo_rectangle_list_destroy, 1, 0, 0, H_cairo_rectangle_list_destroy, pl_tu);
+  s7_define_typed_function(sc, "cairo_font_face_get_reference_count", lg_cairo_font_face_get_reference_count, 1, 0, 0, H_cairo_font_face_get_reference_count, pl_iu);
+  s7_define_typed_function(sc, "cairo_scaled_font_get_reference_count", lg_cairo_scaled_font_get_reference_count, 1, 0, 0, H_cairo_scaled_font_get_reference_count, pl_iu);
+  s7_define_typed_function(sc, "cairo_scaled_font_get_user_data", lg_cairo_scaled_font_get_user_data, 2, 0, 0, H_cairo_scaled_font_get_user_data, pl_pu);
+  s7_define_typed_function(sc, "cairo_scaled_font_set_user_data", lg_cairo_scaled_font_set_user_data, 4, 0, 0, H_cairo_scaled_font_set_user_data, pl_guuut);
+  s7_define_typed_function(sc, "cairo_get_dash_count", lg_cairo_get_dash_count, 1, 0, 0, H_cairo_get_dash_count, pl_iu);
+  s7_define_typed_function(sc, "cairo_get_dash", lg_cairo_get_dash, 1, 2, 0, H_cairo_get_dash, pl_pu);
+  s7_define_typed_function(sc, "cairo_surface_get_reference_count", lg_cairo_surface_get_reference_count, 1, 0, 0, H_cairo_surface_get_reference_count, pl_iu);
+  s7_define_typed_function(sc, "cairo_pattern_get_reference_count", lg_cairo_pattern_get_reference_count, 1, 0, 0, H_cairo_pattern_get_reference_count, pl_iu);
+  s7_define_typed_function(sc, "cairo_pattern_get_user_data", lg_cairo_pattern_get_user_data, 2, 0, 0, H_cairo_pattern_get_user_data, pl_pu);
+  s7_define_typed_function(sc, "cairo_pattern_set_user_data", lg_cairo_pattern_set_user_data, 4, 0, 0, H_cairo_pattern_set_user_data, pl_guuut);
+  s7_define_typed_function(sc, "cairo_pattern_get_rgba", lg_cairo_pattern_get_rgba, 1, 4, 0, H_cairo_pattern_get_rgba, pl_pu);
+  s7_define_typed_function(sc, "cairo_pattern_get_surface", lg_cairo_pattern_get_surface, 1, 1, 0, H_cairo_pattern_get_surface, pl_pu);
+  s7_define_typed_function(sc, "cairo_pattern_get_color_stop_rgba", lg_cairo_pattern_get_color_stop_rgba, 2, 5, 0, H_cairo_pattern_get_color_stop_rgba, pl_puiu);
+  s7_define_typed_function(sc, "cairo_pattern_get_color_stop_count", lg_cairo_pattern_get_color_stop_count, 1, 1, 0, H_cairo_pattern_get_color_stop_count, pl_pu);
+  s7_define_typed_function(sc, "cairo_pattern_get_linear_points", lg_cairo_pattern_get_linear_points, 1, 4, 0, H_cairo_pattern_get_linear_points, pl_pu);
+  s7_define_typed_function(sc, "cairo_pattern_get_radial_circles", lg_cairo_pattern_get_radial_circles, 1, 6, 0, H_cairo_pattern_get_radial_circles, pl_pu);
+  s7_define_typed_function(sc, "cairo_get_scaled_font", lg_cairo_get_scaled_font, 1, 0, 0, H_cairo_get_scaled_font, pl_pu);
+  s7_define_typed_function(sc, "cairo_path_extents", lg_cairo_path_extents, 1, 4, 0, H_cairo_path_extents, pl_pu);
+  s7_define_typed_function(sc, "cairo_has_current_point", lg_cairo_has_current_point, 1, 0, 0, H_cairo_has_current_point, pl_bu);
+  s7_define_typed_function(sc, "cairo_surface_copy_page", lg_cairo_surface_copy_page, 1, 0, 0, H_cairo_surface_copy_page, pl_tu);
+  s7_define_typed_function(sc, "cairo_surface_show_page", lg_cairo_surface_show_page, 1, 0, 0, H_cairo_surface_show_page, pl_tu);
+  s7_define_typed_function(sc, "cairo_format_stride_for_width", lg_cairo_format_stride_for_width, 2, 0, 0, H_cairo_format_stride_for_width, pl_igi);
+  s7_define_typed_function(sc, "cairo_image_surface_create_from_png", lg_cairo_image_surface_create_from_png, 1, 0, 0, H_cairo_image_surface_create_from_png, pl_ps);
+  s7_define_typed_function(sc, "cairo_surface_write_to_png", lg_cairo_surface_write_to_png, 2, 0, 0, H_cairo_surface_write_to_png, pl_gus);
+#if HAVE_CAIRO_1_8
+  s7_define_typed_function(sc, "cairo_glyph_allocate", lg_cairo_glyph_allocate, 1, 0, 0, H_cairo_glyph_allocate, pl_pi);
+  s7_define_typed_function(sc, "cairo_glyph_free", lg_cairo_glyph_free, 1, 0, 0, H_cairo_glyph_free, pl_tu);
+  s7_define_typed_function(sc, "cairo_text_cluster_allocate", lg_cairo_text_cluster_allocate, 1, 0, 0, H_cairo_text_cluster_allocate, pl_pi);
+  s7_define_typed_function(sc, "cairo_text_cluster_free", lg_cairo_text_cluster_free, 1, 0, 0, H_cairo_text_cluster_free, pl_tu);
+  s7_define_typed_function(sc, "cairo_show_text_glyphs", lg_cairo_show_text_glyphs, 0, 0, 1, H_cairo_show_text_glyphs, pl_tusiuiui);
+  s7_define_typed_function(sc, "cairo_scaled_font_text_to_glyphs", lg_cairo_scaled_font_text_to_glyphs, 0, 0, 1, H_cairo_scaled_font_text_to_glyphs, pl_gurrsiu);
+  s7_define_typed_function(sc, "cairo_scaled_font_get_scale_matrix", lg_cairo_scaled_font_get_scale_matrix, 2, 0, 0, H_cairo_scaled_font_get_scale_matrix, pl_tu);
+  s7_define_typed_function(sc, "cairo_toy_font_face_create", lg_cairo_toy_font_face_create, 3, 0, 0, H_cairo_toy_font_face_create, pl_psg);
+  s7_define_typed_function(sc, "cairo_toy_font_face_get_family", lg_cairo_toy_font_face_get_family, 1, 0, 0, H_cairo_toy_font_face_get_family, pl_su);
+  s7_define_typed_function(sc, "cairo_toy_font_face_get_slant", lg_cairo_toy_font_face_get_slant, 1, 0, 0, H_cairo_toy_font_face_get_slant, pl_gu);
+  s7_define_typed_function(sc, "cairo_toy_font_face_get_weight", lg_cairo_toy_font_face_get_weight, 1, 0, 0, H_cairo_toy_font_face_get_weight, pl_gu);
+  s7_define_typed_function(sc, "cairo_user_font_face_create", lg_cairo_user_font_face_create, 0, 0, 0, H_cairo_user_font_face_create, pl_p);
+  s7_define_typed_function(sc, "cairo_surface_get_fallback_resolution", lg_cairo_surface_get_fallback_resolution, 1, 2, 0, H_cairo_surface_get_fallback_resolution, pl_pu);
+  s7_define_typed_function(sc, "cairo_surface_has_show_text_glyphs", lg_cairo_surface_has_show_text_glyphs, 1, 0, 0, H_cairo_surface_has_show_text_glyphs, pl_iu);
+#endif
+
+#if HAVE_CAIRO_1_9_12 && GTK_CHECK_VERSION(3, 0, 0)
+  s7_define_typed_function(sc, "cairo_in_clip", lg_cairo_in_clip, 3, 0, 0, H_cairo_in_clip, pl_iur);
+  s7_define_typed_function(sc, "cairo_device_reference", lg_cairo_device_reference, 1, 0, 0, H_cairo_device_reference, pl_pu);
+  s7_define_typed_function(sc, "cairo_device_status", lg_cairo_device_status, 1, 0, 0, H_cairo_device_status, pl_gu);
+  s7_define_typed_function(sc, "cairo_device_acquire", lg_cairo_device_acquire, 1, 0, 0, H_cairo_device_acquire, pl_gu);
+  s7_define_typed_function(sc, "cairo_device_release", lg_cairo_device_release, 1, 0, 0, H_cairo_device_release, pl_tu);
+  s7_define_typed_function(sc, "cairo_device_flush", lg_cairo_device_flush, 1, 0, 0, H_cairo_device_flush, pl_tu);
+  s7_define_typed_function(sc, "cairo_device_finish", lg_cairo_device_finish, 1, 0, 0, H_cairo_device_finish, pl_tu);
+  s7_define_typed_function(sc, "cairo_device_destroy", lg_cairo_device_destroy, 1, 0, 0, H_cairo_device_destroy, pl_tu);
+  s7_define_typed_function(sc, "cairo_device_get_reference_count", lg_cairo_device_get_reference_count, 1, 0, 0, H_cairo_device_get_reference_count, pl_iu);
+  s7_define_typed_function(sc, "cairo_device_get_user_data", lg_cairo_device_get_user_data, 2, 0, 0, H_cairo_device_get_user_data, pl_pu);
+  s7_define_typed_function(sc, "cairo_device_set_user_data", lg_cairo_device_set_user_data, 4, 0, 0, H_cairo_device_set_user_data, pl_guuut);
+  s7_define_typed_function(sc, "cairo_surface_create_for_rectangle", lg_cairo_surface_create_for_rectangle, 5, 0, 0, H_cairo_surface_create_for_rectangle, pl_pur);
+  s7_define_typed_function(sc, "cairo_surface_get_device", lg_cairo_surface_get_device, 1, 0, 0, H_cairo_surface_get_device, pl_pu);
+  s7_define_typed_function(sc, "cairo_surface_set_mime_data", lg_cairo_surface_set_mime_data, 6, 0, 0, H_cairo_surface_set_mime_data, pl_gussitu);
+  s7_define_typed_function(sc, "cairo_recording_surface_create", lg_cairo_recording_surface_create, 2, 0, 0, H_cairo_recording_surface_create, pl_pgu);
+  s7_define_typed_function(sc, "cairo_recording_surface_ink_extents", lg_cairo_recording_surface_ink_extents, 5, 0, 0, H_cairo_recording_surface_ink_extents, pl_tu);
+  s7_define_typed_function(sc, "cairo_region_create", lg_cairo_region_create, 0, 0, 0, H_cairo_region_create, pl_p);
+  s7_define_typed_function(sc, "cairo_region_create_rectangle", lg_cairo_region_create_rectangle, 1, 0, 0, H_cairo_region_create_rectangle, pl_pu);
+  s7_define_typed_function(sc, "cairo_region_create_rectangles", lg_cairo_region_create_rectangles, 2, 0, 0, H_cairo_region_create_rectangles, pl_pui);
+  s7_define_typed_function(sc, "cairo_region_copy", lg_cairo_region_copy, 1, 0, 0, H_cairo_region_copy, pl_pu);
+  s7_define_typed_function(sc, "cairo_region_reference", lg_cairo_region_reference, 1, 0, 0, H_cairo_region_reference, pl_pu);
+  s7_define_typed_function(sc, "cairo_region_destroy", lg_cairo_region_destroy, 1, 0, 0, H_cairo_region_destroy, pl_tu);
+  s7_define_typed_function(sc, "cairo_region_equal", lg_cairo_region_equal, 2, 0, 0, H_cairo_region_equal, pl_iu);
+  s7_define_typed_function(sc, "cairo_region_status", lg_cairo_region_status, 1, 0, 0, H_cairo_region_status, pl_gu);
+  s7_define_typed_function(sc, "cairo_region_get_extents", lg_cairo_region_get_extents, 2, 0, 0, H_cairo_region_get_extents, pl_tu);
+  s7_define_typed_function(sc, "cairo_region_num_rectangles", lg_cairo_region_num_rectangles, 1, 0, 0, H_cairo_region_num_rectangles, pl_iu);
+  s7_define_typed_function(sc, "cairo_region_get_rectangle", lg_cairo_region_get_rectangle, 3, 0, 0, H_cairo_region_get_rectangle, pl_tuiu);
+  s7_define_typed_function(sc, "cairo_region_is_empty", lg_cairo_region_is_empty, 1, 0, 0, H_cairo_region_is_empty, pl_iu);
+  s7_define_typed_function(sc, "cairo_region_contains_rectangle", lg_cairo_region_contains_rectangle, 2, 0, 0, H_cairo_region_contains_rectangle, pl_tu);
+  s7_define_typed_function(sc, "cairo_region_contains_point", lg_cairo_region_contains_point, 3, 0, 0, H_cairo_region_contains_point, pl_iui);
+  s7_define_typed_function(sc, "cairo_region_translate", lg_cairo_region_translate, 3, 0, 0, H_cairo_region_translate, pl_tui);
+  s7_define_typed_function(sc, "cairo_region_subtract", lg_cairo_region_subtract, 2, 0, 0, H_cairo_region_subtract, pl_gu);
+  s7_define_typed_function(sc, "cairo_region_subtract_rectangle", lg_cairo_region_subtract_rectangle, 2, 0, 0, H_cairo_region_subtract_rectangle, pl_gu);
+  s7_define_typed_function(sc, "cairo_region_intersect", lg_cairo_region_intersect, 2, 0, 0, H_cairo_region_intersect, pl_gu);
+  s7_define_typed_function(sc, "cairo_region_intersect_rectangle", lg_cairo_region_intersect_rectangle, 2, 0, 0, H_cairo_region_intersect_rectangle, pl_gu);
+  s7_define_typed_function(sc, "cairo_region_union", lg_cairo_region_union, 2, 0, 0, H_cairo_region_union, pl_gu);
+  s7_define_typed_function(sc, "cairo_region_union_rectangle", lg_cairo_region_union_rectangle, 2, 0, 0, H_cairo_region_union_rectangle, pl_gu);
+  s7_define_typed_function(sc, "cairo_region_xor", lg_cairo_region_xor, 2, 0, 0, H_cairo_region_xor, pl_gu);
+  s7_define_typed_function(sc, "cairo_region_xor_rectangle", lg_cairo_region_xor_rectangle, 2, 0, 0, H_cairo_region_xor_rectangle, pl_gu);
+#endif
+
+  s7_define_typed_function(sc, "GPOINTER", lg_GPOINTER, 1, 0, 0, "(GPOINTER obj) casts obj to GPOINTER", NULL);
+  s7_define_typed_function(sc, "GDK_DRAG_CONTEXT", lg_GDK_DRAG_CONTEXT, 1, 0, 0, "(GDK_DRAG_CONTEXT obj) casts obj to GDK_DRAG_CONTEXT", pl_bpt);
+  s7_define_typed_function(sc, "GDK_DEVICE", lg_GDK_DEVICE, 1, 0, 0, "(GDK_DEVICE obj) casts obj to GDK_DEVICE", pl_bpt);
+  s7_define_typed_function(sc, "GDK_KEYMAP", lg_GDK_KEYMAP, 1, 0, 0, "(GDK_KEYMAP obj) casts obj to GDK_KEYMAP", pl_bpt);
+  s7_define_typed_function(sc, "GDK_WINDOW", lg_GDK_WINDOW, 1, 0, 0, "(GDK_WINDOW obj) casts obj to GDK_WINDOW", pl_bpt);
+  s7_define_typed_function(sc, "GDK_PIXBUF", lg_GDK_PIXBUF, 1, 0, 0, "(GDK_PIXBUF obj) casts obj to GDK_PIXBUF", pl_bpt);
+  s7_define_typed_function(sc, "GDK_PIXBUF_ANIMATION", lg_GDK_PIXBUF_ANIMATION, 1, 0, 0, "(GDK_PIXBUF_ANIMATION obj) casts obj to GDK_PIXBUF_ANIMATION", pl_bpt);
+  s7_define_typed_function(sc, "GDK_PIXBUF_ANIMATION_ITER", lg_GDK_PIXBUF_ANIMATION_ITER, 1, 0, 0, "(GDK_PIXBUF_ANIMATION_ITER obj) casts obj to GDK_PIXBUF_ANIMATION_ITER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ACCEL_GROUP", lg_GTK_ACCEL_GROUP, 1, 0, 0, "(GTK_ACCEL_GROUP obj) casts obj to GTK_ACCEL_GROUP", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ACCEL_LABEL", lg_GTK_ACCEL_LABEL, 1, 0, 0, "(GTK_ACCEL_LABEL obj) casts obj to GTK_ACCEL_LABEL", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ACCESSIBLE", lg_GTK_ACCESSIBLE, 1, 0, 0, "(GTK_ACCESSIBLE obj) casts obj to GTK_ACCESSIBLE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ADJUSTMENT", lg_GTK_ADJUSTMENT, 1, 0, 0, "(GTK_ADJUSTMENT obj) casts obj to GTK_ADJUSTMENT", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ASPECT_FRAME", lg_GTK_ASPECT_FRAME, 1, 0, 0, "(GTK_ASPECT_FRAME obj) casts obj to GTK_ASPECT_FRAME", pl_bpt);
+  s7_define_typed_function(sc, "GTK_BUTTON_BOX", lg_GTK_BUTTON_BOX, 1, 0, 0, "(GTK_BUTTON_BOX obj) casts obj to GTK_BUTTON_BOX", pl_bpt);
+  s7_define_typed_function(sc, "GTK_BIN", lg_GTK_BIN, 1, 0, 0, "(GTK_BIN obj) casts obj to GTK_BIN", pl_bpt);
+  s7_define_typed_function(sc, "GTK_BOX", lg_GTK_BOX, 1, 0, 0, "(GTK_BOX obj) casts obj to GTK_BOX", pl_bpt);
+  s7_define_typed_function(sc, "GTK_BUTTON", lg_GTK_BUTTON, 1, 0, 0, "(GTK_BUTTON obj) casts obj to GTK_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CALENDAR", lg_GTK_CALENDAR, 1, 0, 0, "(GTK_CALENDAR obj) casts obj to GTK_CALENDAR", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CELL_EDITABLE", lg_GTK_CELL_EDITABLE, 1, 0, 0, "(GTK_CELL_EDITABLE obj) casts obj to GTK_CELL_EDITABLE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CELL_RENDERER", lg_GTK_CELL_RENDERER, 1, 0, 0, "(GTK_CELL_RENDERER obj) casts obj to GTK_CELL_RENDERER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CELL_RENDERER_PIXBUF", lg_GTK_CELL_RENDERER_PIXBUF, 1, 0, 0, "(GTK_CELL_RENDERER_PIXBUF obj) casts obj to GTK_CELL_RENDERER_PIXBUF", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CELL_RENDERER_TEXT", lg_GTK_CELL_RENDERER_TEXT, 1, 0, 0, "(GTK_CELL_RENDERER_TEXT obj) casts obj to GTK_CELL_RENDERER_TEXT", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CELL_RENDERER_TOGGLE", lg_GTK_CELL_RENDERER_TOGGLE, 1, 0, 0, "(GTK_CELL_RENDERER_TOGGLE obj) casts obj to GTK_CELL_RENDERER_TOGGLE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CHECK_BUTTON", lg_GTK_CHECK_BUTTON, 1, 0, 0, "(GTK_CHECK_BUTTON obj) casts obj to GTK_CHECK_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CHECK_MENU_ITEM", lg_GTK_CHECK_MENU_ITEM, 1, 0, 0, "(GTK_CHECK_MENU_ITEM obj) casts obj to GTK_CHECK_MENU_ITEM", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CONTAINER", lg_GTK_CONTAINER, 1, 0, 0, "(GTK_CONTAINER obj) casts obj to GTK_CONTAINER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_DIALOG", lg_GTK_DIALOG, 1, 0, 0, "(GTK_DIALOG obj) casts obj to GTK_DIALOG", pl_bpt);
+  s7_define_typed_function(sc, "GTK_DRAWING_AREA", lg_GTK_DRAWING_AREA, 1, 0, 0, "(GTK_DRAWING_AREA obj) casts obj to GTK_DRAWING_AREA", pl_bpt);
+  s7_define_typed_function(sc, "GTK_EDITABLE", lg_GTK_EDITABLE, 1, 0, 0, "(GTK_EDITABLE obj) casts obj to GTK_EDITABLE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ENTRY", lg_GTK_ENTRY, 1, 0, 0, "(GTK_ENTRY obj) casts obj to GTK_ENTRY", pl_bpt);
+  s7_define_typed_function(sc, "GTK_EVENT_BOX", lg_GTK_EVENT_BOX, 1, 0, 0, "(GTK_EVENT_BOX obj) casts obj to GTK_EVENT_BOX", pl_bpt);
+  s7_define_typed_function(sc, "GTK_FIXED", lg_GTK_FIXED, 1, 0, 0, "(GTK_FIXED obj) casts obj to GTK_FIXED", pl_bpt);
+  s7_define_typed_function(sc, "GTK_FRAME", lg_GTK_FRAME, 1, 0, 0, "(GTK_FRAME obj) casts obj to GTK_FRAME", pl_bpt);
+  s7_define_typed_function(sc, "GTK_IMAGE", lg_GTK_IMAGE, 1, 0, 0, "(GTK_IMAGE obj) casts obj to GTK_IMAGE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_IM_CONTEXT", lg_GTK_IM_CONTEXT, 1, 0, 0, "(GTK_IM_CONTEXT obj) casts obj to GTK_IM_CONTEXT", pl_bpt);
+  s7_define_typed_function(sc, "GTK_IM_CONTEXT_SIMPLE", lg_GTK_IM_CONTEXT_SIMPLE, 1, 0, 0, "(GTK_IM_CONTEXT_SIMPLE obj) casts obj to GTK_IM_CONTEXT_SIMPLE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_INVISIBLE", lg_GTK_INVISIBLE, 1, 0, 0, "(GTK_INVISIBLE obj) casts obj to GTK_INVISIBLE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_LABEL", lg_GTK_LABEL, 1, 0, 0, "(GTK_LABEL obj) casts obj to GTK_LABEL", pl_bpt);
+  s7_define_typed_function(sc, "GTK_LAYOUT", lg_GTK_LAYOUT, 1, 0, 0, "(GTK_LAYOUT obj) casts obj to GTK_LAYOUT", pl_bpt);
+  s7_define_typed_function(sc, "GTK_LIST_STORE", lg_GTK_LIST_STORE, 1, 0, 0, "(GTK_LIST_STORE obj) casts obj to GTK_LIST_STORE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_MENU_BAR", lg_GTK_MENU_BAR, 1, 0, 0, "(GTK_MENU_BAR obj) casts obj to GTK_MENU_BAR", pl_bpt);
+  s7_define_typed_function(sc, "GTK_MENU", lg_GTK_MENU, 1, 0, 0, "(GTK_MENU obj) casts obj to GTK_MENU", pl_bpt);
+  s7_define_typed_function(sc, "GTK_MENU_ITEM", lg_GTK_MENU_ITEM, 1, 0, 0, "(GTK_MENU_ITEM obj) casts obj to GTK_MENU_ITEM", pl_bpt);
+  s7_define_typed_function(sc, "GTK_MENU_SHELL", lg_GTK_MENU_SHELL, 1, 0, 0, "(GTK_MENU_SHELL obj) casts obj to GTK_MENU_SHELL", pl_bpt);
+  s7_define_typed_function(sc, "GTK_NOTEBOOK", lg_GTK_NOTEBOOK, 1, 0, 0, "(GTK_NOTEBOOK obj) casts obj to GTK_NOTEBOOK", pl_bpt);
+  s7_define_typed_function(sc, "GTK_PANED", lg_GTK_PANED, 1, 0, 0, "(GTK_PANED obj) casts obj to GTK_PANED", pl_bpt);
+  s7_define_typed_function(sc, "GTK_PROGRESS_BAR", lg_GTK_PROGRESS_BAR, 1, 0, 0, "(GTK_PROGRESS_BAR obj) casts obj to GTK_PROGRESS_BAR", pl_bpt);
+  s7_define_typed_function(sc, "GTK_RADIO_BUTTON", lg_GTK_RADIO_BUTTON, 1, 0, 0, "(GTK_RADIO_BUTTON obj) casts obj to GTK_RADIO_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GTK_RADIO_MENU_ITEM", lg_GTK_RADIO_MENU_ITEM, 1, 0, 0, "(GTK_RADIO_MENU_ITEM obj) casts obj to GTK_RADIO_MENU_ITEM", pl_bpt);
+  s7_define_typed_function(sc, "GTK_RANGE", lg_GTK_RANGE, 1, 0, 0, "(GTK_RANGE obj) casts obj to GTK_RANGE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_SCALE", lg_GTK_SCALE, 1, 0, 0, "(GTK_SCALE obj) casts obj to GTK_SCALE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_SCROLLBAR", lg_GTK_SCROLLBAR, 1, 0, 0, "(GTK_SCROLLBAR obj) casts obj to GTK_SCROLLBAR", pl_bpt);
+  s7_define_typed_function(sc, "GTK_SCROLLED_WINDOW", lg_GTK_SCROLLED_WINDOW, 1, 0, 0, "(GTK_SCROLLED_WINDOW obj) casts obj to GTK_SCROLLED_WINDOW", pl_bpt);
+  s7_define_typed_function(sc, "GTK_SEPARATOR", lg_GTK_SEPARATOR, 1, 0, 0, "(GTK_SEPARATOR obj) casts obj to GTK_SEPARATOR", pl_bpt);
+  s7_define_typed_function(sc, "GTK_SEPARATOR_MENU_ITEM", lg_GTK_SEPARATOR_MENU_ITEM, 1, 0, 0, "(GTK_SEPARATOR_MENU_ITEM obj) casts obj to GTK_SEPARATOR_MENU_ITEM", pl_bpt);
+  s7_define_typed_function(sc, "GTK_SETTINGS", lg_GTK_SETTINGS, 1, 0, 0, "(GTK_SETTINGS obj) casts obj to GTK_SETTINGS", pl_bpt);
+  s7_define_typed_function(sc, "GTK_SIZE_GROUP", lg_GTK_SIZE_GROUP, 1, 0, 0, "(GTK_SIZE_GROUP obj) casts obj to GTK_SIZE_GROUP", pl_bpt);
+  s7_define_typed_function(sc, "GTK_SPIN_BUTTON", lg_GTK_SPIN_BUTTON, 1, 0, 0, "(GTK_SPIN_BUTTON obj) casts obj to GTK_SPIN_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GTK_STATUSBAR", lg_GTK_STATUSBAR, 1, 0, 0, "(GTK_STATUSBAR obj) casts obj to GTK_STATUSBAR", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TEXT_BUFFER", lg_GTK_TEXT_BUFFER, 1, 0, 0, "(GTK_TEXT_BUFFER obj) casts obj to GTK_TEXT_BUFFER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TEXT_CHILD_ANCHOR", lg_GTK_TEXT_CHILD_ANCHOR, 1, 0, 0, "(GTK_TEXT_CHILD_ANCHOR obj) casts obj to GTK_TEXT_CHILD_ANCHOR", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TEXT_MARK", lg_GTK_TEXT_MARK, 1, 0, 0, "(GTK_TEXT_MARK obj) casts obj to GTK_TEXT_MARK", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TEXT_TAG", lg_GTK_TEXT_TAG, 1, 0, 0, "(GTK_TEXT_TAG obj) casts obj to GTK_TEXT_TAG", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TEXT_TAG_TABLE", lg_GTK_TEXT_TAG_TABLE, 1, 0, 0, "(GTK_TEXT_TAG_TABLE obj) casts obj to GTK_TEXT_TAG_TABLE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TEXT_VIEW", lg_GTK_TEXT_VIEW, 1, 0, 0, "(GTK_TEXT_VIEW obj) casts obj to GTK_TEXT_VIEW", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TOGGLE_BUTTON", lg_GTK_TOGGLE_BUTTON, 1, 0, 0, "(GTK_TOGGLE_BUTTON obj) casts obj to GTK_TOGGLE_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TOOLBAR", lg_GTK_TOOLBAR, 1, 0, 0, "(GTK_TOOLBAR obj) casts obj to GTK_TOOLBAR", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TREE_DRAG_SOURCE", lg_GTK_TREE_DRAG_SOURCE, 1, 0, 0, "(GTK_TREE_DRAG_SOURCE obj) casts obj to GTK_TREE_DRAG_SOURCE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TREE_DRAG_DEST", lg_GTK_TREE_DRAG_DEST, 1, 0, 0, "(GTK_TREE_DRAG_DEST obj) casts obj to GTK_TREE_DRAG_DEST", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TREE_MODEL", lg_GTK_TREE_MODEL, 1, 0, 0, "(GTK_TREE_MODEL obj) casts obj to GTK_TREE_MODEL", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TREE_MODEL_SORT", lg_GTK_TREE_MODEL_SORT, 1, 0, 0, "(GTK_TREE_MODEL_SORT obj) casts obj to GTK_TREE_MODEL_SORT", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TREE_SELECTION", lg_GTK_TREE_SELECTION, 1, 0, 0, "(GTK_TREE_SELECTION obj) casts obj to GTK_TREE_SELECTION", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TREE_SORTABLE", lg_GTK_TREE_SORTABLE, 1, 0, 0, "(GTK_TREE_SORTABLE obj) casts obj to GTK_TREE_SORTABLE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TREE_STORE", lg_GTK_TREE_STORE, 1, 0, 0, "(GTK_TREE_STORE obj) casts obj to GTK_TREE_STORE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TREE_VIEW_COLUMN", lg_GTK_TREE_VIEW_COLUMN, 1, 0, 0, "(GTK_TREE_VIEW_COLUMN obj) casts obj to GTK_TREE_VIEW_COLUMN", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TREE_VIEW", lg_GTK_TREE_VIEW, 1, 0, 0, "(GTK_TREE_VIEW obj) casts obj to GTK_TREE_VIEW", pl_bpt);
+  s7_define_typed_function(sc, "GTK_VIEWPORT", lg_GTK_VIEWPORT, 1, 0, 0, "(GTK_VIEWPORT obj) casts obj to GTK_VIEWPORT", pl_bpt);
+  s7_define_typed_function(sc, "GTK_WIDGET", lg_GTK_WIDGET, 1, 0, 0, "(GTK_WIDGET obj) casts obj to GTK_WIDGET", pl_bpt);
+  s7_define_typed_function(sc, "GTK_WINDOW", lg_GTK_WINDOW, 1, 0, 0, "(GTK_WINDOW obj) casts obj to GTK_WINDOW", pl_bpt);
+  s7_define_typed_function(sc, "PANGO_CONTEXT", lg_PANGO_CONTEXT, 1, 0, 0, "(PANGO_CONTEXT obj) casts obj to PANGO_CONTEXT", pl_bpt);
+  s7_define_typed_function(sc, "PANGO_FONT_FAMILY", lg_PANGO_FONT_FAMILY, 1, 0, 0, "(PANGO_FONT_FAMILY obj) casts obj to PANGO_FONT_FAMILY", pl_bpt);
+  s7_define_typed_function(sc, "PANGO_FONT_FACE", lg_PANGO_FONT_FACE, 1, 0, 0, "(PANGO_FONT_FACE obj) casts obj to PANGO_FONT_FACE", pl_bpt);
+  s7_define_typed_function(sc, "PANGO_FONT", lg_PANGO_FONT, 1, 0, 0, "(PANGO_FONT obj) casts obj to PANGO_FONT", pl_bpt);
+  s7_define_typed_function(sc, "PANGO_FONT_MAP", lg_PANGO_FONT_MAP, 1, 0, 0, "(PANGO_FONT_MAP obj) casts obj to PANGO_FONT_MAP", pl_bpt);
+  s7_define_typed_function(sc, "PANGO_LAYOUT", lg_PANGO_LAYOUT, 1, 0, 0, "(PANGO_LAYOUT obj) casts obj to PANGO_LAYOUT", pl_bpt);
+  s7_define_typed_function(sc, "G_OBJECT", lg_G_OBJECT, 1, 0, 0, "(G_OBJECT obj) casts obj to G_OBJECT", pl_bpt);
+  s7_define_typed_function(sc, "GDK_SCREEN", lg_GDK_SCREEN, 1, 0, 0, "(GDK_SCREEN obj) casts obj to GDK_SCREEN", pl_bpt);
+  s7_define_typed_function(sc, "GDK_DISPLAY_OBJECT", lg_GDK_DISPLAY_OBJECT, 1, 0, 0, "(GDK_DISPLAY_OBJECT obj) casts obj to GDK_DISPLAY_OBJECT", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT", lg_GDK_EVENT, 1, 0, 0, "(GDK_EVENT obj) casts obj to GDK_EVENT", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_ANY", lg_GDK_EVENT_ANY, 1, 0, 0, "(GDK_EVENT_ANY obj) casts obj to GDK_EVENT_ANY", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_EXPOSE", lg_GDK_EVENT_EXPOSE, 1, 0, 0, "(GDK_EVENT_EXPOSE obj) casts obj to GDK_EVENT_EXPOSE", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_NOEXPOSE", lg_GDK_EVENT_NOEXPOSE, 1, 0, 0, "(GDK_EVENT_NOEXPOSE obj) casts obj to GDK_EVENT_NOEXPOSE", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_VISIBILITY", lg_GDK_EVENT_VISIBILITY, 1, 0, 0, "(GDK_EVENT_VISIBILITY obj) casts obj to GDK_EVENT_VISIBILITY", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_MOTION", lg_GDK_EVENT_MOTION, 1, 0, 0, "(GDK_EVENT_MOTION obj) casts obj to GDK_EVENT_MOTION", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_BUTTON", lg_GDK_EVENT_BUTTON, 1, 0, 0, "(GDK_EVENT_BUTTON obj) casts obj to GDK_EVENT_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_SCROLL", lg_GDK_EVENT_SCROLL, 1, 0, 0, "(GDK_EVENT_SCROLL obj) casts obj to GDK_EVENT_SCROLL", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_KEY", lg_GDK_EVENT_KEY, 1, 0, 0, "(GDK_EVENT_KEY obj) casts obj to GDK_EVENT_KEY", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_CROSSING", lg_GDK_EVENT_CROSSING, 1, 0, 0, "(GDK_EVENT_CROSSING obj) casts obj to GDK_EVENT_CROSSING", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_FOCUS", lg_GDK_EVENT_FOCUS, 1, 0, 0, "(GDK_EVENT_FOCUS obj) casts obj to GDK_EVENT_FOCUS", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_CONFIGURE", lg_GDK_EVENT_CONFIGURE, 1, 0, 0, "(GDK_EVENT_CONFIGURE obj) casts obj to GDK_EVENT_CONFIGURE", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_PROPERTY", lg_GDK_EVENT_PROPERTY, 1, 0, 0, "(GDK_EVENT_PROPERTY obj) casts obj to GDK_EVENT_PROPERTY", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_SELECTION", lg_GDK_EVENT_SELECTION, 1, 0, 0, "(GDK_EVENT_SELECTION obj) casts obj to GDK_EVENT_SELECTION", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_PROXIMITY", lg_GDK_EVENT_PROXIMITY, 1, 0, 0, "(GDK_EVENT_PROXIMITY obj) casts obj to GDK_EVENT_PROXIMITY", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_SETTING", lg_GDK_EVENT_SETTING, 1, 0, 0, "(GDK_EVENT_SETTING obj) casts obj to GDK_EVENT_SETTING", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_WINDOWSTATE", lg_GDK_EVENT_WINDOWSTATE, 1, 0, 0, "(GDK_EVENT_WINDOWSTATE obj) casts obj to GDK_EVENT_WINDOWSTATE", pl_bpt);
+  s7_define_typed_function(sc, "GDK_EVENT_DND", lg_GDK_EVENT_DND, 1, 0, 0, "(GDK_EVENT_DND obj) casts obj to GDK_EVENT_DND", pl_bpt);
+  s7_define_typed_function(sc, "GTK_FILE_CHOOSER_DIALOG", lg_GTK_FILE_CHOOSER_DIALOG, 1, 0, 0, "(GTK_FILE_CHOOSER_DIALOG obj) casts obj to GTK_FILE_CHOOSER_DIALOG", pl_bpt);
+  s7_define_typed_function(sc, "GTK_FILE_CHOOSER_WIDGET", lg_GTK_FILE_CHOOSER_WIDGET, 1, 0, 0, "(GTK_FILE_CHOOSER_WIDGET obj) casts obj to GTK_FILE_CHOOSER_WIDGET", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TREE_MODEL_FILTER", lg_GTK_TREE_MODEL_FILTER, 1, 0, 0, "(GTK_TREE_MODEL_FILTER obj) casts obj to GTK_TREE_MODEL_FILTER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_COMBO_BOX", lg_GTK_COMBO_BOX, 1, 0, 0, "(GTK_COMBO_BOX obj) casts obj to GTK_COMBO_BOX", pl_bpt);
+  s7_define_typed_function(sc, "GTK_EXPANDER", lg_GTK_EXPANDER, 1, 0, 0, "(GTK_EXPANDER obj) casts obj to GTK_EXPANDER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_FONT_BUTTON", lg_GTK_FONT_BUTTON, 1, 0, 0, "(GTK_FONT_BUTTON obj) casts obj to GTK_FONT_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GTK_COLOR_BUTTON", lg_GTK_COLOR_BUTTON, 1, 0, 0, "(GTK_COLOR_BUTTON obj) casts obj to GTK_COLOR_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ENTRY_COMPLETION", lg_GTK_ENTRY_COMPLETION, 1, 0, 0, "(GTK_ENTRY_COMPLETION obj) casts obj to GTK_ENTRY_COMPLETION", pl_bpt);
+  s7_define_typed_function(sc, "GTK_RADIO_TOOL_BUTTON", lg_GTK_RADIO_TOOL_BUTTON, 1, 0, 0, "(GTK_RADIO_TOOL_BUTTON obj) casts obj to GTK_RADIO_TOOL_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GTK_SEPARATOR_TOOL_ITEM", lg_GTK_SEPARATOR_TOOL_ITEM, 1, 0, 0, "(GTK_SEPARATOR_TOOL_ITEM obj) casts obj to GTK_SEPARATOR_TOOL_ITEM", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TOGGLE_TOOL_BUTTON", lg_GTK_TOGGLE_TOOL_BUTTON, 1, 0, 0, "(GTK_TOGGLE_TOOL_BUTTON obj) casts obj to GTK_TOGGLE_TOOL_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GTK_FILE_FILTER", lg_GTK_FILE_FILTER, 1, 0, 0, "(GTK_FILE_FILTER obj) casts obj to GTK_FILE_FILTER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CELL_LAYOUT", lg_GTK_CELL_LAYOUT, 1, 0, 0, "(GTK_CELL_LAYOUT obj) casts obj to GTK_CELL_LAYOUT", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CLIPBOARD", lg_GTK_CLIPBOARD, 1, 0, 0, "(GTK_CLIPBOARD obj) casts obj to GTK_CLIPBOARD", pl_bpt);
+  s7_define_typed_function(sc, "GTK_FILE_CHOOSER", lg_GTK_FILE_CHOOSER, 1, 0, 0, "(GTK_FILE_CHOOSER obj) casts obj to GTK_FILE_CHOOSER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ICON_THEME", lg_GTK_ICON_THEME, 1, 0, 0, "(GTK_ICON_THEME obj) casts obj to GTK_ICON_THEME", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TOOL_BUTTON", lg_GTK_TOOL_BUTTON, 1, 0, 0, "(GTK_TOOL_BUTTON obj) casts obj to GTK_TOOL_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TOOL_ITEM", lg_GTK_TOOL_ITEM, 1, 0, 0, "(GTK_TOOL_ITEM obj) casts obj to GTK_TOOL_ITEM", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ACCEL_MAP", lg_GTK_ACCEL_MAP, 1, 0, 0, "(GTK_ACCEL_MAP obj) casts obj to GTK_ACCEL_MAP", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CELL_VIEW", lg_GTK_CELL_VIEW, 1, 0, 0, "(GTK_CELL_VIEW obj) casts obj to GTK_CELL_VIEW", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ABOUT_DIALOG", lg_GTK_ABOUT_DIALOG, 1, 0, 0, "(GTK_ABOUT_DIALOG obj) casts obj to GTK_ABOUT_DIALOG", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CELL_RENDERER_COMBO", lg_GTK_CELL_RENDERER_COMBO, 1, 0, 0, "(GTK_CELL_RENDERER_COMBO obj) casts obj to GTK_CELL_RENDERER_COMBO", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CELL_RENDERER_PROGRESS", lg_GTK_CELL_RENDERER_PROGRESS, 1, 0, 0, "(GTK_CELL_RENDERER_PROGRESS obj) casts obj to GTK_CELL_RENDERER_PROGRESS", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ICON_VIEW", lg_GTK_ICON_VIEW, 1, 0, 0, "(GTK_ICON_VIEW obj) casts obj to GTK_ICON_VIEW", pl_bpt);
+  s7_define_typed_function(sc, "GTK_FILE_CHOOSER_BUTTON", lg_GTK_FILE_CHOOSER_BUTTON, 1, 0, 0, "(GTK_FILE_CHOOSER_BUTTON obj) casts obj to GTK_FILE_CHOOSER_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GTK_MENU_TOOL_BUTTON", lg_GTK_MENU_TOOL_BUTTON, 1, 0, 0, "(GTK_MENU_TOOL_BUTTON obj) casts obj to GTK_MENU_TOOL_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ASSISTANT", lg_GTK_ASSISTANT, 1, 0, 0, "(GTK_ASSISTANT obj) casts obj to GTK_ASSISTANT", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CELL_RENDERER_ACCEL", lg_GTK_CELL_RENDERER_ACCEL, 1, 0, 0, "(GTK_CELL_RENDERER_ACCEL obj) casts obj to GTK_CELL_RENDERER_ACCEL", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CELL_RENDERER_SPIN", lg_GTK_CELL_RENDERER_SPIN, 1, 0, 0, "(GTK_CELL_RENDERER_SPIN obj) casts obj to GTK_CELL_RENDERER_SPIN", pl_bpt);
+  s7_define_typed_function(sc, "GTK_LINK_BUTTON", lg_GTK_LINK_BUTTON, 1, 0, 0, "(GTK_LINK_BUTTON obj) casts obj to GTK_LINK_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GTK_RECENT_CHOOSER_DIALOG", lg_GTK_RECENT_CHOOSER_DIALOG, 1, 0, 0, "(GTK_RECENT_CHOOSER_DIALOG obj) casts obj to GTK_RECENT_CHOOSER_DIALOG", pl_bpt);
+  s7_define_typed_function(sc, "GTK_RECENT_CHOOSER", lg_GTK_RECENT_CHOOSER, 1, 0, 0, "(GTK_RECENT_CHOOSER obj) casts obj to GTK_RECENT_CHOOSER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_RECENT_CHOOSER_MENU", lg_GTK_RECENT_CHOOSER_MENU, 1, 0, 0, "(GTK_RECENT_CHOOSER_MENU obj) casts obj to GTK_RECENT_CHOOSER_MENU", pl_bpt);
+  s7_define_typed_function(sc, "GTK_RECENT_CHOOSER_WIDGET", lg_GTK_RECENT_CHOOSER_WIDGET, 1, 0, 0, "(GTK_RECENT_CHOOSER_WIDGET obj) casts obj to GTK_RECENT_CHOOSER_WIDGET", pl_bpt);
+  s7_define_typed_function(sc, "GTK_RECENT_FILTER", lg_GTK_RECENT_FILTER, 1, 0, 0, "(GTK_RECENT_FILTER obj) casts obj to GTK_RECENT_FILTER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_RECENT_MANAGER", lg_GTK_RECENT_MANAGER, 1, 0, 0, "(GTK_RECENT_MANAGER obj) casts obj to GTK_RECENT_MANAGER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_PRINT_CONTEXT", lg_GTK_PRINT_CONTEXT, 1, 0, 0, "(GTK_PRINT_CONTEXT obj) casts obj to GTK_PRINT_CONTEXT", pl_bpt);
+  s7_define_typed_function(sc, "GTK_PRINT_OPERATION", lg_GTK_PRINT_OPERATION, 1, 0, 0, "(GTK_PRINT_OPERATION obj) casts obj to GTK_PRINT_OPERATION", pl_bpt);
+  s7_define_typed_function(sc, "GTK_PRINT_SETTINGS", lg_GTK_PRINT_SETTINGS, 1, 0, 0, "(GTK_PRINT_SETTINGS obj) casts obj to GTK_PRINT_SETTINGS", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TOOLTIP", lg_GTK_TOOLTIP, 1, 0, 0, "(GTK_TOOLTIP obj) casts obj to GTK_TOOLTIP", pl_bpt);
+#if GTK_CHECK_VERSION(2, 18, 0)
+  s7_define_typed_function(sc, "GTK_INFO_BAR", lg_GTK_INFO_BAR, 1, 0, 0, "(GTK_INFO_BAR obj) casts obj to GTK_INFO_BAR", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ENTRY_BUFFER", lg_GTK_ENTRY_BUFFER, 1, 0, 0, "(GTK_ENTRY_BUFFER obj) casts obj to GTK_ENTRY_BUFFER", pl_bpt);
+#endif
+
+#if GTK_CHECK_VERSION(2, 20, 0)
+  s7_define_typed_function(sc, "GTK_SPINNER", lg_GTK_SPINNER, 1, 0, 0, "(GTK_SPINNER obj) casts obj to GTK_SPINNER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_CELL_RENDERER_SPINNER", lg_GTK_CELL_RENDERER_SPINNER, 1, 0, 0, "(GTK_CELL_RENDERER_SPINNER obj) casts obj to GTK_CELL_RENDERER_SPINNER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TOOL_PALETTE", lg_GTK_TOOL_PALETTE, 1, 0, 0, "(GTK_TOOL_PALETTE obj) casts obj to GTK_TOOL_PALETTE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TOOL_ITEM_GROUP", lg_GTK_TOOL_ITEM_GROUP, 1, 0, 0, "(GTK_TOOL_ITEM_GROUP obj) casts obj to GTK_TOOL_ITEM_GROUP", pl_bpt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 0, 0)
+  s7_define_typed_function(sc, "GTK_COMBO_BOX_TEXT", lg_GTK_COMBO_BOX_TEXT, 1, 0, 0, "(GTK_COMBO_BOX_TEXT obj) casts obj to GTK_COMBO_BOX_TEXT", pl_bpt);
+  s7_define_typed_function(sc, "GTK_GRID", lg_GTK_GRID, 1, 0, 0, "(GTK_GRID obj) casts obj to GTK_GRID", pl_bpt);
+  s7_define_typed_function(sc, "GTK_SCROLLABLE", lg_GTK_SCROLLABLE, 1, 0, 0, "(GTK_SCROLLABLE obj) casts obj to GTK_SCROLLABLE", pl_bpt);
+  s7_define_typed_function(sc, "GDK_RGBA", lg_GDK_RGBA, 1, 0, 0, "(GDK_RGBA obj) casts obj to GDK_RGBA", pl_bpt);
+  s7_define_typed_function(sc, "GTK_SWITCH", lg_GTK_SWITCH, 1, 0, 0, "(GTK_SWITCH obj) casts obj to GTK_SWITCH", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ORIENTABLE", lg_GTK_ORIENTABLE, 1, 0, 0, "(GTK_ORIENTABLE obj) casts obj to GTK_ORIENTABLE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_WINDOW_GROUP", lg_GTK_WINDOW_GROUP, 1, 0, 0, "(GTK_WINDOW_GROUP obj) casts obj to GTK_WINDOW_GROUP", pl_bpt);
+  s7_define_typed_function(sc, "GTK_TOOL_SHELL", lg_GTK_TOOL_SHELL, 1, 0, 0, "(GTK_TOOL_SHELL obj) casts obj to GTK_TOOL_SHELL", pl_bpt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 2, 0)
+  s7_define_typed_function(sc, "GTK_OVERLAY", lg_GTK_OVERLAY, 1, 0, 0, "(GTK_OVERLAY obj) casts obj to GTK_OVERLAY", pl_bpt);
+  s7_define_typed_function(sc, "GTK_FONT_CHOOSER", lg_GTK_FONT_CHOOSER, 1, 0, 0, "(GTK_FONT_CHOOSER obj) casts obj to GTK_FONT_CHOOSER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_FONT_CHOOSER_DIALOG", lg_GTK_FONT_CHOOSER_DIALOG, 1, 0, 0, "(GTK_FONT_CHOOSER_DIALOG obj) casts obj to GTK_FONT_CHOOSER_DIALOG", pl_bpt);
+  s7_define_typed_function(sc, "GTK_FONT_CHOOSER_WIDGET", lg_GTK_FONT_CHOOSER_WIDGET, 1, 0, 0, "(GTK_FONT_CHOOSER_WIDGET obj) casts obj to GTK_FONT_CHOOSER_WIDGET", pl_bpt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 4, 0)
+  s7_define_typed_function(sc, "GTK_APPLICATION_WINDOW", lg_GTK_APPLICATION_WINDOW, 1, 0, 0, "(GTK_APPLICATION_WINDOW obj) casts obj to GTK_APPLICATION_WINDOW", pl_bpt);
+  s7_define_typed_function(sc, "GTK_COLOR_CHOOSER_DIALOG", lg_GTK_COLOR_CHOOSER_DIALOG, 1, 0, 0, "(GTK_COLOR_CHOOSER_DIALOG obj) casts obj to GTK_COLOR_CHOOSER_DIALOG", pl_bpt);
+  s7_define_typed_function(sc, "GTK_COLOR_CHOOSER_WIDGET", lg_GTK_COLOR_CHOOSER_WIDGET, 1, 0, 0, "(GTK_COLOR_CHOOSER_WIDGET obj) casts obj to GTK_COLOR_CHOOSER_WIDGET", pl_bpt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 6, 0)
+  s7_define_typed_function(sc, "GTK_MENU_BUTTON", lg_GTK_MENU_BUTTON, 1, 0, 0, "(GTK_MENU_BUTTON obj) casts obj to GTK_MENU_BUTTON", pl_bpt);
+  s7_define_typed_function(sc, "GTK_SEARCH_ENTRY", lg_GTK_SEARCH_ENTRY, 1, 0, 0, "(GTK_SEARCH_ENTRY obj) casts obj to GTK_SEARCH_ENTRY", pl_bpt);
+  s7_define_typed_function(sc, "GTK_LEVEL_BAR", lg_GTK_LEVEL_BAR, 1, 0, 0, "(GTK_LEVEL_BAR obj) casts obj to GTK_LEVEL_BAR", pl_bpt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 10, 0)
+  s7_define_typed_function(sc, "GTK_PLACES_SIDEBAR", lg_GTK_PLACES_SIDEBAR, 1, 0, 0, "(GTK_PLACES_SIDEBAR obj) casts obj to GTK_PLACES_SIDEBAR", pl_bpt);
+  s7_define_typed_function(sc, "GTK_STACK_SWITCHER", lg_GTK_STACK_SWITCHER, 1, 0, 0, "(GTK_STACK_SWITCHER obj) casts obj to GTK_STACK_SWITCHER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_STACK", lg_GTK_STACK, 1, 0, 0, "(GTK_STACK obj) casts obj to GTK_STACK", pl_bpt);
+  s7_define_typed_function(sc, "GTK_REVEALER", lg_GTK_REVEALER, 1, 0, 0, "(GTK_REVEALER obj) casts obj to GTK_REVEALER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_HEADER_BAR", lg_GTK_HEADER_BAR, 1, 0, 0, "(GTK_HEADER_BAR obj) casts obj to GTK_HEADER_BAR", pl_bpt);
+  s7_define_typed_function(sc, "GTK_LIST_BOX", lg_GTK_LIST_BOX, 1, 0, 0, "(GTK_LIST_BOX obj) casts obj to GTK_LIST_BOX", pl_bpt);
+  s7_define_typed_function(sc, "GTK_LIST_BOX_ROW", lg_GTK_LIST_BOX_ROW, 1, 0, 0, "(GTK_LIST_BOX_ROW obj) casts obj to GTK_LIST_BOX_ROW", pl_bpt);
+  s7_define_typed_function(sc, "GTK_SEARCH_BAR", lg_GTK_SEARCH_BAR, 1, 0, 0, "(GTK_SEARCH_BAR obj) casts obj to GTK_SEARCH_BAR", pl_bpt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 12, 0)
+  s7_define_typed_function(sc, "GTK_FLOW_BOX", lg_GTK_FLOW_BOX, 1, 0, 0, "(GTK_FLOW_BOX obj) casts obj to GTK_FLOW_BOX", pl_bpt);
+  s7_define_typed_function(sc, "GTK_FLOW_BOX_CHILD", lg_GTK_FLOW_BOX_CHILD, 1, 0, 0, "(GTK_FLOW_BOX_CHILD obj) casts obj to GTK_FLOW_BOX_CHILD", pl_bpt);
+  s7_define_typed_function(sc, "GTK_ACTION_BAR", lg_GTK_ACTION_BAR, 1, 0, 0, "(GTK_ACTION_BAR obj) casts obj to GTK_ACTION_BAR", pl_bpt);
+  s7_define_typed_function(sc, "GTK_POPOVER", lg_GTK_POPOVER, 1, 0, 0, "(GTK_POPOVER obj) casts obj to GTK_POPOVER", pl_bpt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 14, 0)
+  s7_define_typed_function(sc, "GTK_GESTURE", lg_GTK_GESTURE, 1, 0, 0, "(GTK_GESTURE obj) casts obj to GTK_GESTURE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_GESTURE_DRAG", lg_GTK_GESTURE_DRAG, 1, 0, 0, "(GTK_GESTURE_DRAG obj) casts obj to GTK_GESTURE_DRAG", pl_bpt);
+  s7_define_typed_function(sc, "GTK_GESTURE_LONG_PRESS", lg_GTK_GESTURE_LONG_PRESS, 1, 0, 0, "(GTK_GESTURE_LONG_PRESS obj) casts obj to GTK_GESTURE_LONG_PRESS", pl_bpt);
+  s7_define_typed_function(sc, "GTK_GESTURE_ZOOM", lg_GTK_GESTURE_ZOOM, 1, 0, 0, "(GTK_GESTURE_ZOOM obj) casts obj to GTK_GESTURE_ZOOM", pl_bpt);
+  s7_define_typed_function(sc, "GTK_GESTURE_SWIPE", lg_GTK_GESTURE_SWIPE, 1, 0, 0, "(GTK_GESTURE_SWIPE obj) casts obj to GTK_GESTURE_SWIPE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_GESTURE_SINGLE", lg_GTK_GESTURE_SINGLE, 1, 0, 0, "(GTK_GESTURE_SINGLE obj) casts obj to GTK_GESTURE_SINGLE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_GESTURE_PAN", lg_GTK_GESTURE_PAN, 1, 0, 0, "(GTK_GESTURE_PAN obj) casts obj to GTK_GESTURE_PAN", pl_bpt);
+  s7_define_typed_function(sc, "GTK_GESTURE_MULTI_PRESS", lg_GTK_GESTURE_MULTI_PRESS, 1, 0, 0, "(GTK_GESTURE_MULTI_PRESS obj) casts obj to GTK_GESTURE_MULTI_PRESS", pl_bpt);
+  s7_define_typed_function(sc, "GTK_GESTURE_ROTATE", lg_GTK_GESTURE_ROTATE, 1, 0, 0, "(GTK_GESTURE_ROTATE obj) casts obj to GTK_GESTURE_ROTATE", pl_bpt);
+  s7_define_typed_function(sc, "GTK_EVENT_CONTROLLER", lg_GTK_EVENT_CONTROLLER, 1, 0, 0, "(GTK_EVENT_CONTROLLER obj) casts obj to GTK_EVENT_CONTROLLER", pl_bpt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 16, 0)
+  s7_define_typed_function(sc, "GTK_GL_AREA", lg_GTK_GL_AREA, 1, 0, 0, "(GTK_GL_AREA obj) casts obj to GTK_GL_AREA", pl_bpt);
+  s7_define_typed_function(sc, "GDK_GL_CONTEXT", lg_GDK_GL_CONTEXT, 1, 0, 0, "(GDK_GL_CONTEXT obj) casts obj to GDK_GL_CONTEXT", pl_bpt);
+  s7_define_typed_function(sc, "GTK_POPOVER_MENU", lg_GTK_POPOVER_MENU, 1, 0, 0, "(GTK_POPOVER_MENU obj) casts obj to GTK_POPOVER_MENU", pl_bpt);
+  s7_define_typed_function(sc, "GTK_STACK_SIDEBAR", lg_GTK_STACK_SIDEBAR, 1, 0, 0, "(GTK_STACK_SIDEBAR obj) casts obj to GTK_STACK_SIDEBAR", pl_bpt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 20, 0)
+  s7_define_typed_function(sc, "GDK_SEAT", lg_GDK_SEAT, 1, 0, 0, "(GDK_SEAT obj) casts obj to GDK_SEAT", pl_bpt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 22, 0)
+  s7_define_typed_function(sc, "GDK_DEVICE_TOOL", lg_GDK_DEVICE_TOOL, 1, 0, 0, "(GDK_DEVICE_TOOL obj) casts obj to GDK_DEVICE_TOOL", pl_bpt);
+  s7_define_typed_function(sc, "GDK_MONITOR", lg_GDK_MONITOR, 1, 0, 0, "(GDK_MONITOR obj) casts obj to GDK_MONITOR", pl_bpt);
+  s7_define_typed_function(sc, "GDK_DRAWING_CONTEXT", lg_GDK_DRAWING_CONTEXT, 1, 0, 0, "(GDK_DRAWING_CONTEXT obj) casts obj to GDK_DRAWING_CONTEXT", pl_bpt);
+  s7_define_typed_function(sc, "GDK_DEVICE_PAD", lg_GDK_DEVICE_PAD, 1, 0, 0, "(GDK_DEVICE_PAD obj) casts obj to GDK_DEVICE_PAD", pl_bpt);
+  s7_define_typed_function(sc, "GTK_PAD_CONTROLLER", lg_GTK_PAD_CONTROLLER, 1, 0, 0, "(GTK_PAD_CONTROLLER obj) casts obj to GTK_PAD_CONTROLLER", pl_bpt);
+  s7_define_typed_function(sc, "GTK_SHORTCUT_LABEL", lg_GTK_SHORTCUT_LABEL, 1, 0, 0, "(GTK_SHORTCUT_LABEL obj) casts obj to GTK_SHORTCUT_LABEL", pl_bpt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 99, 0)
+  s7_define_typed_function(sc, "GTK_CENTER_BOX", lg_GTK_CENTER_BOX, 1, 0, 0, "(GTK_CENTER_BOX obj) casts obj to GTK_CENTER_BOX", pl_bpt);
+#endif
+
+  s7_define_function(sc, "g_object_get", lg_g_object_get, 3, 0, 0, NULL);
+  s7_define_function(sc, "g_object_set", lg_g_object_set, 3, 0, 0, NULL);
+  s7_define_function(sc, "gtk_event_keyval", lg_gtk_event_keyval, 1, 0, 0, NULL);
+#if (GTK_CHECK_VERSION(3, 90, 0))
+  s7_define_function(sc, "gtk_init", lg_gtk_init, 0, 0, 0, NULL);
+  s7_define_function(sc, "gtk_init_check", lg_gtk_init_check, 0, 0, 0, NULL);
+#else
+  s7_define_function(sc, "gtk_init", lg_gtk_init, 0, 2, 0, NULL);
+  s7_define_function(sc, "gtk_init_check", lg_gtk_init_check, 0, 2, 0, NULL);
+#endif
+  s7_define_typed_function(sc, "GDK_IS_DRAG_CONTEXT", lg_GDK_IS_DRAG_CONTEXT, 1, 0, 0, "(GDK_IS_DRAG_CONTEXT obj): #t if obj is a GdkDragContext*", pl_bt);
+  s7_define_typed_function(sc, "GDK_IS_DEVICE", lg_GDK_IS_DEVICE, 1, 0, 0, "(GDK_IS_DEVICE obj): #t if obj is a GdkDevice*", pl_bt);
+  s7_define_typed_function(sc, "GDK_IS_KEYMAP", lg_GDK_IS_KEYMAP, 1, 0, 0, "(GDK_IS_KEYMAP obj): #t if obj is a GdkKeymap*", pl_bt);
+  s7_define_typed_function(sc, "GDK_IS_WINDOW", lg_GDK_IS_WINDOW, 1, 0, 0, "(GDK_IS_WINDOW obj): #t if obj is a GdkWindow*", pl_bt);
+  s7_define_typed_function(sc, "GDK_IS_PIXBUF", lg_GDK_IS_PIXBUF, 1, 0, 0, "(GDK_IS_PIXBUF obj): #t if obj is a GdkPixbuf*", pl_bt);
+  s7_define_typed_function(sc, "GDK_IS_PIXBUF_ANIMATION", lg_GDK_IS_PIXBUF_ANIMATION, 1, 0, 0, "(GDK_IS_PIXBUF_ANIMATION obj): #t if obj is a GdkPixbufAnimation*", pl_bt);
+  s7_define_typed_function(sc, "GDK_IS_PIXBUF_ANIMATION_ITER", lg_GDK_IS_PIXBUF_ANIMATION_ITER, 1, 0, 0, "(GDK_IS_PIXBUF_ANIMATION_ITER obj): #t if obj is a GdkPixbufAnimationIter*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ACCEL_GROUP", lg_GTK_IS_ACCEL_GROUP, 1, 0, 0, "(GTK_IS_ACCEL_GROUP obj): #t if obj is a GtkAccelGroup*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ACCEL_LABEL", lg_GTK_IS_ACCEL_LABEL, 1, 0, 0, "(GTK_IS_ACCEL_LABEL obj): #t if obj is a GtkAccelLabel*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ACCESSIBLE", lg_GTK_IS_ACCESSIBLE, 1, 0, 0, "(GTK_IS_ACCESSIBLE obj): #t if obj is a GtkAccessible*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ADJUSTMENT", lg_GTK_IS_ADJUSTMENT, 1, 0, 0, "(GTK_IS_ADJUSTMENT obj): #t if obj is a GtkAdjustment*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ASPECT_FRAME", lg_GTK_IS_ASPECT_FRAME, 1, 0, 0, "(GTK_IS_ASPECT_FRAME obj): #t if obj is a GtkAspectFrame*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_BUTTON_BOX", lg_GTK_IS_BUTTON_BOX, 1, 0, 0, "(GTK_IS_BUTTON_BOX obj): #t if obj is a GtkButtonBox*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_BIN", lg_GTK_IS_BIN, 1, 0, 0, "(GTK_IS_BIN obj): #t if obj is a GtkBin*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_BOX", lg_GTK_IS_BOX, 1, 0, 0, "(GTK_IS_BOX obj): #t if obj is a GtkBox*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_BUTTON", lg_GTK_IS_BUTTON, 1, 0, 0, "(GTK_IS_BUTTON obj): #t if obj is a GtkButton*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CALENDAR", lg_GTK_IS_CALENDAR, 1, 0, 0, "(GTK_IS_CALENDAR obj): #t if obj is a GtkCalendar*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CELL_EDITABLE", lg_GTK_IS_CELL_EDITABLE, 1, 0, 0, "(GTK_IS_CELL_EDITABLE obj): #t if obj is a GtkCellEditable*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CELL_RENDERER", lg_GTK_IS_CELL_RENDERER, 1, 0, 0, "(GTK_IS_CELL_RENDERER obj): #t if obj is a GtkCellRenderer*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CELL_RENDERER_PIXBUF", lg_GTK_IS_CELL_RENDERER_PIXBUF, 1, 0, 0, "(GTK_IS_CELL_RENDERER_PIXBUF obj): #t if obj is a GtkCellRendererPixbuf*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CELL_RENDERER_TEXT", lg_GTK_IS_CELL_RENDERER_TEXT, 1, 0, 0, "(GTK_IS_CELL_RENDERER_TEXT obj): #t if obj is a GtkCellRendererText*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CELL_RENDERER_TOGGLE", lg_GTK_IS_CELL_RENDERER_TOGGLE, 1, 0, 0, "(GTK_IS_CELL_RENDERER_TOGGLE obj): #t if obj is a GtkCellRendererToggle*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CHECK_BUTTON", lg_GTK_IS_CHECK_BUTTON, 1, 0, 0, "(GTK_IS_CHECK_BUTTON obj): #t if obj is a GtkCheckButton*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CHECK_MENU_ITEM", lg_GTK_IS_CHECK_MENU_ITEM, 1, 0, 0, "(GTK_IS_CHECK_MENU_ITEM obj): #t if obj is a GtkCheckMenuItem*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CONTAINER", lg_GTK_IS_CONTAINER, 1, 0, 0, "(GTK_IS_CONTAINER obj): #t if obj is a GtkContainer*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_DIALOG", lg_GTK_IS_DIALOG, 1, 0, 0, "(GTK_IS_DIALOG obj): #t if obj is a GtkDialog*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_DRAWING_AREA", lg_GTK_IS_DRAWING_AREA, 1, 0, 0, "(GTK_IS_DRAWING_AREA obj): #t if obj is a GtkDrawingArea*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_EDITABLE", lg_GTK_IS_EDITABLE, 1, 0, 0, "(GTK_IS_EDITABLE obj): #t if obj is a GtkEditable*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ENTRY", lg_GTK_IS_ENTRY, 1, 0, 0, "(GTK_IS_ENTRY obj): #t if obj is a GtkEntry*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_EVENT_BOX", lg_GTK_IS_EVENT_BOX, 1, 0, 0, "(GTK_IS_EVENT_BOX obj): #t if obj is a GtkEventBox*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_FIXED", lg_GTK_IS_FIXED, 1, 0, 0, "(GTK_IS_FIXED obj): #t if obj is a GtkFixed*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_FRAME", lg_GTK_IS_FRAME, 1, 0, 0, "(GTK_IS_FRAME obj): #t if obj is a GtkFrame*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_IMAGE", lg_GTK_IS_IMAGE, 1, 0, 0, "(GTK_IS_IMAGE obj): #t if obj is a GtkImage*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_IM_CONTEXT", lg_GTK_IS_IM_CONTEXT, 1, 0, 0, "(GTK_IS_IM_CONTEXT obj): #t if obj is a GtkIMContext*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_IM_CONTEXT_SIMPLE", lg_GTK_IS_IM_CONTEXT_SIMPLE, 1, 0, 0, "(GTK_IS_IM_CONTEXT_SIMPLE obj): #t if obj is a GtkIMContextSimple*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_INVISIBLE", lg_GTK_IS_INVISIBLE, 1, 0, 0, "(GTK_IS_INVISIBLE obj): #t if obj is a GtkInvisible*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_LABEL", lg_GTK_IS_LABEL, 1, 0, 0, "(GTK_IS_LABEL obj): #t if obj is a GtkLabel*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_LAYOUT", lg_GTK_IS_LAYOUT, 1, 0, 0, "(GTK_IS_LAYOUT obj): #t if obj is a GtkLayout*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_LIST_STORE", lg_GTK_IS_LIST_STORE, 1, 0, 0, "(GTK_IS_LIST_STORE obj): #t if obj is a GtkListStore*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_MENU_BAR", lg_GTK_IS_MENU_BAR, 1, 0, 0, "(GTK_IS_MENU_BAR obj): #t if obj is a GtkMenuBar*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_MENU", lg_GTK_IS_MENU, 1, 0, 0, "(GTK_IS_MENU obj): #t if obj is a GtkMenu*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_MENU_ITEM", lg_GTK_IS_MENU_ITEM, 1, 0, 0, "(GTK_IS_MENU_ITEM obj): #t if obj is a GtkMenuItem*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_MENU_SHELL", lg_GTK_IS_MENU_SHELL, 1, 0, 0, "(GTK_IS_MENU_SHELL obj): #t if obj is a GtkMenuShell*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_NOTEBOOK", lg_GTK_IS_NOTEBOOK, 1, 0, 0, "(GTK_IS_NOTEBOOK obj): #t if obj is a GtkNotebook*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_PANED", lg_GTK_IS_PANED, 1, 0, 0, "(GTK_IS_PANED obj): #t if obj is a GtkPaned*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_PROGRESS_BAR", lg_GTK_IS_PROGRESS_BAR, 1, 0, 0, "(GTK_IS_PROGRESS_BAR obj): #t if obj is a GtkProgressBar*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_RADIO_BUTTON", lg_GTK_IS_RADIO_BUTTON, 1, 0, 0, "(GTK_IS_RADIO_BUTTON obj): #t if obj is a GtkRadioButton*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_RADIO_MENU_ITEM", lg_GTK_IS_RADIO_MENU_ITEM, 1, 0, 0, "(GTK_IS_RADIO_MENU_ITEM obj): #t if obj is a GtkRadioMenuItem*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_RANGE", lg_GTK_IS_RANGE, 1, 0, 0, "(GTK_IS_RANGE obj): #t if obj is a GtkRange*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_SCALE", lg_GTK_IS_SCALE, 1, 0, 0, "(GTK_IS_SCALE obj): #t if obj is a GtkScale*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_SCROLLBAR", lg_GTK_IS_SCROLLBAR, 1, 0, 0, "(GTK_IS_SCROLLBAR obj): #t if obj is a GtkScrollbar*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_SCROLLED_WINDOW", lg_GTK_IS_SCROLLED_WINDOW, 1, 0, 0, "(GTK_IS_SCROLLED_WINDOW obj): #t if obj is a GtkScrolledWindow*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_SEPARATOR", lg_GTK_IS_SEPARATOR, 1, 0, 0, "(GTK_IS_SEPARATOR obj): #t if obj is a GtkSeparator*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_SEPARATOR_MENU_ITEM", lg_GTK_IS_SEPARATOR_MENU_ITEM, 1, 0, 0, "(GTK_IS_SEPARATOR_MENU_ITEM obj): #t if obj is a GtkSeparatorMenuItem*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_SETTINGS", lg_GTK_IS_SETTINGS, 1, 0, 0, "(GTK_IS_SETTINGS obj): #t if obj is a GtkSettings*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_SIZE_GROUP", lg_GTK_IS_SIZE_GROUP, 1, 0, 0, "(GTK_IS_SIZE_GROUP obj): #t if obj is a GtkSizeGroup*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_SPIN_BUTTON", lg_GTK_IS_SPIN_BUTTON, 1, 0, 0, "(GTK_IS_SPIN_BUTTON obj): #t if obj is a GtkSpinButton*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_STATUSBAR", lg_GTK_IS_STATUSBAR, 1, 0, 0, "(GTK_IS_STATUSBAR obj): #t if obj is a GtkStatusbar*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TEXT_BUFFER", lg_GTK_IS_TEXT_BUFFER, 1, 0, 0, "(GTK_IS_TEXT_BUFFER obj): #t if obj is a GtkTextBuffer*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TEXT_CHILD_ANCHOR", lg_GTK_IS_TEXT_CHILD_ANCHOR, 1, 0, 0, "(GTK_IS_TEXT_CHILD_ANCHOR obj): #t if obj is a GtkTextChildAnchor*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TEXT_MARK", lg_GTK_IS_TEXT_MARK, 1, 0, 0, "(GTK_IS_TEXT_MARK obj): #t if obj is a GtkTextMark*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TEXT_TAG", lg_GTK_IS_TEXT_TAG, 1, 0, 0, "(GTK_IS_TEXT_TAG obj): #t if obj is a GtkTextTag*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TEXT_TAG_TABLE", lg_GTK_IS_TEXT_TAG_TABLE, 1, 0, 0, "(GTK_IS_TEXT_TAG_TABLE obj): #t if obj is a GtkTextTagTable*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TEXT_VIEW", lg_GTK_IS_TEXT_VIEW, 1, 0, 0, "(GTK_IS_TEXT_VIEW obj): #t if obj is a GtkTextView*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TOGGLE_BUTTON", lg_GTK_IS_TOGGLE_BUTTON, 1, 0, 0, "(GTK_IS_TOGGLE_BUTTON obj): #t if obj is a GtkToggleButton*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TOOLBAR", lg_GTK_IS_TOOLBAR, 1, 0, 0, "(GTK_IS_TOOLBAR obj): #t if obj is a GtkToolbar*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TREE_DRAG_SOURCE", lg_GTK_IS_TREE_DRAG_SOURCE, 1, 0, 0, "(GTK_IS_TREE_DRAG_SOURCE obj): #t if obj is a GtkTreeDragSource*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TREE_DRAG_DEST", lg_GTK_IS_TREE_DRAG_DEST, 1, 0, 0, "(GTK_IS_TREE_DRAG_DEST obj): #t if obj is a GtkTreeDragDest*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TREE_MODEL", lg_GTK_IS_TREE_MODEL, 1, 0, 0, "(GTK_IS_TREE_MODEL obj): #t if obj is a GtkTreeModel*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TREE_MODEL_SORT", lg_GTK_IS_TREE_MODEL_SORT, 1, 0, 0, "(GTK_IS_TREE_MODEL_SORT obj): #t if obj is a GtkTreeModelSort*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TREE_SELECTION", lg_GTK_IS_TREE_SELECTION, 1, 0, 0, "(GTK_IS_TREE_SELECTION obj): #t if obj is a GtkTreeSelection*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TREE_SORTABLE", lg_GTK_IS_TREE_SORTABLE, 1, 0, 0, "(GTK_IS_TREE_SORTABLE obj): #t if obj is a GtkTreeSortable*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TREE_STORE", lg_GTK_IS_TREE_STORE, 1, 0, 0, "(GTK_IS_TREE_STORE obj): #t if obj is a GtkTreeStore*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TREE_VIEW_COLUMN", lg_GTK_IS_TREE_VIEW_COLUMN, 1, 0, 0, "(GTK_IS_TREE_VIEW_COLUMN obj): #t if obj is a GtkTreeViewColumn*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TREE_VIEW", lg_GTK_IS_TREE_VIEW, 1, 0, 0, "(GTK_IS_TREE_VIEW obj): #t if obj is a GtkTreeView*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_VIEWPORT", lg_GTK_IS_VIEWPORT, 1, 0, 0, "(GTK_IS_VIEWPORT obj): #t if obj is a GtkViewport*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_WIDGET", lg_GTK_IS_WIDGET, 1, 0, 0, "(GTK_IS_WIDGET obj): #t if obj is a GtkWidget*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_WINDOW", lg_GTK_IS_WINDOW, 1, 0, 0, "(GTK_IS_WINDOW obj): #t if obj is a GtkWindow*", pl_bt);
+  s7_define_typed_function(sc, "PANGO_IS_CONTEXT", lg_PANGO_IS_CONTEXT, 1, 0, 0, "(PANGO_IS_CONTEXT obj): #t if obj is a PangoContext*", pl_bt);
+  s7_define_typed_function(sc, "PANGO_IS_FONT_FAMILY", lg_PANGO_IS_FONT_FAMILY, 1, 0, 0, "(PANGO_IS_FONT_FAMILY obj): #t if obj is a PangoFontFamily*", pl_bt);
+  s7_define_typed_function(sc, "PANGO_IS_FONT_FACE", lg_PANGO_IS_FONT_FACE, 1, 0, 0, "(PANGO_IS_FONT_FACE obj): #t if obj is a PangoFontFace*", pl_bt);
+  s7_define_typed_function(sc, "PANGO_IS_FONT", lg_PANGO_IS_FONT, 1, 0, 0, "(PANGO_IS_FONT obj): #t if obj is a PangoFont*", pl_bt);
+  s7_define_typed_function(sc, "PANGO_IS_FONT_MAP", lg_PANGO_IS_FONT_MAP, 1, 0, 0, "(PANGO_IS_FONT_MAP obj): #t if obj is a PangoFontMap*", pl_bt);
+  s7_define_typed_function(sc, "PANGO_IS_LAYOUT", lg_PANGO_IS_LAYOUT, 1, 0, 0, "(PANGO_IS_LAYOUT obj): #t if obj is a PangoLayout*", pl_bt);
+  s7_define_typed_function(sc, "G_IS_OBJECT", lg_G_IS_OBJECT, 1, 0, 0, "(G_IS_OBJECT obj): #t if obj is a GObject*", pl_bt);
+  s7_define_typed_function(sc, "GDK_IS_SCREEN", lg_GDK_IS_SCREEN, 1, 0, 0, "(GDK_IS_SCREEN obj): #t if obj is a GdkScreen*", pl_bt);
+  s7_define_typed_function(sc, "GDK_IS_DISPLAY", lg_GDK_IS_DISPLAY, 1, 0, 0, "(GDK_IS_DISPLAY obj): #t if obj is a GdkDisplay*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_FILE_CHOOSER_DIALOG", lg_GTK_IS_FILE_CHOOSER_DIALOG, 1, 0, 0, "(GTK_IS_FILE_CHOOSER_DIALOG obj): #t if obj is a GtkFileChooserDialog*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_FILE_CHOOSER_WIDGET", lg_GTK_IS_FILE_CHOOSER_WIDGET, 1, 0, 0, "(GTK_IS_FILE_CHOOSER_WIDGET obj): #t if obj is a GtkFileChooserWidget*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TREE_MODEL_FILTER", lg_GTK_IS_TREE_MODEL_FILTER, 1, 0, 0, "(GTK_IS_TREE_MODEL_FILTER obj): #t if obj is a GtkTreeModelFilter*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_COMBO_BOX", lg_GTK_IS_COMBO_BOX, 1, 0, 0, "(GTK_IS_COMBO_BOX obj): #t if obj is a GtkComboBox*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_EXPANDER", lg_GTK_IS_EXPANDER, 1, 0, 0, "(GTK_IS_EXPANDER obj): #t if obj is a GtkExpander*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_FONT_BUTTON", lg_GTK_IS_FONT_BUTTON, 1, 0, 0, "(GTK_IS_FONT_BUTTON obj): #t if obj is a GtkFontButton*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_COLOR_BUTTON", lg_GTK_IS_COLOR_BUTTON, 1, 0, 0, "(GTK_IS_COLOR_BUTTON obj): #t if obj is a GtkColorButton*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ENTRY_COMPLETION", lg_GTK_IS_ENTRY_COMPLETION, 1, 0, 0, "(GTK_IS_ENTRY_COMPLETION obj): #t if obj is a GtkEntryCompletion*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_RADIO_TOOL_BUTTON", lg_GTK_IS_RADIO_TOOL_BUTTON, 1, 0, 0, "(GTK_IS_RADIO_TOOL_BUTTON obj): #t if obj is a GtkRadioToolButton*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_SEPARATOR_TOOL_ITEM", lg_GTK_IS_SEPARATOR_TOOL_ITEM, 1, 0, 0, "(GTK_IS_SEPARATOR_TOOL_ITEM obj): #t if obj is a GtkSeparatorToolItem*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TOGGLE_TOOL_BUTTON", lg_GTK_IS_TOGGLE_TOOL_BUTTON, 1, 0, 0, "(GTK_IS_TOGGLE_TOOL_BUTTON obj): #t if obj is a GtkToggleToolButton*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_FILE_FILTER", lg_GTK_IS_FILE_FILTER, 1, 0, 0, "(GTK_IS_FILE_FILTER obj): #t if obj is a GtkFileFilter*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CELL_LAYOUT", lg_GTK_IS_CELL_LAYOUT, 1, 0, 0, "(GTK_IS_CELL_LAYOUT obj): #t if obj is a GtkCellLayout*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CLIPBOARD", lg_GTK_IS_CLIPBOARD, 1, 0, 0, "(GTK_IS_CLIPBOARD obj): #t if obj is a GtkClipboard*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_FILE_CHOOSER", lg_GTK_IS_FILE_CHOOSER, 1, 0, 0, "(GTK_IS_FILE_CHOOSER obj): #t if obj is a GtkFileChooser*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ICON_THEME", lg_GTK_IS_ICON_THEME, 1, 0, 0, "(GTK_IS_ICON_THEME obj): #t if obj is a GtkIconTheme*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TOOL_BUTTON", lg_GTK_IS_TOOL_BUTTON, 1, 0, 0, "(GTK_IS_TOOL_BUTTON obj): #t if obj is a GtkToolButton*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TOOL_ITEM", lg_GTK_IS_TOOL_ITEM, 1, 0, 0, "(GTK_IS_TOOL_ITEM obj): #t if obj is a GtkToolItem*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ACCEL_MAP", lg_GTK_IS_ACCEL_MAP, 1, 0, 0, "(GTK_IS_ACCEL_MAP obj): #t if obj is a GtkAccelMap", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CELL_VIEW", lg_GTK_IS_CELL_VIEW, 1, 0, 0, "(GTK_IS_CELL_VIEW obj): #t if obj is a GtkCellView*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ABOUT_DIALOG", lg_GTK_IS_ABOUT_DIALOG, 1, 0, 0, "(GTK_IS_ABOUT_DIALOG obj): #t if obj is a GtkAboutDialog*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CELL_RENDERER_COMBO", lg_GTK_IS_CELL_RENDERER_COMBO, 1, 0, 0, "(GTK_IS_CELL_RENDERER_COMBO obj): #t if obj is a GtkCellRendererCombo*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CELL_RENDERER_PROGRESS", lg_GTK_IS_CELL_RENDERER_PROGRESS, 1, 0, 0, "(GTK_IS_CELL_RENDERER_PROGRESS obj): #t if obj is a GtkCellRendererProgress*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ICON_VIEW", lg_GTK_IS_ICON_VIEW, 1, 0, 0, "(GTK_IS_ICON_VIEW obj): #t if obj is a GtkIconView*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_FILE_CHOOSER_BUTTON", lg_GTK_IS_FILE_CHOOSER_BUTTON, 1, 0, 0, "(GTK_IS_FILE_CHOOSER_BUTTON obj): #t if obj is a GtkFileChooserButton*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_MENU_TOOL_BUTTON", lg_GTK_IS_MENU_TOOL_BUTTON, 1, 0, 0, "(GTK_IS_MENU_TOOL_BUTTON obj): #t if obj is a GtkMenuToolButton*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ASSISTANT", lg_GTK_IS_ASSISTANT, 1, 0, 0, "(GTK_IS_ASSISTANT obj): #t if obj is a GtkAssistant*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CELL_RENDERER_ACCEL", lg_GTK_IS_CELL_RENDERER_ACCEL, 1, 0, 0, "(GTK_IS_CELL_RENDERER_ACCEL obj): #t if obj is a GtkCellRendererAccel*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CELL_RENDERER_SPIN", lg_GTK_IS_CELL_RENDERER_SPIN, 1, 0, 0, "(GTK_IS_CELL_RENDERER_SPIN obj): #t if obj is a GtkCellRendererSpin*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_LINK_BUTTON", lg_GTK_IS_LINK_BUTTON, 1, 0, 0, "(GTK_IS_LINK_BUTTON obj): #t if obj is a GtkLinkButton*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_RECENT_CHOOSER_DIALOG", lg_GTK_IS_RECENT_CHOOSER_DIALOG, 1, 0, 0, "(GTK_IS_RECENT_CHOOSER_DIALOG obj): #t if obj is a GtkRecentChooserDialog*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_RECENT_CHOOSER", lg_GTK_IS_RECENT_CHOOSER, 1, 0, 0, "(GTK_IS_RECENT_CHOOSER obj): #t if obj is a GtkRecentChooser*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_RECENT_CHOOSER_MENU", lg_GTK_IS_RECENT_CHOOSER_MENU, 1, 0, 0, "(GTK_IS_RECENT_CHOOSER_MENU obj): #t if obj is a GtkRecentChooserMenu*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_RECENT_CHOOSER_WIDGET", lg_GTK_IS_RECENT_CHOOSER_WIDGET, 1, 0, 0, "(GTK_IS_RECENT_CHOOSER_WIDGET obj): #t if obj is a GtkRecentChooserWidget*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_RECENT_FILTER", lg_GTK_IS_RECENT_FILTER, 1, 0, 0, "(GTK_IS_RECENT_FILTER obj): #t if obj is a GtkRecentFilter*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_RECENT_MANAGER", lg_GTK_IS_RECENT_MANAGER, 1, 0, 0, "(GTK_IS_RECENT_MANAGER obj): #t if obj is a GtkRecentManager*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_PRINT_CONTEXT", lg_GTK_IS_PRINT_CONTEXT, 1, 0, 0, "(GTK_IS_PRINT_CONTEXT obj): #t if obj is a GtkPrintContext*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_PRINT_OPERATION", lg_GTK_IS_PRINT_OPERATION, 1, 0, 0, "(GTK_IS_PRINT_OPERATION obj): #t if obj is a GtkPrintOperation*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_PRINT_SETTINGS", lg_GTK_IS_PRINT_SETTINGS, 1, 0, 0, "(GTK_IS_PRINT_SETTINGS obj): #t if obj is a GtkPrintSettings*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TOOLTIP", lg_GTK_IS_TOOLTIP, 1, 0, 0, "(GTK_IS_TOOLTIP obj): #t if obj is a GtkTooltip*", pl_bt);
+#if GTK_CHECK_VERSION(2, 18, 0)
+  s7_define_typed_function(sc, "GTK_IS_INFO_BAR", lg_GTK_IS_INFO_BAR, 1, 0, 0, "(GTK_IS_INFO_BAR obj): #t if obj is a GtkInfoBar*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ENTRY_BUFFER", lg_GTK_IS_ENTRY_BUFFER, 1, 0, 0, "(GTK_IS_ENTRY_BUFFER obj): #t if obj is a GtkEntryBuffer*", pl_bt);
+#endif
+
+#if GTK_CHECK_VERSION(2, 20, 0)
+  s7_define_typed_function(sc, "GTK_IS_SPINNER", lg_GTK_IS_SPINNER, 1, 0, 0, "(GTK_IS_SPINNER obj): #t if obj is a GtkSpinner*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_CELL_RENDERER_SPINNER", lg_GTK_IS_CELL_RENDERER_SPINNER, 1, 0, 0, "(GTK_IS_CELL_RENDERER_SPINNER obj): #t if obj is a GtkCellRendererSpinner*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TOOL_PALETTE", lg_GTK_IS_TOOL_PALETTE, 1, 0, 0, "(GTK_IS_TOOL_PALETTE obj): #t if obj is a GtkToolPalette*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TOOL_ITEM_GROUP", lg_GTK_IS_TOOL_ITEM_GROUP, 1, 0, 0, "(GTK_IS_TOOL_ITEM_GROUP obj): #t if obj is a GtkToolItemGroup*", pl_bt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 0, 0)
+  s7_define_typed_function(sc, "GTK_IS_COMBO_BOX_TEXT", lg_GTK_IS_COMBO_BOX_TEXT, 1, 0, 0, "(GTK_IS_COMBO_BOX_TEXT obj): #t if obj is a GtkComboBoxText*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_GRID", lg_GTK_IS_GRID, 1, 0, 0, "(GTK_IS_GRID obj): #t if obj is a GtkGrid*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_SCROLLABLE", lg_GTK_IS_SCROLLABLE, 1, 0, 0, "(GTK_IS_SCROLLABLE obj): #t if obj is a GtkScrollable*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_SWITCH", lg_GTK_IS_SWITCH, 1, 0, 0, "(GTK_IS_SWITCH obj): #t if obj is a GtkSwitch*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ORIENTABLE", lg_GTK_IS_ORIENTABLE, 1, 0, 0, "(GTK_IS_ORIENTABLE obj): #t if obj is a GtkOrientable*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_WINDOW_GROUP", lg_GTK_IS_WINDOW_GROUP, 1, 0, 0, "(GTK_IS_WINDOW_GROUP obj): #t if obj is a GtkWindowGroup*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_TOOL_SHELL", lg_GTK_IS_TOOL_SHELL, 1, 0, 0, "(GTK_IS_TOOL_SHELL obj): #t if obj is a GtkToolShell*", pl_bt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 2, 0)
+  s7_define_typed_function(sc, "GTK_IS_OVERLAY", lg_GTK_IS_OVERLAY, 1, 0, 0, "(GTK_IS_OVERLAY obj): #t if obj is a GtkOverlay*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_FONT_CHOOSER", lg_GTK_IS_FONT_CHOOSER, 1, 0, 0, "(GTK_IS_FONT_CHOOSER obj): #t if obj is a GtkFontChooser*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_FONT_CHOOSER_DIALOG", lg_GTK_IS_FONT_CHOOSER_DIALOG, 1, 0, 0, "(GTK_IS_FONT_CHOOSER_DIALOG obj): #t if obj is a GtkFontChooserDialog*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_FONT_CHOOSER_WIDGET", lg_GTK_IS_FONT_CHOOSER_WIDGET, 1, 0, 0, "(GTK_IS_FONT_CHOOSER_WIDGET obj): #t if obj is a GtkFontChooserWidget*", pl_bt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 4, 0)
+  s7_define_typed_function(sc, "GTK_IS_APPLICATION_WINDOW", lg_GTK_IS_APPLICATION_WINDOW, 1, 0, 0, "(GTK_IS_APPLICATION_WINDOW obj): #t if obj is a GtkApplicationWindow*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_COLOR_CHOOSER_DIALOG", lg_GTK_IS_COLOR_CHOOSER_DIALOG, 1, 0, 0, "(GTK_IS_COLOR_CHOOSER_DIALOG obj): #t if obj is a GtkColorChooserDialog*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_COLOR_CHOOSER_WIDGET", lg_GTK_IS_COLOR_CHOOSER_WIDGET, 1, 0, 0, "(GTK_IS_COLOR_CHOOSER_WIDGET obj): #t if obj is a GtkColorWidget*", pl_bt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 6, 0)
+  s7_define_typed_function(sc, "GTK_IS_MENU_BUTTON", lg_GTK_IS_MENU_BUTTON, 1, 0, 0, "(GTK_IS_MENU_BUTTON obj): #t if obj is a GtkMenuButton*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_SEARCH_ENTRY", lg_GTK_IS_SEARCH_ENTRY, 1, 0, 0, "(GTK_IS_SEARCH_ENTRY obj): #t if obj is a GtkWidget*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_LEVEL_BAR", lg_GTK_IS_LEVEL_BAR, 1, 0, 0, "(GTK_IS_LEVEL_BAR obj): #t if obj is a GtkLevelBar*", pl_bt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 10, 0)
+  s7_define_typed_function(sc, "GTK_IS_PLACES_SIDEBAR", lg_GTK_IS_PLACES_SIDEBAR, 1, 0, 0, "(GTK_IS_PLACES_SIDEBAR obj): #t if obj is a GtkPlacesSidebar*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_STACK_SWITCHER", lg_GTK_IS_STACK_SWITCHER, 1, 0, 0, "(GTK_IS_STACK_SWITCHER obj): #t if obj is a GtkStackSwitcher*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_STACK", lg_GTK_IS_STACK, 1, 0, 0, "(GTK_IS_STACK obj): #t if obj is a GtkStack*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_REVEALER", lg_GTK_IS_REVEALER, 1, 0, 0, "(GTK_IS_REVEALER obj): #t if obj is a GtkRevealer*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_HEADER_BAR", lg_GTK_IS_HEADER_BAR, 1, 0, 0, "(GTK_IS_HEADER_BAR obj): #t if obj is a GtkHeaderBar*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_LIST_BOX", lg_GTK_IS_LIST_BOX, 1, 0, 0, "(GTK_IS_LIST_BOX obj): #t if obj is a GtkListBox*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_LIST_BOX_ROW", lg_GTK_IS_LIST_BOX_ROW, 1, 0, 0, "(GTK_IS_LIST_BOX_ROW obj): #t if obj is a GtkListBoxRow*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_SEARCH_BAR", lg_GTK_IS_SEARCH_BAR, 1, 0, 0, "(GTK_IS_SEARCH_BAR obj): #t if obj is a GtkSearchBar*", pl_bt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 12, 0)
+  s7_define_typed_function(sc, "GTK_IS_FLOW_BOX", lg_GTK_IS_FLOW_BOX, 1, 0, 0, "(GTK_IS_FLOW_BOX obj): #t if obj is a GtkFlowBox*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_FLOW_BOX_CHILD", lg_GTK_IS_FLOW_BOX_CHILD, 1, 0, 0, "(GTK_IS_FLOW_BOX_CHILD obj): #t if obj is a GtkFlowBoxChild*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_ACTION_BAR", lg_GTK_IS_ACTION_BAR, 1, 0, 0, "(GTK_IS_ACTION_BAR obj): #t if obj is a GtkActionBar*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_POPOVER", lg_GTK_IS_POPOVER, 1, 0, 0, "(GTK_IS_POPOVER obj): #t if obj is a GtkPopover*", pl_bt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 14, 0)
+  s7_define_typed_function(sc, "GTK_IS_GESTURE", lg_GTK_IS_GESTURE, 1, 0, 0, "(GTK_IS_GESTURE obj): #t if obj is a GtkGesture*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_GESTURE_DRAG", lg_GTK_IS_GESTURE_DRAG, 1, 0, 0, "(GTK_IS_GESTURE_DRAG obj): #t if obj is a GtkGestureDrag*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_GESTURE_LONG_PRESS", lg_GTK_IS_GESTURE_LONG_PRESS, 1, 0, 0, "(GTK_IS_GESTURE_LONG_PRESS obj): #t if obj is a GtkGestureLongPress*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_GESTURE_ZOOM", lg_GTK_IS_GESTURE_ZOOM, 1, 0, 0, "(GTK_IS_GESTURE_ZOOM obj): #t if obj is a GtkGestureZoom*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_GESTURE_SWIPE", lg_GTK_IS_GESTURE_SWIPE, 1, 0, 0, "(GTK_IS_GESTURE_SWIPE obj): #t if obj is a GtkGestureSwipe*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_GESTURE_SINGLE", lg_GTK_IS_GESTURE_SINGLE, 1, 0, 0, "(GTK_IS_GESTURE_SINGLE obj): #t if obj is a GtkGestureSingle*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_GESTURE_PAN", lg_GTK_IS_GESTURE_PAN, 1, 0, 0, "(GTK_IS_GESTURE_PAN obj): #t if obj is a GtkGesturePan*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_GESTURE_MULTI_PRESS", lg_GTK_IS_GESTURE_MULTI_PRESS, 1, 0, 0, "(GTK_IS_GESTURE_MULTI_PRESS obj): #t if obj is a GtkGestureMultiPress*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_GESTURE_ROTATE", lg_GTK_IS_GESTURE_ROTATE, 1, 0, 0, "(GTK_IS_GESTURE_ROTATE obj): #t if obj is a GtkGestureRotate*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_EVENT_CONTROLLER", lg_GTK_IS_EVENT_CONTROLLER, 1, 0, 0, "(GTK_IS_EVENT_CONTROLLER obj): #t if obj is a GtkEventController*", pl_bt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 16, 0)
+  s7_define_typed_function(sc, "GTK_IS_GL_AREA", lg_GTK_IS_GL_AREA, 1, 0, 0, "(GTK_IS_GL_AREA obj): #t if obj is a GtkGLArea*", pl_bt);
+  s7_define_typed_function(sc, "GDK_IS_GL_CONTEXT", lg_GDK_IS_GL_CONTEXT, 1, 0, 0, "(GDK_IS_GL_CONTEXT obj): #t if obj is a GdkGLContext*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_POPOVER_MENU", lg_GTK_IS_POPOVER_MENU, 1, 0, 0, "(GTK_IS_POPOVER_MENU obj): #t if obj is a GtkPopoverMenu*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_STACK_SIDEBAR", lg_GTK_IS_STACK_SIDEBAR, 1, 0, 0, "(GTK_IS_STACK_SIDEBAR obj): #t if obj is a GtkStackSidebar*", pl_bt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 20, 0)
+  s7_define_typed_function(sc, "GDK_IS_SEAT", lg_GDK_IS_SEAT, 1, 0, 0, "(GDK_IS_SEAT obj): #t if obj is a GdkSeat*", pl_bt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 22, 0)
+  s7_define_typed_function(sc, "GDK_IS_DEVICE_TOOL", lg_GDK_IS_DEVICE_TOOL, 1, 0, 0, "(GDK_IS_DEVICE_TOOL obj): #t if obj is a GdkDeviceTool*", pl_bt);
+  s7_define_typed_function(sc, "GDK_IS_MONITOR", lg_GDK_IS_MONITOR, 1, 0, 0, "(GDK_IS_MONITOR obj): #t if obj is a GdkMonitor*", pl_bt);
+  s7_define_typed_function(sc, "GDK_IS_DRAWING_CONTEXT", lg_GDK_IS_DRAWING_CONTEXT, 1, 0, 0, "(GDK_IS_DRAWING_CONTEXT obj): #t if obj is a GdkDrawingContext*", pl_bt);
+  s7_define_typed_function(sc, "GDK_IS_DEVICE_PAD", lg_GDK_IS_DEVICE_PAD, 1, 0, 0, "(GDK_IS_DEVICE_PAD obj): #t if obj is a GdkDevicePad*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_PAD_CONTROLLER", lg_GTK_IS_PAD_CONTROLLER, 1, 0, 0, "(GTK_IS_PAD_CONTROLLER obj): #t if obj is a GtkPadController*", pl_bt);
+  s7_define_typed_function(sc, "GTK_IS_SHORTCUT_LABEL", lg_GTK_IS_SHORTCUT_LABEL, 1, 0, 0, "(GTK_IS_SHORTCUT_LABEL obj): #t if obj is a GtkShortcutLabel*", pl_bt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 99, 0)
+  s7_define_typed_function(sc, "GTK_IS_CENTER_BOX", lg_GTK_IS_CENTER_BOX, 1, 0, 0, "(GTK_IS_CENTER_BOX obj): #t if obj is a GtkCenterBox*", pl_bt);
+#endif
+
+}
+
+static void define_integers(s7_scheme *sc)
+{
+  s7_pointer cur_env;
+  cur_env = s7_curlet(sc);
+
+#if !GLIB_CHECK_VERSION(2,35,0)
+  g_type_init();
+#endif
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_NORMALIZE_DEFAULT"), s7_make_integer(sc, G_NORMALIZE_DEFAULT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_NORMALIZE_NFD"), s7_make_integer(sc, G_NORMALIZE_NFD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_NORMALIZE_DEFAULT_COMPOSE"), s7_make_integer(sc, G_NORMALIZE_DEFAULT_COMPOSE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_NORMALIZE_NFC"), s7_make_integer(sc, G_NORMALIZE_NFC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_NORMALIZE_ALL"), s7_make_integer(sc, G_NORMALIZE_ALL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_NORMALIZE_NFKD"), s7_make_integer(sc, G_NORMALIZE_NFKD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_NORMALIZE_ALL_COMPOSE"), s7_make_integer(sc, G_NORMALIZE_ALL_COMPOSE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_NORMALIZE_NFKC"), s7_make_integer(sc, G_NORMALIZE_NFKC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_SIGNAL_RUN_FIRST"), s7_make_integer(sc, G_SIGNAL_RUN_FIRST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_SIGNAL_RUN_LAST"), s7_make_integer(sc, G_SIGNAL_RUN_LAST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_SIGNAL_RUN_CLEANUP"), s7_make_integer(sc, G_SIGNAL_RUN_CLEANUP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_SIGNAL_NO_RECURSE"), s7_make_integer(sc, G_SIGNAL_NO_RECURSE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_SIGNAL_DETAILED"), s7_make_integer(sc, G_SIGNAL_DETAILED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_SIGNAL_ACTION"), s7_make_integer(sc, G_SIGNAL_ACTION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_SIGNAL_NO_HOOKS"), s7_make_integer(sc, G_SIGNAL_NO_HOOKS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_CONNECT_AFTER"), s7_make_integer(sc, G_CONNECT_AFTER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_CONNECT_SWAPPED"), s7_make_integer(sc, G_CONNECT_SWAPPED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_SIGNAL_MATCH_ID"), s7_make_integer(sc, G_SIGNAL_MATCH_ID));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_SIGNAL_MATCH_DETAIL"), s7_make_integer(sc, G_SIGNAL_MATCH_DETAIL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_SIGNAL_MATCH_CLOSURE"), s7_make_integer(sc, G_SIGNAL_MATCH_CLOSURE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_SIGNAL_MATCH_FUNC"), s7_make_integer(sc, G_SIGNAL_MATCH_FUNC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_SIGNAL_MATCH_DATA"), s7_make_integer(sc, G_SIGNAL_MATCH_DATA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_SIGNAL_MATCH_UNBLOCKED"), s7_make_integer(sc, G_SIGNAL_MATCH_UNBLOCKED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_X_CURSOR"), s7_make_integer(sc, GDK_X_CURSOR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ARROW"), s7_make_integer(sc, GDK_ARROW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BASED_ARROW_DOWN"), s7_make_integer(sc, GDK_BASED_ARROW_DOWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BASED_ARROW_UP"), s7_make_integer(sc, GDK_BASED_ARROW_UP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BOAT"), s7_make_integer(sc, GDK_BOAT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BOGOSITY"), s7_make_integer(sc, GDK_BOGOSITY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BOTTOM_LEFT_CORNER"), s7_make_integer(sc, GDK_BOTTOM_LEFT_CORNER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BOTTOM_RIGHT_CORNER"), s7_make_integer(sc, GDK_BOTTOM_RIGHT_CORNER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BOTTOM_SIDE"), s7_make_integer(sc, GDK_BOTTOM_SIDE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BOTTOM_TEE"), s7_make_integer(sc, GDK_BOTTOM_TEE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BOX_SPIRAL"), s7_make_integer(sc, GDK_BOX_SPIRAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CENTER_PTR"), s7_make_integer(sc, GDK_CENTER_PTR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CIRCLE"), s7_make_integer(sc, GDK_CIRCLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CLOCK"), s7_make_integer(sc, GDK_CLOCK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_COFFEE_MUG"), s7_make_integer(sc, GDK_COFFEE_MUG));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CROSS"), s7_make_integer(sc, GDK_CROSS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CROSS_REVERSE"), s7_make_integer(sc, GDK_CROSS_REVERSE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CROSSHAIR"), s7_make_integer(sc, GDK_CROSSHAIR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DIAMOND_CROSS"), s7_make_integer(sc, GDK_DIAMOND_CROSS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DOT"), s7_make_integer(sc, GDK_DOT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DOTBOX"), s7_make_integer(sc, GDK_DOTBOX));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DOUBLE_ARROW"), s7_make_integer(sc, GDK_DOUBLE_ARROW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DRAFT_LARGE"), s7_make_integer(sc, GDK_DRAFT_LARGE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DRAFT_SMALL"), s7_make_integer(sc, GDK_DRAFT_SMALL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DRAPED_BOX"), s7_make_integer(sc, GDK_DRAPED_BOX));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_EXCHANGE"), s7_make_integer(sc, GDK_EXCHANGE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_FLEUR"), s7_make_integer(sc, GDK_FLEUR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GOBBLER"), s7_make_integer(sc, GDK_GOBBLER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GUMBY"), s7_make_integer(sc, GDK_GUMBY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_HAND1"), s7_make_integer(sc, GDK_HAND1));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_HAND2"), s7_make_integer(sc, GDK_HAND2));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_HEART"), s7_make_integer(sc, GDK_HEART));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ICON"), s7_make_integer(sc, GDK_ICON));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_IRON_CROSS"), s7_make_integer(sc, GDK_IRON_CROSS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_LEFT_PTR"), s7_make_integer(sc, GDK_LEFT_PTR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_LEFT_SIDE"), s7_make_integer(sc, GDK_LEFT_SIDE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_LEFT_TEE"), s7_make_integer(sc, GDK_LEFT_TEE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_LEFTBUTTON"), s7_make_integer(sc, GDK_LEFTBUTTON));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_LL_ANGLE"), s7_make_integer(sc, GDK_LL_ANGLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_LR_ANGLE"), s7_make_integer(sc, GDK_LR_ANGLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MAN"), s7_make_integer(sc, GDK_MAN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MIDDLEBUTTON"), s7_make_integer(sc, GDK_MIDDLEBUTTON));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MOUSE"), s7_make_integer(sc, GDK_MOUSE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PENCIL"), s7_make_integer(sc, GDK_PENCIL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PIRATE"), s7_make_integer(sc, GDK_PIRATE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PLUS"), s7_make_integer(sc, GDK_PLUS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_QUESTION_ARROW"), s7_make_integer(sc, GDK_QUESTION_ARROW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_RIGHT_PTR"), s7_make_integer(sc, GDK_RIGHT_PTR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_RIGHT_SIDE"), s7_make_integer(sc, GDK_RIGHT_SIDE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_RIGHT_TEE"), s7_make_integer(sc, GDK_RIGHT_TEE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_RIGHTBUTTON"), s7_make_integer(sc, GDK_RIGHTBUTTON));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_RTL_LOGO"), s7_make_integer(sc, GDK_RTL_LOGO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SAILBOAT"), s7_make_integer(sc, GDK_SAILBOAT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SB_DOWN_ARROW"), s7_make_integer(sc, GDK_SB_DOWN_ARROW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SB_H_DOUBLE_ARROW"), s7_make_integer(sc, GDK_SB_H_DOUBLE_ARROW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SB_LEFT_ARROW"), s7_make_integer(sc, GDK_SB_LEFT_ARROW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SB_RIGHT_ARROW"), s7_make_integer(sc, GDK_SB_RIGHT_ARROW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SB_UP_ARROW"), s7_make_integer(sc, GDK_SB_UP_ARROW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SB_V_DOUBLE_ARROW"), s7_make_integer(sc, GDK_SB_V_DOUBLE_ARROW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SHUTTLE"), s7_make_integer(sc, GDK_SHUTTLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SIZING"), s7_make_integer(sc, GDK_SIZING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SPIDER"), s7_make_integer(sc, GDK_SPIDER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SPRAYCAN"), s7_make_integer(sc, GDK_SPRAYCAN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_STAR"), s7_make_integer(sc, GDK_STAR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TARGET"), s7_make_integer(sc, GDK_TARGET));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TCROSS"), s7_make_integer(sc, GDK_TCROSS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOP_LEFT_ARROW"), s7_make_integer(sc, GDK_TOP_LEFT_ARROW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOP_LEFT_CORNER"), s7_make_integer(sc, GDK_TOP_LEFT_CORNER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOP_RIGHT_CORNER"), s7_make_integer(sc, GDK_TOP_RIGHT_CORNER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOP_SIDE"), s7_make_integer(sc, GDK_TOP_SIDE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOP_TEE"), s7_make_integer(sc, GDK_TOP_TEE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TREK"), s7_make_integer(sc, GDK_TREK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_UL_ANGLE"), s7_make_integer(sc, GDK_UL_ANGLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_UMBRELLA"), s7_make_integer(sc, GDK_UMBRELLA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_UR_ANGLE"), s7_make_integer(sc, GDK_UR_ANGLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WATCH"), s7_make_integer(sc, GDK_WATCH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_XTERM"), s7_make_integer(sc, GDK_XTERM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_LAST_CURSOR "), s7_make_integer(sc, GDK_LAST_CURSOR ));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ACTION_DEFAULT"), s7_make_integer(sc, GDK_ACTION_DEFAULT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ACTION_COPY"), s7_make_integer(sc, GDK_ACTION_COPY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ACTION_MOVE"), s7_make_integer(sc, GDK_ACTION_MOVE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ACTION_LINK"), s7_make_integer(sc, GDK_ACTION_LINK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ACTION_PRIVATE"), s7_make_integer(sc, GDK_ACTION_PRIVATE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ACTION_ASK"), s7_make_integer(sc, GDK_ACTION_ASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PRIORITY_EVENTS"), s7_make_integer(sc, GDK_PRIORITY_EVENTS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PRIORITY_REDRAW"), s7_make_integer(sc, GDK_PRIORITY_REDRAW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_NOTHING"), s7_make_integer(sc, GDK_NOTHING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DELETE"), s7_make_integer(sc, GDK_DELETE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DESTROY"), s7_make_integer(sc, GDK_DESTROY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_EXPOSE"), s7_make_integer(sc, GDK_EXPOSE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MOTION_NOTIFY"), s7_make_integer(sc, GDK_MOTION_NOTIFY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BUTTON_PRESS"), s7_make_integer(sc, GDK_BUTTON_PRESS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_2BUTTON_PRESS"), s7_make_integer(sc, GDK_2BUTTON_PRESS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_3BUTTON_PRESS"), s7_make_integer(sc, GDK_3BUTTON_PRESS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BUTTON_RELEASE"), s7_make_integer(sc, GDK_BUTTON_RELEASE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_PRESS"), s7_make_integer(sc, GDK_KEY_PRESS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_RELEASE"), s7_make_integer(sc, GDK_KEY_RELEASE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ENTER_NOTIFY"), s7_make_integer(sc, GDK_ENTER_NOTIFY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_LEAVE_NOTIFY"), s7_make_integer(sc, GDK_LEAVE_NOTIFY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_FOCUS_CHANGE"), s7_make_integer(sc, GDK_FOCUS_CHANGE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CONFIGURE"), s7_make_integer(sc, GDK_CONFIGURE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MAP"), s7_make_integer(sc, GDK_MAP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_UNMAP"), s7_make_integer(sc, GDK_UNMAP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PROPERTY_NOTIFY"), s7_make_integer(sc, GDK_PROPERTY_NOTIFY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SELECTION_CLEAR"), s7_make_integer(sc, GDK_SELECTION_CLEAR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SELECTION_REQUEST"), s7_make_integer(sc, GDK_SELECTION_REQUEST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SELECTION_NOTIFY"), s7_make_integer(sc, GDK_SELECTION_NOTIFY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PROXIMITY_IN"), s7_make_integer(sc, GDK_PROXIMITY_IN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PROXIMITY_OUT"), s7_make_integer(sc, GDK_PROXIMITY_OUT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DRAG_ENTER"), s7_make_integer(sc, GDK_DRAG_ENTER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DRAG_LEAVE"), s7_make_integer(sc, GDK_DRAG_LEAVE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DRAG_MOTION"), s7_make_integer(sc, GDK_DRAG_MOTION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DRAG_STATUS"), s7_make_integer(sc, GDK_DRAG_STATUS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DROP_START"), s7_make_integer(sc, GDK_DROP_START));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DROP_FINISHED"), s7_make_integer(sc, GDK_DROP_FINISHED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CLIENT_EVENT"), s7_make_integer(sc, GDK_CLIENT_EVENT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_VISIBILITY_NOTIFY"), s7_make_integer(sc, GDK_VISIBILITY_NOTIFY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SCROLL"), s7_make_integer(sc, GDK_SCROLL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_STATE"), s7_make_integer(sc, GDK_WINDOW_STATE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SETTING"), s7_make_integer(sc, GDK_SETTING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_OWNER_CHANGE"), s7_make_integer(sc, GDK_OWNER_CHANGE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAB_BROKEN"), s7_make_integer(sc, GDK_GRAB_BROKEN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_EXPOSURE_MASK"), s7_make_integer(sc, GDK_EXPOSURE_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_POINTER_MOTION_MASK"), s7_make_integer(sc, GDK_POINTER_MOTION_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BUTTON_MOTION_MASK"), s7_make_integer(sc, GDK_BUTTON_MOTION_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BUTTON1_MOTION_MASK"), s7_make_integer(sc, GDK_BUTTON1_MOTION_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BUTTON2_MOTION_MASK"), s7_make_integer(sc, GDK_BUTTON2_MOTION_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BUTTON3_MOTION_MASK"), s7_make_integer(sc, GDK_BUTTON3_MOTION_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BUTTON_PRESS_MASK"), s7_make_integer(sc, GDK_BUTTON_PRESS_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BUTTON_RELEASE_MASK"), s7_make_integer(sc, GDK_BUTTON_RELEASE_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_PRESS_MASK"), s7_make_integer(sc, GDK_KEY_PRESS_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_RELEASE_MASK"), s7_make_integer(sc, GDK_KEY_RELEASE_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ENTER_NOTIFY_MASK"), s7_make_integer(sc, GDK_ENTER_NOTIFY_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_LEAVE_NOTIFY_MASK"), s7_make_integer(sc, GDK_LEAVE_NOTIFY_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_FOCUS_CHANGE_MASK"), s7_make_integer(sc, GDK_FOCUS_CHANGE_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_STRUCTURE_MASK"), s7_make_integer(sc, GDK_STRUCTURE_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PROPERTY_CHANGE_MASK"), s7_make_integer(sc, GDK_PROPERTY_CHANGE_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_VISIBILITY_NOTIFY_MASK"), s7_make_integer(sc, GDK_VISIBILITY_NOTIFY_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PROXIMITY_IN_MASK"), s7_make_integer(sc, GDK_PROXIMITY_IN_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PROXIMITY_OUT_MASK"), s7_make_integer(sc, GDK_PROXIMITY_OUT_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SUBSTRUCTURE_MASK"), s7_make_integer(sc, GDK_SUBSTRUCTURE_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SCROLL_MASK"), s7_make_integer(sc, GDK_SCROLL_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ALL_EVENTS_MASK"), s7_make_integer(sc, GDK_ALL_EVENTS_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SCROLL_UP"), s7_make_integer(sc, GDK_SCROLL_UP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SCROLL_DOWN"), s7_make_integer(sc, GDK_SCROLL_DOWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SCROLL_LEFT"), s7_make_integer(sc, GDK_SCROLL_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SCROLL_RIGHT"), s7_make_integer(sc, GDK_SCROLL_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_NOTIFY_ANCESTOR"), s7_make_integer(sc, GDK_NOTIFY_ANCESTOR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_NOTIFY_VIRTUAL"), s7_make_integer(sc, GDK_NOTIFY_VIRTUAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_NOTIFY_INFERIOR"), s7_make_integer(sc, GDK_NOTIFY_INFERIOR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_NOTIFY_NONLINEAR"), s7_make_integer(sc, GDK_NOTIFY_NONLINEAR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_NOTIFY_NONLINEAR_VIRTUAL"), s7_make_integer(sc, GDK_NOTIFY_NONLINEAR_VIRTUAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_NOTIFY_UNKNOWN"), s7_make_integer(sc, GDK_NOTIFY_UNKNOWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CROSSING_NORMAL"), s7_make_integer(sc, GDK_CROSSING_NORMAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CROSSING_GRAB"), s7_make_integer(sc, GDK_CROSSING_GRAB));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CROSSING_UNGRAB"), s7_make_integer(sc, GDK_CROSSING_UNGRAB));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PROPERTY_NEW_VALUE"), s7_make_integer(sc, GDK_PROPERTY_NEW_VALUE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PROPERTY_DELETE"), s7_make_integer(sc, GDK_PROPERTY_DELETE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_STATE_WITHDRAWN"), s7_make_integer(sc, GDK_WINDOW_STATE_WITHDRAWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_STATE_ICONIFIED"), s7_make_integer(sc, GDK_WINDOW_STATE_ICONIFIED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_STATE_MAXIMIZED"), s7_make_integer(sc, GDK_WINDOW_STATE_MAXIMIZED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_STATE_STICKY"), s7_make_integer(sc, GDK_WINDOW_STATE_STICKY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SETTING_ACTION_NEW"), s7_make_integer(sc, GDK_SETTING_ACTION_NEW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SETTING_ACTION_CHANGED"), s7_make_integer(sc, GDK_SETTING_ACTION_CHANGED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SETTING_ACTION_DELETED"), s7_make_integer(sc, GDK_SETTING_ACTION_DELETED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PROP_MODE_REPLACE"), s7_make_integer(sc, GDK_PROP_MODE_REPLACE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PROP_MODE_PREPEND"), s7_make_integer(sc, GDK_PROP_MODE_PREPEND));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PROP_MODE_APPEND"), s7_make_integer(sc, GDK_PROP_MODE_APPEND));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CURRENT_TIME"), s7_make_integer(sc, GDK_CURRENT_TIME));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PARENT_RELATIVE"), s7_make_integer(sc, GDK_PARENT_RELATIVE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_LSB_FIRST"), s7_make_integer(sc, GDK_LSB_FIRST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MSB_FIRST"), s7_make_integer(sc, GDK_MSB_FIRST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SHIFT_MASK"), s7_make_integer(sc, GDK_SHIFT_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_LOCK_MASK"), s7_make_integer(sc, GDK_LOCK_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CONTROL_MASK"), s7_make_integer(sc, GDK_CONTROL_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MOD1_MASK"), s7_make_integer(sc, GDK_MOD1_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MOD2_MASK"), s7_make_integer(sc, GDK_MOD2_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MOD3_MASK"), s7_make_integer(sc, GDK_MOD3_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MOD4_MASK"), s7_make_integer(sc, GDK_MOD4_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MOD5_MASK"), s7_make_integer(sc, GDK_MOD5_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BUTTON1_MASK"), s7_make_integer(sc, GDK_BUTTON1_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BUTTON2_MASK"), s7_make_integer(sc, GDK_BUTTON2_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BUTTON3_MASK"), s7_make_integer(sc, GDK_BUTTON3_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BUTTON4_MASK"), s7_make_integer(sc, GDK_BUTTON4_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BUTTON5_MASK"), s7_make_integer(sc, GDK_BUTTON5_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_RELEASE_MASK"), s7_make_integer(sc, GDK_RELEASE_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MODIFIER_MASK"), s7_make_integer(sc, GDK_MODIFIER_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_OK"), s7_make_integer(sc, GDK_OK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ERROR"), s7_make_integer(sc, GDK_ERROR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ERROR_PARAM"), s7_make_integer(sc, GDK_ERROR_PARAM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ERROR_FILE"), s7_make_integer(sc, GDK_ERROR_FILE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ERROR_MEM"), s7_make_integer(sc, GDK_ERROR_MEM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAB_SUCCESS"), s7_make_integer(sc, GDK_GRAB_SUCCESS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAB_ALREADY_GRABBED"), s7_make_integer(sc, GDK_GRAB_ALREADY_GRABBED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAB_INVALID_TIME"), s7_make_integer(sc, GDK_GRAB_INVALID_TIME));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAB_NOT_VIEWABLE"), s7_make_integer(sc, GDK_GRAB_NOT_VIEWABLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAB_FROZEN"), s7_make_integer(sc, GDK_GRAB_FROZEN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_INPUT_OUTPUT"), s7_make_integer(sc, GDK_INPUT_OUTPUT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_INPUT_ONLY"), s7_make_integer(sc, GDK_INPUT_ONLY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_ROOT"), s7_make_integer(sc, GDK_WINDOW_ROOT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TOPLEVEL"), s7_make_integer(sc, GDK_WINDOW_TOPLEVEL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_CHILD"), s7_make_integer(sc, GDK_WINDOW_CHILD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TEMP"), s7_make_integer(sc, GDK_WINDOW_TEMP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_FOREIGN"), s7_make_integer(sc, GDK_WINDOW_FOREIGN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WA_TITLE"), s7_make_integer(sc, GDK_WA_TITLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WA_X"), s7_make_integer(sc, GDK_WA_X));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WA_Y"), s7_make_integer(sc, GDK_WA_Y));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WA_CURSOR"), s7_make_integer(sc, GDK_WA_CURSOR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WA_VISUAL"), s7_make_integer(sc, GDK_WA_VISUAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WA_WMCLASS"), s7_make_integer(sc, GDK_WA_WMCLASS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WA_NOREDIR"), s7_make_integer(sc, GDK_WA_NOREDIR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_HINT_POS"), s7_make_integer(sc, GDK_HINT_POS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_HINT_MIN_SIZE"), s7_make_integer(sc, GDK_HINT_MIN_SIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_HINT_MAX_SIZE"), s7_make_integer(sc, GDK_HINT_MAX_SIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_HINT_BASE_SIZE"), s7_make_integer(sc, GDK_HINT_BASE_SIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_HINT_ASPECT"), s7_make_integer(sc, GDK_HINT_ASPECT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_HINT_RESIZE_INC"), s7_make_integer(sc, GDK_HINT_RESIZE_INC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_HINT_WIN_GRAVITY"), s7_make_integer(sc, GDK_HINT_WIN_GRAVITY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_HINT_USER_POS"), s7_make_integer(sc, GDK_HINT_USER_POS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_HINT_USER_SIZE"), s7_make_integer(sc, GDK_HINT_USER_SIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TYPE_HINT_NORMAL"), s7_make_integer(sc, GDK_WINDOW_TYPE_HINT_NORMAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TYPE_HINT_DIALOG"), s7_make_integer(sc, GDK_WINDOW_TYPE_HINT_DIALOG));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TYPE_HINT_MENU"), s7_make_integer(sc, GDK_WINDOW_TYPE_HINT_MENU));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TYPE_HINT_TOOLBAR"), s7_make_integer(sc, GDK_WINDOW_TYPE_HINT_TOOLBAR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DECOR_ALL"), s7_make_integer(sc, GDK_DECOR_ALL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DECOR_BORDER"), s7_make_integer(sc, GDK_DECOR_BORDER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DECOR_RESIZEH"), s7_make_integer(sc, GDK_DECOR_RESIZEH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DECOR_TITLE"), s7_make_integer(sc, GDK_DECOR_TITLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DECOR_MENU"), s7_make_integer(sc, GDK_DECOR_MENU));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DECOR_MINIMIZE"), s7_make_integer(sc, GDK_DECOR_MINIMIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DECOR_MAXIMIZE"), s7_make_integer(sc, GDK_DECOR_MAXIMIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_FUNC_ALL"), s7_make_integer(sc, GDK_FUNC_ALL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_FUNC_RESIZE"), s7_make_integer(sc, GDK_FUNC_RESIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_FUNC_MOVE"), s7_make_integer(sc, GDK_FUNC_MOVE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_FUNC_MINIMIZE"), s7_make_integer(sc, GDK_FUNC_MINIMIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_FUNC_MAXIMIZE"), s7_make_integer(sc, GDK_FUNC_MAXIMIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_FUNC_CLOSE"), s7_make_integer(sc, GDK_FUNC_CLOSE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAVITY_NORTH_WEST"), s7_make_integer(sc, GDK_GRAVITY_NORTH_WEST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAVITY_NORTH"), s7_make_integer(sc, GDK_GRAVITY_NORTH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAVITY_NORTH_EAST"), s7_make_integer(sc, GDK_GRAVITY_NORTH_EAST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAVITY_WEST"), s7_make_integer(sc, GDK_GRAVITY_WEST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAVITY_CENTER"), s7_make_integer(sc, GDK_GRAVITY_CENTER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAVITY_EAST"), s7_make_integer(sc, GDK_GRAVITY_EAST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAVITY_SOUTH_WEST"), s7_make_integer(sc, GDK_GRAVITY_SOUTH_WEST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAVITY_SOUTH"), s7_make_integer(sc, GDK_GRAVITY_SOUTH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAVITY_SOUTH_EAST"), s7_make_integer(sc, GDK_GRAVITY_SOUTH_EAST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_GRAVITY_STATIC"), s7_make_integer(sc, GDK_GRAVITY_STATIC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_EDGE_NORTH_WEST"), s7_make_integer(sc, GDK_WINDOW_EDGE_NORTH_WEST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_EDGE_NORTH"), s7_make_integer(sc, GDK_WINDOW_EDGE_NORTH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_EDGE_NORTH_EAST"), s7_make_integer(sc, GDK_WINDOW_EDGE_NORTH_EAST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_EDGE_WEST"), s7_make_integer(sc, GDK_WINDOW_EDGE_WEST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_EDGE_EAST"), s7_make_integer(sc, GDK_WINDOW_EDGE_EAST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_EDGE_SOUTH_WEST"), s7_make_integer(sc, GDK_WINDOW_EDGE_SOUTH_WEST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_EDGE_SOUTH"), s7_make_integer(sc, GDK_WINDOW_EDGE_SOUTH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_EDGE_SOUTH_EAST"), s7_make_integer(sc, GDK_WINDOW_EDGE_SOUTH_EAST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PIXBUF_ALPHA_BILEVEL"), s7_make_integer(sc, GDK_PIXBUF_ALPHA_BILEVEL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PIXBUF_ALPHA_FULL"), s7_make_integer(sc, GDK_PIXBUF_ALPHA_FULL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_COLORSPACE_RGB"), s7_make_integer(sc, GDK_COLORSPACE_RGB));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PIXBUF_ERROR_CORRUPT_IMAGE"), s7_make_integer(sc, GDK_PIXBUF_ERROR_CORRUPT_IMAGE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY"), s7_make_integer(sc, GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PIXBUF_ERROR_BAD_OPTION"), s7_make_integer(sc, GDK_PIXBUF_ERROR_BAD_OPTION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PIXBUF_ERROR_UNKNOWN_TYPE"), s7_make_integer(sc, GDK_PIXBUF_ERROR_UNKNOWN_TYPE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION"), s7_make_integer(sc, GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PIXBUF_ERROR_FAILED"), s7_make_integer(sc, GDK_PIXBUF_ERROR_FAILED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_INTERP_NEAREST"), s7_make_integer(sc, GDK_INTERP_NEAREST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_INTERP_TILES"), s7_make_integer(sc, GDK_INTERP_TILES));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_INTERP_BILINEAR"), s7_make_integer(sc, GDK_INTERP_BILINEAR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_INTERP_HYPER"), s7_make_integer(sc, GDK_INTERP_HYPER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ACCEL_VISIBLE"), s7_make_integer(sc, GTK_ACCEL_VISIBLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ACCEL_LOCKED"), s7_make_integer(sc, GTK_ACCEL_LOCKED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ACCEL_MASK"), s7_make_integer(sc, GTK_ACCEL_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CALENDAR_SHOW_HEADING"), s7_make_integer(sc, GTK_CALENDAR_SHOW_HEADING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CALENDAR_SHOW_DAY_NAMES"), s7_make_integer(sc, GTK_CALENDAR_SHOW_DAY_NAMES));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CALENDAR_NO_MONTH_CHANGE"), s7_make_integer(sc, GTK_CALENDAR_NO_MONTH_CHANGE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CALENDAR_SHOW_WEEK_NUMBERS"), s7_make_integer(sc, GTK_CALENDAR_SHOW_WEEK_NUMBERS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CELL_RENDERER_SELECTED"), s7_make_integer(sc, GTK_CELL_RENDERER_SELECTED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CELL_RENDERER_PRELIT"), s7_make_integer(sc, GTK_CELL_RENDERER_PRELIT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CELL_RENDERER_INSENSITIVE"), s7_make_integer(sc, GTK_CELL_RENDERER_INSENSITIVE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CELL_RENDERER_SORTED"), s7_make_integer(sc, GTK_CELL_RENDERER_SORTED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CELL_RENDERER_FOCUSED"), s7_make_integer(sc, GTK_CELL_RENDERER_FOCUSED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DIALOG_MODAL"), s7_make_integer(sc, GTK_DIALOG_MODAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DIALOG_DESTROY_WITH_PARENT"), s7_make_integer(sc, GTK_DIALOG_DESTROY_WITH_PARENT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RESPONSE_NONE"), s7_make_integer(sc, GTK_RESPONSE_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RESPONSE_REJECT"), s7_make_integer(sc, GTK_RESPONSE_REJECT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RESPONSE_ACCEPT"), s7_make_integer(sc, GTK_RESPONSE_ACCEPT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RESPONSE_DELETE_EVENT"), s7_make_integer(sc, GTK_RESPONSE_DELETE_EVENT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RESPONSE_OK"), s7_make_integer(sc, GTK_RESPONSE_OK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RESPONSE_CANCEL"), s7_make_integer(sc, GTK_RESPONSE_CANCEL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RESPONSE_CLOSE"), s7_make_integer(sc, GTK_RESPONSE_CLOSE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RESPONSE_YES"), s7_make_integer(sc, GTK_RESPONSE_YES));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RESPONSE_NO"), s7_make_integer(sc, GTK_RESPONSE_NO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RESPONSE_APPLY"), s7_make_integer(sc, GTK_RESPONSE_APPLY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RESPONSE_HELP"), s7_make_integer(sc, GTK_RESPONSE_HELP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DEST_DEFAULT_MOTION"), s7_make_integer(sc, GTK_DEST_DEFAULT_MOTION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DEST_DEFAULT_HIGHLIGHT"), s7_make_integer(sc, GTK_DEST_DEFAULT_HIGHLIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DEST_DEFAULT_DROP"), s7_make_integer(sc, GTK_DEST_DEFAULT_DROP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DEST_DEFAULT_ALL"), s7_make_integer(sc, GTK_DEST_DEFAULT_ALL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_BUTTONBOX_SPREAD"), s7_make_integer(sc, GTK_BUTTONBOX_SPREAD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_BUTTONBOX_EDGE"), s7_make_integer(sc, GTK_BUTTONBOX_EDGE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_BUTTONBOX_START"), s7_make_integer(sc, GTK_BUTTONBOX_START));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_BUTTONBOX_END"), s7_make_integer(sc, GTK_BUTTONBOX_END));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_BUTTONBOX_CENTER"), s7_make_integer(sc, GTK_BUTTONBOX_CENTER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DELETE_CHARS"), s7_make_integer(sc, GTK_DELETE_CHARS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DELETE_WORD_ENDS"), s7_make_integer(sc, GTK_DELETE_WORD_ENDS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DELETE_WORDS"), s7_make_integer(sc, GTK_DELETE_WORDS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DELETE_DISPLAY_LINES"), s7_make_integer(sc, GTK_DELETE_DISPLAY_LINES));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DELETE_DISPLAY_LINE_ENDS"), s7_make_integer(sc, GTK_DELETE_DISPLAY_LINE_ENDS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DELETE_PARAGRAPH_ENDS"), s7_make_integer(sc, GTK_DELETE_PARAGRAPH_ENDS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DELETE_PARAGRAPHS"), s7_make_integer(sc, GTK_DELETE_PARAGRAPHS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DELETE_WHITESPACE"), s7_make_integer(sc, GTK_DELETE_WHITESPACE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DIR_TAB_FORWARD"), s7_make_integer(sc, GTK_DIR_TAB_FORWARD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DIR_TAB_BACKWARD"), s7_make_integer(sc, GTK_DIR_TAB_BACKWARD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DIR_UP"), s7_make_integer(sc, GTK_DIR_UP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DIR_DOWN"), s7_make_integer(sc, GTK_DIR_DOWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DIR_LEFT"), s7_make_integer(sc, GTK_DIR_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DIR_RIGHT"), s7_make_integer(sc, GTK_DIR_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_DIR_NONE"), s7_make_integer(sc, GTK_TEXT_DIR_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_DIR_LTR"), s7_make_integer(sc, GTK_TEXT_DIR_LTR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_DIR_RTL"), s7_make_integer(sc, GTK_TEXT_DIR_RTL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_JUSTIFY_LEFT"), s7_make_integer(sc, GTK_JUSTIFY_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_JUSTIFY_RIGHT"), s7_make_integer(sc, GTK_JUSTIFY_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_JUSTIFY_CENTER"), s7_make_integer(sc, GTK_JUSTIFY_CENTER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_JUSTIFY_FILL"), s7_make_integer(sc, GTK_JUSTIFY_FILL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MENU_DIR_PARENT"), s7_make_integer(sc, GTK_MENU_DIR_PARENT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MENU_DIR_CHILD"), s7_make_integer(sc, GTK_MENU_DIR_CHILD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MENU_DIR_NEXT"), s7_make_integer(sc, GTK_MENU_DIR_NEXT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MENU_DIR_PREV"), s7_make_integer(sc, GTK_MENU_DIR_PREV));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MOVEMENT_LOGICAL_POSITIONS"), s7_make_integer(sc, GTK_MOVEMENT_LOGICAL_POSITIONS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MOVEMENT_VISUAL_POSITIONS"), s7_make_integer(sc, GTK_MOVEMENT_VISUAL_POSITIONS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MOVEMENT_WORDS"), s7_make_integer(sc, GTK_MOVEMENT_WORDS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MOVEMENT_DISPLAY_LINES"), s7_make_integer(sc, GTK_MOVEMENT_DISPLAY_LINES));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MOVEMENT_DISPLAY_LINE_ENDS"), s7_make_integer(sc, GTK_MOVEMENT_DISPLAY_LINE_ENDS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MOVEMENT_PARAGRAPHS"), s7_make_integer(sc, GTK_MOVEMENT_PARAGRAPHS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MOVEMENT_PARAGRAPH_ENDS"), s7_make_integer(sc, GTK_MOVEMENT_PARAGRAPH_ENDS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MOVEMENT_PAGES"), s7_make_integer(sc, GTK_MOVEMENT_PAGES));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MOVEMENT_BUFFER_ENDS"), s7_make_integer(sc, GTK_MOVEMENT_BUFFER_ENDS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ORIENTATION_HORIZONTAL"), s7_make_integer(sc, GTK_ORIENTATION_HORIZONTAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ORIENTATION_VERTICAL"), s7_make_integer(sc, GTK_ORIENTATION_VERTICAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CORNER_TOP_LEFT"), s7_make_integer(sc, GTK_CORNER_TOP_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CORNER_BOTTOM_LEFT"), s7_make_integer(sc, GTK_CORNER_BOTTOM_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CORNER_TOP_RIGHT"), s7_make_integer(sc, GTK_CORNER_TOP_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CORNER_BOTTOM_RIGHT"), s7_make_integer(sc, GTK_CORNER_BOTTOM_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PACK_START"), s7_make_integer(sc, GTK_PACK_START));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PACK_END"), s7_make_integer(sc, GTK_PACK_END));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_POLICY_ALWAYS"), s7_make_integer(sc, GTK_POLICY_ALWAYS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_POLICY_AUTOMATIC"), s7_make_integer(sc, GTK_POLICY_AUTOMATIC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_POLICY_NEVER"), s7_make_integer(sc, GTK_POLICY_NEVER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_POS_LEFT"), s7_make_integer(sc, GTK_POS_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_POS_RIGHT"), s7_make_integer(sc, GTK_POS_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_POS_TOP"), s7_make_integer(sc, GTK_POS_TOP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_POS_BOTTOM"), s7_make_integer(sc, GTK_POS_BOTTOM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RELIEF_NORMAL"), s7_make_integer(sc, GTK_RELIEF_NORMAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RELIEF_HALF"), s7_make_integer(sc, GTK_RELIEF_HALF));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RELIEF_NONE"), s7_make_integer(sc, GTK_RELIEF_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RESIZE_PARENT"), s7_make_integer(sc, GTK_RESIZE_PARENT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RESIZE_QUEUE"), s7_make_integer(sc, GTK_RESIZE_QUEUE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RESIZE_IMMEDIATE"), s7_make_integer(sc, GTK_RESIZE_IMMEDIATE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_NONE"), s7_make_integer(sc, GTK_SCROLL_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_JUMP"), s7_make_integer(sc, GTK_SCROLL_JUMP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_STEP_BACKWARD"), s7_make_integer(sc, GTK_SCROLL_STEP_BACKWARD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_STEP_FORWARD"), s7_make_integer(sc, GTK_SCROLL_STEP_FORWARD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_PAGE_BACKWARD"), s7_make_integer(sc, GTK_SCROLL_PAGE_BACKWARD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_PAGE_FORWARD"), s7_make_integer(sc, GTK_SCROLL_PAGE_FORWARD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_STEP_UP"), s7_make_integer(sc, GTK_SCROLL_STEP_UP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_STEP_DOWN"), s7_make_integer(sc, GTK_SCROLL_STEP_DOWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_PAGE_UP"), s7_make_integer(sc, GTK_SCROLL_PAGE_UP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_PAGE_DOWN"), s7_make_integer(sc, GTK_SCROLL_PAGE_DOWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_STEP_LEFT"), s7_make_integer(sc, GTK_SCROLL_STEP_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_STEP_RIGHT"), s7_make_integer(sc, GTK_SCROLL_STEP_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_PAGE_LEFT"), s7_make_integer(sc, GTK_SCROLL_PAGE_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_PAGE_RIGHT"), s7_make_integer(sc, GTK_SCROLL_PAGE_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_START"), s7_make_integer(sc, GTK_SCROLL_START));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_END"), s7_make_integer(sc, GTK_SCROLL_END));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SELECTION_NONE"), s7_make_integer(sc, GTK_SELECTION_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SELECTION_SINGLE"), s7_make_integer(sc, GTK_SELECTION_SINGLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SELECTION_BROWSE"), s7_make_integer(sc, GTK_SELECTION_BROWSE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SELECTION_MULTIPLE"), s7_make_integer(sc, GTK_SELECTION_MULTIPLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHADOW_NONE"), s7_make_integer(sc, GTK_SHADOW_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHADOW_IN"), s7_make_integer(sc, GTK_SHADOW_IN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHADOW_OUT"), s7_make_integer(sc, GTK_SHADOW_OUT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHADOW_ETCHED_IN"), s7_make_integer(sc, GTK_SHADOW_ETCHED_IN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHADOW_ETCHED_OUT"), s7_make_integer(sc, GTK_SHADOW_ETCHED_OUT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TOOLBAR_ICONS"), s7_make_integer(sc, GTK_TOOLBAR_ICONS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TOOLBAR_TEXT"), s7_make_integer(sc, GTK_TOOLBAR_TEXT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TOOLBAR_BOTH"), s7_make_integer(sc, GTK_TOOLBAR_BOTH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TOOLBAR_BOTH_HORIZ"), s7_make_integer(sc, GTK_TOOLBAR_BOTH_HORIZ));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_WIN_POS_NONE"), s7_make_integer(sc, GTK_WIN_POS_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_WIN_POS_CENTER"), s7_make_integer(sc, GTK_WIN_POS_CENTER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_WIN_POS_MOUSE"), s7_make_integer(sc, GTK_WIN_POS_MOUSE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_WIN_POS_CENTER_ALWAYS"), s7_make_integer(sc, GTK_WIN_POS_CENTER_ALWAYS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_WIN_POS_CENTER_ON_PARENT"), s7_make_integer(sc, GTK_WIN_POS_CENTER_ON_PARENT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_WINDOW_TOPLEVEL"), s7_make_integer(sc, GTK_WINDOW_TOPLEVEL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_WINDOW_POPUP"), s7_make_integer(sc, GTK_WINDOW_POPUP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_WRAP_NONE"), s7_make_integer(sc, GTK_WRAP_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_WRAP_CHAR"), s7_make_integer(sc, GTK_WRAP_CHAR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_WRAP_WORD"), s7_make_integer(sc, GTK_WRAP_WORD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SORT_ASCENDING"), s7_make_integer(sc, GTK_SORT_ASCENDING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SORT_DESCENDING"), s7_make_integer(sc, GTK_SORT_DESCENDING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_IMAGE_EMPTY"), s7_make_integer(sc, GTK_IMAGE_EMPTY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_IMAGE_PIXBUF"), s7_make_integer(sc, GTK_IMAGE_PIXBUF));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_IMAGE_STOCK"), s7_make_integer(sc, GTK_IMAGE_STOCK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_IMAGE_ICON_SET"), s7_make_integer(sc, GTK_IMAGE_ICON_SET));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_IMAGE_ANIMATION"), s7_make_integer(sc, GTK_IMAGE_ANIMATION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MAX_COMPOSE_LEN"), s7_make_integer(sc, GTK_MAX_COMPOSE_LEN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRIORITY_RESIZE"), s7_make_integer(sc, GTK_PRIORITY_RESIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MESSAGE_INFO"), s7_make_integer(sc, GTK_MESSAGE_INFO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MESSAGE_WARNING"), s7_make_integer(sc, GTK_MESSAGE_WARNING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MESSAGE_QUESTION"), s7_make_integer(sc, GTK_MESSAGE_QUESTION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MESSAGE_ERROR"), s7_make_integer(sc, GTK_MESSAGE_ERROR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_BUTTONS_NONE"), s7_make_integer(sc, GTK_BUTTONS_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_BUTTONS_OK"), s7_make_integer(sc, GTK_BUTTONS_OK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_BUTTONS_CLOSE"), s7_make_integer(sc, GTK_BUTTONS_CLOSE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_BUTTONS_CANCEL"), s7_make_integer(sc, GTK_BUTTONS_CANCEL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_BUTTONS_YES_NO"), s7_make_integer(sc, GTK_BUTTONS_YES_NO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_BUTTONS_OK_CANCEL"), s7_make_integer(sc, GTK_BUTTONS_OK_CANCEL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_NOTEBOOK_TAB_FIRST"), s7_make_integer(sc, GTK_NOTEBOOK_TAB_FIRST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_NOTEBOOK_TAB_LAST"), s7_make_integer(sc, GTK_NOTEBOOK_TAB_LAST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SIZE_GROUP_NONE"), s7_make_integer(sc, GTK_SIZE_GROUP_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SIZE_GROUP_HORIZONTAL"), s7_make_integer(sc, GTK_SIZE_GROUP_HORIZONTAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SIZE_GROUP_VERTICAL"), s7_make_integer(sc, GTK_SIZE_GROUP_VERTICAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SIZE_GROUP_BOTH"), s7_make_integer(sc, GTK_SIZE_GROUP_BOTH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_ERROR"), s7_make_integer(sc, GTK_INPUT_ERROR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_UPDATE_ALWAYS"), s7_make_integer(sc, GTK_UPDATE_ALWAYS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_UPDATE_IF_VALID"), s7_make_integer(sc, GTK_UPDATE_IF_VALID));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SPIN_STEP_FORWARD"), s7_make_integer(sc, GTK_SPIN_STEP_FORWARD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SPIN_STEP_BACKWARD"), s7_make_integer(sc, GTK_SPIN_STEP_BACKWARD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SPIN_PAGE_FORWARD"), s7_make_integer(sc, GTK_SPIN_PAGE_FORWARD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SPIN_PAGE_BACKWARD"), s7_make_integer(sc, GTK_SPIN_PAGE_BACKWARD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SPIN_HOME"), s7_make_integer(sc, GTK_SPIN_HOME));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SPIN_END"), s7_make_integer(sc, GTK_SPIN_END));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SPIN_USER_DEFINED"), s7_make_integer(sc, GTK_SPIN_USER_DEFINED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_SEARCH_VISIBLE_ONLY"), s7_make_integer(sc, GTK_TEXT_SEARCH_VISIBLE_ONLY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_SEARCH_TEXT_ONLY"), s7_make_integer(sc, GTK_TEXT_SEARCH_TEXT_ONLY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_WINDOW_PRIVATE"), s7_make_integer(sc, GTK_TEXT_WINDOW_PRIVATE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_WINDOW_WIDGET"), s7_make_integer(sc, GTK_TEXT_WINDOW_WIDGET));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_WINDOW_TEXT"), s7_make_integer(sc, GTK_TEXT_WINDOW_TEXT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_WINDOW_LEFT"), s7_make_integer(sc, GTK_TEXT_WINDOW_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_WINDOW_RIGHT"), s7_make_integer(sc, GTK_TEXT_WINDOW_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_WINDOW_TOP"), s7_make_integer(sc, GTK_TEXT_WINDOW_TOP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_WINDOW_BOTTOM"), s7_make_integer(sc, GTK_TEXT_WINDOW_BOTTOM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_VIEW_PRIORITY_VALIDATE"), s7_make_integer(sc, GTK_TEXT_VIEW_PRIORITY_VALIDATE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_MODEL_ITERS_PERSIST"), s7_make_integer(sc, GTK_TREE_MODEL_ITERS_PERSIST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_MODEL_LIST_ONLY"), s7_make_integer(sc, GTK_TREE_MODEL_LIST_ONLY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_VIEW_COLUMN_GROW_ONLY"), s7_make_integer(sc, GTK_TREE_VIEW_COLUMN_GROW_ONLY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_VIEW_COLUMN_AUTOSIZE"), s7_make_integer(sc, GTK_TREE_VIEW_COLUMN_AUTOSIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_VIEW_COLUMN_FIXED"), s7_make_integer(sc, GTK_TREE_VIEW_COLUMN_FIXED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_VIEW_DROP_BEFORE"), s7_make_integer(sc, GTK_TREE_VIEW_DROP_BEFORE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_VIEW_DROP_AFTER"), s7_make_integer(sc, GTK_TREE_VIEW_DROP_AFTER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_VIEW_DROP_INTO_OR_BEFORE"), s7_make_integer(sc, GTK_TREE_VIEW_DROP_INTO_OR_BEFORE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_VIEW_DROP_INTO_OR_AFTER"), s7_make_integer(sc, GTK_TREE_VIEW_DROP_INTO_OR_AFTER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_INVALID"), s7_make_integer(sc, PANGO_ATTR_INVALID));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_LANGUAGE"), s7_make_integer(sc, PANGO_ATTR_LANGUAGE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_FAMILY"), s7_make_integer(sc, PANGO_ATTR_FAMILY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_STYLE"), s7_make_integer(sc, PANGO_ATTR_STYLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_WEIGHT"), s7_make_integer(sc, PANGO_ATTR_WEIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_VARIANT"), s7_make_integer(sc, PANGO_ATTR_VARIANT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_STRETCH"), s7_make_integer(sc, PANGO_ATTR_STRETCH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_SIZE"), s7_make_integer(sc, PANGO_ATTR_SIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_FONT_DESC"), s7_make_integer(sc, PANGO_ATTR_FONT_DESC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_FOREGROUND"), s7_make_integer(sc, PANGO_ATTR_FOREGROUND));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_BACKGROUND"), s7_make_integer(sc, PANGO_ATTR_BACKGROUND));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_UNDERLINE"), s7_make_integer(sc, PANGO_ATTR_UNDERLINE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_STRIKETHROUGH"), s7_make_integer(sc, PANGO_ATTR_STRIKETHROUGH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_RISE"), s7_make_integer(sc, PANGO_ATTR_RISE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_SHAPE"), s7_make_integer(sc, PANGO_ATTR_SHAPE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_SCALE"), s7_make_integer(sc, PANGO_ATTR_SCALE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_UNDERLINE_NONE"), s7_make_integer(sc, PANGO_UNDERLINE_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_UNDERLINE_SINGLE"), s7_make_integer(sc, PANGO_UNDERLINE_SINGLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_UNDERLINE_DOUBLE"), s7_make_integer(sc, PANGO_UNDERLINE_DOUBLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_UNDERLINE_LOW"), s7_make_integer(sc, PANGO_UNDERLINE_LOW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_COVERAGE_NONE"), s7_make_integer(sc, PANGO_COVERAGE_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_COVERAGE_FALLBACK"), s7_make_integer(sc, PANGO_COVERAGE_FALLBACK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_COVERAGE_APPROXIMATE"), s7_make_integer(sc, PANGO_COVERAGE_APPROXIMATE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_COVERAGE_EXACT"), s7_make_integer(sc, PANGO_COVERAGE_EXACT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_STYLE_NORMAL"), s7_make_integer(sc, PANGO_STYLE_NORMAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_STYLE_OBLIQUE"), s7_make_integer(sc, PANGO_STYLE_OBLIQUE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_STYLE_ITALIC"), s7_make_integer(sc, PANGO_STYLE_ITALIC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_VARIANT_NORMAL"), s7_make_integer(sc, PANGO_VARIANT_NORMAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_VARIANT_SMALL_CAPS"), s7_make_integer(sc, PANGO_VARIANT_SMALL_CAPS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_WEIGHT_ULTRALIGHT"), s7_make_integer(sc, PANGO_WEIGHT_ULTRALIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_WEIGHT_LIGHT"), s7_make_integer(sc, PANGO_WEIGHT_LIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_WEIGHT_NORMAL"), s7_make_integer(sc, PANGO_WEIGHT_NORMAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_WEIGHT_BOLD"), s7_make_integer(sc, PANGO_WEIGHT_BOLD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_WEIGHT_ULTRABOLD"), s7_make_integer(sc, PANGO_WEIGHT_ULTRABOLD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_WEIGHT_HEAVY"), s7_make_integer(sc, PANGO_WEIGHT_HEAVY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_STRETCH_ULTRA_CONDENSED"), s7_make_integer(sc, PANGO_STRETCH_ULTRA_CONDENSED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_STRETCH_EXTRA_CONDENSED"), s7_make_integer(sc, PANGO_STRETCH_EXTRA_CONDENSED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_STRETCH_CONDENSED"), s7_make_integer(sc, PANGO_STRETCH_CONDENSED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_STRETCH_SEMI_CONDENSED"), s7_make_integer(sc, PANGO_STRETCH_SEMI_CONDENSED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_STRETCH_NORMAL"), s7_make_integer(sc, PANGO_STRETCH_NORMAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_STRETCH_SEMI_EXPANDED"), s7_make_integer(sc, PANGO_STRETCH_SEMI_EXPANDED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_STRETCH_EXPANDED"), s7_make_integer(sc, PANGO_STRETCH_EXPANDED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_STRETCH_EXTRA_EXPANDED"), s7_make_integer(sc, PANGO_STRETCH_EXTRA_EXPANDED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_STRETCH_ULTRA_EXPANDED"), s7_make_integer(sc, PANGO_STRETCH_ULTRA_EXPANDED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_FONT_MASK_FAMILY"), s7_make_integer(sc, PANGO_FONT_MASK_FAMILY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_FONT_MASK_STYLE"), s7_make_integer(sc, PANGO_FONT_MASK_STYLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_FONT_MASK_VARIANT"), s7_make_integer(sc, PANGO_FONT_MASK_VARIANT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_FONT_MASK_WEIGHT"), s7_make_integer(sc, PANGO_FONT_MASK_WEIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_FONT_MASK_STRETCH"), s7_make_integer(sc, PANGO_FONT_MASK_STRETCH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_FONT_MASK_SIZE"), s7_make_integer(sc, PANGO_FONT_MASK_SIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ALIGN_LEFT"), s7_make_integer(sc, PANGO_ALIGN_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ALIGN_CENTER"), s7_make_integer(sc, PANGO_ALIGN_CENTER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ALIGN_RIGHT"), s7_make_integer(sc, PANGO_ALIGN_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_WRAP_WORD"), s7_make_integer(sc, PANGO_WRAP_WORD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_WRAP_CHAR"), s7_make_integer(sc, PANGO_WRAP_CHAR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_DIRECTION_LTR"), s7_make_integer(sc, PANGO_DIRECTION_LTR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_DIRECTION_RTL"), s7_make_integer(sc, PANGO_DIRECTION_RTL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_DIRECTION_TTB_LTR"), s7_make_integer(sc, PANGO_DIRECTION_TTB_LTR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_DIRECTION_TTB_RTL"), s7_make_integer(sc, PANGO_DIRECTION_TTB_RTL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_STATE_FULLSCREEN"), s7_make_integer(sc, GDK_WINDOW_STATE_FULLSCREEN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_STATE_ABOVE"), s7_make_integer(sc, GDK_WINDOW_STATE_ABOVE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_STATE_BELOW"), s7_make_integer(sc, GDK_WINDOW_STATE_BELOW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MOVEMENT_HORIZONTAL_PAGES"), s7_make_integer(sc, GTK_MOVEMENT_HORIZONTAL_PAGES));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_STEPS"), s7_make_integer(sc, GTK_SCROLL_STEPS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_PAGES"), s7_make_integer(sc, GTK_SCROLL_PAGES));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_ENDS"), s7_make_integer(sc, GTK_SCROLL_ENDS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_HORIZONTAL_STEPS"), s7_make_integer(sc, GTK_SCROLL_HORIZONTAL_STEPS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_HORIZONTAL_PAGES"), s7_make_integer(sc, GTK_SCROLL_HORIZONTAL_PAGES));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_HORIZONTAL_ENDS"), s7_make_integer(sc, GTK_SCROLL_HORIZONTAL_ENDS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_WRAP_WORD_CHAR"), s7_make_integer(sc, GTK_WRAP_WORD_CHAR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_FILTER_FILENAME"), s7_make_integer(sc, GTK_FILE_FILTER_FILENAME));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_FILTER_URI"), s7_make_integer(sc, GTK_FILE_FILTER_URI));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_FILTER_DISPLAY_NAME"), s7_make_integer(sc, GTK_FILE_FILTER_DISPLAY_NAME));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_FILTER_MIME_TYPE"), s7_make_integer(sc, GTK_FILE_FILTER_MIME_TYPE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ICON_LOOKUP_NO_SVG"), s7_make_integer(sc, GTK_ICON_LOOKUP_NO_SVG));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ICON_LOOKUP_FORCE_SVG"), s7_make_integer(sc, GTK_ICON_LOOKUP_FORCE_SVG));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ICON_LOOKUP_USE_BUILTIN"), s7_make_integer(sc, GTK_ICON_LOOKUP_USE_BUILTIN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ICON_LOOKUP_GENERIC_FALLBACK"), s7_make_integer(sc, GTK_ICON_LOOKUP_GENERIC_FALLBACK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_CHOOSER_ACTION_OPEN"), s7_make_integer(sc, GTK_FILE_CHOOSER_ACTION_OPEN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_CHOOSER_ACTION_SAVE"), s7_make_integer(sc, GTK_FILE_CHOOSER_ACTION_SAVE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER"), s7_make_integer(sc, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER"), s7_make_integer(sc, GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_PRIORITY_HIGH"), s7_make_integer(sc, G_PRIORITY_HIGH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_PRIORITY_DEFAULT"), s7_make_integer(sc, G_PRIORITY_DEFAULT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_PRIORITY_HIGH_IDLE"), s7_make_integer(sc, G_PRIORITY_HIGH_IDLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_PRIORITY_DEFAULT_IDLE"), s7_make_integer(sc, G_PRIORITY_DEFAULT_IDLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_PRIORITY_LOW"), s7_make_integer(sc, G_PRIORITY_LOW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_FALLBACK"), s7_make_integer(sc, PANGO_ATTR_FALLBACK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_LETTER_SPACING"), s7_make_integer(sc, PANGO_ATTR_LETTER_SPACING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_UNDERLINE_ERROR"), s7_make_integer(sc, PANGO_UNDERLINE_ERROR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_WRAP_WORD_CHAR"), s7_make_integer(sc, PANGO_WRAP_WORD_CHAR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ELLIPSIZE_NONE"), s7_make_integer(sc, PANGO_ELLIPSIZE_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ELLIPSIZE_START"), s7_make_integer(sc, PANGO_ELLIPSIZE_START));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ELLIPSIZE_MIDDLE"), s7_make_integer(sc, PANGO_ELLIPSIZE_MIDDLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ELLIPSIZE_END"), s7_make_integer(sc, PANGO_ELLIPSIZE_END));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_INVALID_CODE"), s7_make_integer(sc, PANGO_SCRIPT_INVALID_CODE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_COMMON"), s7_make_integer(sc, PANGO_SCRIPT_COMMON));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_INHERITED"), s7_make_integer(sc, PANGO_SCRIPT_INHERITED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_ARABIC"), s7_make_integer(sc, PANGO_SCRIPT_ARABIC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_ARMENIAN"), s7_make_integer(sc, PANGO_SCRIPT_ARMENIAN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_BENGALI"), s7_make_integer(sc, PANGO_SCRIPT_BENGALI));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_BOPOMOFO"), s7_make_integer(sc, PANGO_SCRIPT_BOPOMOFO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_CHEROKEE"), s7_make_integer(sc, PANGO_SCRIPT_CHEROKEE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_COPTIC"), s7_make_integer(sc, PANGO_SCRIPT_COPTIC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_CYRILLIC"), s7_make_integer(sc, PANGO_SCRIPT_CYRILLIC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_DESERET"), s7_make_integer(sc, PANGO_SCRIPT_DESERET));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_DEVANAGARI"), s7_make_integer(sc, PANGO_SCRIPT_DEVANAGARI));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_ETHIOPIC"), s7_make_integer(sc, PANGO_SCRIPT_ETHIOPIC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_GEORGIAN"), s7_make_integer(sc, PANGO_SCRIPT_GEORGIAN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_GOTHIC"), s7_make_integer(sc, PANGO_SCRIPT_GOTHIC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_GREEK"), s7_make_integer(sc, PANGO_SCRIPT_GREEK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_GUJARATI"), s7_make_integer(sc, PANGO_SCRIPT_GUJARATI));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_GURMUKHI"), s7_make_integer(sc, PANGO_SCRIPT_GURMUKHI));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_HAN"), s7_make_integer(sc, PANGO_SCRIPT_HAN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_HANGUL"), s7_make_integer(sc, PANGO_SCRIPT_HANGUL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_HEBREW"), s7_make_integer(sc, PANGO_SCRIPT_HEBREW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_HIRAGANA"), s7_make_integer(sc, PANGO_SCRIPT_HIRAGANA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_KANNADA"), s7_make_integer(sc, PANGO_SCRIPT_KANNADA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_KATAKANA"), s7_make_integer(sc, PANGO_SCRIPT_KATAKANA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_KHMER"), s7_make_integer(sc, PANGO_SCRIPT_KHMER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_LAO"), s7_make_integer(sc, PANGO_SCRIPT_LAO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_LATIN"), s7_make_integer(sc, PANGO_SCRIPT_LATIN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_MALAYALAM"), s7_make_integer(sc, PANGO_SCRIPT_MALAYALAM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_MONGOLIAN"), s7_make_integer(sc, PANGO_SCRIPT_MONGOLIAN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_MYANMAR"), s7_make_integer(sc, PANGO_SCRIPT_MYANMAR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_OGHAM"), s7_make_integer(sc, PANGO_SCRIPT_OGHAM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_OLD_ITALIC"), s7_make_integer(sc, PANGO_SCRIPT_OLD_ITALIC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_ORIYA"), s7_make_integer(sc, PANGO_SCRIPT_ORIYA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_RUNIC"), s7_make_integer(sc, PANGO_SCRIPT_RUNIC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_SINHALA"), s7_make_integer(sc, PANGO_SCRIPT_SINHALA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_SYRIAC"), s7_make_integer(sc, PANGO_SCRIPT_SYRIAC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_TAMIL"), s7_make_integer(sc, PANGO_SCRIPT_TAMIL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_TELUGU"), s7_make_integer(sc, PANGO_SCRIPT_TELUGU));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_THAANA"), s7_make_integer(sc, PANGO_SCRIPT_THAANA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_THAI"), s7_make_integer(sc, PANGO_SCRIPT_THAI));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_TIBETAN"), s7_make_integer(sc, PANGO_SCRIPT_TIBETAN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_CANADIAN_ABORIGINAL"), s7_make_integer(sc, PANGO_SCRIPT_CANADIAN_ABORIGINAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_YI"), s7_make_integer(sc, PANGO_SCRIPT_YI));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_TAGALOG"), s7_make_integer(sc, PANGO_SCRIPT_TAGALOG));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_HANUNOO"), s7_make_integer(sc, PANGO_SCRIPT_HANUNOO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_BUHID"), s7_make_integer(sc, PANGO_SCRIPT_BUHID));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_TAGBANWA"), s7_make_integer(sc, PANGO_SCRIPT_TAGBANWA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_BRAILLE"), s7_make_integer(sc, PANGO_SCRIPT_BRAILLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_CYPRIOT"), s7_make_integer(sc, PANGO_SCRIPT_CYPRIOT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_LIMBU"), s7_make_integer(sc, PANGO_SCRIPT_LIMBU));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_OSMANYA"), s7_make_integer(sc, PANGO_SCRIPT_OSMANYA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_SHAVIAN"), s7_make_integer(sc, PANGO_SCRIPT_SHAVIAN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_LINEAR_B"), s7_make_integer(sc, PANGO_SCRIPT_LINEAR_B));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_TAI_LE"), s7_make_integer(sc, PANGO_SCRIPT_TAI_LE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_UGARITIC"), s7_make_integer(sc, PANGO_SCRIPT_UGARITIC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_TAB_LEFT"), s7_make_integer(sc, PANGO_TAB_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_DIRECTION_WEAK_LTR"), s7_make_integer(sc, PANGO_DIRECTION_WEAK_LTR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_DIRECTION_WEAK_RTL"), s7_make_integer(sc, PANGO_DIRECTION_WEAK_RTL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_DIRECTION_NEUTRAL"), s7_make_integer(sc, PANGO_DIRECTION_NEUTRAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID"), s7_make_integer(sc, GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID"), s7_make_integer(sc, GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_IMAGE_ICON_NAME"), s7_make_integer(sc, GTK_IMAGE_ICON_NAME));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_UNDERLINE_COLOR"), s7_make_integer(sc, PANGO_ATTR_UNDERLINE_COLOR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_ATTR_STRIKETHROUGH_COLOR"), s7_make_integer(sc, PANGO_ATTR_STRIKETHROUGH_COLOR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_RENDER_PART_FOREGROUND"), s7_make_integer(sc, PANGO_RENDER_PART_FOREGROUND));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_RENDER_PART_BACKGROUND"), s7_make_integer(sc, PANGO_RENDER_PART_BACKGROUND));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_RENDER_PART_UNDERLINE"), s7_make_integer(sc, PANGO_RENDER_PART_UNDERLINE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_RENDER_PART_STRIKETHROUGH"), s7_make_integer(sc, PANGO_RENDER_PART_STRIKETHROUGH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_LOG_FLAG_RECURSION"), s7_make_integer(sc, G_LOG_FLAG_RECURSION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_LOG_FLAG_FATAL"), s7_make_integer(sc, G_LOG_FLAG_FATAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_LOG_LEVEL_ERROR"), s7_make_integer(sc, G_LOG_LEVEL_ERROR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_LOG_LEVEL_CRITICAL"), s7_make_integer(sc, G_LOG_LEVEL_CRITICAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_LOG_LEVEL_WARNING"), s7_make_integer(sc, G_LOG_LEVEL_WARNING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_LOG_LEVEL_MESSAGE"), s7_make_integer(sc, G_LOG_LEVEL_MESSAGE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_LOG_LEVEL_INFO"), s7_make_integer(sc, G_LOG_LEVEL_INFO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_LOG_LEVEL_DEBUG"), s7_make_integer(sc, G_LOG_LEVEL_DEBUG));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_LOG_LEVEL_MASK"), s7_make_integer(sc, G_LOG_LEVEL_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "G_LOG_FATAL_MASK"), s7_make_integer(sc, G_LOG_FATAL_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_WEIGHT_SEMIBOLD"), s7_make_integer(sc, PANGO_WEIGHT_SEMIBOLD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PACK_DIRECTION_LTR"), s7_make_integer(sc, GTK_PACK_DIRECTION_LTR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PACK_DIRECTION_RTL"), s7_make_integer(sc, GTK_PACK_DIRECTION_RTL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PACK_DIRECTION_TTB"), s7_make_integer(sc, GTK_PACK_DIRECTION_TTB));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PACK_DIRECTION_BTT"), s7_make_integer(sc, GTK_PACK_DIRECTION_BTT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ICON_VIEW_NO_DROP"), s7_make_integer(sc, GTK_ICON_VIEW_NO_DROP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ICON_VIEW_DROP_INTO"), s7_make_integer(sc, GTK_ICON_VIEW_DROP_INTO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ICON_VIEW_DROP_LEFT"), s7_make_integer(sc, GTK_ICON_VIEW_DROP_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ICON_VIEW_DROP_RIGHT"), s7_make_integer(sc, GTK_ICON_VIEW_DROP_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ICON_VIEW_DROP_ABOVE"), s7_make_integer(sc, GTK_ICON_VIEW_DROP_ABOVE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ICON_VIEW_DROP_BELOW"), s7_make_integer(sc, GTK_ICON_VIEW_DROP_BELOW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM"), s7_make_integer(sc, GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME"), s7_make_integer(sc, GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN"), s7_make_integer(sc, GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_NEW_TAI_LUE"), s7_make_integer(sc, PANGO_SCRIPT_NEW_TAI_LUE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_BUGINESE"), s7_make_integer(sc, PANGO_SCRIPT_BUGINESE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_GLAGOLITIC"), s7_make_integer(sc, PANGO_SCRIPT_GLAGOLITIC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_TIFINAGH"), s7_make_integer(sc, PANGO_SCRIPT_TIFINAGH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_SYLOTI_NAGRI"), s7_make_integer(sc, PANGO_SCRIPT_SYLOTI_NAGRI));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_OLD_PERSIAN"), s7_make_integer(sc, PANGO_SCRIPT_OLD_PERSIAN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCRIPT_KHAROSHTHI"), s7_make_integer(sc, PANGO_SCRIPT_KHAROSHTHI));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SUPER_MASK"), s7_make_integer(sc, GDK_SUPER_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_HYPER_MASK"), s7_make_integer(sc, GDK_HYPER_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_META_MASK"), s7_make_integer(sc, GDK_META_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SENSITIVITY_AUTO"), s7_make_integer(sc, GTK_SENSITIVITY_AUTO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SENSITIVITY_ON"), s7_make_integer(sc, GTK_SENSITIVITY_ON));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SENSITIVITY_OFF"), s7_make_integer(sc, GTK_SENSITIVITY_OFF));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_BUFFER_TARGET_INFO_BUFFER_CONTENTS"), s7_make_integer(sc, GTK_TEXT_BUFFER_TARGET_INFO_BUFFER_CONTENTS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_BUFFER_TARGET_INFO_RICH_TEXT"), s7_make_integer(sc, GTK_TEXT_BUFFER_TARGET_INFO_RICH_TEXT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_BUFFER_TARGET_INFO_TEXT"), s7_make_integer(sc, GTK_TEXT_BUFFER_TARGET_INFO_TEXT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ASSISTANT_PAGE_CONTENT"), s7_make_integer(sc, GTK_ASSISTANT_PAGE_CONTENT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ASSISTANT_PAGE_INTRO"), s7_make_integer(sc, GTK_ASSISTANT_PAGE_INTRO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ASSISTANT_PAGE_CONFIRM"), s7_make_integer(sc, GTK_ASSISTANT_PAGE_CONFIRM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ASSISTANT_PAGE_SUMMARY"), s7_make_integer(sc, GTK_ASSISTANT_PAGE_SUMMARY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ASSISTANT_PAGE_PROGRESS"), s7_make_integer(sc, GTK_ASSISTANT_PAGE_PROGRESS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CELL_RENDERER_ACCEL_MODE_GTK"), s7_make_integer(sc, GTK_CELL_RENDERER_ACCEL_MODE_GTK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CELL_RENDERER_ACCEL_MODE_OTHER"), s7_make_integer(sc, GTK_CELL_RENDERER_ACCEL_MODE_OTHER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RECENT_SORT_NONE"), s7_make_integer(sc, GTK_RECENT_SORT_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RECENT_SORT_MRU"), s7_make_integer(sc, GTK_RECENT_SORT_MRU));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RECENT_SORT_LRU"), s7_make_integer(sc, GTK_RECENT_SORT_LRU));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RECENT_SORT_CUSTOM"), s7_make_integer(sc, GTK_RECENT_SORT_CUSTOM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RECENT_CHOOSER_ERROR_NOT_FOUND"), s7_make_integer(sc, GTK_RECENT_CHOOSER_ERROR_NOT_FOUND));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RECENT_CHOOSER_ERROR_INVALID_URI"), s7_make_integer(sc, GTK_RECENT_CHOOSER_ERROR_INVALID_URI));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RECENT_MANAGER_ERROR_NOT_FOUND"), s7_make_integer(sc, GTK_RECENT_MANAGER_ERROR_NOT_FOUND));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RECENT_MANAGER_ERROR_INVALID_URI"), s7_make_integer(sc, GTK_RECENT_MANAGER_ERROR_INVALID_URI));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RECENT_MANAGER_ERROR_INVALID_ENCODING"), s7_make_integer(sc, GTK_RECENT_MANAGER_ERROR_INVALID_ENCODING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RECENT_MANAGER_ERROR_NOT_REGISTERED"), s7_make_integer(sc, GTK_RECENT_MANAGER_ERROR_NOT_REGISTERED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RECENT_MANAGER_ERROR_READ"), s7_make_integer(sc, GTK_RECENT_MANAGER_ERROR_READ));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RECENT_MANAGER_ERROR_WRITE"), s7_make_integer(sc, GTK_RECENT_MANAGER_ERROR_WRITE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_RECENT_MANAGER_ERROR_UNKNOWN"), s7_make_integer(sc, GTK_RECENT_MANAGER_ERROR_UNKNOWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_MESSAGE_OTHER"), s7_make_integer(sc, GTK_MESSAGE_OTHER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_VIEW_GRID_LINES_NONE"), s7_make_integer(sc, GTK_TREE_VIEW_GRID_LINES_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_VIEW_GRID_LINES_HORIZONTAL"), s7_make_integer(sc, GTK_TREE_VIEW_GRID_LINES_HORIZONTAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_VIEW_GRID_LINES_VERTICAL"), s7_make_integer(sc, GTK_TREE_VIEW_GRID_LINES_VERTICAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TREE_VIEW_GRID_LINES_BOTH"), s7_make_integer(sc, GTK_TREE_VIEW_GRID_LINES_BOTH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_STATUS_INITIAL"), s7_make_integer(sc, GTK_PRINT_STATUS_INITIAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_STATUS_PREPARING"), s7_make_integer(sc, GTK_PRINT_STATUS_PREPARING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_STATUS_GENERATING_DATA"), s7_make_integer(sc, GTK_PRINT_STATUS_GENERATING_DATA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_STATUS_SENDING_DATA"), s7_make_integer(sc, GTK_PRINT_STATUS_SENDING_DATA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_STATUS_PENDING"), s7_make_integer(sc, GTK_PRINT_STATUS_PENDING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_STATUS_PENDING_ISSUE"), s7_make_integer(sc, GTK_PRINT_STATUS_PENDING_ISSUE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_STATUS_PRINTING"), s7_make_integer(sc, GTK_PRINT_STATUS_PRINTING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_STATUS_FINISHED"), s7_make_integer(sc, GTK_PRINT_STATUS_FINISHED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_STATUS_FINISHED_ABORTED"), s7_make_integer(sc, GTK_PRINT_STATUS_FINISHED_ABORTED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_OPERATION_RESULT_ERROR"), s7_make_integer(sc, GTK_PRINT_OPERATION_RESULT_ERROR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_OPERATION_RESULT_APPLY"), s7_make_integer(sc, GTK_PRINT_OPERATION_RESULT_APPLY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_OPERATION_RESULT_CANCEL"), s7_make_integer(sc, GTK_PRINT_OPERATION_RESULT_CANCEL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_OPERATION_RESULT_IN_PROGRESS"), s7_make_integer(sc, GTK_PRINT_OPERATION_RESULT_IN_PROGRESS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG"), s7_make_integer(sc, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_OPERATION_ACTION_PRINT"), s7_make_integer(sc, GTK_PRINT_OPERATION_ACTION_PRINT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_OPERATION_ACTION_PREVIEW"), s7_make_integer(sc, GTK_PRINT_OPERATION_ACTION_PREVIEW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_OPERATION_ACTION_EXPORT"), s7_make_integer(sc, GTK_PRINT_OPERATION_ACTION_EXPORT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_ERROR_GENERAL"), s7_make_integer(sc, GTK_PRINT_ERROR_GENERAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_ERROR_INTERNAL_ERROR"), s7_make_integer(sc, GTK_PRINT_ERROR_INTERNAL_ERROR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_ERROR_NOMEM"), s7_make_integer(sc, GTK_PRINT_ERROR_NOMEM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_ERROR_INVALID_FILE"), s7_make_integer(sc, GTK_PRINT_ERROR_INVALID_FILE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DRAG_RESULT_SUCCESS"), s7_make_integer(sc, GTK_DRAG_RESULT_SUCCESS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DRAG_RESULT_NO_TARGET"), s7_make_integer(sc, GTK_DRAG_RESULT_NO_TARGET));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DRAG_RESULT_USER_CANCELLED"), s7_make_integer(sc, GTK_DRAG_RESULT_USER_CANCELLED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DRAG_RESULT_TIMEOUT_EXPIRED"), s7_make_integer(sc, GTK_DRAG_RESULT_TIMEOUT_EXPIRED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DRAG_RESULT_GRAB_BROKEN"), s7_make_integer(sc, GTK_DRAG_RESULT_GRAB_BROKEN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_DRAG_RESULT_ERROR"), s7_make_integer(sc, GTK_DRAG_RESULT_ERROR));
+#if GTK_CHECK_VERSION(2, 14, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CALENDAR_SHOW_DETAILS"), s7_make_integer(sc, GTK_CALENDAR_SHOW_DETAILS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CROSSING_GTK_GRAB"), s7_make_integer(sc, GDK_CROSSING_GTK_GRAB));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CROSSING_GTK_UNGRAB"), s7_make_integer(sc, GDK_CROSSING_GTK_UNGRAB));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CROSSING_STATE_CHANGED"), s7_make_integer(sc, GDK_CROSSING_STATE_CHANGED));
+#endif
+
+#if GTK_CHECK_VERSION(2, 16, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ENTRY_ICON_PRIMARY"), s7_make_integer(sc, GTK_ENTRY_ICON_PRIMARY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ENTRY_ICON_SECONDARY"), s7_make_integer(sc, GTK_ENTRY_ICON_SECONDARY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_BLANK_CURSOR "), s7_make_integer(sc, GDK_BLANK_CURSOR ));
+#endif
+
+#if GTK_CHECK_VERSION(2, 18, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_WEIGHT_THIN"), s7_make_integer(sc, PANGO_WEIGHT_THIN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_WEIGHT_BOOK"), s7_make_integer(sc, PANGO_WEIGHT_BOOK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_WEIGHT_MEDIUM"), s7_make_integer(sc, PANGO_WEIGHT_MEDIUM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_OFFSCREEN"), s7_make_integer(sc, GDK_WINDOW_OFFSCREEN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ENTRY_BUFFER_MAX_SIZE"), s7_make_integer(sc, GTK_ENTRY_BUFFER_MAX_SIZE));
+#endif
+
+#if GTK_CHECK_VERSION(3, 0, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_VoidSymbol"), s7_make_integer(sc, GDK_KEY_VoidSymbol));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_BackSpace"), s7_make_integer(sc, GDK_KEY_BackSpace));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Tab"), s7_make_integer(sc, GDK_KEY_Tab));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Linefeed"), s7_make_integer(sc, GDK_KEY_Linefeed));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Clear"), s7_make_integer(sc, GDK_KEY_Clear));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Return"), s7_make_integer(sc, GDK_KEY_Return));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Pause"), s7_make_integer(sc, GDK_KEY_Pause));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Scroll_Lock"), s7_make_integer(sc, GDK_KEY_Scroll_Lock));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Sys_Req"), s7_make_integer(sc, GDK_KEY_Sys_Req));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Escape"), s7_make_integer(sc, GDK_KEY_Escape));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Delete"), s7_make_integer(sc, GDK_KEY_Delete));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Home"), s7_make_integer(sc, GDK_KEY_Home));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Left"), s7_make_integer(sc, GDK_KEY_Left));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Up"), s7_make_integer(sc, GDK_KEY_Up));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Right"), s7_make_integer(sc, GDK_KEY_Right));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Down"), s7_make_integer(sc, GDK_KEY_Down));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Prior"), s7_make_integer(sc, GDK_KEY_Prior));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Page_Up"), s7_make_integer(sc, GDK_KEY_Page_Up));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Next"), s7_make_integer(sc, GDK_KEY_Next));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Page_Down"), s7_make_integer(sc, GDK_KEY_Page_Down));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_End"), s7_make_integer(sc, GDK_KEY_End));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Begin"), s7_make_integer(sc, GDK_KEY_Begin));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Select"), s7_make_integer(sc, GDK_KEY_Select));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Print"), s7_make_integer(sc, GDK_KEY_Print));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Execute"), s7_make_integer(sc, GDK_KEY_Execute));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Insert"), s7_make_integer(sc, GDK_KEY_Insert));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Undo"), s7_make_integer(sc, GDK_KEY_Undo));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Redo"), s7_make_integer(sc, GDK_KEY_Redo));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Menu"), s7_make_integer(sc, GDK_KEY_Menu));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Find"), s7_make_integer(sc, GDK_KEY_Find));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Cancel"), s7_make_integer(sc, GDK_KEY_Cancel));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Help"), s7_make_integer(sc, GDK_KEY_Help));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Break"), s7_make_integer(sc, GDK_KEY_Break));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Mode_switch"), s7_make_integer(sc, GDK_KEY_Mode_switch));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_script_switch"), s7_make_integer(sc, GDK_KEY_script_switch));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Num_Lock"), s7_make_integer(sc, GDK_KEY_Num_Lock));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Space"), s7_make_integer(sc, GDK_KEY_KP_Space));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Tab"), s7_make_integer(sc, GDK_KEY_KP_Tab));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Enter"), s7_make_integer(sc, GDK_KEY_KP_Enter));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_F1"), s7_make_integer(sc, GDK_KEY_KP_F1));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_F2"), s7_make_integer(sc, GDK_KEY_KP_F2));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_F3"), s7_make_integer(sc, GDK_KEY_KP_F3));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_F4"), s7_make_integer(sc, GDK_KEY_KP_F4));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Home"), s7_make_integer(sc, GDK_KEY_KP_Home));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Left"), s7_make_integer(sc, GDK_KEY_KP_Left));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Up"), s7_make_integer(sc, GDK_KEY_KP_Up));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Right"), s7_make_integer(sc, GDK_KEY_KP_Right));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Down"), s7_make_integer(sc, GDK_KEY_KP_Down));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Prior"), s7_make_integer(sc, GDK_KEY_KP_Prior));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Page_Up"), s7_make_integer(sc, GDK_KEY_KP_Page_Up));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Next"), s7_make_integer(sc, GDK_KEY_KP_Next));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Page_Down"), s7_make_integer(sc, GDK_KEY_KP_Page_Down));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_End"), s7_make_integer(sc, GDK_KEY_KP_End));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Begin"), s7_make_integer(sc, GDK_KEY_KP_Begin));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Insert"), s7_make_integer(sc, GDK_KEY_KP_Insert));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Delete"), s7_make_integer(sc, GDK_KEY_KP_Delete));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Equal"), s7_make_integer(sc, GDK_KEY_KP_Equal));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Multiply"), s7_make_integer(sc, GDK_KEY_KP_Multiply));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Add"), s7_make_integer(sc, GDK_KEY_KP_Add));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Separator"), s7_make_integer(sc, GDK_KEY_KP_Separator));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Subtract"), s7_make_integer(sc, GDK_KEY_KP_Subtract));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Decimal"), s7_make_integer(sc, GDK_KEY_KP_Decimal));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_Divide"), s7_make_integer(sc, GDK_KEY_KP_Divide));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_0"), s7_make_integer(sc, GDK_KEY_KP_0));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_1"), s7_make_integer(sc, GDK_KEY_KP_1));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_2"), s7_make_integer(sc, GDK_KEY_KP_2));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_3"), s7_make_integer(sc, GDK_KEY_KP_3));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_4"), s7_make_integer(sc, GDK_KEY_KP_4));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_5"), s7_make_integer(sc, GDK_KEY_KP_5));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_6"), s7_make_integer(sc, GDK_KEY_KP_6));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_7"), s7_make_integer(sc, GDK_KEY_KP_7));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_8"), s7_make_integer(sc, GDK_KEY_KP_8));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_KP_9"), s7_make_integer(sc, GDK_KEY_KP_9));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F1"), s7_make_integer(sc, GDK_KEY_F1));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F2"), s7_make_integer(sc, GDK_KEY_F2));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F3"), s7_make_integer(sc, GDK_KEY_F3));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F4"), s7_make_integer(sc, GDK_KEY_F4));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F5"), s7_make_integer(sc, GDK_KEY_F5));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F6"), s7_make_integer(sc, GDK_KEY_F6));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F7"), s7_make_integer(sc, GDK_KEY_F7));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F8"), s7_make_integer(sc, GDK_KEY_F8));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F9"), s7_make_integer(sc, GDK_KEY_F9));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F10"), s7_make_integer(sc, GDK_KEY_F10));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F11"), s7_make_integer(sc, GDK_KEY_F11));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_L1"), s7_make_integer(sc, GDK_KEY_L1));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F12"), s7_make_integer(sc, GDK_KEY_F12));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_L2"), s7_make_integer(sc, GDK_KEY_L2));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F13"), s7_make_integer(sc, GDK_KEY_F13));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_L3"), s7_make_integer(sc, GDK_KEY_L3));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F14"), s7_make_integer(sc, GDK_KEY_F14));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_L4"), s7_make_integer(sc, GDK_KEY_L4));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F15"), s7_make_integer(sc, GDK_KEY_F15));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_L5"), s7_make_integer(sc, GDK_KEY_L5));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F16"), s7_make_integer(sc, GDK_KEY_F16));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_L6"), s7_make_integer(sc, GDK_KEY_L6));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F17"), s7_make_integer(sc, GDK_KEY_F17));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_L7"), s7_make_integer(sc, GDK_KEY_L7));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F18"), s7_make_integer(sc, GDK_KEY_F18));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_L8"), s7_make_integer(sc, GDK_KEY_L8));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F19"), s7_make_integer(sc, GDK_KEY_F19));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_L9"), s7_make_integer(sc, GDK_KEY_L9));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F20"), s7_make_integer(sc, GDK_KEY_F20));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_L10"), s7_make_integer(sc, GDK_KEY_L10));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F21"), s7_make_integer(sc, GDK_KEY_F21));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R1"), s7_make_integer(sc, GDK_KEY_R1));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F22"), s7_make_integer(sc, GDK_KEY_F22));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R2"), s7_make_integer(sc, GDK_KEY_R2));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F23"), s7_make_integer(sc, GDK_KEY_F23));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R3"), s7_make_integer(sc, GDK_KEY_R3));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F24"), s7_make_integer(sc, GDK_KEY_F24));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R4"), s7_make_integer(sc, GDK_KEY_R4));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F25"), s7_make_integer(sc, GDK_KEY_F25));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R5"), s7_make_integer(sc, GDK_KEY_R5));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F26"), s7_make_integer(sc, GDK_KEY_F26));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R6"), s7_make_integer(sc, GDK_KEY_R6));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F27"), s7_make_integer(sc, GDK_KEY_F27));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R7"), s7_make_integer(sc, GDK_KEY_R7));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F28"), s7_make_integer(sc, GDK_KEY_F28));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R8"), s7_make_integer(sc, GDK_KEY_R8));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F29"), s7_make_integer(sc, GDK_KEY_F29));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R9"), s7_make_integer(sc, GDK_KEY_R9));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F30"), s7_make_integer(sc, GDK_KEY_F30));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R10"), s7_make_integer(sc, GDK_KEY_R10));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F31"), s7_make_integer(sc, GDK_KEY_F31));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R11"), s7_make_integer(sc, GDK_KEY_R11));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F32"), s7_make_integer(sc, GDK_KEY_F32));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R12"), s7_make_integer(sc, GDK_KEY_R12));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F33"), s7_make_integer(sc, GDK_KEY_F33));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R13"), s7_make_integer(sc, GDK_KEY_R13));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F34"), s7_make_integer(sc, GDK_KEY_F34));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R14"), s7_make_integer(sc, GDK_KEY_R14));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F35"), s7_make_integer(sc, GDK_KEY_F35));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R15"), s7_make_integer(sc, GDK_KEY_R15));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Shift_L"), s7_make_integer(sc, GDK_KEY_Shift_L));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Shift_R"), s7_make_integer(sc, GDK_KEY_Shift_R));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Control_L"), s7_make_integer(sc, GDK_KEY_Control_L));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Control_R"), s7_make_integer(sc, GDK_KEY_Control_R));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Caps_Lock"), s7_make_integer(sc, GDK_KEY_Caps_Lock));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Shift_Lock"), s7_make_integer(sc, GDK_KEY_Shift_Lock));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Meta_L"), s7_make_integer(sc, GDK_KEY_Meta_L));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Meta_R"), s7_make_integer(sc, GDK_KEY_Meta_R));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Alt_L"), s7_make_integer(sc, GDK_KEY_Alt_L));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Alt_R"), s7_make_integer(sc, GDK_KEY_Alt_R));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_space"), s7_make_integer(sc, GDK_KEY_space));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_exclam"), s7_make_integer(sc, GDK_KEY_exclam));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_quotedbl"), s7_make_integer(sc, GDK_KEY_quotedbl));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_numbersign"), s7_make_integer(sc, GDK_KEY_numbersign));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_dollar"), s7_make_integer(sc, GDK_KEY_dollar));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_percent"), s7_make_integer(sc, GDK_KEY_percent));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_ampersand"), s7_make_integer(sc, GDK_KEY_ampersand));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_apostrophe"), s7_make_integer(sc, GDK_KEY_apostrophe));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_quoteright"), s7_make_integer(sc, GDK_KEY_quoteright));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_parenleft"), s7_make_integer(sc, GDK_KEY_parenleft));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_parenright"), s7_make_integer(sc, GDK_KEY_parenright));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_asterisk"), s7_make_integer(sc, GDK_KEY_asterisk));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_plus"), s7_make_integer(sc, GDK_KEY_plus));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_comma"), s7_make_integer(sc, GDK_KEY_comma));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_minus"), s7_make_integer(sc, GDK_KEY_minus));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_period"), s7_make_integer(sc, GDK_KEY_period));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_slash"), s7_make_integer(sc, GDK_KEY_slash));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_0"), s7_make_integer(sc, GDK_KEY_0));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_1"), s7_make_integer(sc, GDK_KEY_1));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_2"), s7_make_integer(sc, GDK_KEY_2));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_3"), s7_make_integer(sc, GDK_KEY_3));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_4"), s7_make_integer(sc, GDK_KEY_4));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_5"), s7_make_integer(sc, GDK_KEY_5));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_6"), s7_make_integer(sc, GDK_KEY_6));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_7"), s7_make_integer(sc, GDK_KEY_7));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_8"), s7_make_integer(sc, GDK_KEY_8));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_9"), s7_make_integer(sc, GDK_KEY_9));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_colon"), s7_make_integer(sc, GDK_KEY_colon));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_semicolon"), s7_make_integer(sc, GDK_KEY_semicolon));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_less"), s7_make_integer(sc, GDK_KEY_less));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_equal"), s7_make_integer(sc, GDK_KEY_equal));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_greater"), s7_make_integer(sc, GDK_KEY_greater));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_question"), s7_make_integer(sc, GDK_KEY_question));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_at"), s7_make_integer(sc, GDK_KEY_at));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_A"), s7_make_integer(sc, GDK_KEY_A));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_B"), s7_make_integer(sc, GDK_KEY_B));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_C"), s7_make_integer(sc, GDK_KEY_C));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_D"), s7_make_integer(sc, GDK_KEY_D));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_E"), s7_make_integer(sc, GDK_KEY_E));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_F"), s7_make_integer(sc, GDK_KEY_F));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_G"), s7_make_integer(sc, GDK_KEY_G));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_H"), s7_make_integer(sc, GDK_KEY_H));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_I"), s7_make_integer(sc, GDK_KEY_I));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_J"), s7_make_integer(sc, GDK_KEY_J));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_K"), s7_make_integer(sc, GDK_KEY_K));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_L"), s7_make_integer(sc, GDK_KEY_L));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_M"), s7_make_integer(sc, GDK_KEY_M));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_N"), s7_make_integer(sc, GDK_KEY_N));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_O"), s7_make_integer(sc, GDK_KEY_O));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_P"), s7_make_integer(sc, GDK_KEY_P));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Q"), s7_make_integer(sc, GDK_KEY_Q));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_R"), s7_make_integer(sc, GDK_KEY_R));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_S"), s7_make_integer(sc, GDK_KEY_S));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_T"), s7_make_integer(sc, GDK_KEY_T));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_U"), s7_make_integer(sc, GDK_KEY_U));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_V"), s7_make_integer(sc, GDK_KEY_V));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_W"), s7_make_integer(sc, GDK_KEY_W));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_X"), s7_make_integer(sc, GDK_KEY_X));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Y"), s7_make_integer(sc, GDK_KEY_Y));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_Z"), s7_make_integer(sc, GDK_KEY_Z));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_bracketleft"), s7_make_integer(sc, GDK_KEY_bracketleft));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_backslash"), s7_make_integer(sc, GDK_KEY_backslash));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_bracketright"), s7_make_integer(sc, GDK_KEY_bracketright));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_asciicircum"), s7_make_integer(sc, GDK_KEY_asciicircum));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_underscore"), s7_make_integer(sc, GDK_KEY_underscore));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_grave"), s7_make_integer(sc, GDK_KEY_grave));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_quoteleft"), s7_make_integer(sc, GDK_KEY_quoteleft));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_a"), s7_make_integer(sc, GDK_KEY_a));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_b"), s7_make_integer(sc, GDK_KEY_b));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_c"), s7_make_integer(sc, GDK_KEY_c));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_d"), s7_make_integer(sc, GDK_KEY_d));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_e"), s7_make_integer(sc, GDK_KEY_e));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_f"), s7_make_integer(sc, GDK_KEY_f));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_g"), s7_make_integer(sc, GDK_KEY_g));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_h"), s7_make_integer(sc, GDK_KEY_h));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_i"), s7_make_integer(sc, GDK_KEY_i));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_j"), s7_make_integer(sc, GDK_KEY_j));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_k"), s7_make_integer(sc, GDK_KEY_k));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_l"), s7_make_integer(sc, GDK_KEY_l));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_m"), s7_make_integer(sc, GDK_KEY_m));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_n"), s7_make_integer(sc, GDK_KEY_n));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_o"), s7_make_integer(sc, GDK_KEY_o));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_p"), s7_make_integer(sc, GDK_KEY_p));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_q"), s7_make_integer(sc, GDK_KEY_q));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_r"), s7_make_integer(sc, GDK_KEY_r));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_s"), s7_make_integer(sc, GDK_KEY_s));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_t"), s7_make_integer(sc, GDK_KEY_t));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_u"), s7_make_integer(sc, GDK_KEY_u));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_v"), s7_make_integer(sc, GDK_KEY_v));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_w"), s7_make_integer(sc, GDK_KEY_w));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_x"), s7_make_integer(sc, GDK_KEY_x));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_y"), s7_make_integer(sc, GDK_KEY_y));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_z"), s7_make_integer(sc, GDK_KEY_z));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_braceleft"), s7_make_integer(sc, GDK_KEY_braceleft));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_bar"), s7_make_integer(sc, GDK_KEY_bar));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_braceright"), s7_make_integer(sc, GDK_KEY_braceright));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_KEY_asciitilde"), s7_make_integer(sc, GDK_KEY_asciitilde));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH"), s7_make_integer(sc, GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT"), s7_make_integer(sc, GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ASSISTANT_PAGE_CUSTOM"), s7_make_integer(sc, GTK_ASSISTANT_PAGE_CUSTOM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_SEARCH_CASE_INSENSITIVE"), s7_make_integer(sc, GTK_TEXT_SEARCH_CASE_INSENSITIVE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_MINIMUM"), s7_make_integer(sc, GTK_SCROLL_MINIMUM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SCROLL_NATURAL"), s7_make_integer(sc, GTK_SCROLL_NATURAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TARGET_SAME_APP"), s7_make_integer(sc, GTK_TARGET_SAME_APP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TARGET_SAME_WIDGET"), s7_make_integer(sc, GTK_TARGET_SAME_WIDGET));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TARGET_OTHER_APP"), s7_make_integer(sc, GTK_TARGET_OTHER_APP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TARGET_OTHER_WIDGET"), s7_make_integer(sc, GTK_TARGET_OTHER_WIDGET));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ALIGN_FILL"), s7_make_integer(sc, GTK_ALIGN_FILL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ALIGN_START"), s7_make_integer(sc, GTK_ALIGN_START));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ALIGN_END"), s7_make_integer(sc, GTK_ALIGN_END));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ALIGN_CENTER"), s7_make_integer(sc, GTK_ALIGN_CENTER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TOOL_PALETTE_DRAG_ITEMS"), s7_make_integer(sc, GTK_TOOL_PALETTE_DRAG_ITEMS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TOOL_PALETTE_DRAG_GROUPS"), s7_make_integer(sc, GTK_TOOL_PALETTE_DRAG_GROUPS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_IMAGE_GICON"), s7_make_integer(sc, GTK_IMAGE_GICON));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_CHOOSER_ERROR_NONEXISTENT"), s7_make_integer(sc, GTK_FILE_CHOOSER_ERROR_NONEXISTENT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_CHOOSER_ERROR_BAD_FILENAME"), s7_make_integer(sc, GTK_FILE_CHOOSER_ERROR_BAD_FILENAME));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS"), s7_make_integer(sc, GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_FILE_CHOOSER_ERROR_INCOMPLETE_HOSTNAME"), s7_make_integer(sc, GTK_FILE_CHOOSER_ERROR_INCOMPLETE_HOSTNAME));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ICON_LOOKUP_FORCE_SIZE"), s7_make_integer(sc, GTK_ICON_LOOKUP_FORCE_SIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ICON_THEME_NOT_FOUND"), s7_make_integer(sc, GTK_ICON_THEME_NOT_FOUND));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ICON_THEME_FAILED"), s7_make_integer(sc, GTK_ICON_THEME_FAILED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STATE_FLAG_NORMAL"), s7_make_integer(sc, GTK_STATE_FLAG_NORMAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STATE_FLAG_ACTIVE"), s7_make_integer(sc, GTK_STATE_FLAG_ACTIVE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STATE_FLAG_PRELIGHT"), s7_make_integer(sc, GTK_STATE_FLAG_PRELIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STATE_FLAG_SELECTED"), s7_make_integer(sc, GTK_STATE_FLAG_SELECTED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STATE_FLAG_INSENSITIVE"), s7_make_integer(sc, GTK_STATE_FLAG_INSENSITIVE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STATE_FLAG_INCONSISTENT"), s7_make_integer(sc, GTK_STATE_FLAG_INCONSISTENT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STATE_FLAG_FOCUSED"), s7_make_integer(sc, GTK_STATE_FLAG_FOCUSED));
+#endif
+
+#if GTK_CHECK_VERSION(3, 2, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SIZE_REQUEST_CONSTANT_SIZE"), s7_make_integer(sc, GTK_SIZE_REQUEST_CONSTANT_SIZE));
+#endif
+
+#if GTK_CHECK_VERSION(3, 4, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR"), s7_make_integer(sc, GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MODIFIER_INTENT_CONTEXT_MENU"), s7_make_integer(sc, GDK_MODIFIER_INTENT_CONTEXT_MENU));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MODIFIER_INTENT_EXTEND_SELECTION"), s7_make_integer(sc, GDK_MODIFIER_INTENT_EXTEND_SELECTION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MODIFIER_INTENT_MODIFY_SELECTION"), s7_make_integer(sc, GDK_MODIFIER_INTENT_MODIFY_SELECTION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MODIFIER_INTENT_NO_TEXT_INPUT"), s7_make_integer(sc, GDK_MODIFIER_INTENT_NO_TEXT_INPUT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MODIFIER_INTENT_SHIFT_GROUP"), s7_make_integer(sc, GDK_MODIFIER_INTENT_SHIFT_GROUP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_REGION_ONLY"), s7_make_integer(sc, GTK_REGION_ONLY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_STATE_FOCUSED"), s7_make_integer(sc, GDK_WINDOW_STATE_FOCUSED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CELL_RENDERER_EXPANDABLE"), s7_make_integer(sc, GTK_CELL_RENDERER_EXPANDABLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_CELL_RENDERER_EXPANDED"), s7_make_integer(sc, GTK_CELL_RENDERER_EXPANDED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STATE_FLAG_BACKDROP"), s7_make_integer(sc, GTK_STATE_FLAG_BACKDROP));
+#endif
+
+#if GTK_CHECK_VERSION(3, 6, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOUCH_BEGIN"), s7_make_integer(sc, GDK_TOUCH_BEGIN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOUCH_UPDATE"), s7_make_integer(sc, GDK_TOUCH_UPDATE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOUCH_END"), s7_make_integer(sc, GDK_TOUCH_END));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOUCH_CANCEL"), s7_make_integer(sc, GDK_TOUCH_CANCEL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SCROLL_SMOOTH"), s7_make_integer(sc, GDK_SCROLL_SMOOTH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CROSSING_TOUCH_BEGIN"), s7_make_integer(sc, GDK_CROSSING_TOUCH_BEGIN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CROSSING_TOUCH_END"), s7_make_integer(sc, GDK_CROSSING_TOUCH_END));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_CROSSING_DEVICE_SWITCH"), s7_make_integer(sc, GDK_CROSSING_DEVICE_SWITCH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOUCH_MASK"), s7_make_integer(sc, GDK_TOUCH_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SMOOTH_SCROLL_MASK"), s7_make_integer(sc, GDK_SMOOTH_SCROLL_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_LEVEL_BAR_MODE_CONTINUOUS"), s7_make_integer(sc, GTK_LEVEL_BAR_MODE_CONTINUOUS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_LEVEL_BAR_MODE_DISCRETE"), s7_make_integer(sc, GTK_LEVEL_BAR_MODE_DISCRETE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_PURPOSE_FREE_FORM"), s7_make_integer(sc, GTK_INPUT_PURPOSE_FREE_FORM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_PURPOSE_ALPHA"), s7_make_integer(sc, GTK_INPUT_PURPOSE_ALPHA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_PURPOSE_DIGITS"), s7_make_integer(sc, GTK_INPUT_PURPOSE_DIGITS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_PURPOSE_NUMBER"), s7_make_integer(sc, GTK_INPUT_PURPOSE_NUMBER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_PURPOSE_PHONE"), s7_make_integer(sc, GTK_INPUT_PURPOSE_PHONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_PURPOSE_URL"), s7_make_integer(sc, GTK_INPUT_PURPOSE_URL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_PURPOSE_EMAIL"), s7_make_integer(sc, GTK_INPUT_PURPOSE_EMAIL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_PURPOSE_NAME"), s7_make_integer(sc, GTK_INPUT_PURPOSE_NAME));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_PURPOSE_PASSWORD"), s7_make_integer(sc, GTK_INPUT_PURPOSE_PASSWORD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_PURPOSE_PIN"), s7_make_integer(sc, GTK_INPUT_PURPOSE_PIN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_HINT_NONE"), s7_make_integer(sc, GTK_INPUT_HINT_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_HINT_SPELLCHECK"), s7_make_integer(sc, GTK_INPUT_HINT_SPELLCHECK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_HINT_NO_SPELLCHECK"), s7_make_integer(sc, GTK_INPUT_HINT_NO_SPELLCHECK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_HINT_WORD_COMPLETION"), s7_make_integer(sc, GTK_INPUT_HINT_WORD_COMPLETION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_HINT_LOWERCASE"), s7_make_integer(sc, GTK_INPUT_HINT_LOWERCASE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_HINT_UPPERCASE_CHARS"), s7_make_integer(sc, GTK_INPUT_HINT_UPPERCASE_CHARS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_HINT_UPPERCASE_WORDS"), s7_make_integer(sc, GTK_INPUT_HINT_UPPERCASE_WORDS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_HINT_UPPERCASE_SENTENCES"), s7_make_integer(sc, GTK_INPUT_HINT_UPPERCASE_SENTENCES));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_INPUT_HINT_INHIBIT_OSK"), s7_make_integer(sc, GTK_INPUT_HINT_INHIBIT_OSK));
+#endif
+
+#if GTK_CHECK_VERSION(3, 8, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STATE_FLAG_DIR_LTR"), s7_make_integer(sc, GTK_STATE_FLAG_DIR_LTR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STATE_FLAG_DIR_RTL"), s7_make_integer(sc, GTK_STATE_FLAG_DIR_RTL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_FULLSCREEN_ON_CURRENT_MONITOR"), s7_make_integer(sc, GDK_FULLSCREEN_ON_CURRENT_MONITOR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_FULLSCREEN_ON_ALL_MONITORS"), s7_make_integer(sc, GDK_FULLSCREEN_ON_ALL_MONITORS));
+#endif
+
+#if GTK_CHECK_VERSION(3, 10, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_ALIGN_BASELINE"), s7_make_integer(sc, GTK_ALIGN_BASELINE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_BASELINE_POSITION_TOP"), s7_make_integer(sc, GTK_BASELINE_POSITION_TOP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_BASELINE_POSITION_CENTER"), s7_make_integer(sc, GTK_BASELINE_POSITION_CENTER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_BASELINE_POSITION_BOTTOM"), s7_make_integer(sc, GTK_BASELINE_POSITION_BOTTOM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PLACES_OPEN_NORMAL"), s7_make_integer(sc, GTK_PLACES_OPEN_NORMAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PLACES_OPEN_NEW_TAB"), s7_make_integer(sc, GTK_PLACES_OPEN_NEW_TAB));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PLACES_OPEN_NEW_WINDOW"), s7_make_integer(sc, GTK_PLACES_OPEN_NEW_WINDOW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_NONE"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_CROSSFADE"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_CROSSFADE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_SLIDE_UP"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_SLIDE_UP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_SLIDE_DOWN"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_SLIDE_DOWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_REVEALER_TRANSITION_TYPE_NONE"), s7_make_integer(sc, GTK_REVEALER_TRANSITION_TYPE_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_REVEALER_TRANSITION_TYPE_CROSSFADE"), s7_make_integer(sc, GTK_REVEALER_TRANSITION_TYPE_CROSSFADE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT"), s7_make_integer(sc, GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT"), s7_make_integer(sc, GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP"), s7_make_integer(sc, GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN"), s7_make_integer(sc, GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_STATE_TILED"), s7_make_integer(sc, GDK_WINDOW_STATE_TILED));
+#endif
+
+#if GTK_CHECK_VERSION(3, 12, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_OVER_UP"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_OVER_UP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_OVER_DOWN"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_OVER_DOWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_OVER_LEFT"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_OVER_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_OVER_RIGHT"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_OVER_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_UNDER_UP"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_UNDER_UP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_UNDER_DOWN"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_UNDER_DOWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_UNDER_LEFT"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_UNDER_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN"), s7_make_integer(sc, GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN));
+#endif
+
+#if GTK_CHECK_VERSION(3, 14, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PHASE_NONE"), s7_make_integer(sc, GTK_PHASE_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PHASE_CAPTURE"), s7_make_integer(sc, GTK_PHASE_CAPTURE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PHASE_BUBBLE"), s7_make_integer(sc, GTK_PHASE_BUBBLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PHASE_TARGET"), s7_make_integer(sc, GTK_PHASE_TARGET));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_VIEW_LAYER_BELOW"), s7_make_integer(sc, GTK_TEXT_VIEW_LAYER_BELOW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_VIEW_LAYER_ABOVE"), s7_make_integer(sc, GTK_TEXT_VIEW_LAYER_ABOVE));
+#endif
+
+#if GTK_CHECK_VERSION(3, 16, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_POLICY_EXTERNAL"), s7_make_integer(sc, GTK_POLICY_EXTERNAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_WEIGHT_SEMILIGHT"), s7_make_integer(sc, PANGO_WEIGHT_SEMILIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_EXTEND_SELECTION_WORD"), s7_make_integer(sc, GTK_TEXT_EXTEND_SELECTION_WORD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_TEXT_EXTEND_SELECTION_LINE"), s7_make_integer(sc, GTK_TEXT_EXTEND_SELECTION_LINE));
+#endif
+
+#if GTK_CHECK_VERSION(3, 18, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOUCHPAD_SWIPE"), s7_make_integer(sc, GDK_TOUCHPAD_SWIPE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOUCHPAD_PINCH"), s7_make_integer(sc, GDK_TOUCHPAD_PINCH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOUCHPAD_GESTURE_PHASE_BEGIN"), s7_make_integer(sc, GDK_TOUCHPAD_GESTURE_PHASE_BEGIN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOUCHPAD_GESTURE_PHASE_UPDATE"), s7_make_integer(sc, GDK_TOUCHPAD_GESTURE_PHASE_UPDATE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOUCHPAD_GESTURE_PHASE_END"), s7_make_integer(sc, GDK_TOUCHPAD_GESTURE_PHASE_END));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOUCHPAD_GESTURE_PHASE_CANCEL"), s7_make_integer(sc, GDK_TOUCHPAD_GESTURE_PHASE_CANCEL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TOUCHPAD_GESTURE_MASK"), s7_make_integer(sc, GDK_TOUCHPAD_GESTURE_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK"), s7_make_integer(sc, GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK));
+#endif
+
+#if GTK_CHECK_VERSION(3, 20, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHORTCUT_ACCELERATOR"), s7_make_integer(sc, GTK_SHORTCUT_ACCELERATOR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHORTCUT_GESTURE_PINCH"), s7_make_integer(sc, GTK_SHORTCUT_GESTURE_PINCH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHORTCUT_GESTURE_STRETCH"), s7_make_integer(sc, GTK_SHORTCUT_GESTURE_STRETCH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHORTCUT_GESTURE_ROTATE_CLOCKWISE"), s7_make_integer(sc, GTK_SHORTCUT_GESTURE_ROTATE_CLOCKWISE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHORTCUT_GESTURE_ROTATE_COUNTERCLOCKWISE"), s7_make_integer(sc, GTK_SHORTCUT_GESTURE_ROTATE_COUNTERCLOCKWISE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_LEFT"), s7_make_integer(sc, GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_RIGHT"), s7_make_integer(sc, GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_RIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHORTCUT_GESTURE"), s7_make_integer(sc, GTK_SHORTCUT_GESTURE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_POPOVER_CONSTRAINT_NONE"), s7_make_integer(sc, GTK_POPOVER_CONSTRAINT_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_POPOVER_CONSTRAINT_WINDOW"), s7_make_integer(sc, GTK_POPOVER_CONSTRAINT_WINDOW));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TYPE_HINT_SPLASHSCREEN"), s7_make_integer(sc, GDK_WINDOW_TYPE_HINT_SPLASHSCREEN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TYPE_HINT_UTILITY"), s7_make_integer(sc, GDK_WINDOW_TYPE_HINT_UTILITY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TYPE_HINT_DOCK"), s7_make_integer(sc, GDK_WINDOW_TYPE_HINT_DOCK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TYPE_HINT_DESKTOP"), s7_make_integer(sc, GDK_WINDOW_TYPE_HINT_DESKTOP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU"), s7_make_integer(sc, GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TYPE_HINT_POPUP_MENU"), s7_make_integer(sc, GDK_WINDOW_TYPE_HINT_POPUP_MENU));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TYPE_HINT_TOOLTIP"), s7_make_integer(sc, GDK_WINDOW_TYPE_HINT_TOOLTIP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TYPE_HINT_NOTIFICATION"), s7_make_integer(sc, GDK_WINDOW_TYPE_HINT_NOTIFICATION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TYPE_HINT_COMBO"), s7_make_integer(sc, GDK_WINDOW_TYPE_HINT_COMBO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_WINDOW_TYPE_HINT_DND"), s7_make_integer(sc, GDK_WINDOW_TYPE_HINT_DND));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SEAT_CAPABILITY_NONE"), s7_make_integer(sc, GDK_SEAT_CAPABILITY_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SEAT_CAPABILITY_POINTER"), s7_make_integer(sc, GDK_SEAT_CAPABILITY_POINTER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SEAT_CAPABILITY_TOUCH"), s7_make_integer(sc, GDK_SEAT_CAPABILITY_TOUCH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SEAT_CAPABILITY_TABLET_STYLUS"), s7_make_integer(sc, GDK_SEAT_CAPABILITY_TABLET_STYLUS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SEAT_CAPABILITY_KEYBOARD"), s7_make_integer(sc, GDK_SEAT_CAPABILITY_KEYBOARD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SEAT_CAPABILITY_ALL_POINTING"), s7_make_integer(sc, GDK_SEAT_CAPABILITY_ALL_POINTING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SEAT_CAPABILITY_ALL"), s7_make_integer(sc, GDK_SEAT_CAPABILITY_ALL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STATE_FLAG_DROP_ACTIVE"), s7_make_integer(sc, GTK_STATE_FLAG_DROP_ACTIVE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DRAG_CANCEL_NO_TARGET"), s7_make_integer(sc, GDK_DRAG_CANCEL_NO_TARGET));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DRAG_CANCEL_USER_CANCELLED"), s7_make_integer(sc, GDK_DRAG_CANCEL_USER_CANCELLED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DRAG_CANCEL_ERROR"), s7_make_integer(sc, GDK_DRAG_CANCEL_ERROR));
+#endif
+
+#if GTK_CHECK_VERSION(3, 22, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_IGNORE"), s7_make_integer(sc, GDK_AXIS_IGNORE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_X"), s7_make_integer(sc, GDK_AXIS_X));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_Y"), s7_make_integer(sc, GDK_AXIS_Y));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_PRESSURE"), s7_make_integer(sc, GDK_AXIS_PRESSURE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_XTILT"), s7_make_integer(sc, GDK_AXIS_XTILT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_YTILT"), s7_make_integer(sc, GDK_AXIS_YTILT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_WHEEL"), s7_make_integer(sc, GDK_AXIS_WHEEL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_LAST"), s7_make_integer(sc, GDK_AXIS_LAST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_FLAG_X"), s7_make_integer(sc, GDK_AXIS_FLAG_X));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_FLAG_Y"), s7_make_integer(sc, GDK_AXIS_FLAG_Y));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_FLAG_PRESSURE"), s7_make_integer(sc, GDK_AXIS_FLAG_PRESSURE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_FLAG_XTILT"), s7_make_integer(sc, GDK_AXIS_FLAG_XTILT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_FLAG_YTILT"), s7_make_integer(sc, GDK_AXIS_FLAG_YTILT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_FLAG_WHEEL"), s7_make_integer(sc, GDK_AXIS_FLAG_WHEEL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_FLAG_DISTANCE"), s7_make_integer(sc, GDK_AXIS_FLAG_DISTANCE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_FLAG_ROTATION"), s7_make_integer(sc, GDK_AXIS_FLAG_ROTATION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_AXIS_FLAG_SLIDER"), s7_make_integer(sc, GDK_AXIS_FLAG_SLIDER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DEVICE_TOOL_TYPE_UNKNOWN"), s7_make_integer(sc, GDK_DEVICE_TOOL_TYPE_UNKNOWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DEVICE_TOOL_TYPE_PEN"), s7_make_integer(sc, GDK_DEVICE_TOOL_TYPE_PEN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DEVICE_TOOL_TYPE_ERASER"), s7_make_integer(sc, GDK_DEVICE_TOOL_TYPE_ERASER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DEVICE_TOOL_TYPE_BRUSH"), s7_make_integer(sc, GDK_DEVICE_TOOL_TYPE_BRUSH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DEVICE_TOOL_TYPE_PENCIL"), s7_make_integer(sc, GDK_DEVICE_TOOL_TYPE_PENCIL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DEVICE_TOOL_TYPE_AIRBRUSH"), s7_make_integer(sc, GDK_DEVICE_TOOL_TYPE_AIRBRUSH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DEVICE_TOOL_TYPE_MOUSE"), s7_make_integer(sc, GDK_DEVICE_TOOL_TYPE_MOUSE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DEVICE_TOOL_TYPE_LENS"), s7_make_integer(sc, GDK_DEVICE_TOOL_TYPE_LENS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SUBPIXEL_LAYOUT_UNKNOWN"), s7_make_integer(sc, GDK_SUBPIXEL_LAYOUT_UNKNOWN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SUBPIXEL_LAYOUT_NONE"), s7_make_integer(sc, GDK_SUBPIXEL_LAYOUT_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SUBPIXEL_LAYOUT_HORIZONTAL_RGB"), s7_make_integer(sc, GDK_SUBPIXEL_LAYOUT_HORIZONTAL_RGB));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SUBPIXEL_LAYOUT_HORIZONTAL_BGR"), s7_make_integer(sc, GDK_SUBPIXEL_LAYOUT_HORIZONTAL_BGR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SUBPIXEL_LAYOUT_VERTICAL_RGB"), s7_make_integer(sc, GDK_SUBPIXEL_LAYOUT_VERTICAL_RGB));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SUBPIXEL_LAYOUT_VERTICAL_BGR"), s7_make_integer(sc, GDK_SUBPIXEL_LAYOUT_VERTICAL_BGR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DEVICE_PAD_FEATURE_BUTTON"), s7_make_integer(sc, GDK_DEVICE_PAD_FEATURE_BUTTON));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DEVICE_PAD_FEATURE_RING"), s7_make_integer(sc, GDK_DEVICE_PAD_FEATURE_RING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_DEVICE_PAD_FEATURE_STRIP"), s7_make_integer(sc, GDK_DEVICE_PAD_FEATURE_STRIP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PAD_BUTTON_PRESS"), s7_make_integer(sc, GDK_PAD_BUTTON_PRESS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PAD_BUTTON_RELEASE"), s7_make_integer(sc, GDK_PAD_BUTTON_RELEASE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PAD_RING"), s7_make_integer(sc, GDK_PAD_RING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PAD_STRIP"), s7_make_integer(sc, GDK_PAD_STRIP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_PAD_GROUP_MODE"), s7_make_integer(sc, GDK_PAD_GROUP_MODE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TABLET_PAD_MASK"), s7_make_integer(sc, GDK_TABLET_PAD_MASK));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ANCHOR_FLIP_X"), s7_make_integer(sc, GDK_ANCHOR_FLIP_X));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ANCHOR_FLIP_Y"), s7_make_integer(sc, GDK_ANCHOR_FLIP_Y));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ANCHOR_SLIDE_X"), s7_make_integer(sc, GDK_ANCHOR_SLIDE_X));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ANCHOR_SLIDE_Y"), s7_make_integer(sc, GDK_ANCHOR_SLIDE_Y));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ANCHOR_RESIZE_X"), s7_make_integer(sc, GDK_ANCHOR_RESIZE_X));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ANCHOR_RESIZE_Y"), s7_make_integer(sc, GDK_ANCHOR_RESIZE_Y));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ANCHOR_FLIP"), s7_make_integer(sc, GDK_ANCHOR_FLIP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ANCHOR_SLIDE"), s7_make_integer(sc, GDK_ANCHOR_SLIDE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_ANCHOR_RESIZE"), s7_make_integer(sc, GDK_ANCHOR_RESIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PAD_ACTION_BUTTON"), s7_make_integer(sc, GTK_PAD_ACTION_BUTTON));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PAD_ACTION_RING"), s7_make_integer(sc, GTK_PAD_ACTION_RING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PAD_ACTION_STRIP"), s7_make_integer(sc, GTK_PAD_ACTION_STRIP));
+#endif
+
+#if GTK_CHECK_VERSION(3, 99, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHORTCUT_GESTURE_SWIPE_LEFT"), s7_make_integer(sc, GTK_SHORTCUT_GESTURE_SWIPE_LEFT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_SHORTCUT_GESTURE_SWIPE_RIGHT"), s7_make_integer(sc, GTK_SHORTCUT_GESTURE_SWIPE_RIGHT));
+#endif
+
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_SUCCESS"), s7_make_integer(sc, CAIRO_STATUS_SUCCESS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_NO_MEMORY"), s7_make_integer(sc, CAIRO_STATUS_NO_MEMORY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_RESTORE"), s7_make_integer(sc, CAIRO_STATUS_INVALID_RESTORE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_POP_GROUP"), s7_make_integer(sc, CAIRO_STATUS_INVALID_POP_GROUP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_NO_CURRENT_POINT"), s7_make_integer(sc, CAIRO_STATUS_NO_CURRENT_POINT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_MATRIX"), s7_make_integer(sc, CAIRO_STATUS_INVALID_MATRIX));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_STATUS"), s7_make_integer(sc, CAIRO_STATUS_INVALID_STATUS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_NULL_POINTER"), s7_make_integer(sc, CAIRO_STATUS_NULL_POINTER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_STRING"), s7_make_integer(sc, CAIRO_STATUS_INVALID_STRING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_PATH_DATA"), s7_make_integer(sc, CAIRO_STATUS_INVALID_PATH_DATA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_READ_ERROR"), s7_make_integer(sc, CAIRO_STATUS_READ_ERROR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_WRITE_ERROR"), s7_make_integer(sc, CAIRO_STATUS_WRITE_ERROR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_SURFACE_FINISHED"), s7_make_integer(sc, CAIRO_STATUS_SURFACE_FINISHED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_SURFACE_TYPE_MISMATCH"), s7_make_integer(sc, CAIRO_STATUS_SURFACE_TYPE_MISMATCH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_PATTERN_TYPE_MISMATCH"), s7_make_integer(sc, CAIRO_STATUS_PATTERN_TYPE_MISMATCH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_CONTENT"), s7_make_integer(sc, CAIRO_STATUS_INVALID_CONTENT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_FORMAT"), s7_make_integer(sc, CAIRO_STATUS_INVALID_FORMAT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_VISUAL"), s7_make_integer(sc, CAIRO_STATUS_INVALID_VISUAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_FILE_NOT_FOUND"), s7_make_integer(sc, CAIRO_STATUS_FILE_NOT_FOUND));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_DASH"), s7_make_integer(sc, CAIRO_STATUS_INVALID_DASH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_DSC_COMMENT"), s7_make_integer(sc, CAIRO_STATUS_INVALID_DSC_COMMENT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_INDEX"), s7_make_integer(sc, CAIRO_STATUS_INVALID_INDEX));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_CLIP_NOT_REPRESENTABLE"), s7_make_integer(sc, CAIRO_STATUS_CLIP_NOT_REPRESENTABLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_TEMP_FILE_ERROR"), s7_make_integer(sc, CAIRO_STATUS_TEMP_FILE_ERROR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_STRIDE"), s7_make_integer(sc, CAIRO_STATUS_INVALID_STRIDE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_CONTENT_COLOR"), s7_make_integer(sc, CAIRO_CONTENT_COLOR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_CONTENT_ALPHA"), s7_make_integer(sc, CAIRO_CONTENT_ALPHA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_CONTENT_COLOR_ALPHA"), s7_make_integer(sc, CAIRO_CONTENT_COLOR_ALPHA));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_CLEAR"), s7_make_integer(sc, CAIRO_OPERATOR_CLEAR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_SOURCE"), s7_make_integer(sc, CAIRO_OPERATOR_SOURCE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_OVER"), s7_make_integer(sc, CAIRO_OPERATOR_OVER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_IN"), s7_make_integer(sc, CAIRO_OPERATOR_IN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_OUT"), s7_make_integer(sc, CAIRO_OPERATOR_OUT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_ATOP"), s7_make_integer(sc, CAIRO_OPERATOR_ATOP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_DEST"), s7_make_integer(sc, CAIRO_OPERATOR_DEST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_DEST_OVER"), s7_make_integer(sc, CAIRO_OPERATOR_DEST_OVER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_DEST_IN"), s7_make_integer(sc, CAIRO_OPERATOR_DEST_IN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_DEST_OUT"), s7_make_integer(sc, CAIRO_OPERATOR_DEST_OUT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_DEST_ATOP"), s7_make_integer(sc, CAIRO_OPERATOR_DEST_ATOP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_XOR"), s7_make_integer(sc, CAIRO_OPERATOR_XOR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_ADD"), s7_make_integer(sc, CAIRO_OPERATOR_ADD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_SATURATE"), s7_make_integer(sc, CAIRO_OPERATOR_SATURATE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_ANTIALIAS_DEFAULT"), s7_make_integer(sc, CAIRO_ANTIALIAS_DEFAULT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_ANTIALIAS_NONE"), s7_make_integer(sc, CAIRO_ANTIALIAS_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_ANTIALIAS_GRAY"), s7_make_integer(sc, CAIRO_ANTIALIAS_GRAY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_ANTIALIAS_SUBPIXEL"), s7_make_integer(sc, CAIRO_ANTIALIAS_SUBPIXEL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FILL_RULE_WINDING"), s7_make_integer(sc, CAIRO_FILL_RULE_WINDING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FILL_RULE_EVEN_ODD"), s7_make_integer(sc, CAIRO_FILL_RULE_EVEN_ODD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_LINE_CAP_BUTT"), s7_make_integer(sc, CAIRO_LINE_CAP_BUTT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_LINE_CAP_ROUND"), s7_make_integer(sc, CAIRO_LINE_CAP_ROUND));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_LINE_CAP_SQUARE"), s7_make_integer(sc, CAIRO_LINE_CAP_SQUARE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_LINE_JOIN_MITER"), s7_make_integer(sc, CAIRO_LINE_JOIN_MITER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_LINE_JOIN_ROUND"), s7_make_integer(sc, CAIRO_LINE_JOIN_ROUND));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_LINE_JOIN_BEVEL"), s7_make_integer(sc, CAIRO_LINE_JOIN_BEVEL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FONT_SLANT_NORMAL"), s7_make_integer(sc, CAIRO_FONT_SLANT_NORMAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FONT_SLANT_ITALIC"), s7_make_integer(sc, CAIRO_FONT_SLANT_ITALIC));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FONT_SLANT_OBLIQUE"), s7_make_integer(sc, CAIRO_FONT_SLANT_OBLIQUE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FONT_WEIGHT_NORMAL"), s7_make_integer(sc, CAIRO_FONT_WEIGHT_NORMAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FONT_WEIGHT_BOLD"), s7_make_integer(sc, CAIRO_FONT_WEIGHT_BOLD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SUBPIXEL_ORDER_DEFAULT"), s7_make_integer(sc, CAIRO_SUBPIXEL_ORDER_DEFAULT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SUBPIXEL_ORDER_RGB"), s7_make_integer(sc, CAIRO_SUBPIXEL_ORDER_RGB));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SUBPIXEL_ORDER_BGR"), s7_make_integer(sc, CAIRO_SUBPIXEL_ORDER_BGR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SUBPIXEL_ORDER_VRGB"), s7_make_integer(sc, CAIRO_SUBPIXEL_ORDER_VRGB));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SUBPIXEL_ORDER_VBGR"), s7_make_integer(sc, CAIRO_SUBPIXEL_ORDER_VBGR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_HINT_STYLE_DEFAULT"), s7_make_integer(sc, CAIRO_HINT_STYLE_DEFAULT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_HINT_STYLE_NONE"), s7_make_integer(sc, CAIRO_HINT_STYLE_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_HINT_STYLE_SLIGHT"), s7_make_integer(sc, CAIRO_HINT_STYLE_SLIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_HINT_STYLE_MEDIUM"), s7_make_integer(sc, CAIRO_HINT_STYLE_MEDIUM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_HINT_STYLE_FULL"), s7_make_integer(sc, CAIRO_HINT_STYLE_FULL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_HINT_METRICS_DEFAULT"), s7_make_integer(sc, CAIRO_HINT_METRICS_DEFAULT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_HINT_METRICS_OFF"), s7_make_integer(sc, CAIRO_HINT_METRICS_OFF));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_HINT_METRICS_ON"), s7_make_integer(sc, CAIRO_HINT_METRICS_ON));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FONT_TYPE_TOY"), s7_make_integer(sc, CAIRO_FONT_TYPE_TOY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FONT_TYPE_FT"), s7_make_integer(sc, CAIRO_FONT_TYPE_FT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FONT_TYPE_WIN32"), s7_make_integer(sc, CAIRO_FONT_TYPE_WIN32));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FONT_TYPE_QUARTZ"), s7_make_integer(sc, CAIRO_FONT_TYPE_QUARTZ));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_PATH_MOVE_TO"), s7_make_integer(sc, CAIRO_PATH_MOVE_TO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_PATH_LINE_TO"), s7_make_integer(sc, CAIRO_PATH_LINE_TO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_PATH_CURVE_TO"), s7_make_integer(sc, CAIRO_PATH_CURVE_TO));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_PATH_CLOSE_PATH"), s7_make_integer(sc, CAIRO_PATH_CLOSE_PATH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_IMAGE"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_IMAGE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_PDF"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_PDF));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_PS"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_PS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_XLIB"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_XLIB));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_XCB"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_XCB));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_GLITZ"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_GLITZ));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_QUARTZ"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_QUARTZ));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_WIN32"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_WIN32));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_BEOS"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_BEOS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_DIRECTFB"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_DIRECTFB));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_SVG"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_SVG));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_OS2"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_OS2));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_WIN32_PRINTING"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_WIN32_PRINTING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_QUARTZ_IMAGE"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_QUARTZ_IMAGE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FORMAT_ARGB32"), s7_make_integer(sc, CAIRO_FORMAT_ARGB32));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FORMAT_RGB24"), s7_make_integer(sc, CAIRO_FORMAT_RGB24));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FORMAT_A8"), s7_make_integer(sc, CAIRO_FORMAT_A8));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FORMAT_A1"), s7_make_integer(sc, CAIRO_FORMAT_A1));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_PATTERN_TYPE_SOLID"), s7_make_integer(sc, CAIRO_PATTERN_TYPE_SOLID));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_PATTERN_TYPE_SURFACE"), s7_make_integer(sc, CAIRO_PATTERN_TYPE_SURFACE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_PATTERN_TYPE_LINEAR"), s7_make_integer(sc, CAIRO_PATTERN_TYPE_LINEAR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_PATTERN_TYPE_RADIAL"), s7_make_integer(sc, CAIRO_PATTERN_TYPE_RADIAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_EXTEND_NONE"), s7_make_integer(sc, CAIRO_EXTEND_NONE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_EXTEND_REPEAT"), s7_make_integer(sc, CAIRO_EXTEND_REPEAT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_EXTEND_REFLECT"), s7_make_integer(sc, CAIRO_EXTEND_REFLECT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_EXTEND_PAD"), s7_make_integer(sc, CAIRO_EXTEND_PAD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FILTER_FAST"), s7_make_integer(sc, CAIRO_FILTER_FAST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FILTER_GOOD"), s7_make_integer(sc, CAIRO_FILTER_GOOD));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FILTER_BEST"), s7_make_integer(sc, CAIRO_FILTER_BEST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FILTER_NEAREST"), s7_make_integer(sc, CAIRO_FILTER_NEAREST));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FILTER_BILINEAR"), s7_make_integer(sc, CAIRO_FILTER_BILINEAR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_FILTER_GAUSSIAN"), s7_make_integer(sc, CAIRO_FILTER_GAUSSIAN));
+#if HAVE_CAIRO_1_8
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_FONT_TYPE_MISMATCH"), s7_make_integer(sc, CAIRO_STATUS_FONT_TYPE_MISMATCH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_USER_FONT_IMMUTABLE"), s7_make_integer(sc, CAIRO_STATUS_USER_FONT_IMMUTABLE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_USER_FONT_ERROR"), s7_make_integer(sc, CAIRO_STATUS_USER_FONT_ERROR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_NEGATIVE_COUNT"), s7_make_integer(sc, CAIRO_STATUS_NEGATIVE_COUNT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_CLUSTERS"), s7_make_integer(sc, CAIRO_STATUS_INVALID_CLUSTERS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_SLANT"), s7_make_integer(sc, CAIRO_STATUS_INVALID_SLANT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_WEIGHT"), s7_make_integer(sc, CAIRO_STATUS_INVALID_WEIGHT));
+#endif
+
+#if HAVE_CAIRO_1_9_12 && GTK_CHECK_VERSION(3, 0, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_INVALID_SIZE"), s7_make_integer(sc, CAIRO_STATUS_INVALID_SIZE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED"), s7_make_integer(sc, CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_DEVICE_TYPE_MISMATCH"), s7_make_integer(sc, CAIRO_STATUS_DEVICE_TYPE_MISMATCH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_STATUS_DEVICE_ERROR"), s7_make_integer(sc, CAIRO_STATUS_DEVICE_ERROR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_MULTIPLY"), s7_make_integer(sc, CAIRO_OPERATOR_MULTIPLY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_SCREEN"), s7_make_integer(sc, CAIRO_OPERATOR_SCREEN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_OVERLAY"), s7_make_integer(sc, CAIRO_OPERATOR_OVERLAY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_DARKEN"), s7_make_integer(sc, CAIRO_OPERATOR_DARKEN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_LIGHTEN"), s7_make_integer(sc, CAIRO_OPERATOR_LIGHTEN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_COLOR_DODGE"), s7_make_integer(sc, CAIRO_OPERATOR_COLOR_DODGE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_COLOR_BURN"), s7_make_integer(sc, CAIRO_OPERATOR_COLOR_BURN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_HARD_LIGHT"), s7_make_integer(sc, CAIRO_OPERATOR_HARD_LIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_SOFT_LIGHT"), s7_make_integer(sc, CAIRO_OPERATOR_SOFT_LIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_DIFFERENCE"), s7_make_integer(sc, CAIRO_OPERATOR_DIFFERENCE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_EXCLUSION"), s7_make_integer(sc, CAIRO_OPERATOR_EXCLUSION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_HSL_HUE"), s7_make_integer(sc, CAIRO_OPERATOR_HSL_HUE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_HSL_SATURATION"), s7_make_integer(sc, CAIRO_OPERATOR_HSL_SATURATION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_HSL_COLOR"), s7_make_integer(sc, CAIRO_OPERATOR_HSL_COLOR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_OPERATOR_HSL_LUMINOSITY"), s7_make_integer(sc, CAIRO_OPERATOR_HSL_LUMINOSITY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_SCRIPT"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_SCRIPT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_QT"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_QT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_RECORDING"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_RECORDING));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_VG"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_VG));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_GL"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_GL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_DRM"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_DRM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_TEE"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_TEE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_XML"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_XML));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_SURFACE_TYPE_SKIA"), s7_make_integer(sc, CAIRO_SURFACE_TYPE_SKIA));
+#endif
+
+}
+
+static void define_doubles(s7_scheme *sc)
+{
+  s7_pointer cur_env;
+  cur_env = s7_curlet(sc);
+
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCALE_XX_SMALL"), s7_make_real(sc, PANGO_SCALE_XX_SMALL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCALE_X_SMALL"), s7_make_real(sc, PANGO_SCALE_X_SMALL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCALE_SMALL"), s7_make_real(sc, PANGO_SCALE_SMALL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCALE_MEDIUM"), s7_make_real(sc, PANGO_SCALE_MEDIUM));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCALE_LARGE"), s7_make_real(sc, PANGO_SCALE_LARGE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCALE_X_LARGE"), s7_make_real(sc, PANGO_SCALE_X_LARGE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "PANGO_SCALE_XX_LARGE"), s7_make_real(sc, PANGO_SCALE_XX_LARGE));
+}
+
+
+static void define_atoms(s7_scheme *sc)
+{
+  s7_pointer cur_env, gdkatom_symbol;
+  cur_env = s7_curlet(sc);
+  gdkatom_symbol = s7_make_symbol(sc, "GdkAtom");
+
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SELECTION_PRIMARY"), s7_make_c_pointer_with_type(sc, GDK_SELECTION_PRIMARY, gdkatom_symbol, lg_false));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SELECTION_SECONDARY"), s7_make_c_pointer_with_type(sc, GDK_SELECTION_SECONDARY, gdkatom_symbol, lg_false));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SELECTION_CLIPBOARD"), s7_make_c_pointer_with_type(sc, GDK_SELECTION_CLIPBOARD, gdkatom_symbol, lg_false));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TARGET_BITMAP"), s7_make_c_pointer_with_type(sc, GDK_TARGET_BITMAP, gdkatom_symbol, lg_false));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TARGET_DRAWABLE"), s7_make_c_pointer_with_type(sc, GDK_TARGET_DRAWABLE, gdkatom_symbol, lg_false));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_TARGET_STRING"), s7_make_c_pointer_with_type(sc, GDK_TARGET_STRING, gdkatom_symbol, lg_false));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SELECTION_TYPE_ATOM"), s7_make_c_pointer_with_type(sc, GDK_SELECTION_TYPE_ATOM, gdkatom_symbol, lg_false));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SELECTION_TYPE_BITMAP"), s7_make_c_pointer_with_type(sc, GDK_SELECTION_TYPE_BITMAP, gdkatom_symbol, lg_false));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SELECTION_TYPE_DRAWABLE"), s7_make_c_pointer_with_type(sc, GDK_SELECTION_TYPE_DRAWABLE, gdkatom_symbol, lg_false));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SELECTION_TYPE_INTEGER"), s7_make_c_pointer_with_type(sc, GDK_SELECTION_TYPE_INTEGER, gdkatom_symbol, lg_false));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SELECTION_TYPE_WINDOW"), s7_make_c_pointer_with_type(sc, GDK_SELECTION_TYPE_WINDOW, gdkatom_symbol, lg_false));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_SELECTION_TYPE_STRING"), s7_make_c_pointer_with_type(sc, GDK_SELECTION_TYPE_STRING, gdkatom_symbol, lg_false));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GDK_NONE"), s7_make_c_pointer_with_type(sc, GDK_NONE, gdkatom_symbol, lg_false));
+}
+
+
+static void define_symbols(s7_scheme *sc)
+{
+  GtkCenterBox__sym = s7_make_symbol(sc, "GtkCenterBox_");
+  GtkCheckButton__sym = s7_make_symbol(sc, "GtkCheckButton_");
+  GdkDrawContext__sym = s7_make_symbol(sc, "GdkDrawContext_");
+  GtkDrawingAreaDrawFunc_sym = s7_make_symbol(sc, "GtkDrawingAreaDrawFunc");
+  GtkShortcutLabel__sym = s7_make_symbol(sc, "GtkShortcutLabel_");
+  GtkPadActionEntry__sym = s7_make_symbol(sc, "GtkPadActionEntry_");
+  GActionGroup__sym = s7_make_symbol(sc, "GActionGroup_");
+  GtkPadController__sym = s7_make_symbol(sc, "GtkPadController_");
+  GdkDevicePad__sym = s7_make_symbol(sc, "GdkDevicePad_");
+  GdkDrawingContext__sym = s7_make_symbol(sc, "GdkDrawingContext_");
+  GdkMonitor__sym = s7_make_symbol(sc, "GdkMonitor_");
+  GdkDeviceTool__sym = s7_make_symbol(sc, "GdkDeviceTool_");
+  GdkSeatGrabPrepareFunc_sym = s7_make_symbol(sc, "GdkSeatGrabPrepareFunc");
+  GtkShortcutsWindow__sym = s7_make_symbol(sc, "GtkShortcutsWindow_");
+  GtkStackSidebar__sym = s7_make_symbol(sc, "GtkStackSidebar_");
+  GtkSearchEntry__sym = s7_make_symbol(sc, "GtkSearchEntry_");
+  GtkPopoverMenu__sym = s7_make_symbol(sc, "GtkPopoverMenu_");
+  GtkStyleContext__sym = s7_make_symbol(sc, "GtkStyleContext_");
+  GdkGLContext__sym = s7_make_symbol(sc, "GdkGLContext_");
+  GtkGLArea__sym = s7_make_symbol(sc, "GtkGLArea_");
+  GtkEventController__sym = s7_make_symbol(sc, "GtkEventController_");
+  GtkGestureZoom__sym = s7_make_symbol(sc, "GtkGestureZoom_");
+  GtkGestureSwipe__sym = s7_make_symbol(sc, "GtkGestureSwipe_");
+  GtkGestureSingle__sym = s7_make_symbol(sc, "GtkGestureSingle_");
+  GtkGestureRotate__sym = s7_make_symbol(sc, "GtkGestureRotate_");
+  GtkGestureMultiPress__sym = s7_make_symbol(sc, "GtkGestureMultiPress_");
+  GtkGesturePan__sym = s7_make_symbol(sc, "GtkGesturePan_");
+  GtkGestureDrag__sym = s7_make_symbol(sc, "GtkGestureDrag_");
+  GdkEventSequence__sym = s7_make_symbol(sc, "GdkEventSequence_");
+  GtkGesture__sym = s7_make_symbol(sc, "GtkGesture_");
+  GtkPopover__sym = s7_make_symbol(sc, "GtkPopover_");
+  GtkActionBar__sym = s7_make_symbol(sc, "GtkActionBar_");
+  GtkFlowBox__sym = s7_make_symbol(sc, "GtkFlowBox_");
+  GtkFlowBoxChild__sym = s7_make_symbol(sc, "GtkFlowBoxChild_");
+  GtkSearchBar__sym = s7_make_symbol(sc, "GtkSearchBar_");
+  GtkListBox__sym = s7_make_symbol(sc, "GtkListBox_");
+  GtkListBoxRow__sym = s7_make_symbol(sc, "GtkListBoxRow_");
+  GtkHeaderBar__sym = s7_make_symbol(sc, "GtkHeaderBar_");
+  GtkRevealer__sym = s7_make_symbol(sc, "GtkRevealer_");
+  GtkStack__sym = s7_make_symbol(sc, "GtkStack_");
+  GtkStackSwitcher__sym = s7_make_symbol(sc, "GtkStackSwitcher_");
+  GtkPlacesSidebar__sym = s7_make_symbol(sc, "GtkPlacesSidebar_");
+  GtkLevelBar__sym = s7_make_symbol(sc, "GtkLevelBar_");
+  GtkMenuButton__sym = s7_make_symbol(sc, "GtkMenuButton_");
+  GtkColorChooser__sym = s7_make_symbol(sc, "GtkColorChooser_");
+  GtkApplicationWindow__sym = s7_make_symbol(sc, "GtkApplicationWindow_");
+  GtkApplication__sym = s7_make_symbol(sc, "GtkApplication_");
+  GMenuModel__sym = s7_make_symbol(sc, "GMenuModel_");
+  guint___sym = s7_make_symbol(sc, "guint__");
+  GtkFontChooser__sym = s7_make_symbol(sc, "GtkFontChooser_");
+  GtkOverlay__sym = s7_make_symbol(sc, "GtkOverlay_");
+  GtkWidgetPath__sym = s7_make_symbol(sc, "GtkWidgetPath_");
+  GdkScreen___sym = s7_make_symbol(sc, "GdkScreen__");
+  GtkToolShell__sym = s7_make_symbol(sc, "GtkToolShell_");
+  GtkWindowGroup__sym = s7_make_symbol(sc, "GtkWindowGroup_");
+  GtkInvisible__sym = s7_make_symbol(sc, "GtkInvisible_");
+  GtkOrientable__sym = s7_make_symbol(sc, "GtkOrientable_");
+  GtkCellArea__sym = s7_make_symbol(sc, "GtkCellArea_");
+  GtkBorder__sym = s7_make_symbol(sc, "GtkBorder_");
+  GtkSwitch__sym = s7_make_symbol(sc, "GtkSwitch_");
+  GtkScrollable__sym = s7_make_symbol(sc, "GtkScrollable_");
+  GtkGrid__sym = s7_make_symbol(sc, "GtkGrid_");
+  GdkRGBA__sym = s7_make_symbol(sc, "GdkRGBA_");
+  GtkComboBoxText__sym = s7_make_symbol(sc, "GtkComboBoxText_");
+  cairo_region_overlap_t_sym = s7_make_symbol(sc, "cairo_region_overlap_t");
+  cairo_rectangle_int_t__sym = s7_make_symbol(sc, "cairo_rectangle_int_t_");
+  double__sym = s7_make_symbol(sc, "double_");
+  cairo_rectangle_t__sym = s7_make_symbol(sc, "cairo_rectangle_t_");
+  cairo_device_t__sym = s7_make_symbol(sc, "cairo_device_t_");
+  cairo_text_cluster_flags_t__sym = s7_make_symbol(sc, "cairo_text_cluster_flags_t_");
+  cairo_text_cluster_t___sym = s7_make_symbol(sc, "cairo_text_cluster_t__");
+  cairo_glyph_t___sym = s7_make_symbol(sc, "cairo_glyph_t__");
+  cairo_text_cluster_t__sym = s7_make_symbol(sc, "cairo_text_cluster_t_");
+  cairo_region_t__sym = s7_make_symbol(sc, "cairo_region_t_");
+  GtkMessageDialog__sym = s7_make_symbol(sc, "GtkMessageDialog_");
+  GdkDevice__sym = s7_make_symbol(sc, "GdkDevice_");
+  GtkAccessible__sym = s7_make_symbol(sc, "GtkAccessible_");
+  GdkModifierType__sym = s7_make_symbol(sc, "GdkModifierType_");
+  GtkToolItemGroup__sym = s7_make_symbol(sc, "GtkToolItemGroup_");
+  GtkToolPalette__sym = s7_make_symbol(sc, "GtkToolPalette_");
+  GtkSpinner__sym = s7_make_symbol(sc, "GtkSpinner_");
+  GtkEntryBuffer__sym = s7_make_symbol(sc, "GtkEntryBuffer_");
+  GtkInfoBar__sym = s7_make_symbol(sc, "GtkInfoBar_");
+  GIcon__sym = s7_make_symbol(sc, "GIcon_");
+  GFile__sym = s7_make_symbol(sc, "GFile_");
+  GtkScaleButton__sym = s7_make_symbol(sc, "GtkScaleButton_");
+  GtkCalendarDetailFunc_sym = s7_make_symbol(sc, "GtkCalendarDetailFunc");
+  GtkTooltip__sym = s7_make_symbol(sc, "GtkTooltip_");
+  cairo_rectangle_list_t__sym = s7_make_symbol(sc, "cairo_rectangle_list_t_");
+  void__sym = s7_make_symbol(sc, "void_");
+  cairo_path_t__sym = s7_make_symbol(sc, "cairo_path_t_");
+  cairo_destroy_func_t_sym = s7_make_symbol(sc, "cairo_destroy_func_t");
+  cairo_user_data_key_t__sym = s7_make_symbol(sc, "cairo_user_data_key_t_");
+  cairo_text_extents_t__sym = s7_make_symbol(sc, "cairo_text_extents_t_");
+  cairo_font_extents_t__sym = s7_make_symbol(sc, "cairo_font_extents_t_");
+  cairo_font_face_t__sym = s7_make_symbol(sc, "cairo_font_face_t_");
+  cairo_glyph_t__sym = s7_make_symbol(sc, "cairo_glyph_t_");
+  cairo_scaled_font_t__sym = s7_make_symbol(sc, "cairo_scaled_font_t_");
+  cairo_matrix_t__sym = s7_make_symbol(sc, "cairo_matrix_t_");
+  cairo_pattern_t__sym = s7_make_symbol(sc, "cairo_pattern_t_");
+  GtkPageRange__sym = s7_make_symbol(sc, "GtkPageRange_");
+  GtkPaperSize__sym = s7_make_symbol(sc, "GtkPaperSize_");
+  GtkPrintSettingsFunc_sym = s7_make_symbol(sc, "GtkPrintSettingsFunc");
+  GtkPageSetupDoneFunc_sym = s7_make_symbol(sc, "GtkPageSetupDoneFunc");
+  GtkPrintSettings__sym = s7_make_symbol(sc, "GtkPrintSettings_");
+  GtkPrintOperation__sym = s7_make_symbol(sc, "GtkPrintOperation_");
+  GtkPageSetup__sym = s7_make_symbol(sc, "GtkPageSetup_");
+  GtkPrintContext__sym = s7_make_symbol(sc, "GtkPrintContext_");
+  cairo_surface_t__sym = s7_make_symbol(sc, "cairo_surface_t_");
+  GtkRecentData__sym = s7_make_symbol(sc, "GtkRecentData_");
+  GtkTextBufferDeserializeFunc_sym = s7_make_symbol(sc, "GtkTextBufferDeserializeFunc");
+  GtkTextBufferSerializeFunc_sym = s7_make_symbol(sc, "GtkTextBufferSerializeFunc");
+  GtkRecentChooserMenu__sym = s7_make_symbol(sc, "GtkRecentChooserMenu_");
+  GtkRecentManager__sym = s7_make_symbol(sc, "GtkRecentManager_");
+  GtkRecentFilter__sym = s7_make_symbol(sc, "GtkRecentFilter_");
+  GtkRecentSortFunc_sym = s7_make_symbol(sc, "GtkRecentSortFunc");
+  GtkRecentChooser__sym = s7_make_symbol(sc, "GtkRecentChooser_");
+  GtkLinkButton__sym = s7_make_symbol(sc, "GtkLinkButton_");
+  GtkAssistantPageFunc_sym = s7_make_symbol(sc, "GtkAssistantPageFunc");
+  GtkAssistant__sym = s7_make_symbol(sc, "GtkAssistant_");
+  GDestroyNotify_sym = s7_make_symbol(sc, "GDestroyNotify");
+  GtkTreeViewSearchPositionFunc_sym = s7_make_symbol(sc, "GtkTreeViewSearchPositionFunc");
+  GtkClipboardRichTextReceivedFunc_sym = s7_make_symbol(sc, "GtkClipboardRichTextReceivedFunc");
+  GtkMenuBar__sym = s7_make_symbol(sc, "GtkMenuBar_");
+  GValue__sym = s7_make_symbol(sc, "GValue_");
+  GLogFunc_sym = s7_make_symbol(sc, "GLogFunc");
+  PangoMatrix__sym = s7_make_symbol(sc, "PangoMatrix_");
+  PangoRenderer__sym = s7_make_symbol(sc, "PangoRenderer_");
+  GtkClipboardImageReceivedFunc_sym = s7_make_symbol(sc, "GtkClipboardImageReceivedFunc");
+  GtkMenuToolButton__sym = s7_make_symbol(sc, "GtkMenuToolButton_");
+  GtkFileChooserButton__sym = s7_make_symbol(sc, "GtkFileChooserButton_");
+  PangoScriptIter__sym = s7_make_symbol(sc, "PangoScriptIter_");
+  PangoAttrFilterFunc_sym = s7_make_symbol(sc, "PangoAttrFilterFunc");
+  GtkIconViewForeachFunc_sym = s7_make_symbol(sc, "GtkIconViewForeachFunc");
+  GtkAboutDialog__sym = s7_make_symbol(sc, "GtkAboutDialog_");
+  GtkTreeViewRowSeparatorFunc_sym = s7_make_symbol(sc, "GtkTreeViewRowSeparatorFunc");
+  GtkCellView__sym = s7_make_symbol(sc, "GtkCellView_");
+  GtkAccelMap__sym = s7_make_symbol(sc, "GtkAccelMap_");
+  GtkClipboardTargetsReceivedFunc_sym = s7_make_symbol(sc, "GtkClipboardTargetsReceivedFunc");
+  GtkToolButton__sym = s7_make_symbol(sc, "GtkToolButton_");
+  GtkIconInfo__sym = s7_make_symbol(sc, "GtkIconInfo_");
+  GtkIconTheme__sym = s7_make_symbol(sc, "GtkIconTheme_");
+  GtkFileChooser__sym = s7_make_symbol(sc, "GtkFileChooser_");
+  GtkCellLayoutDataFunc_sym = s7_make_symbol(sc, "GtkCellLayoutDataFunc");
+  GtkCellLayout__sym = s7_make_symbol(sc, "GtkCellLayout_");
+  GtkFileFilterFunc_sym = s7_make_symbol(sc, "GtkFileFilterFunc");
+  GtkFileFilter__sym = s7_make_symbol(sc, "GtkFileFilter_");
+  GSourceFunc_sym = s7_make_symbol(sc, "GSourceFunc");
+  GtkToggleToolButton__sym = s7_make_symbol(sc, "GtkToggleToolButton_");
+  GtkSeparatorToolItem__sym = s7_make_symbol(sc, "GtkSeparatorToolItem_");
+  GtkRadioToolButton__sym = s7_make_symbol(sc, "GtkRadioToolButton_");
+  GtkEntryCompletionMatchFunc_sym = s7_make_symbol(sc, "GtkEntryCompletionMatchFunc");
+  GtkFontButton__sym = s7_make_symbol(sc, "GtkFontButton_");
+  GtkExpander__sym = s7_make_symbol(sc, "GtkExpander_");
+  GtkComboBox__sym = s7_make_symbol(sc, "GtkComboBox_");
+  GtkTreeModelFilter__sym = s7_make_symbol(sc, "GtkTreeModelFilter_");
+  GtkToolItem__sym = s7_make_symbol(sc, "GtkToolItem_");
+  GtkEventBox__sym = s7_make_symbol(sc, "GtkEventBox_");
+  GdkScreen__sym = s7_make_symbol(sc, "GdkScreen_");
+  PangoLayoutRun__sym = s7_make_symbol(sc, "PangoLayoutRun_");
+  PangoLayoutIter__sym = s7_make_symbol(sc, "PangoLayoutIter_");
+  PangoLayoutLine__sym = s7_make_symbol(sc, "PangoLayoutLine_");
+  int__sym = s7_make_symbol(sc, "int_");
+  PangoItem__sym = s7_make_symbol(sc, "PangoItem_");
+  PangoGlyphString__sym = s7_make_symbol(sc, "PangoGlyphString_");
+  PangoFontMap__sym = s7_make_symbol(sc, "PangoFontMap_");
+  PangoFontFace__sym = s7_make_symbol(sc, "PangoFontFace_");
+  PangoFontFace___sym = s7_make_symbol(sc, "PangoFontFace__");
+  PangoFontFamily__sym = s7_make_symbol(sc, "PangoFontFamily_");
+  PangoFontDescription___sym = s7_make_symbol(sc, "PangoFontDescription__");
+  PangoCoverage__sym = s7_make_symbol(sc, "PangoCoverage_");
+  PangoFontMetrics__sym = s7_make_symbol(sc, "PangoFontMetrics_");
+  PangoFontset__sym = s7_make_symbol(sc, "PangoFontset_");
+  PangoFont__sym = s7_make_symbol(sc, "PangoFont_");
+  PangoFontFamily___sym = s7_make_symbol(sc, "PangoFontFamily__");
+  PangoLogAttr__sym = s7_make_symbol(sc, "PangoLogAttr_");
+  PangoAnalysis__sym = s7_make_symbol(sc, "PangoAnalysis_");
+  PangoAttrList___sym = s7_make_symbol(sc, "PangoAttrList__");
+  PangoAttrIterator__sym = s7_make_symbol(sc, "PangoAttrIterator_");
+  PangoRectangle__sym = s7_make_symbol(sc, "PangoRectangle_");
+  PangoAttribute__sym = s7_make_symbol(sc, "PangoAttribute_");
+  PangoColor__sym = s7_make_symbol(sc, "PangoColor_");
+  GtkWindow__sym = s7_make_symbol(sc, "GtkWindow_");
+  AtkObject__sym = s7_make_symbol(sc, "AtkObject_");
+  GtkAllocation__sym = s7_make_symbol(sc, "GtkAllocation_");
+  GtkViewport__sym = s7_make_symbol(sc, "GtkViewport_");
+  GtkTreeViewSearchEqualFunc_sym = s7_make_symbol(sc, "GtkTreeViewSearchEqualFunc");
+  GtkTreeViewMappingFunc_sym = s7_make_symbol(sc, "GtkTreeViewMappingFunc");
+  GtkTreeViewColumnDropFunc_sym = s7_make_symbol(sc, "GtkTreeViewColumnDropFunc");
+  GtkTreeCellDataFunc_sym = s7_make_symbol(sc, "GtkTreeCellDataFunc");
+  GtkTreeStore__sym = s7_make_symbol(sc, "GtkTreeStore_");
+  GtkTreeIterCompareFunc_sym = s7_make_symbol(sc, "GtkTreeIterCompareFunc");
+  GtkTreeSortable__sym = s7_make_symbol(sc, "GtkTreeSortable_");
+  GtkTreeSelectionForeachFunc_sym = s7_make_symbol(sc, "GtkTreeSelectionForeachFunc");
+  GtkTreeModel___sym = s7_make_symbol(sc, "GtkTreeModel__");
+  GtkTreeSelectionFunc_sym = s7_make_symbol(sc, "GtkTreeSelectionFunc");
+  GtkTreeModelSort__sym = s7_make_symbol(sc, "GtkTreeModelSort_");
+  GtkTreeModelForeachFunc_sym = s7_make_symbol(sc, "GtkTreeModelForeachFunc");
+  GtkTreeRowReference__sym = s7_make_symbol(sc, "GtkTreeRowReference_");
+  GtkTreeDragDest__sym = s7_make_symbol(sc, "GtkTreeDragDest_");
+  GtkTreeDragSource__sym = s7_make_symbol(sc, "GtkTreeDragSource_");
+  GtkToolbar__sym = s7_make_symbol(sc, "GtkToolbar_");
+  GtkToggleButton__sym = s7_make_symbol(sc, "GtkToggleButton_");
+  PangoTabArray__sym = s7_make_symbol(sc, "PangoTabArray_");
+  GtkTextView__sym = s7_make_symbol(sc, "GtkTextView_");
+  GtkTextTagTableForeach_sym = s7_make_symbol(sc, "GtkTextTagTableForeach");
+  GtkTextAttributes__sym = s7_make_symbol(sc, "GtkTextAttributes_");
+  GtkTextCharPredicate_sym = s7_make_symbol(sc, "GtkTextCharPredicate");
+  GtkTextMark__sym = s7_make_symbol(sc, "GtkTextMark_");
+  GtkTextChildAnchor__sym = s7_make_symbol(sc, "GtkTextChildAnchor_");
+  GtkTextIter__sym = s7_make_symbol(sc, "GtkTextIter_");
+  GtkTextTagTable__sym = s7_make_symbol(sc, "GtkTextTagTable_");
+  GtkTextBuffer__sym = s7_make_symbol(sc, "GtkTextBuffer_");
+  GtkStatusbar__sym = s7_make_symbol(sc, "GtkStatusbar_");
+  GtkSpinButton__sym = s7_make_symbol(sc, "GtkSpinButton_");
+  GtkSizeGroup__sym = s7_make_symbol(sc, "GtkSizeGroup_");
+  GtkSettings__sym = s7_make_symbol(sc, "GtkSettings_");
+  GtkScrolledWindow__sym = s7_make_symbol(sc, "GtkScrolledWindow_");
+  GtkScale__sym = s7_make_symbol(sc, "GtkScale_");
+  GtkRange__sym = s7_make_symbol(sc, "GtkRange_");
+  GtkRadioMenuItem__sym = s7_make_symbol(sc, "GtkRadioMenuItem_");
+  GtkRadioButton__sym = s7_make_symbol(sc, "GtkRadioButton_");
+  GtkProgressBar__sym = s7_make_symbol(sc, "GtkProgressBar_");
+  GtkPaned__sym = s7_make_symbol(sc, "GtkPaned_");
+  GtkNotebook__sym = s7_make_symbol(sc, "GtkNotebook_");
+  GtkMenuShell__sym = s7_make_symbol(sc, "GtkMenuShell_");
+  gint__sym = s7_make_symbol(sc, "gint_");
+  GtkMenuItem__sym = s7_make_symbol(sc, "GtkMenuItem_");
+  GtkMenu__sym = s7_make_symbol(sc, "GtkMenu_");
+  PangoLanguage__sym = s7_make_symbol(sc, "PangoLanguage_");
+  GtkListStore__sym = s7_make_symbol(sc, "GtkListStore_");
+  GtkLayout__sym = s7_make_symbol(sc, "GtkLayout_");
+  GtkLabel__sym = s7_make_symbol(sc, "GtkLabel_");
+  guint16__sym = s7_make_symbol(sc, "guint16_");
+  GtkIMContextSimple__sym = s7_make_symbol(sc, "GtkIMContextSimple_");
+  GdkEventKey__sym = s7_make_symbol(sc, "GdkEventKey_");
+  PangoAttrList__sym = s7_make_symbol(sc, "PangoAttrList_");
+  GtkIMContext__sym = s7_make_symbol(sc, "GtkIMContext_");
+  GtkImage__sym = s7_make_symbol(sc, "GtkImage_");
+  GtkFrame__sym = s7_make_symbol(sc, "GtkFrame_");
+  GtkFixed__sym = s7_make_symbol(sc, "GtkFixed_");
+  PangoLayout__sym = s7_make_symbol(sc, "PangoLayout_");
+  GtkEntry__sym = s7_make_symbol(sc, "GtkEntry_");
+  GtkEditable__sym = s7_make_symbol(sc, "GtkEditable_");
+  GtkTargetList__sym = s7_make_symbol(sc, "GtkTargetList_");
+  etc_sym = s7_make_symbol(sc, "etc");
+  GtkDialog__sym = s7_make_symbol(sc, "GtkDialog_");
+  GtkCallback_sym = s7_make_symbol(sc, "GtkCallback");
+  GtkContainer__sym = s7_make_symbol(sc, "GtkContainer_");
+  GtkClipboardTextReceivedFunc_sym = s7_make_symbol(sc, "GtkClipboardTextReceivedFunc");
+  GtkClipboardReceivedFunc_sym = s7_make_symbol(sc, "GtkClipboardReceivedFunc");
+  GtkClipboardClearFunc_sym = s7_make_symbol(sc, "GtkClipboardClearFunc");
+  GtkClipboardGetFunc_sym = s7_make_symbol(sc, "GtkClipboardGetFunc");
+  GtkTargetEntry__sym = s7_make_symbol(sc, "GtkTargetEntry_");
+  GtkCheckMenuItem__sym = s7_make_symbol(sc, "GtkCheckMenuItem_");
+  GtkCellRendererToggle__sym = s7_make_symbol(sc, "GtkCellRendererToggle_");
+  GtkCellRendererText__sym = s7_make_symbol(sc, "GtkCellRendererText_");
+  GtkCellEditable__sym = s7_make_symbol(sc, "GtkCellEditable_");
+  GtkCalendar__sym = s7_make_symbol(sc, "GtkCalendar_");
+  GtkButton__sym = s7_make_symbol(sc, "GtkButton_");
+  GtkBox__sym = s7_make_symbol(sc, "GtkBox_");
+  GtkBin__sym = s7_make_symbol(sc, "GtkBin_");
+  GtkBindingSet__sym = s7_make_symbol(sc, "GtkBindingSet_");
+  GtkButtonBox__sym = s7_make_symbol(sc, "GtkButtonBox_");
+  GtkAspectFrame__sym = s7_make_symbol(sc, "GtkAspectFrame_");
+  GtkAdjustment__sym = s7_make_symbol(sc, "GtkAdjustment_");
+  GtkAccelMapForeach_sym = s7_make_symbol(sc, "GtkAccelMapForeach");
+  GtkAccelLabel__sym = s7_make_symbol(sc, "GtkAccelLabel_");
+  GtkAccelGroupEntry__sym = s7_make_symbol(sc, "GtkAccelGroupEntry_");
+  lambda3_sym = s7_make_symbol(sc, "lambda3");
+  GSList__sym = s7_make_symbol(sc, "GSList_");
+  GObject__sym = s7_make_symbol(sc, "GObject_");
+  GtkAccelGroup__sym = s7_make_symbol(sc, "GtkAccelGroup_");
+  GTimeVal__sym = s7_make_symbol(sc, "GTimeVal_");
+  GdkPixbufAnimationIter__sym = s7_make_symbol(sc, "GdkPixbufAnimationIter_");
+  GdkPixbufAnimation__sym = s7_make_symbol(sc, "GdkPixbufAnimation_");
+  char___sym = s7_make_symbol(sc, "char__");
+  GdkPixbufDestroyNotify_sym = s7_make_symbol(sc, "GdkPixbufDestroyNotify");
+  GError__sym = s7_make_symbol(sc, "GError_");
+  GdkGeometry__sym = s7_make_symbol(sc, "GdkGeometry_");
+  GdkFilterFunc_sym = s7_make_symbol(sc, "GdkFilterFunc");
+  guchar__sym = s7_make_symbol(sc, "guchar_");
+  PangoContext__sym = s7_make_symbol(sc, "PangoContext_");
+  GdkKeymapKey__sym = s7_make_symbol(sc, "GdkKeymapKey_");
+  GdkKeymap__sym = s7_make_symbol(sc, "GdkKeymap_");
+  GdkRectangle__sym = s7_make_symbol(sc, "GdkRectangle_");
+  gchar___sym = s7_make_symbol(sc, "gchar__");
+  GdkEventFunc_sym = s7_make_symbol(sc, "GdkEventFunc");
+  GList__sym = s7_make_symbol(sc, "GList_");
+  GdkDragContext__sym = s7_make_symbol(sc, "GdkDragContext_");
+  GdkDisplay__sym = s7_make_symbol(sc, "GdkDisplay_");
+  GdkCursor__sym = s7_make_symbol(sc, "GdkCursor_");
+  GtkDestroyNotify_sym = s7_make_symbol(sc, "GtkDestroyNotify");
+  GSignalEmissionHook_sym = s7_make_symbol(sc, "GSignalEmissionHook");
+  GSignalInvocationHint__sym = s7_make_symbol(sc, "GSignalInvocationHint_");
+  guint__sym = s7_make_symbol(sc, "guint_");
+  GSignalQuery__sym = s7_make_symbol(sc, "GSignalQuery_");
+  GType__sym = s7_make_symbol(sc, "GType_");
+  GSignalCMarshaller_sym = s7_make_symbol(sc, "GSignalCMarshaller");
+  gpointer_sym = s7_make_symbol(sc, "gpointer");
+  GSignalAccumulator_sym = s7_make_symbol(sc, "GSignalAccumulator");
+  GClosureNotify_sym = s7_make_symbol(sc, "GClosureNotify");
+  GCallback_sym = s7_make_symbol(sc, "GCallback");
+  gunichar__sym = s7_make_symbol(sc, "gunichar_");
+  void_sym = s7_make_symbol(sc, "void");
+  GtkDrawingArea__sym = s7_make_symbol(sc, "GtkDrawingArea_");
+  GdkSeat__sym = s7_make_symbol(sc, "GdkSeat_");
+  GtkRecentInfo__sym = s7_make_symbol(sc, "GtkRecentInfo_");
+  guint8__sym = s7_make_symbol(sc, "guint8_");
+  GdkAtom_sym = s7_make_symbol(sc, "GdkAtom");
+  GdkPixbuf__sym = s7_make_symbol(sc, "GdkPixbuf_");
+  GtkIconView__sym = s7_make_symbol(sc, "GtkIconView_");
+  GtkEntryCompletion__sym = s7_make_symbol(sc, "GtkEntryCompletion_");
+  GtkFileFilterInfo__sym = s7_make_symbol(sc, "GtkFileFilterInfo_");
+  GtkTreeSelection__sym = s7_make_symbol(sc, "GtkTreeSelection_");
+  GtkCellRenderer__sym = s7_make_symbol(sc, "GtkCellRenderer_");
+  GtkTreeViewColumn__sym = s7_make_symbol(sc, "GtkTreeViewColumn_");
+  GtkTreeView__sym = s7_make_symbol(sc, "GtkTreeView_");
+  GdkAtom__sym = s7_make_symbol(sc, "GdkAtom_");
+  GtkSelectionData__sym = s7_make_symbol(sc, "GtkSelectionData_");
+  GtkClipboard__sym = s7_make_symbol(sc, "GtkClipboard_");
+  GtkTreeIter__sym = s7_make_symbol(sc, "GtkTreeIter_");
+  GtkTreePath__sym = s7_make_symbol(sc, "GtkTreePath_");
+  GtkTreeModel__sym = s7_make_symbol(sc, "GtkTreeModel_");
+  GtkTextTag__sym = s7_make_symbol(sc, "GtkTextTag_");
+  GdkXEvent__sym = s7_make_symbol(sc, "GdkXEvent_");
+  GtkWidget__sym = s7_make_symbol(sc, "GtkWidget_");
+  lambda_data_sym = s7_make_symbol(sc, "lambda_data");
+  GClosure__sym = s7_make_symbol(sc, "GClosure_");
+  GtkAccelKey__sym = s7_make_symbol(sc, "GtkAccelKey_");
+  GdkEventMotion__sym = s7_make_symbol(sc, "GdkEventMotion_");
+  gdouble__sym = s7_make_symbol(sc, "gdouble_");
+  GdkEventAny__sym = s7_make_symbol(sc, "GdkEventAny_");
+  GdkEvent__sym = s7_make_symbol(sc, "GdkEvent_");
+  GdkWindow__sym = s7_make_symbol(sc, "GdkWindow_");
+  cairo_t__sym = s7_make_symbol(sc, "cairo_t_");
+  cairo_font_options_t__sym = s7_make_symbol(sc, "cairo_font_options_t_");
+  PangoFontDescription__sym = s7_make_symbol(sc, "PangoFontDescription_");
+}
+
+
+static void define_strings(s7_scheme *sc)
+{
+  s7_pointer cur_env;
+  cur_env = s7_curlet(sc);
+
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_PRINTER"), s7_make_string(sc, GTK_PRINT_SETTINGS_PRINTER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_ORIENTATION"), s7_make_string(sc, GTK_PRINT_SETTINGS_ORIENTATION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_PAPER_FORMAT"), s7_make_string(sc, GTK_PRINT_SETTINGS_PAPER_FORMAT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_PAPER_WIDTH"), s7_make_string(sc, GTK_PRINT_SETTINGS_PAPER_WIDTH));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_PAPER_HEIGHT"), s7_make_string(sc, GTK_PRINT_SETTINGS_PAPER_HEIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_N_COPIES"), s7_make_string(sc, GTK_PRINT_SETTINGS_N_COPIES));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_DEFAULT_SOURCE"), s7_make_string(sc, GTK_PRINT_SETTINGS_DEFAULT_SOURCE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_QUALITY"), s7_make_string(sc, GTK_PRINT_SETTINGS_QUALITY));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_RESOLUTION"), s7_make_string(sc, GTK_PRINT_SETTINGS_RESOLUTION));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_USE_COLOR"), s7_make_string(sc, GTK_PRINT_SETTINGS_USE_COLOR));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_DUPLEX"), s7_make_string(sc, GTK_PRINT_SETTINGS_DUPLEX));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_COLLATE"), s7_make_string(sc, GTK_PRINT_SETTINGS_COLLATE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_REVERSE"), s7_make_string(sc, GTK_PRINT_SETTINGS_REVERSE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_MEDIA_TYPE"), s7_make_string(sc, GTK_PRINT_SETTINGS_MEDIA_TYPE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_DITHER"), s7_make_string(sc, GTK_PRINT_SETTINGS_DITHER));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_SCALE"), s7_make_string(sc, GTK_PRINT_SETTINGS_SCALE));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_PRINT_PAGES"), s7_make_string(sc, GTK_PRINT_SETTINGS_PRINT_PAGES));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_PAGE_RANGES"), s7_make_string(sc, GTK_PRINT_SETTINGS_PAGE_RANGES));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_PAGE_SET"), s7_make_string(sc, GTK_PRINT_SETTINGS_PAGE_SET));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_FINISHINGS"), s7_make_string(sc, GTK_PRINT_SETTINGS_FINISHINGS));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_NUMBER_UP"), s7_make_string(sc, GTK_PRINT_SETTINGS_NUMBER_UP));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_OUTPUT_BIN"), s7_make_string(sc, GTK_PRINT_SETTINGS_OUTPUT_BIN));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT"), s7_make_string(sc, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_PRINT_SETTINGS_OUTPUT_URI"), s7_make_string(sc, GTK_PRINT_SETTINGS_OUTPUT_URI));
+#if GTK_CHECK_VERSION(3, 0, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STYLE_CLASS_HIGHLIGHT"), s7_make_string(sc, GTK_STYLE_CLASS_HIGHLIGHT));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STYLE_CLASS_FRAME"), s7_make_string(sc, GTK_STYLE_CLASS_FRAME));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STYLE_CLASS_DND"), s7_make_string(sc, GTK_STYLE_CLASS_DND));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STYLE_CLASS_HORIZONTAL"), s7_make_string(sc, GTK_STYLE_CLASS_HORIZONTAL));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_STYLE_CLASS_VERTICAL"), s7_make_string(sc, GTK_STYLE_CLASS_VERTICAL));
+#endif
+
+#if GTK_CHECK_VERSION(3, 20, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "GTK_LEVEL_BAR_OFFSET_FULL"), s7_make_string(sc, GTK_LEVEL_BAR_OFFSET_FULL));
+#endif
+
+#if HAVE_CAIRO_1_9_12 && GTK_CHECK_VERSION(3, 0, 0)
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_MIME_TYPE_JPEG"), s7_make_string(sc, CAIRO_MIME_TYPE_JPEG));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_MIME_TYPE_PNG"), s7_make_string(sc, CAIRO_MIME_TYPE_PNG));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_MIME_TYPE_JP2"), s7_make_string(sc, CAIRO_MIME_TYPE_JP2));
+  s7_define(sc, cur_env, s7_make_symbol(sc, "CAIRO_MIME_TYPE_URI"), s7_make_string(sc, CAIRO_MIME_TYPE_URI));
+#endif
+
+}
+
+typedef struct {const char *name, *type; int64_t value;} enummer_t;
+static enummer_t enum_info[] = {
+#if GTK_CHECK_VERSION(2, 0, 0)
+        {"G_NORMALIZE_DEFAULT", "GNormalizeMode", G_NORMALIZE_DEFAULT},
+        {"G_NORMALIZE_NFD", "GNormalizeMode", G_NORMALIZE_NFD},
+        {"G_NORMALIZE_DEFAULT_COMPOSE", "GNormalizeMode", G_NORMALIZE_DEFAULT_COMPOSE},
+        {"G_NORMALIZE_NFC", "GNormalizeMode", G_NORMALIZE_NFC},
+        {"G_NORMALIZE_ALL", "GNormalizeMode", G_NORMALIZE_ALL},
+        {"G_NORMALIZE_NFKD", "GNormalizeMode", G_NORMALIZE_NFKD},
+        {"G_NORMALIZE_ALL_COMPOSE", "GNormalizeMode", G_NORMALIZE_ALL_COMPOSE},
+        {"G_NORMALIZE_NFKC", "GNormalizeMode", G_NORMALIZE_NFKC},
+        {"G_SIGNAL_RUN_FIRST", "GSignalFlags", G_SIGNAL_RUN_FIRST},
+        {"G_SIGNAL_RUN_LAST", "GSignalFlags", G_SIGNAL_RUN_LAST},
+        {"G_SIGNAL_RUN_CLEANUP", "GSignalFlags", G_SIGNAL_RUN_CLEANUP},
+        {"G_SIGNAL_NO_RECURSE", "GSignalFlags", G_SIGNAL_NO_RECURSE},
+        {"G_SIGNAL_DETAILED", "GSignalFlags", G_SIGNAL_DETAILED},
+        {"G_SIGNAL_ACTION", "GSignalFlags", G_SIGNAL_ACTION},
+        {"G_SIGNAL_NO_HOOKS", "GSignalFlags", G_SIGNAL_NO_HOOKS},
+        {"G_CONNECT_AFTER", "GConnectFlags", G_CONNECT_AFTER},
+        {"G_CONNECT_SWAPPED", "GConnectFlags", G_CONNECT_SWAPPED},
+        {"G_SIGNAL_MATCH_ID", "GSignalMatchType", G_SIGNAL_MATCH_ID},
+        {"G_SIGNAL_MATCH_DETAIL", "GSignalMatchType", G_SIGNAL_MATCH_DETAIL},
+        {"G_SIGNAL_MATCH_CLOSURE", "GSignalMatchType", G_SIGNAL_MATCH_CLOSURE},
+        {"G_SIGNAL_MATCH_FUNC", "GSignalMatchType", G_SIGNAL_MATCH_FUNC},
+        {"G_SIGNAL_MATCH_DATA", "GSignalMatchType", G_SIGNAL_MATCH_DATA},
+        {"G_SIGNAL_MATCH_UNBLOCKED", "GSignalMatchType", G_SIGNAL_MATCH_UNBLOCKED},
+        {"GDK_X_CURSOR", "GdkCursorType", GDK_X_CURSOR},
+        {"GDK_ARROW", "GdkCursorType", GDK_ARROW},
+        {"GDK_BASED_ARROW_DOWN", "GdkCursorType", GDK_BASED_ARROW_DOWN},
+        {"GDK_BASED_ARROW_UP", "GdkCursorType", GDK_BASED_ARROW_UP},
+        {"GDK_BOAT", "GdkCursorType", GDK_BOAT},
+        {"GDK_BOGOSITY", "GdkCursorType", GDK_BOGOSITY},
+        {"GDK_BOTTOM_LEFT_CORNER", "GdkCursorType", GDK_BOTTOM_LEFT_CORNER},
+        {"GDK_BOTTOM_RIGHT_CORNER", "GdkCursorType", GDK_BOTTOM_RIGHT_CORNER},
+        {"GDK_BOTTOM_SIDE", "GdkCursorType", GDK_BOTTOM_SIDE},
+        {"GDK_BOTTOM_TEE", "GdkCursorType", GDK_BOTTOM_TEE},
+        {"GDK_BOX_SPIRAL", "GdkCursorType", GDK_BOX_SPIRAL},
+        {"GDK_CENTER_PTR", "GdkCursorType", GDK_CENTER_PTR},
+        {"GDK_CIRCLE", "GdkCursorType", GDK_CIRCLE},
+        {"GDK_CLOCK", "GdkCursorType", GDK_CLOCK},
+        {"GDK_COFFEE_MUG", "GdkCursorType", GDK_COFFEE_MUG},
+        {"GDK_CROSS", "GdkCursorType", GDK_CROSS},
+        {"GDK_CROSS_REVERSE", "GdkCursorType", GDK_CROSS_REVERSE},
+        {"GDK_CROSSHAIR", "GdkCursorType", GDK_CROSSHAIR},
+        {"GDK_DIAMOND_CROSS", "GdkCursorType", GDK_DIAMOND_CROSS},
+        {"GDK_DOT", "GdkCursorType", GDK_DOT},
+        {"GDK_DOTBOX", "GdkCursorType", GDK_DOTBOX},
+        {"GDK_DOUBLE_ARROW", "GdkCursorType", GDK_DOUBLE_ARROW},
+        {"GDK_DRAFT_LARGE", "GdkCursorType", GDK_DRAFT_LARGE},
+        {"GDK_DRAFT_SMALL", "GdkCursorType", GDK_DRAFT_SMALL},
+        {"GDK_DRAPED_BOX", "GdkCursorType", GDK_DRAPED_BOX},
+        {"GDK_EXCHANGE", "GdkCursorType", GDK_EXCHANGE},
+        {"GDK_FLEUR", "GdkCursorType", GDK_FLEUR},
+        {"GDK_GOBBLER", "GdkCursorType", GDK_GOBBLER},
+        {"GDK_GUMBY", "GdkCursorType", GDK_GUMBY},
+        {"GDK_HAND1", "GdkCursorType", GDK_HAND1},
+        {"GDK_HAND2", "GdkCursorType", GDK_HAND2},
+        {"GDK_HEART", "GdkCursorType", GDK_HEART},
+        {"GDK_ICON", "GdkCursorType", GDK_ICON},
+        {"GDK_IRON_CROSS", "GdkCursorType", GDK_IRON_CROSS},
+        {"GDK_LEFT_PTR", "GdkCursorType", GDK_LEFT_PTR},
+        {"GDK_LEFT_SIDE", "GdkCursorType", GDK_LEFT_SIDE},
+        {"GDK_LEFT_TEE", "GdkCursorType", GDK_LEFT_TEE},
+        {"GDK_LEFTBUTTON", "GdkCursorType", GDK_LEFTBUTTON},
+        {"GDK_LL_ANGLE", "GdkCursorType", GDK_LL_ANGLE},
+        {"GDK_LR_ANGLE", "GdkCursorType", GDK_LR_ANGLE},
+        {"GDK_MAN", "GdkCursorType", GDK_MAN},
+        {"GDK_MIDDLEBUTTON", "GdkCursorType", GDK_MIDDLEBUTTON},
+        {"GDK_MOUSE", "GdkCursorType", GDK_MOUSE},
+        {"GDK_PENCIL", "GdkCursorType", GDK_PENCIL},
+        {"GDK_PIRATE", "GdkCursorType", GDK_PIRATE},
+        {"GDK_PLUS", "GdkCursorType", GDK_PLUS},
+        {"GDK_QUESTION_ARROW", "GdkCursorType", GDK_QUESTION_ARROW},
+        {"GDK_RIGHT_PTR", "GdkCursorType", GDK_RIGHT_PTR},
+        {"GDK_RIGHT_SIDE", "GdkCursorType", GDK_RIGHT_SIDE},
+        {"GDK_RIGHT_TEE", "GdkCursorType", GDK_RIGHT_TEE},
+        {"GDK_RIGHTBUTTON", "GdkCursorType", GDK_RIGHTBUTTON},
+        {"GDK_RTL_LOGO", "GdkCursorType", GDK_RTL_LOGO},
+        {"GDK_SAILBOAT", "GdkCursorType", GDK_SAILBOAT},
+        {"GDK_SB_DOWN_ARROW", "GdkCursorType", GDK_SB_DOWN_ARROW},
+        {"GDK_SB_H_DOUBLE_ARROW", "GdkCursorType", GDK_SB_H_DOUBLE_ARROW},
+        {"GDK_SB_LEFT_ARROW", "GdkCursorType", GDK_SB_LEFT_ARROW},
+        {"GDK_SB_RIGHT_ARROW", "GdkCursorType", GDK_SB_RIGHT_ARROW},
+        {"GDK_SB_UP_ARROW", "GdkCursorType", GDK_SB_UP_ARROW},
+        {"GDK_SB_V_DOUBLE_ARROW", "GdkCursorType", GDK_SB_V_DOUBLE_ARROW},
+        {"GDK_SHUTTLE", "GdkCursorType", GDK_SHUTTLE},
+        {"GDK_SIZING", "GdkCursorType", GDK_SIZING},
+        {"GDK_SPIDER", "GdkCursorType", GDK_SPIDER},
+        {"GDK_SPRAYCAN", "GdkCursorType", GDK_SPRAYCAN},
+        {"GDK_STAR", "GdkCursorType", GDK_STAR},
+        {"GDK_TARGET", "GdkCursorType", GDK_TARGET},
+        {"GDK_TCROSS", "GdkCursorType", GDK_TCROSS},
+        {"GDK_TOP_LEFT_ARROW", "GdkCursorType", GDK_TOP_LEFT_ARROW},
+        {"GDK_TOP_LEFT_CORNER", "GdkCursorType", GDK_TOP_LEFT_CORNER},
+        {"GDK_TOP_RIGHT_CORNER", "GdkCursorType", GDK_TOP_RIGHT_CORNER},
+        {"GDK_TOP_SIDE", "GdkCursorType", GDK_TOP_SIDE},
+        {"GDK_TOP_TEE", "GdkCursorType", GDK_TOP_TEE},
+        {"GDK_TREK", "GdkCursorType", GDK_TREK},
+        {"GDK_UL_ANGLE", "GdkCursorType", GDK_UL_ANGLE},
+        {"GDK_UMBRELLA", "GdkCursorType", GDK_UMBRELLA},
+        {"GDK_UR_ANGLE", "GdkCursorType", GDK_UR_ANGLE},
+        {"GDK_WATCH", "GdkCursorType", GDK_WATCH},
+        {"GDK_XTERM", "GdkCursorType", GDK_XTERM},
+        {"GDK_LAST_CURSOR ", "GdkCursorType", GDK_LAST_CURSOR },
+        {"GDK_ACTION_DEFAULT", "GdkDragAction", GDK_ACTION_DEFAULT},
+        {"GDK_ACTION_COPY", "GdkDragAction", GDK_ACTION_COPY},
+        {"GDK_ACTION_MOVE", "GdkDragAction", GDK_ACTION_MOVE},
+        {"GDK_ACTION_LINK", "GdkDragAction", GDK_ACTION_LINK},
+        {"GDK_ACTION_PRIVATE", "GdkDragAction", GDK_ACTION_PRIVATE},
+        {"GDK_ACTION_ASK", "GdkDragAction", GDK_ACTION_ASK},
+        {"GDK_NOTHING", "GdkEventType", GDK_NOTHING},
+        {"GDK_DELETE", "GdkEventType", GDK_DELETE},
+        {"GDK_DESTROY", "GdkEventType", GDK_DESTROY},
+        {"GDK_EXPOSE", "GdkEventType", GDK_EXPOSE},
+        {"GDK_MOTION_NOTIFY", "GdkEventType", GDK_MOTION_NOTIFY},
+        {"GDK_BUTTON_PRESS", "GdkEventType", GDK_BUTTON_PRESS},
+        {"GDK_2BUTTON_PRESS", "GdkEventType", GDK_2BUTTON_PRESS},
+        {"GDK_3BUTTON_PRESS", "GdkEventType", GDK_3BUTTON_PRESS},
+        {"GDK_BUTTON_RELEASE", "GdkEventType", GDK_BUTTON_RELEASE},
+        {"GDK_KEY_PRESS", "GdkEventType", GDK_KEY_PRESS},
+        {"GDK_KEY_RELEASE", "GdkEventType", GDK_KEY_RELEASE},
+        {"GDK_ENTER_NOTIFY", "GdkEventType", GDK_ENTER_NOTIFY},
+        {"GDK_LEAVE_NOTIFY", "GdkEventType", GDK_LEAVE_NOTIFY},
+        {"GDK_FOCUS_CHANGE", "GdkEventType", GDK_FOCUS_CHANGE},
+        {"GDK_CONFIGURE", "GdkEventType", GDK_CONFIGURE},
+        {"GDK_MAP", "GdkEventType", GDK_MAP},
+        {"GDK_UNMAP", "GdkEventType", GDK_UNMAP},
+        {"GDK_PROPERTY_NOTIFY", "GdkEventType", GDK_PROPERTY_NOTIFY},
+        {"GDK_SELECTION_CLEAR", "GdkEventType", GDK_SELECTION_CLEAR},
+        {"GDK_SELECTION_REQUEST", "GdkEventType", GDK_SELECTION_REQUEST},
+        {"GDK_SELECTION_NOTIFY", "GdkEventType", GDK_SELECTION_NOTIFY},
+        {"GDK_PROXIMITY_IN", "GdkEventType", GDK_PROXIMITY_IN},
+        {"GDK_PROXIMITY_OUT", "GdkEventType", GDK_PROXIMITY_OUT},
+        {"GDK_DRAG_ENTER", "GdkEventType", GDK_DRAG_ENTER},
+        {"GDK_DRAG_LEAVE", "GdkEventType", GDK_DRAG_LEAVE},
+        {"GDK_DRAG_MOTION", "GdkEventType", GDK_DRAG_MOTION},
+        {"GDK_DRAG_STATUS", "GdkEventType", GDK_DRAG_STATUS},
+        {"GDK_DROP_START", "GdkEventType", GDK_DROP_START},
+        {"GDK_DROP_FINISHED", "GdkEventType", GDK_DROP_FINISHED},
+        {"GDK_CLIENT_EVENT", "GdkEventType", GDK_CLIENT_EVENT},
+        {"GDK_VISIBILITY_NOTIFY", "GdkEventType", GDK_VISIBILITY_NOTIFY},
+        {"GDK_SCROLL", "GdkEventType", GDK_SCROLL},
+        {"GDK_WINDOW_STATE", "GdkEventType", GDK_WINDOW_STATE},
+        {"GDK_SETTING", "GdkEventType", GDK_SETTING},
+        {"GDK_OWNER_CHANGE", "GdkEventType", GDK_OWNER_CHANGE},
+        {"GDK_GRAB_BROKEN", "GdkEventType", GDK_GRAB_BROKEN},
+        {"GDK_EXPOSURE_MASK", "GdkEventMask", GDK_EXPOSURE_MASK},
+        {"GDK_POINTER_MOTION_MASK", "GdkEventMask", GDK_POINTER_MOTION_MASK},
+        {"GDK_BUTTON_MOTION_MASK", "GdkEventMask", GDK_BUTTON_MOTION_MASK},
+        {"GDK_BUTTON1_MOTION_MASK", "GdkEventMask", GDK_BUTTON1_MOTION_MASK},
+        {"GDK_BUTTON2_MOTION_MASK", "GdkEventMask", GDK_BUTTON2_MOTION_MASK},
+        {"GDK_BUTTON3_MOTION_MASK", "GdkEventMask", GDK_BUTTON3_MOTION_MASK},
+        {"GDK_BUTTON_PRESS_MASK", "GdkEventMask", GDK_BUTTON_PRESS_MASK},
+        {"GDK_BUTTON_RELEASE_MASK", "GdkEventMask", GDK_BUTTON_RELEASE_MASK},
+        {"GDK_KEY_PRESS_MASK", "GdkEventMask", GDK_KEY_PRESS_MASK},
+        {"GDK_KEY_RELEASE_MASK", "GdkEventMask", GDK_KEY_RELEASE_MASK},
+        {"GDK_ENTER_NOTIFY_MASK", "GdkEventMask", GDK_ENTER_NOTIFY_MASK},
+        {"GDK_LEAVE_NOTIFY_MASK", "GdkEventMask", GDK_LEAVE_NOTIFY_MASK},
+        {"GDK_FOCUS_CHANGE_MASK", "GdkEventMask", GDK_FOCUS_CHANGE_MASK},
+        {"GDK_STRUCTURE_MASK", "GdkEventMask", GDK_STRUCTURE_MASK},
+        {"GDK_PROPERTY_CHANGE_MASK", "GdkEventMask", GDK_PROPERTY_CHANGE_MASK},
+        {"GDK_VISIBILITY_NOTIFY_MASK", "GdkEventMask", GDK_VISIBILITY_NOTIFY_MASK},
+        {"GDK_PROXIMITY_IN_MASK", "GdkEventMask", GDK_PROXIMITY_IN_MASK},
+        {"GDK_PROXIMITY_OUT_MASK", "GdkEventMask", GDK_PROXIMITY_OUT_MASK},
+        {"GDK_SUBSTRUCTURE_MASK", "GdkEventMask", GDK_SUBSTRUCTURE_MASK},
+        {"GDK_SCROLL_MASK", "GdkEventMask", GDK_SCROLL_MASK},
+        {"GDK_ALL_EVENTS_MASK", "GdkEventMask", GDK_ALL_EVENTS_MASK},
+        {"GDK_SCROLL_UP", "GdkScrollDirection", GDK_SCROLL_UP},
+        {"GDK_SCROLL_DOWN", "GdkScrollDirection", GDK_SCROLL_DOWN},
+        {"GDK_SCROLL_LEFT", "GdkScrollDirection", GDK_SCROLL_LEFT},
+        {"GDK_SCROLL_RIGHT", "GdkScrollDirection", GDK_SCROLL_RIGHT},
+        {"GDK_NOTIFY_ANCESTOR", "GdkNotifyType", GDK_NOTIFY_ANCESTOR},
+        {"GDK_NOTIFY_VIRTUAL", "GdkNotifyType", GDK_NOTIFY_VIRTUAL},
+        {"GDK_NOTIFY_INFERIOR", "GdkNotifyType", GDK_NOTIFY_INFERIOR},
+        {"GDK_NOTIFY_NONLINEAR", "GdkNotifyType", GDK_NOTIFY_NONLINEAR},
+        {"GDK_NOTIFY_NONLINEAR_VIRTUAL", "GdkNotifyType", GDK_NOTIFY_NONLINEAR_VIRTUAL},
+        {"GDK_NOTIFY_UNKNOWN", "GdkNotifyType", GDK_NOTIFY_UNKNOWN},
+        {"GDK_CROSSING_NORMAL", "GdkCrossingMode", GDK_CROSSING_NORMAL},
+        {"GDK_CROSSING_GRAB", "GdkNotifyType", GDK_CROSSING_GRAB},
+        {"GDK_CROSSING_UNGRAB", "GdkNotifyType", GDK_CROSSING_UNGRAB},
+        {"GDK_PROPERTY_NEW_VALUE", "GdkPropertyState", GDK_PROPERTY_NEW_VALUE},
+        {"GDK_PROPERTY_DELETE", "GdkPropertyState", GDK_PROPERTY_DELETE},
+        {"GDK_WINDOW_STATE_WITHDRAWN", "GdkWindowState", GDK_WINDOW_STATE_WITHDRAWN},
+        {"GDK_WINDOW_STATE_ICONIFIED", "GdkWindowState", GDK_WINDOW_STATE_ICONIFIED},
+        {"GDK_WINDOW_STATE_MAXIMIZED", "GdkWindowState", GDK_WINDOW_STATE_MAXIMIZED},
+        {"GDK_WINDOW_STATE_STICKY", "GdkWindowState", GDK_WINDOW_STATE_STICKY},
+        {"GDK_SETTING_ACTION_NEW", "GdkSettingAction", GDK_SETTING_ACTION_NEW},
+        {"GDK_SETTING_ACTION_CHANGED", "GdkSettingAction", GDK_SETTING_ACTION_CHANGED},
+        {"GDK_SETTING_ACTION_DELETED", "GdkSettingAction", GDK_SETTING_ACTION_DELETED},
+        {"GDK_PROP_MODE_REPLACE", "GdkPropMode", GDK_PROP_MODE_REPLACE},
+        {"GDK_PROP_MODE_PREPEND", "GdkPropMode", GDK_PROP_MODE_PREPEND},
+        {"GDK_PROP_MODE_APPEND", "GdkPropMode", GDK_PROP_MODE_APPEND},
+        {"GDK_LSB_FIRST", "GdkByteOrder", GDK_LSB_FIRST},
+        {"GDK_MSB_FIRST", "GdkByteOrder", GDK_MSB_FIRST},
+        {"GDK_SHIFT_MASK", "GdkModifierType", GDK_SHIFT_MASK},
+        {"GDK_LOCK_MASK", "GdkModifierType", GDK_LOCK_MASK},
+        {"GDK_CONTROL_MASK", "GdkModifierType", GDK_CONTROL_MASK},
+        {"GDK_MOD1_MASK", "GdkModifierType", GDK_MOD1_MASK},
+        {"GDK_MOD2_MASK", "GdkModifierType", GDK_MOD2_MASK},
+        {"GDK_MOD3_MASK", "GdkModifierType", GDK_MOD3_MASK},
+        {"GDK_MOD4_MASK", "GdkModifierType", GDK_MOD4_MASK},
+        {"GDK_MOD5_MASK", "GdkModifierType", GDK_MOD5_MASK},
+        {"GDK_BUTTON1_MASK", "GdkModifierType", GDK_BUTTON1_MASK},
+        {"GDK_BUTTON2_MASK", "GdkModifierType", GDK_BUTTON2_MASK},
+        {"GDK_BUTTON3_MASK", "GdkModifierType", GDK_BUTTON3_MASK},
+        {"GDK_BUTTON4_MASK", "GdkModifierType", GDK_BUTTON4_MASK},
+        {"GDK_BUTTON5_MASK", "GdkModifierType", GDK_BUTTON5_MASK},
+        {"GDK_RELEASE_MASK", "GdkModifierType", GDK_RELEASE_MASK},
+        {"GDK_MODIFIER_MASK", "GdkModifierType", GDK_MODIFIER_MASK},
+        {"GDK_OK", "GdkStatus", GDK_OK},
+        {"GDK_ERROR", "GdkStatus", GDK_ERROR},
+        {"GDK_ERROR_PARAM", "GdkStatus", GDK_ERROR_PARAM},
+        {"GDK_ERROR_FILE", "GdkStatus", GDK_ERROR_FILE},
+        {"GDK_ERROR_MEM", "GdkStatus", GDK_ERROR_MEM},
+        {"GDK_GRAB_SUCCESS", "GdkGrabStatus", GDK_GRAB_SUCCESS},
+        {"GDK_GRAB_ALREADY_GRABBED", "GdkGrabStatus", GDK_GRAB_ALREADY_GRABBED},
+        {"GDK_GRAB_INVALID_TIME", "GdkGrabStatus", GDK_GRAB_INVALID_TIME},
+        {"GDK_GRAB_NOT_VIEWABLE", "GdkGrabStatus", GDK_GRAB_NOT_VIEWABLE},
+        {"GDK_GRAB_FROZEN", "GdkGrabStatus", GDK_GRAB_FROZEN},
+        {"GDK_INPUT_OUTPUT", "GdkWindowClass", GDK_INPUT_OUTPUT},
+        {"GDK_INPUT_ONLY", "GdkWindowClass", GDK_INPUT_ONLY},
+        {"GDK_WINDOW_ROOT", "GdkWindowType", GDK_WINDOW_ROOT},
+        {"GDK_WINDOW_TOPLEVEL", "GdkWindowType", GDK_WINDOW_TOPLEVEL},
+        {"GDK_WINDOW_CHILD", "GdkWindowType", GDK_WINDOW_CHILD},
+        {"GDK_WINDOW_TEMP", "GdkWindowType", GDK_WINDOW_TEMP},
+        {"GDK_WINDOW_FOREIGN", "GdkWindowType", GDK_WINDOW_FOREIGN},
+        {"GDK_WA_TITLE", "GdkWindowAttributesType", GDK_WA_TITLE},
+        {"GDK_WA_X", "GdkWindowAttributesType", GDK_WA_X},
+        {"GDK_WA_Y", "GdkWindowAttributesType", GDK_WA_Y},
+        {"GDK_WA_CURSOR", "GdkWindowAttributesType", GDK_WA_CURSOR},
+        {"GDK_WA_VISUAL", "GdkWindowAttributesType", GDK_WA_VISUAL},
+        {"GDK_WA_WMCLASS", "GdkWindowAttributesType", GDK_WA_WMCLASS},
+        {"GDK_WA_NOREDIR", "GdkWindowAttributesType", GDK_WA_NOREDIR},
+        {"GDK_HINT_POS", "GdkWindowHints", GDK_HINT_POS},
+        {"GDK_HINT_MIN_SIZE", "GdkWindowHints", GDK_HINT_MIN_SIZE},
+        {"GDK_HINT_MAX_SIZE", "GdkWindowHints", GDK_HINT_MAX_SIZE},
+        {"GDK_HINT_BASE_SIZE", "GdkWindowHints", GDK_HINT_BASE_SIZE},
+        {"GDK_HINT_ASPECT", "GdkWindowHints", GDK_HINT_ASPECT},
+        {"GDK_HINT_RESIZE_INC", "GdkWindowHints", GDK_HINT_RESIZE_INC},
+        {"GDK_HINT_WIN_GRAVITY", "GdkWindowHints", GDK_HINT_WIN_GRAVITY},
+        {"GDK_HINT_USER_POS", "GdkWindowHints", GDK_HINT_USER_POS},
+        {"GDK_HINT_USER_SIZE", "GdkWindowHints", GDK_HINT_USER_SIZE},
+        {"GDK_WINDOW_TYPE_HINT_NORMAL", "GdkWindowTypeHint", GDK_WINDOW_TYPE_HINT_NORMAL},
+        {"GDK_WINDOW_TYPE_HINT_DIALOG", "GdkWindowTypeHint", GDK_WINDOW_TYPE_HINT_DIALOG},
+        {"GDK_WINDOW_TYPE_HINT_MENU", "GdkWindowTypeHint", GDK_WINDOW_TYPE_HINT_MENU},
+        {"GDK_WINDOW_TYPE_HINT_TOOLBAR", "GdkWindowTypeHint", GDK_WINDOW_TYPE_HINT_TOOLBAR},
+        {"GDK_DECOR_ALL", "GdkWMDecoration", GDK_DECOR_ALL},
+        {"GDK_DECOR_BORDER", "GdkWMDecoration", GDK_DECOR_BORDER},
+        {"GDK_DECOR_RESIZEH", "GdkWMDecoration", GDK_DECOR_RESIZEH},
+        {"GDK_DECOR_TITLE", "GdkWMDecoration", GDK_DECOR_TITLE},
+        {"GDK_DECOR_MENU", "GdkWMDecoration", GDK_DECOR_MENU},
+        {"GDK_DECOR_MINIMIZE", "GdkWMDecoration", GDK_DECOR_MINIMIZE},
+        {"GDK_DECOR_MAXIMIZE", "GdkWMDecoration", GDK_DECOR_MAXIMIZE},
+        {"GDK_FUNC_ALL", "GdkWMFunction", GDK_FUNC_ALL},
+        {"GDK_FUNC_RESIZE", "GdkWMFunction", GDK_FUNC_RESIZE},
+        {"GDK_FUNC_MOVE", "GdkWMFunction", GDK_FUNC_MOVE},
+        {"GDK_FUNC_MINIMIZE", "GdkWMFunction", GDK_FUNC_MINIMIZE},
+        {"GDK_FUNC_MAXIMIZE", "GdkWMFunction", GDK_FUNC_MAXIMIZE},
+        {"GDK_FUNC_CLOSE", "GdkWMFunction", GDK_FUNC_CLOSE},
+        {"GDK_GRAVITY_NORTH_WEST", "GdkGravity", GDK_GRAVITY_NORTH_WEST},
+        {"GDK_GRAVITY_NORTH", "GdkGravity", GDK_GRAVITY_NORTH},
+        {"GDK_GRAVITY_NORTH_EAST", "GdkGravity", GDK_GRAVITY_NORTH_EAST},
+        {"GDK_GRAVITY_WEST", "GdkGravity", GDK_GRAVITY_WEST},
+        {"GDK_GRAVITY_CENTER", "GdkGravity", GDK_GRAVITY_CENTER},
+        {"GDK_GRAVITY_EAST", "GdkGravity", GDK_GRAVITY_EAST},
+        {"GDK_GRAVITY_SOUTH_WEST", "GdkGravity", GDK_GRAVITY_SOUTH_WEST},
+        {"GDK_GRAVITY_SOUTH", "GdkGravity", GDK_GRAVITY_SOUTH},
+        {"GDK_GRAVITY_SOUTH_EAST", "GdkGravity", GDK_GRAVITY_SOUTH_EAST},
+        {"GDK_GRAVITY_STATIC", "GdkGravity", GDK_GRAVITY_STATIC},
+        {"GDK_WINDOW_EDGE_NORTH_WEST", "GdkWindowEdge", GDK_WINDOW_EDGE_NORTH_WEST},
+        {"GDK_WINDOW_EDGE_NORTH", "GdkWindowEdge", GDK_WINDOW_EDGE_NORTH},
+        {"GDK_WINDOW_EDGE_NORTH_EAST", "GdkWindowEdge", GDK_WINDOW_EDGE_NORTH_EAST},
+        {"GDK_WINDOW_EDGE_WEST", "GdkWindowEdge", GDK_WINDOW_EDGE_WEST},
+        {"GDK_WINDOW_EDGE_EAST", "GdkWindowEdge", GDK_WINDOW_EDGE_EAST},
+        {"GDK_WINDOW_EDGE_SOUTH_WEST", "GdkWindowEdge", GDK_WINDOW_EDGE_SOUTH_WEST},
+        {"GDK_WINDOW_EDGE_SOUTH", "GdkWindowEdge", GDK_WINDOW_EDGE_SOUTH},
+        {"GDK_WINDOW_EDGE_SOUTH_EAST", "GdkWindowEdge", GDK_WINDOW_EDGE_SOUTH_EAST},
+        {"GDK_PIXBUF_ALPHA_BILEVEL", "GdkPixbufAlphaMode", GDK_PIXBUF_ALPHA_BILEVEL},
+        {"GDK_PIXBUF_ALPHA_FULL", "GdkPixbufAlphaMode", GDK_PIXBUF_ALPHA_FULL},
+        {"GDK_COLORSPACE_RGB", "GdkColorspace", GDK_COLORSPACE_RGB},
+        {"GDK_PIXBUF_ERROR_CORRUPT_IMAGE", "GdkPixbufError", GDK_PIXBUF_ERROR_CORRUPT_IMAGE},
+        {"GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY", "GdkPixbufError", GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY},
+        {"GDK_PIXBUF_ERROR_BAD_OPTION", "GdkPixbufError", GDK_PIXBUF_ERROR_BAD_OPTION},
+        {"GDK_PIXBUF_ERROR_UNKNOWN_TYPE", "GdkPixbufError", GDK_PIXBUF_ERROR_UNKNOWN_TYPE},
+        {"GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION", "GdkPixbufError", GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION},
+        {"GDK_PIXBUF_ERROR_FAILED", "GdkPixbufError", GDK_PIXBUF_ERROR_FAILED},
+        {"GDK_INTERP_NEAREST", "GdkInterpType", GDK_INTERP_NEAREST},
+        {"GDK_INTERP_TILES", "GdkInterpType", GDK_INTERP_TILES},
+        {"GDK_INTERP_BILINEAR", "GdkInterpType", GDK_INTERP_BILINEAR},
+        {"GDK_INTERP_HYPER", "GdkInterpType", GDK_INTERP_HYPER},
+        {"GTK_ACCEL_VISIBLE", "GtkAccelFlags", GTK_ACCEL_VISIBLE},
+        {"GTK_ACCEL_LOCKED", "GtkAccelFlags", GTK_ACCEL_LOCKED},
+        {"GTK_ACCEL_MASK", "GtkAccelFlags", GTK_ACCEL_MASK},
+        {"GTK_CALENDAR_SHOW_HEADING", "GtkCalendarDisplayOptions", GTK_CALENDAR_SHOW_HEADING},
+        {"GTK_CALENDAR_SHOW_DAY_NAMES", "GtkCalendarDisplayOptions", GTK_CALENDAR_SHOW_DAY_NAMES},
+        {"GTK_CALENDAR_NO_MONTH_CHANGE", "GtkCalendarDisplayOptions", GTK_CALENDAR_NO_MONTH_CHANGE},
+        {"GTK_CALENDAR_SHOW_WEEK_NUMBERS", "GtkCalendarDisplayOptions", GTK_CALENDAR_SHOW_WEEK_NUMBERS},
+        {"GTK_CELL_RENDERER_SELECTED", "GtkCellRendererState", GTK_CELL_RENDERER_SELECTED},
+        {"GTK_CELL_RENDERER_PRELIT", "GtkCellRendererState", GTK_CELL_RENDERER_PRELIT},
+        {"GTK_CELL_RENDERER_INSENSITIVE", "GtkCellRendererState", GTK_CELL_RENDERER_INSENSITIVE},
+        {"GTK_CELL_RENDERER_SORTED", "GtkCellRendererState", GTK_CELL_RENDERER_SORTED},
+        {"GTK_CELL_RENDERER_FOCUSED", "GtkCellRendererState", GTK_CELL_RENDERER_FOCUSED},
+        {"GTK_DIALOG_MODAL", "GtkDialogFlags", GTK_DIALOG_MODAL},
+        {"GTK_DIALOG_DESTROY_WITH_PARENT", "GtkDialogFlags", GTK_DIALOG_DESTROY_WITH_PARENT},
+        {"GTK_RESPONSE_NONE", "GtkResponseType", GTK_RESPONSE_NONE},
+        {"GTK_RESPONSE_REJECT", "GtkResponseType", GTK_RESPONSE_REJECT},
+        {"GTK_RESPONSE_ACCEPT", "GtkResponseType", GTK_RESPONSE_ACCEPT},
+        {"GTK_RESPONSE_DELETE_EVENT", "GtkResponseType", GTK_RESPONSE_DELETE_EVENT},
+        {"GTK_RESPONSE_OK", "GtkResponseType", GTK_RESPONSE_OK},
+        {"GTK_RESPONSE_CANCEL", "GtkResponseType", GTK_RESPONSE_CANCEL},
+        {"GTK_RESPONSE_CLOSE", "GtkResponseType", GTK_RESPONSE_CLOSE},
+        {"GTK_RESPONSE_YES", "GtkResponseType", GTK_RESPONSE_YES},
+        {"GTK_RESPONSE_NO", "GtkResponseType", GTK_RESPONSE_NO},
+        {"GTK_RESPONSE_APPLY", "GtkResponseType", GTK_RESPONSE_APPLY},
+        {"GTK_RESPONSE_HELP", "GtkResponseType", GTK_RESPONSE_HELP},
+        {"GTK_DEST_DEFAULT_MOTION", "GtkDestDefaults", GTK_DEST_DEFAULT_MOTION},
+        {"GTK_DEST_DEFAULT_HIGHLIGHT", "GtkDestDefaults", GTK_DEST_DEFAULT_HIGHLIGHT},
+        {"GTK_DEST_DEFAULT_DROP", "GtkDestDefaults", GTK_DEST_DEFAULT_DROP},
+        {"GTK_DEST_DEFAULT_ALL", "GtkDestDefaults", GTK_DEST_DEFAULT_ALL},
+        {"GTK_BUTTONBOX_SPREAD", "GtkButtonBoxStyle", GTK_BUTTONBOX_SPREAD},
+        {"GTK_BUTTONBOX_EDGE", "GtkButtonBoxStyle", GTK_BUTTONBOX_EDGE},
+        {"GTK_BUTTONBOX_START", "GtkButtonBoxStyle", GTK_BUTTONBOX_START},
+        {"GTK_BUTTONBOX_END", "GtkButtonBoxStyle", GTK_BUTTONBOX_END},
+        {"GTK_BUTTONBOX_CENTER", "GtkButtonBoxStyle", GTK_BUTTONBOX_CENTER},
+        {"GTK_DELETE_CHARS", "GtkDeleteType", GTK_DELETE_CHARS},
+        {"GTK_DELETE_WORD_ENDS", "GtkDeleteType", GTK_DELETE_WORD_ENDS},
+        {"GTK_DELETE_WORDS", "GtkDeleteType", GTK_DELETE_WORDS},
+        {"GTK_DELETE_DISPLAY_LINES", "GtkDeleteType", GTK_DELETE_DISPLAY_LINES},
+        {"GTK_DELETE_DISPLAY_LINE_ENDS", "GtkDeleteType", GTK_DELETE_DISPLAY_LINE_ENDS},
+        {"GTK_DELETE_PARAGRAPH_ENDS", "GtkDeleteType", GTK_DELETE_PARAGRAPH_ENDS},
+        {"GTK_DELETE_PARAGRAPHS", "GtkDeleteType", GTK_DELETE_PARAGRAPHS},
+        {"GTK_DELETE_WHITESPACE", "GtkDeleteType", GTK_DELETE_WHITESPACE},
+        {"GTK_DIR_TAB_FORWARD", "GtkDirectionType", GTK_DIR_TAB_FORWARD},
+        {"GTK_DIR_TAB_BACKWARD", "GtkDirectionType", GTK_DIR_TAB_BACKWARD},
+        {"GTK_DIR_UP", "GtkDirectionType", GTK_DIR_UP},
+        {"GTK_DIR_DOWN", "GtkDirectionType", GTK_DIR_DOWN},
+        {"GTK_DIR_LEFT", "GtkDirectionType", GTK_DIR_LEFT},
+        {"GTK_DIR_RIGHT", "GtkDirectionType", GTK_DIR_RIGHT},
+        {"GTK_TEXT_DIR_NONE", "GtkTextDirection", GTK_TEXT_DIR_NONE},
+        {"GTK_TEXT_DIR_LTR", "GtkTextDirection", GTK_TEXT_DIR_LTR},
+        {"GTK_TEXT_DIR_RTL", "GtkTextDirection", GTK_TEXT_DIR_RTL},
+        {"GTK_JUSTIFY_LEFT", "GtkJustification", GTK_JUSTIFY_LEFT},
+        {"GTK_JUSTIFY_RIGHT", "GtkJustification", GTK_JUSTIFY_RIGHT},
+        {"GTK_JUSTIFY_CENTER", "GtkJustification", GTK_JUSTIFY_CENTER},
+        {"GTK_JUSTIFY_FILL", "GtkJustification", GTK_JUSTIFY_FILL},
+        {"GTK_MENU_DIR_PARENT", "GtkMenuDirectionType", GTK_MENU_DIR_PARENT},
+        {"GTK_MENU_DIR_CHILD", "GtkMenuDirectionType", GTK_MENU_DIR_CHILD},
+        {"GTK_MENU_DIR_NEXT", "GtkMenuDirectionType", GTK_MENU_DIR_NEXT},
+        {"GTK_MENU_DIR_PREV", "GtkMenuDirectionType", GTK_MENU_DIR_PREV},
+        {"GTK_MOVEMENT_LOGICAL_POSITIONS", "GtkMovementStep", GTK_MOVEMENT_LOGICAL_POSITIONS},
+        {"GTK_MOVEMENT_VISUAL_POSITIONS", "GtkMovementStep", GTK_MOVEMENT_VISUAL_POSITIONS},
+        {"GTK_MOVEMENT_WORDS", "GtkMovementStep", GTK_MOVEMENT_WORDS},
+        {"GTK_MOVEMENT_DISPLAY_LINES", "GtkMovementStep", GTK_MOVEMENT_DISPLAY_LINES},
+        {"GTK_MOVEMENT_DISPLAY_LINE_ENDS", "GtkMovementStep", GTK_MOVEMENT_DISPLAY_LINE_ENDS},
+        {"GTK_MOVEMENT_PARAGRAPHS", "GtkMovementStep", GTK_MOVEMENT_PARAGRAPHS},
+        {"GTK_MOVEMENT_PARAGRAPH_ENDS", "GtkMovementStep", GTK_MOVEMENT_PARAGRAPH_ENDS},
+        {"GTK_MOVEMENT_PAGES", "GtkMovementStep", GTK_MOVEMENT_PAGES},
+        {"GTK_MOVEMENT_BUFFER_ENDS", "GtkMovementStep", GTK_MOVEMENT_BUFFER_ENDS},
+        {"GTK_ORIENTATION_HORIZONTAL", "GtkOrientation", GTK_ORIENTATION_HORIZONTAL},
+        {"GTK_ORIENTATION_VERTICAL", "GtkOrientation", GTK_ORIENTATION_VERTICAL},
+        {"GTK_CORNER_TOP_LEFT", "GtkCornerType", GTK_CORNER_TOP_LEFT},
+        {"GTK_CORNER_BOTTOM_LEFT", "GtkCornerType", GTK_CORNER_BOTTOM_LEFT},
+        {"GTK_CORNER_TOP_RIGHT", "GtkCornerType", GTK_CORNER_TOP_RIGHT},
+        {"GTK_CORNER_BOTTOM_RIGHT", "GtkCornerType", GTK_CORNER_BOTTOM_RIGHT},
+        {"GTK_PACK_START", "GtkPackType", GTK_PACK_START},
+        {"GTK_PACK_END", "GtkPackType", GTK_PACK_END},
+        {"GTK_POLICY_ALWAYS", "GtkPolicyType", GTK_POLICY_ALWAYS},
+        {"GTK_POLICY_AUTOMATIC", "GtkPolicyType", GTK_POLICY_AUTOMATIC},
+        {"GTK_POLICY_NEVER", "GtkPolicyType", GTK_POLICY_NEVER},
+        {"GTK_POS_LEFT", "GtkPositionType", GTK_POS_LEFT},
+        {"GTK_POS_RIGHT", "GtkPositionType", GTK_POS_RIGHT},
+        {"GTK_POS_TOP", "GtkPositionType", GTK_POS_TOP},
+        {"GTK_POS_BOTTOM", "GtkPositionType", GTK_POS_BOTTOM},
+        {"GTK_RELIEF_NORMAL", "GtkReliefStyle", GTK_RELIEF_NORMAL},
+        {"GTK_RELIEF_HALF", "GtkReliefStyle", GTK_RELIEF_HALF},
+        {"GTK_RELIEF_NONE", "GtkReliefStyle", GTK_RELIEF_NONE},
+        {"GTK_RESIZE_PARENT", "GtkResizeMode", GTK_RESIZE_PARENT},
+        {"GTK_RESIZE_QUEUE", "GtkResizeMode", GTK_RESIZE_QUEUE},
+        {"GTK_RESIZE_IMMEDIATE", "GtkResizeMode", GTK_RESIZE_IMMEDIATE},
+        {"GTK_SCROLL_NONE", "GtkScrollType", GTK_SCROLL_NONE},
+        {"GTK_SCROLL_JUMP", "GtkScrollType", GTK_SCROLL_JUMP},
+        {"GTK_SCROLL_STEP_BACKWARD", "GtkScrollType", GTK_SCROLL_STEP_BACKWARD},
+        {"GTK_SCROLL_STEP_FORWARD", "GtkScrollType", GTK_SCROLL_STEP_FORWARD},
+        {"GTK_SCROLL_PAGE_BACKWARD", "GtkScrollType", GTK_SCROLL_PAGE_BACKWARD},
+        {"GTK_SCROLL_PAGE_FORWARD", "GtkScrollType", GTK_SCROLL_PAGE_FORWARD},
+        {"GTK_SCROLL_STEP_UP", "GtkScrollType", GTK_SCROLL_STEP_UP},
+        {"GTK_SCROLL_STEP_DOWN", "GtkScrollType", GTK_SCROLL_STEP_DOWN},
+        {"GTK_SCROLL_PAGE_UP", "GtkScrollType", GTK_SCROLL_PAGE_UP},
+        {"GTK_SCROLL_PAGE_DOWN", "GtkScrollType", GTK_SCROLL_PAGE_DOWN},
+        {"GTK_SCROLL_STEP_LEFT", "GtkScrollType", GTK_SCROLL_STEP_LEFT},
+        {"GTK_SCROLL_STEP_RIGHT", "GtkScrollType", GTK_SCROLL_STEP_RIGHT},
+        {"GTK_SCROLL_PAGE_LEFT", "GtkScrollType", GTK_SCROLL_PAGE_LEFT},
+        {"GTK_SCROLL_PAGE_RIGHT", "GtkScrollType", GTK_SCROLL_PAGE_RIGHT},
+        {"GTK_SCROLL_START", "GtkScrollType", GTK_SCROLL_START},
+        {"GTK_SCROLL_END", "GtkScrollType", GTK_SCROLL_END},
+        {"GTK_SELECTION_NONE", "GtkSelectionMode", GTK_SELECTION_NONE},
+        {"GTK_SELECTION_SINGLE", "GtkSelectionMode", GTK_SELECTION_SINGLE},
+        {"GTK_SELECTION_BROWSE", "GtkSelectionMode", GTK_SELECTION_BROWSE},
+        {"GTK_SELECTION_MULTIPLE", "GtkSelectionMode", GTK_SELECTION_MULTIPLE},
+        {"GTK_SHADOW_NONE", "GtkShadowType", GTK_SHADOW_NONE},
+        {"GTK_SHADOW_IN", "GtkShadowType", GTK_SHADOW_IN},
+        {"GTK_SHADOW_OUT", "GtkShadowType", GTK_SHADOW_OUT},
+        {"GTK_SHADOW_ETCHED_IN", "GtkShadowType", GTK_SHADOW_ETCHED_IN},
+        {"GTK_SHADOW_ETCHED_OUT", "GtkShadowType", GTK_SHADOW_ETCHED_OUT},
+        {"GTK_TOOLBAR_ICONS", "GtkToolbarStyle", GTK_TOOLBAR_ICONS},
+        {"GTK_TOOLBAR_TEXT", "GtkToolbarStyle", GTK_TOOLBAR_TEXT},
+        {"GTK_TOOLBAR_BOTH", "GtkToolbarStyle", GTK_TOOLBAR_BOTH},
+        {"GTK_TOOLBAR_BOTH_HORIZ", "GtkToolbarStyle", GTK_TOOLBAR_BOTH_HORIZ},
+        {"GTK_WIN_POS_NONE", "GtkWindowPosition", GTK_WIN_POS_NONE},
+        {"GTK_WIN_POS_CENTER", "GtkWindowPosition", GTK_WIN_POS_CENTER},
+        {"GTK_WIN_POS_MOUSE", "GtkWindowPosition", GTK_WIN_POS_MOUSE},
+        {"GTK_WIN_POS_CENTER_ALWAYS", "GtkWindowPosition", GTK_WIN_POS_CENTER_ALWAYS},
+        {"GTK_WIN_POS_CENTER_ON_PARENT", "GtkWindowPosition", GTK_WIN_POS_CENTER_ON_PARENT},
+        {"GTK_WINDOW_TOPLEVEL", "GtkWindowType", GTK_WINDOW_TOPLEVEL},
+        {"GTK_WINDOW_POPUP", "GtkWindowType", GTK_WINDOW_POPUP},
+        {"GTK_WRAP_NONE", "GtkWrapMode", GTK_WRAP_NONE},
+        {"GTK_WRAP_CHAR", "GtkWrapMode", GTK_WRAP_CHAR},
+        {"GTK_WRAP_WORD", "GtkWrapMode", GTK_WRAP_WORD},
+        {"GTK_SORT_ASCENDING", "GtkSortType", GTK_SORT_ASCENDING},
+        {"GTK_SORT_DESCENDING", "GtkSortType", GTK_SORT_DESCENDING},
+        {"GTK_IMAGE_EMPTY", "GtkImageType", GTK_IMAGE_EMPTY},
+        {"GTK_IMAGE_PIXBUF", "GtkImageType", GTK_IMAGE_PIXBUF},
+        {"GTK_IMAGE_STOCK", "GtkImageType", GTK_IMAGE_STOCK},
+        {"GTK_IMAGE_ICON_SET", "GtkImageType", GTK_IMAGE_ICON_SET},
+        {"GTK_IMAGE_ANIMATION", "GtkImageType", GTK_IMAGE_ANIMATION},
+        {"GTK_MESSAGE_INFO", "GtkMessageType", GTK_MESSAGE_INFO},
+        {"GTK_MESSAGE_WARNING", "GtkMessageType", GTK_MESSAGE_WARNING},
+        {"GTK_MESSAGE_QUESTION", "GtkMessageType", GTK_MESSAGE_QUESTION},
+        {"GTK_MESSAGE_ERROR", "GtkMessageType", GTK_MESSAGE_ERROR},
+        {"GTK_BUTTONS_NONE", "GtkButtonsType", GTK_BUTTONS_NONE},
+        {"GTK_BUTTONS_OK", "GtkButtonsType", GTK_BUTTONS_OK},
+        {"GTK_BUTTONS_CLOSE", "GtkButtonsType", GTK_BUTTONS_CLOSE},
+        {"GTK_BUTTONS_CANCEL", "GtkButtonsType", GTK_BUTTONS_CANCEL},
+        {"GTK_BUTTONS_YES_NO", "GtkButtonsType", GTK_BUTTONS_YES_NO},
+        {"GTK_BUTTONS_OK_CANCEL", "GtkButtonsType", GTK_BUTTONS_OK_CANCEL},
+        {"GTK_NOTEBOOK_TAB_FIRST", "GtkNotebookTab", GTK_NOTEBOOK_TAB_FIRST},
+        {"GTK_NOTEBOOK_TAB_LAST", "GtkNotebookTab", GTK_NOTEBOOK_TAB_LAST},
+        {"GTK_SIZE_GROUP_NONE", "GtkSizeGroupMode", GTK_SIZE_GROUP_NONE},
+        {"GTK_SIZE_GROUP_HORIZONTAL", "GtkSizeGroupMode", GTK_SIZE_GROUP_HORIZONTAL},
+        {"GTK_SIZE_GROUP_VERTICAL", "GtkSizeGroupMode", GTK_SIZE_GROUP_VERTICAL},
+        {"GTK_SIZE_GROUP_BOTH", "GtkSizeGroupMode", GTK_SIZE_GROUP_BOTH},
+        {"GTK_UPDATE_ALWAYS", "GtkSpinButtonUpdatePolicy", GTK_UPDATE_ALWAYS},
+        {"GTK_UPDATE_IF_VALID", "GtkSpinButtonUpdatePolicy", GTK_UPDATE_IF_VALID},
+        {"GTK_SPIN_STEP_FORWARD", "GtkSpinType", GTK_SPIN_STEP_FORWARD},
+        {"GTK_SPIN_STEP_BACKWARD", "GtkSpinType", GTK_SPIN_STEP_BACKWARD},
+        {"GTK_SPIN_PAGE_FORWARD", "GtkSpinType", GTK_SPIN_PAGE_FORWARD},
+        {"GTK_SPIN_PAGE_BACKWARD", "GtkSpinType", GTK_SPIN_PAGE_BACKWARD},
+        {"GTK_SPIN_HOME", "GtkSpinType", GTK_SPIN_HOME},
+        {"GTK_SPIN_END", "GtkSpinType", GTK_SPIN_END},
+        {"GTK_TEXT_SEARCH_VISIBLE_ONLY", "GtkTextSearchFlags", GTK_TEXT_SEARCH_VISIBLE_ONLY},
+        {"GTK_TEXT_SEARCH_TEXT_ONLY", "GtkTextSearchFlags", GTK_TEXT_SEARCH_TEXT_ONLY},
+        {"GTK_TEXT_WINDOW_PRIVATE", "GtkTextWindowType", GTK_TEXT_WINDOW_PRIVATE},
+        {"GTK_TEXT_WINDOW_WIDGET", "GtkTextWindowType", GTK_TEXT_WINDOW_WIDGET},
+        {"GTK_TEXT_WINDOW_TEXT", "GtkTextWindowType", GTK_TEXT_WINDOW_TEXT},
+        {"GTK_TEXT_WINDOW_LEFT", "GtkTextWindowType", GTK_TEXT_WINDOW_LEFT},
+        {"GTK_TEXT_WINDOW_RIGHT", "GtkTextWindowType", GTK_TEXT_WINDOW_RIGHT},
+        {"GTK_TEXT_WINDOW_TOP", "GtkTextWindowType", GTK_TEXT_WINDOW_TOP},
+        {"GTK_TEXT_WINDOW_BOTTOM", "GtkTextWindowType", GTK_TEXT_WINDOW_BOTTOM},
+        {"GTK_TREE_MODEL_ITERS_PERSIST", "GtkTreeModelFlags", GTK_TREE_MODEL_ITERS_PERSIST},
+        {"GTK_TREE_MODEL_LIST_ONLY", "GtkTreeModelFlags", GTK_TREE_MODEL_LIST_ONLY},
+        {"GTK_TREE_VIEW_COLUMN_GROW_ONLY", "GtkTreeViewColumnSizing", GTK_TREE_VIEW_COLUMN_GROW_ONLY},
+        {"GTK_TREE_VIEW_COLUMN_AUTOSIZE", "GtkTreeViewColumnSizing", GTK_TREE_VIEW_COLUMN_AUTOSIZE},
+        {"GTK_TREE_VIEW_COLUMN_FIXED", "GtkTreeViewColumnSizing", GTK_TREE_VIEW_COLUMN_FIXED},
+        {"GTK_TREE_VIEW_DROP_BEFORE", "GtkTreeViewDropPosition", GTK_TREE_VIEW_DROP_BEFORE},
+        {"GTK_TREE_VIEW_DROP_AFTER", "GtkTreeViewDropPosition", GTK_TREE_VIEW_DROP_AFTER},
+        {"GTK_TREE_VIEW_DROP_INTO_OR_BEFORE", "GtkTreeViewDropPosition", GTK_TREE_VIEW_DROP_INTO_OR_BEFORE},
+        {"GTK_TREE_VIEW_DROP_INTO_OR_AFTER", "GtkTreeViewDropPosition", GTK_TREE_VIEW_DROP_INTO_OR_AFTER},
+        {"PANGO_ATTR_INVALID", "PangoAttrType", PANGO_ATTR_INVALID},
+        {"PANGO_ATTR_LANGUAGE", "PangoAttrType", PANGO_ATTR_LANGUAGE},
+        {"PANGO_ATTR_FAMILY", "PangoAttrType", PANGO_ATTR_FAMILY},
+        {"PANGO_ATTR_STYLE", "PangoAttrType", PANGO_ATTR_STYLE},
+        {"PANGO_ATTR_WEIGHT", "PangoAttrType", PANGO_ATTR_WEIGHT},
+        {"PANGO_ATTR_VARIANT", "PangoAttrType", PANGO_ATTR_VARIANT},
+        {"PANGO_ATTR_STRETCH", "PangoAttrType", PANGO_ATTR_STRETCH},
+        {"PANGO_ATTR_SIZE", "PangoAttrType", PANGO_ATTR_SIZE},
+        {"PANGO_ATTR_FONT_DESC", "PangoAttrType", PANGO_ATTR_FONT_DESC},
+        {"PANGO_ATTR_FOREGROUND", "PangoAttrType", PANGO_ATTR_FOREGROUND},
+        {"PANGO_ATTR_BACKGROUND", "PangoAttrType", PANGO_ATTR_BACKGROUND},
+        {"PANGO_ATTR_UNDERLINE", "PangoAttrType", PANGO_ATTR_UNDERLINE},
+        {"PANGO_ATTR_STRIKETHROUGH", "PangoAttrType", PANGO_ATTR_STRIKETHROUGH},
+        {"PANGO_ATTR_RISE", "PangoAttrType", PANGO_ATTR_RISE},
+        {"PANGO_ATTR_SHAPE", "PangoAttrType", PANGO_ATTR_SHAPE},
+        {"PANGO_ATTR_SCALE", "PangoAttrType", PANGO_ATTR_SCALE},
+        {"PANGO_UNDERLINE_NONE", "PangoUnderline", PANGO_UNDERLINE_NONE},
+        {"PANGO_UNDERLINE_SINGLE", "PangoUnderline", PANGO_UNDERLINE_SINGLE},
+        {"PANGO_UNDERLINE_DOUBLE", "PangoUnderline", PANGO_UNDERLINE_DOUBLE},
+        {"PANGO_UNDERLINE_LOW", "PangoUnderline", PANGO_UNDERLINE_LOW},
+        {"PANGO_COVERAGE_NONE", "PangoCoverageLevel", PANGO_COVERAGE_NONE},
+        {"PANGO_COVERAGE_FALLBACK", "PangoCoverageLevel", PANGO_COVERAGE_FALLBACK},
+        {"PANGO_COVERAGE_APPROXIMATE", "PangoCoverageLevel", PANGO_COVERAGE_APPROXIMATE},
+        {"PANGO_COVERAGE_EXACT", "PangoCoverageLevel", PANGO_COVERAGE_EXACT},
+        {"PANGO_STYLE_NORMAL", "PangoStyle", PANGO_STYLE_NORMAL},
+        {"PANGO_STYLE_OBLIQUE", "PangoStyle", PANGO_STYLE_OBLIQUE},
+        {"PANGO_STYLE_ITALIC", "PangoStyle", PANGO_STYLE_ITALIC},
+        {"PANGO_VARIANT_NORMAL", "PangoVariant", PANGO_VARIANT_NORMAL},
+        {"PANGO_VARIANT_SMALL_CAPS", "PangoVariant", PANGO_VARIANT_SMALL_CAPS},
+        {"PANGO_WEIGHT_ULTRALIGHT", "PangoWeight", PANGO_WEIGHT_ULTRALIGHT},
+        {"PANGO_WEIGHT_LIGHT", "PangoWeight", PANGO_WEIGHT_LIGHT},
+        {"PANGO_WEIGHT_NORMAL", "PangoWeight", PANGO_WEIGHT_NORMAL},
+        {"PANGO_WEIGHT_BOLD", "PangoWeight", PANGO_WEIGHT_BOLD},
+        {"PANGO_WEIGHT_ULTRABOLD", "PangoWeight", PANGO_WEIGHT_ULTRABOLD},
+        {"PANGO_WEIGHT_HEAVY", "PangoWeight", PANGO_WEIGHT_HEAVY},
+        {"PANGO_STRETCH_ULTRA_CONDENSED", "PangoStretch", PANGO_STRETCH_ULTRA_CONDENSED},
+        {"PANGO_STRETCH_EXTRA_CONDENSED", "PangoStretch", PANGO_STRETCH_EXTRA_CONDENSED},
+        {"PANGO_STRETCH_CONDENSED", "PangoStretch", PANGO_STRETCH_CONDENSED},
+        {"PANGO_STRETCH_SEMI_CONDENSED", "PangoStretch", PANGO_STRETCH_SEMI_CONDENSED},
+        {"PANGO_STRETCH_NORMAL", "PangoStretch", PANGO_STRETCH_NORMAL},
+        {"PANGO_STRETCH_SEMI_EXPANDED", "PangoStretch", PANGO_STRETCH_SEMI_EXPANDED},
+        {"PANGO_STRETCH_EXPANDED", "PangoStretch", PANGO_STRETCH_EXPANDED},
+        {"PANGO_STRETCH_EXTRA_EXPANDED", "PangoStretch", PANGO_STRETCH_EXTRA_EXPANDED},
+        {"PANGO_STRETCH_ULTRA_EXPANDED", "PangoStretch", PANGO_STRETCH_ULTRA_EXPANDED},
+        {"PANGO_FONT_MASK_FAMILY", "PangoFontMask", PANGO_FONT_MASK_FAMILY},
+        {"PANGO_FONT_MASK_STYLE", "PangoFontMask", PANGO_FONT_MASK_STYLE},
+        {"PANGO_FONT_MASK_VARIANT", "PangoFontMask", PANGO_FONT_MASK_VARIANT},
+        {"PANGO_FONT_MASK_WEIGHT", "PangoFontMask", PANGO_FONT_MASK_WEIGHT},
+        {"PANGO_FONT_MASK_STRETCH", "PangoFontMask", PANGO_FONT_MASK_STRETCH},
+        {"PANGO_FONT_MASK_SIZE", "PangoFontMask", PANGO_FONT_MASK_SIZE},
+        {"PANGO_ALIGN_LEFT", "PangoAlignment", PANGO_ALIGN_LEFT},
+        {"PANGO_ALIGN_CENTER", "PangoAlignment", PANGO_ALIGN_CENTER},
+        {"PANGO_ALIGN_RIGHT", "PangoAlignment", PANGO_ALIGN_RIGHT},
+        {"PANGO_WRAP_WORD", "PangoWrapMode", PANGO_WRAP_WORD},
+        {"PANGO_WRAP_CHAR", "PangoWrapMode", PANGO_WRAP_CHAR},
+        {"PANGO_DIRECTION_LTR", "PangoDirection", PANGO_DIRECTION_LTR},
+        {"PANGO_DIRECTION_RTL", "PangoDirection", PANGO_DIRECTION_RTL},
+        {"PANGO_DIRECTION_TTB_LTR", "PangoDirection", PANGO_DIRECTION_TTB_LTR},
+        {"PANGO_DIRECTION_TTB_RTL", "PangoDirection", PANGO_DIRECTION_TTB_RTL},
+        {"GDK_WINDOW_STATE_FULLSCREEN", "GdkWindowState", GDK_WINDOW_STATE_FULLSCREEN},
+        {"GDK_WINDOW_STATE_ABOVE", "GdkWindowState", GDK_WINDOW_STATE_ABOVE},
+        {"GDK_WINDOW_STATE_BELOW", "GdkWindowState", GDK_WINDOW_STATE_BELOW},
+        {"GTK_MOVEMENT_HORIZONTAL_PAGES", "GtkMovementStep", GTK_MOVEMENT_HORIZONTAL_PAGES},
+        {"GTK_SCROLL_STEPS", "GtkScrollStep", GTK_SCROLL_STEPS},
+        {"GTK_SCROLL_PAGES", "GtkScrollStep", GTK_SCROLL_PAGES},
+        {"GTK_SCROLL_ENDS", "GtkScrollStep", GTK_SCROLL_ENDS},
+        {"GTK_SCROLL_HORIZONTAL_STEPS", "GtkScrollStep", GTK_SCROLL_HORIZONTAL_STEPS},
+        {"GTK_SCROLL_HORIZONTAL_PAGES", "GtkScrollStep", GTK_SCROLL_HORIZONTAL_PAGES},
+        {"GTK_SCROLL_HORIZONTAL_ENDS", "GtkScrollStep", GTK_SCROLL_HORIZONTAL_ENDS},
+        {"GTK_WRAP_WORD_CHAR", "GtkWrapMode", GTK_WRAP_WORD_CHAR},
+        {"GTK_FILE_FILTER_FILENAME", "GtkFileFilterFlags", GTK_FILE_FILTER_FILENAME},
+        {"GTK_FILE_FILTER_URI", "GtkFileFilterFlags", GTK_FILE_FILTER_URI},
+        {"GTK_FILE_FILTER_DISPLAY_NAME", "GtkFileFilterFlags", GTK_FILE_FILTER_DISPLAY_NAME},
+        {"GTK_FILE_FILTER_MIME_TYPE", "GtkFileFilterFlags", GTK_FILE_FILTER_MIME_TYPE},
+        {"GTK_ICON_LOOKUP_NO_SVG", "GtkIconLookupFlags", GTK_ICON_LOOKUP_NO_SVG},
+        {"GTK_ICON_LOOKUP_FORCE_SVG", "GtkIconLookupFlags", GTK_ICON_LOOKUP_FORCE_SVG},
+        {"GTK_ICON_LOOKUP_USE_BUILTIN", "GtkIconLookupFlags", GTK_ICON_LOOKUP_USE_BUILTIN},
+        {"GTK_ICON_LOOKUP_GENERIC_FALLBACK", "GtkIconLookupFlags", GTK_ICON_LOOKUP_GENERIC_FALLBACK},
+        {"GTK_FILE_CHOOSER_ACTION_OPEN", "GtkFileChooserAction", GTK_FILE_CHOOSER_ACTION_OPEN},
+        {"GTK_FILE_CHOOSER_ACTION_SAVE", "GtkFileChooserAction", GTK_FILE_CHOOSER_ACTION_SAVE},
+        {"GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER", "GtkFileChooserAction", GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER},
+        {"GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER", "GtkFileChooserAction", GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER},
+        {"PANGO_ATTR_FALLBACK", "PangoAttrType", PANGO_ATTR_FALLBACK},
+        {"PANGO_ATTR_LETTER_SPACING", "PangoAttrType", PANGO_ATTR_LETTER_SPACING},
+        {"PANGO_UNDERLINE_ERROR", "PangoUnderline", PANGO_UNDERLINE_ERROR},
+        {"PANGO_WRAP_WORD_CHAR", "PangoWrapMode", PANGO_WRAP_WORD_CHAR},
+        {"PANGO_ELLIPSIZE_NONE", "PangoEllipsizeMode", PANGO_ELLIPSIZE_NONE},
+        {"PANGO_ELLIPSIZE_START", "PangoEllipsizeMode", PANGO_ELLIPSIZE_START},
+        {"PANGO_ELLIPSIZE_MIDDLE", "PangoEllipsizeMode", PANGO_ELLIPSIZE_MIDDLE},
+        {"PANGO_ELLIPSIZE_END", "PangoEllipsizeMode", PANGO_ELLIPSIZE_END},
+        {"PANGO_SCRIPT_INVALID_CODE", "PangoScript", PANGO_SCRIPT_INVALID_CODE},
+        {"PANGO_SCRIPT_COMMON", "PangoScript", PANGO_SCRIPT_COMMON},
+        {"PANGO_SCRIPT_INHERITED", "PangoScript", PANGO_SCRIPT_INHERITED},
+        {"PANGO_SCRIPT_ARABIC", "PangoScript", PANGO_SCRIPT_ARABIC},
+        {"PANGO_SCRIPT_ARMENIAN", "PangoScript", PANGO_SCRIPT_ARMENIAN},
+        {"PANGO_SCRIPT_BENGALI", "PangoScript", PANGO_SCRIPT_BENGALI},
+        {"PANGO_SCRIPT_BOPOMOFO", "PangoScript", PANGO_SCRIPT_BOPOMOFO},
+        {"PANGO_SCRIPT_CHEROKEE", "PangoScript", PANGO_SCRIPT_CHEROKEE},
+        {"PANGO_SCRIPT_COPTIC", "PangoScript", PANGO_SCRIPT_COPTIC},
+        {"PANGO_SCRIPT_CYRILLIC", "PangoScript", PANGO_SCRIPT_CYRILLIC},
+        {"PANGO_SCRIPT_DESERET", "PangoScript", PANGO_SCRIPT_DESERET},
+        {"PANGO_SCRIPT_DEVANAGARI", "PangoScript", PANGO_SCRIPT_DEVANAGARI},
+        {"PANGO_SCRIPT_ETHIOPIC", "PangoScript", PANGO_SCRIPT_ETHIOPIC},
+        {"PANGO_SCRIPT_GEORGIAN", "PangoScript", PANGO_SCRIPT_GEORGIAN},
+        {"PANGO_SCRIPT_GOTHIC", "PangoScript", PANGO_SCRIPT_GOTHIC},
+        {"PANGO_SCRIPT_GREEK", "PangoScript", PANGO_SCRIPT_GREEK},
+        {"PANGO_SCRIPT_GUJARATI", "PangoScript", PANGO_SCRIPT_GUJARATI},
+        {"PANGO_SCRIPT_GURMUKHI", "PangoScript", PANGO_SCRIPT_GURMUKHI},
+        {"PANGO_SCRIPT_HAN", "PangoScript", PANGO_SCRIPT_HAN},
+        {"PANGO_SCRIPT_HANGUL", "PangoScript", PANGO_SCRIPT_HANGUL},
+        {"PANGO_SCRIPT_HEBREW", "PangoScript", PANGO_SCRIPT_HEBREW},
+        {"PANGO_SCRIPT_HIRAGANA", "PangoScript", PANGO_SCRIPT_HIRAGANA},
+        {"PANGO_SCRIPT_KANNADA", "PangoScript", PANGO_SCRIPT_KANNADA},
+        {"PANGO_SCRIPT_KATAKANA", "PangoScript", PANGO_SCRIPT_KATAKANA},
+        {"PANGO_SCRIPT_KHMER", "PangoScript", PANGO_SCRIPT_KHMER},
+        {"PANGO_SCRIPT_LAO", "PangoScript", PANGO_SCRIPT_LAO},
+        {"PANGO_SCRIPT_LATIN", "PangoScript", PANGO_SCRIPT_LATIN},
+        {"PANGO_SCRIPT_MALAYALAM", "PangoScript", PANGO_SCRIPT_MALAYALAM},
+        {"PANGO_SCRIPT_MONGOLIAN", "PangoScript", PANGO_SCRIPT_MONGOLIAN},
+        {"PANGO_SCRIPT_MYANMAR", "PangoScript", PANGO_SCRIPT_MYANMAR},
+        {"PANGO_SCRIPT_OGHAM", "PangoScript", PANGO_SCRIPT_OGHAM},
+        {"PANGO_SCRIPT_OLD_ITALIC", "PangoScript", PANGO_SCRIPT_OLD_ITALIC},
+        {"PANGO_SCRIPT_ORIYA", "PangoScript", PANGO_SCRIPT_ORIYA},
+        {"PANGO_SCRIPT_RUNIC", "PangoScript", PANGO_SCRIPT_RUNIC},
+        {"PANGO_SCRIPT_SINHALA", "PangoScript", PANGO_SCRIPT_SINHALA},
+        {"PANGO_SCRIPT_SYRIAC", "PangoScript", PANGO_SCRIPT_SYRIAC},
+        {"PANGO_SCRIPT_TAMIL", "PangoScript", PANGO_SCRIPT_TAMIL},
+        {"PANGO_SCRIPT_TELUGU", "PangoScript", PANGO_SCRIPT_TELUGU},
+        {"PANGO_SCRIPT_THAANA", "PangoScript", PANGO_SCRIPT_THAANA},
+        {"PANGO_SCRIPT_THAI", "PangoScript", PANGO_SCRIPT_THAI},
+        {"PANGO_SCRIPT_TIBETAN", "PangoScript", PANGO_SCRIPT_TIBETAN},
+        {"PANGO_SCRIPT_CANADIAN_ABORIGINAL", "PangoScript", PANGO_SCRIPT_CANADIAN_ABORIGINAL},
+        {"PANGO_SCRIPT_YI", "PangoScript", PANGO_SCRIPT_YI},
+        {"PANGO_SCRIPT_TAGALOG", "PangoScript", PANGO_SCRIPT_TAGALOG},
+        {"PANGO_SCRIPT_HANUNOO", "PangoScript", PANGO_SCRIPT_HANUNOO},
+        {"PANGO_SCRIPT_BUHID", "PangoScript", PANGO_SCRIPT_BUHID},
+        {"PANGO_SCRIPT_TAGBANWA", "PangoScript", PANGO_SCRIPT_TAGBANWA},
+        {"PANGO_SCRIPT_BRAILLE", "PangoScript", PANGO_SCRIPT_BRAILLE},
+        {"PANGO_SCRIPT_CYPRIOT", "PangoScript", PANGO_SCRIPT_CYPRIOT},
+        {"PANGO_SCRIPT_LIMBU", "PangoScript", PANGO_SCRIPT_LIMBU},
+        {"PANGO_SCRIPT_OSMANYA", "PangoScript", PANGO_SCRIPT_OSMANYA},
+        {"PANGO_SCRIPT_SHAVIAN", "PangoScript", PANGO_SCRIPT_SHAVIAN},
+        {"PANGO_SCRIPT_LINEAR_B", "PangoScript", PANGO_SCRIPT_LINEAR_B},
+        {"PANGO_SCRIPT_TAI_LE", "PangoScript", PANGO_SCRIPT_TAI_LE},
+        {"PANGO_SCRIPT_UGARITIC", "PangoScript", PANGO_SCRIPT_UGARITIC},
+        {"PANGO_TAB_LEFT", "PangoTabAlign", PANGO_TAB_LEFT},
+        {"PANGO_DIRECTION_WEAK_LTR", "PangoDirection", PANGO_DIRECTION_WEAK_LTR},
+        {"PANGO_DIRECTION_WEAK_RTL", "PangoDirection", PANGO_DIRECTION_WEAK_RTL},
+        {"PANGO_DIRECTION_NEUTRAL", "PangoDirection", PANGO_DIRECTION_NEUTRAL},
+        {"GTK_IMAGE_ICON_NAME", "GtkImageType", GTK_IMAGE_ICON_NAME},
+        {"PANGO_ATTR_UNDERLINE_COLOR", "PangoAttrType", PANGO_ATTR_UNDERLINE_COLOR},
+        {"PANGO_ATTR_STRIKETHROUGH_COLOR", "PangoAttrType", PANGO_ATTR_STRIKETHROUGH_COLOR},
+        {"PANGO_RENDER_PART_FOREGROUND", "PangoRenderPart", PANGO_RENDER_PART_FOREGROUND},
+        {"PANGO_RENDER_PART_BACKGROUND", "PangoRenderPart", PANGO_RENDER_PART_BACKGROUND},
+        {"PANGO_RENDER_PART_UNDERLINE", "PangoRenderPart", PANGO_RENDER_PART_UNDERLINE},
+        {"PANGO_RENDER_PART_STRIKETHROUGH", "PangoRenderPart", PANGO_RENDER_PART_STRIKETHROUGH},
+        {"G_LOG_FLAG_RECURSION", "GLogLevelFlags", G_LOG_FLAG_RECURSION},
+        {"G_LOG_FLAG_FATAL", "GLogLevelFlags", G_LOG_FLAG_FATAL},
+        {"G_LOG_LEVEL_ERROR", "GLogLevelFlags", G_LOG_LEVEL_ERROR},
+        {"G_LOG_LEVEL_CRITICAL", "GLogLevelFlags", G_LOG_LEVEL_CRITICAL},
+        {"G_LOG_LEVEL_WARNING", "GLogLevelFlags", G_LOG_LEVEL_WARNING},
+        {"G_LOG_LEVEL_MESSAGE", "GLogLevelFlags", G_LOG_LEVEL_MESSAGE},
+        {"G_LOG_LEVEL_INFO", "GLogLevelFlags", G_LOG_LEVEL_INFO},
+        {"G_LOG_LEVEL_DEBUG", "GLogLevelFlags", G_LOG_LEVEL_DEBUG},
+        {"G_LOG_LEVEL_MASK", "GLogLevelFlags", G_LOG_LEVEL_MASK},
+        {"G_LOG_FATAL_MASK", "GLogLevelFlags", G_LOG_FATAL_MASK},
+        {"GTK_PACK_DIRECTION_LTR", "GtkPackDirection", GTK_PACK_DIRECTION_LTR},
+        {"GTK_PACK_DIRECTION_RTL", "GtkPackDirection", GTK_PACK_DIRECTION_RTL},
+        {"GTK_PACK_DIRECTION_TTB", "GtkPackDirection", GTK_PACK_DIRECTION_TTB},
+        {"GTK_PACK_DIRECTION_BTT", "GtkPackDirection", GTK_PACK_DIRECTION_BTT},
+        {"GTK_ICON_VIEW_NO_DROP", "GtkIconViewDropPosition", GTK_ICON_VIEW_NO_DROP},
+        {"GTK_ICON_VIEW_DROP_INTO", "GtkIconViewDropPosition", GTK_ICON_VIEW_DROP_INTO},
+        {"GTK_ICON_VIEW_DROP_LEFT", "GtkIconViewDropPosition", GTK_ICON_VIEW_DROP_LEFT},
+        {"GTK_ICON_VIEW_DROP_RIGHT", "GtkIconViewDropPosition", GTK_ICON_VIEW_DROP_RIGHT},
+        {"GTK_ICON_VIEW_DROP_ABOVE", "GtkIconViewDropPosition", GTK_ICON_VIEW_DROP_ABOVE},
+        {"GTK_ICON_VIEW_DROP_BELOW", "GtkIconViewDropPosition", GTK_ICON_VIEW_DROP_BELOW},
+        {"GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM", "GtkFileChooserConfirmation", GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM},
+        {"GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME", "GtkFileChooserConfirmation", GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME},
+        {"GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN", "GtkFileChooserConfirmation", GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN},
+        {"PANGO_SCRIPT_NEW_TAI_LUE", "PangoScript", PANGO_SCRIPT_NEW_TAI_LUE},
+        {"PANGO_SCRIPT_BUGINESE", "PangoScript", PANGO_SCRIPT_BUGINESE},
+        {"PANGO_SCRIPT_GLAGOLITIC", "PangoScript", PANGO_SCRIPT_GLAGOLITIC},
+        {"PANGO_SCRIPT_TIFINAGH", "PangoScript", PANGO_SCRIPT_TIFINAGH},
+        {"PANGO_SCRIPT_SYLOTI_NAGRI", "PangoScript", PANGO_SCRIPT_SYLOTI_NAGRI},
+        {"PANGO_SCRIPT_OLD_PERSIAN", "PangoScript", PANGO_SCRIPT_OLD_PERSIAN},
+        {"PANGO_SCRIPT_KHAROSHTHI", "PangoScript", PANGO_SCRIPT_KHAROSHTHI},
+        {"GDK_SUPER_MASK", "GdkModifierType", GDK_SUPER_MASK},
+        {"GDK_HYPER_MASK", "GdkModifierType", GDK_HYPER_MASK},
+        {"GDK_META_MASK", "GdkModifierType", GDK_META_MASK},
+        {"GTK_SENSITIVITY_AUTO", "GtkSensitivityType", GTK_SENSITIVITY_AUTO},
+        {"GTK_SENSITIVITY_ON", "GtkSensitivityType", GTK_SENSITIVITY_ON},
+        {"GTK_SENSITIVITY_OFF", "GtkSensitivityType", GTK_SENSITIVITY_OFF},
+        {"GTK_TEXT_BUFFER_TARGET_INFO_BUFFER_CONTENTS", "GtkTextBufferTargetInfo", GTK_TEXT_BUFFER_TARGET_INFO_BUFFER_CONTENTS},
+        {"GTK_TEXT_BUFFER_TARGET_INFO_RICH_TEXT", "GtkTextBufferTargetInfo", GTK_TEXT_BUFFER_TARGET_INFO_RICH_TEXT},
+        {"GTK_TEXT_BUFFER_TARGET_INFO_TEXT", "GtkTextBufferTargetInfo", GTK_TEXT_BUFFER_TARGET_INFO_TEXT},
+        {"GTK_ASSISTANT_PAGE_CONTENT", "GtkAssistantPageType", GTK_ASSISTANT_PAGE_CONTENT},
+        {"GTK_ASSISTANT_PAGE_INTRO", "GtkAssistantPageType", GTK_ASSISTANT_PAGE_INTRO},
+        {"GTK_ASSISTANT_PAGE_CONFIRM", "GtkAssistantPageType", GTK_ASSISTANT_PAGE_CONFIRM},
+        {"GTK_ASSISTANT_PAGE_SUMMARY", "GtkAssistantPageType", GTK_ASSISTANT_PAGE_SUMMARY},
+        {"GTK_ASSISTANT_PAGE_PROGRESS", "GtkAssistantPageType", GTK_ASSISTANT_PAGE_PROGRESS},
+        {"GTK_CELL_RENDERER_ACCEL_MODE_GTK", "GtkCellRendererAccelMode", GTK_CELL_RENDERER_ACCEL_MODE_GTK},
+        {"GTK_CELL_RENDERER_ACCEL_MODE_OTHER", "GtkCellRendererAccelMode", GTK_CELL_RENDERER_ACCEL_MODE_OTHER},
+        {"GTK_RECENT_SORT_NONE", "GtkRecentSortType", GTK_RECENT_SORT_NONE},
+        {"GTK_RECENT_SORT_MRU", "GtkRecentSortType", GTK_RECENT_SORT_MRU},
+        {"GTK_RECENT_SORT_LRU", "GtkRecentSortType", GTK_RECENT_SORT_LRU},
+        {"GTK_RECENT_SORT_CUSTOM", "GtkRecentSortType", GTK_RECENT_SORT_CUSTOM},
+        {"GTK_RECENT_CHOOSER_ERROR_NOT_FOUND", "GtkRecentChooserError", GTK_RECENT_CHOOSER_ERROR_NOT_FOUND},
+        {"GTK_RECENT_CHOOSER_ERROR_INVALID_URI", "GtkRecentChooserError", GTK_RECENT_CHOOSER_ERROR_INVALID_URI},
+        {"GTK_RECENT_MANAGER_ERROR_NOT_FOUND", "GtkRecentManagerError", GTK_RECENT_MANAGER_ERROR_NOT_FOUND},
+        {"GTK_RECENT_MANAGER_ERROR_INVALID_URI", "GtkRecentManagerError", GTK_RECENT_MANAGER_ERROR_INVALID_URI},
+        {"GTK_RECENT_MANAGER_ERROR_INVALID_ENCODING", "GtkRecentManagerError", GTK_RECENT_MANAGER_ERROR_INVALID_ENCODING},
+        {"GTK_RECENT_MANAGER_ERROR_NOT_REGISTERED", "GtkRecentManagerError", GTK_RECENT_MANAGER_ERROR_NOT_REGISTERED},
+        {"GTK_RECENT_MANAGER_ERROR_READ", "GtkRecentManagerError", GTK_RECENT_MANAGER_ERROR_READ},
+        {"GTK_RECENT_MANAGER_ERROR_WRITE", "GtkRecentManagerError", GTK_RECENT_MANAGER_ERROR_WRITE},
+        {"GTK_RECENT_MANAGER_ERROR_UNKNOWN", "GtkRecentManagerError", GTK_RECENT_MANAGER_ERROR_UNKNOWN},
+        {"GTK_MESSAGE_OTHER", "GtkMessageType", GTK_MESSAGE_OTHER},
+        {"GTK_TREE_VIEW_GRID_LINES_NONE", "GtkTreeViewGridLines", GTK_TREE_VIEW_GRID_LINES_NONE},
+        {"GTK_TREE_VIEW_GRID_LINES_HORIZONTAL", "GtkTreeViewGridLines", GTK_TREE_VIEW_GRID_LINES_HORIZONTAL},
+        {"GTK_TREE_VIEW_GRID_LINES_VERTICAL", "GtkTreeViewGridLines", GTK_TREE_VIEW_GRID_LINES_VERTICAL},
+        {"GTK_TREE_VIEW_GRID_LINES_BOTH", "GtkTreeViewGridLines", GTK_TREE_VIEW_GRID_LINES_BOTH},
+        {"GTK_PRINT_STATUS_INITIAL", "GtkPrintStatus", GTK_PRINT_STATUS_INITIAL},
+        {"GTK_PRINT_STATUS_PREPARING", "GtkPrintStatus", GTK_PRINT_STATUS_PREPARING},
+        {"GTK_PRINT_STATUS_GENERATING_DATA", "GtkPrintStatus", GTK_PRINT_STATUS_GENERATING_DATA},
+        {"GTK_PRINT_STATUS_SENDING_DATA", "GtkPrintStatus", GTK_PRINT_STATUS_SENDING_DATA},
+        {"GTK_PRINT_STATUS_PENDING", "GtkPrintStatus", GTK_PRINT_STATUS_PENDING},
+        {"GTK_PRINT_STATUS_PENDING_ISSUE", "GtkPrintStatus", GTK_PRINT_STATUS_PENDING_ISSUE},
+        {"GTK_PRINT_STATUS_PRINTING", "GtkPrintStatus", GTK_PRINT_STATUS_PRINTING},
+        {"GTK_PRINT_STATUS_FINISHED", "GtkPrintStatus", GTK_PRINT_STATUS_FINISHED},
+        {"GTK_PRINT_STATUS_FINISHED_ABORTED", "GtkPrintStatus", GTK_PRINT_STATUS_FINISHED_ABORTED},
+        {"GTK_PRINT_OPERATION_RESULT_ERROR", "GtkPrintOperationResult", GTK_PRINT_OPERATION_RESULT_ERROR},
+        {"GTK_PRINT_OPERATION_RESULT_APPLY", "GtkPrintOperationResult", GTK_PRINT_OPERATION_RESULT_APPLY},
+        {"GTK_PRINT_OPERATION_RESULT_CANCEL", "GtkPrintOperationResult", GTK_PRINT_OPERATION_RESULT_CANCEL},
+        {"GTK_PRINT_OPERATION_RESULT_IN_PROGRESS", "GtkPrintOperationResult", GTK_PRINT_OPERATION_RESULT_IN_PROGRESS},
+        {"GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG", "GtkPrintOperationAction", GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG},
+        {"GTK_PRINT_OPERATION_ACTION_PRINT", "GtkPrintOperationAction", GTK_PRINT_OPERATION_ACTION_PRINT},
+        {"GTK_PRINT_OPERATION_ACTION_PREVIEW", "GtkPrintOperationAction", GTK_PRINT_OPERATION_ACTION_PREVIEW},
+        {"GTK_PRINT_OPERATION_ACTION_EXPORT", "GtkPrintOperationAction", GTK_PRINT_OPERATION_ACTION_EXPORT},
+        {"GTK_PRINT_ERROR_GENERAL", "GtkPrintError", GTK_PRINT_ERROR_GENERAL},
+        {"GTK_PRINT_ERROR_INTERNAL_ERROR", "GtkPrintError", GTK_PRINT_ERROR_INTERNAL_ERROR},
+        {"GTK_PRINT_ERROR_NOMEM", "GtkPrintError", GTK_PRINT_ERROR_NOMEM},
+        {"GTK_PRINT_ERROR_INVALID_FILE", "GtkPrintError", GTK_PRINT_ERROR_INVALID_FILE},
+        {"CAIRO_STATUS_SUCCESS", "cairo_status_t", CAIRO_STATUS_SUCCESS},
+        {"CAIRO_STATUS_NO_MEMORY", "cairo_status_t", CAIRO_STATUS_NO_MEMORY},
+        {"CAIRO_STATUS_INVALID_RESTORE", "cairo_status_t", CAIRO_STATUS_INVALID_RESTORE},
+        {"CAIRO_STATUS_INVALID_POP_GROUP", "cairo_status_t", CAIRO_STATUS_INVALID_POP_GROUP},
+        {"CAIRO_STATUS_NO_CURRENT_POINT", "cairo_status_t", CAIRO_STATUS_NO_CURRENT_POINT},
+        {"CAIRO_STATUS_INVALID_MATRIX", "cairo_status_t", CAIRO_STATUS_INVALID_MATRIX},
+        {"CAIRO_STATUS_INVALID_STATUS", "cairo_status_t", CAIRO_STATUS_INVALID_STATUS},
+        {"CAIRO_STATUS_NULL_POINTER", "cairo_status_t", CAIRO_STATUS_NULL_POINTER},
+        {"CAIRO_STATUS_INVALID_STRING", "cairo_status_t", CAIRO_STATUS_INVALID_STRING},
+        {"CAIRO_STATUS_INVALID_PATH_DATA", "cairo_status_t", CAIRO_STATUS_INVALID_PATH_DATA},
+        {"CAIRO_STATUS_READ_ERROR", "cairo_status_t", CAIRO_STATUS_READ_ERROR},
+        {"CAIRO_STATUS_WRITE_ERROR", "cairo_status_t", CAIRO_STATUS_WRITE_ERROR},
+        {"CAIRO_STATUS_SURFACE_FINISHED", "cairo_status_t", CAIRO_STATUS_SURFACE_FINISHED},
+        {"CAIRO_STATUS_SURFACE_TYPE_MISMATCH", "cairo_status_t", CAIRO_STATUS_SURFACE_TYPE_MISMATCH},
+        {"CAIRO_STATUS_PATTERN_TYPE_MISMATCH", "cairo_status_t", CAIRO_STATUS_PATTERN_TYPE_MISMATCH},
+        {"CAIRO_STATUS_INVALID_CONTENT", "cairo_status_t", CAIRO_STATUS_INVALID_CONTENT},
+        {"CAIRO_STATUS_INVALID_FORMAT", "cairo_status_t", CAIRO_STATUS_INVALID_FORMAT},
+        {"CAIRO_STATUS_INVALID_VISUAL", "cairo_status_t", CAIRO_STATUS_INVALID_VISUAL},
+        {"CAIRO_STATUS_FILE_NOT_FOUND", "cairo_status_t", CAIRO_STATUS_FILE_NOT_FOUND},
+        {"CAIRO_STATUS_INVALID_DASH", "cairo_status_t", CAIRO_STATUS_INVALID_DASH},
+        {"CAIRO_STATUS_INVALID_DSC_COMMENT", "cairo_status_t", CAIRO_STATUS_INVALID_DSC_COMMENT},
+        {"CAIRO_STATUS_INVALID_INDEX", "cairo_status_t", CAIRO_STATUS_INVALID_INDEX},
+        {"CAIRO_STATUS_CLIP_NOT_REPRESENTABLE", "cairo_status_t", CAIRO_STATUS_CLIP_NOT_REPRESENTABLE},
+        {"CAIRO_STATUS_TEMP_FILE_ERROR", "cairo_status_t", CAIRO_STATUS_TEMP_FILE_ERROR},
+        {"CAIRO_STATUS_INVALID_STRIDE", "cairo_status_t", CAIRO_STATUS_INVALID_STRIDE},
+        {"CAIRO_CONTENT_COLOR", "cairo_content_t", CAIRO_CONTENT_COLOR},
+        {"CAIRO_CONTENT_ALPHA", "cairo_content_t", CAIRO_CONTENT_ALPHA},
+        {"CAIRO_CONTENT_COLOR_ALPHA", "cairo_content_t", CAIRO_CONTENT_COLOR_ALPHA},
+        {"CAIRO_OPERATOR_CLEAR", "cairo_operator_t", CAIRO_OPERATOR_CLEAR},
+        {"CAIRO_OPERATOR_SOURCE", "cairo_operator_t", CAIRO_OPERATOR_SOURCE},
+        {"CAIRO_OPERATOR_OVER", "cairo_operator_t", CAIRO_OPERATOR_OVER},
+        {"CAIRO_OPERATOR_IN", "cairo_operator_t", CAIRO_OPERATOR_IN},
+        {"CAIRO_OPERATOR_OUT", "cairo_operator_t", CAIRO_OPERATOR_OUT},
+        {"CAIRO_OPERATOR_ATOP", "cairo_operator_t", CAIRO_OPERATOR_ATOP},
+        {"CAIRO_OPERATOR_DEST", "cairo_operator_t", CAIRO_OPERATOR_DEST},
+        {"CAIRO_OPERATOR_DEST_OVER", "cairo_operator_t", CAIRO_OPERATOR_DEST_OVER},
+        {"CAIRO_OPERATOR_DEST_IN", "cairo_operator_t", CAIRO_OPERATOR_DEST_IN},
+        {"CAIRO_OPERATOR_DEST_OUT", "cairo_operator_t", CAIRO_OPERATOR_DEST_OUT},
+        {"CAIRO_OPERATOR_DEST_ATOP", "cairo_operator_t", CAIRO_OPERATOR_DEST_ATOP},
+        {"CAIRO_OPERATOR_XOR", "cairo_operator_t", CAIRO_OPERATOR_XOR},
+        {"CAIRO_OPERATOR_ADD", "cairo_operator_t", CAIRO_OPERATOR_ADD},
+        {"CAIRO_OPERATOR_SATURATE", "cairo_operator_t", CAIRO_OPERATOR_SATURATE},
+        {"CAIRO_ANTIALIAS_DEFAULT", "cairo_antialias_t", CAIRO_ANTIALIAS_DEFAULT},
+        {"CAIRO_ANTIALIAS_NONE", "cairo_antialias_t", CAIRO_ANTIALIAS_NONE},
+        {"CAIRO_ANTIALIAS_GRAY", "cairo_antialias_t", CAIRO_ANTIALIAS_GRAY},
+        {"CAIRO_ANTIALIAS_SUBPIXEL", "cairo_antialias_t", CAIRO_ANTIALIAS_SUBPIXEL},
+        {"CAIRO_FILL_RULE_WINDING", "cairo_fill_rule_t", CAIRO_FILL_RULE_WINDING},
+        {"CAIRO_FILL_RULE_EVEN_ODD", "cairo_fill_rule_t", CAIRO_FILL_RULE_EVEN_ODD},
+        {"CAIRO_LINE_CAP_BUTT", "cairo_line_cap_t", CAIRO_LINE_CAP_BUTT},
+        {"CAIRO_LINE_CAP_ROUND", "cairo_line_cap_t", CAIRO_LINE_CAP_ROUND},
+        {"CAIRO_LINE_CAP_SQUARE", "cairo_line_cap_t", CAIRO_LINE_CAP_SQUARE},
+        {"CAIRO_LINE_JOIN_MITER", "cairo_line_join_t", CAIRO_LINE_JOIN_MITER},
+        {"CAIRO_LINE_JOIN_ROUND", "cairo_line_join_t", CAIRO_LINE_JOIN_ROUND},
+        {"CAIRO_LINE_JOIN_BEVEL", "cairo_line_join_t", CAIRO_LINE_JOIN_BEVEL},
+        {"CAIRO_FONT_SLANT_NORMAL", "cairo_font_slant_t", CAIRO_FONT_SLANT_NORMAL},
+        {"CAIRO_FONT_SLANT_ITALIC", "cairo_font_slant_t", CAIRO_FONT_SLANT_ITALIC},
+        {"CAIRO_FONT_SLANT_OBLIQUE", "cairo_font_slant_t", CAIRO_FONT_SLANT_OBLIQUE},
+        {"CAIRO_FONT_WEIGHT_NORMAL", "cairo_font_weight_t", CAIRO_FONT_WEIGHT_NORMAL},
+        {"CAIRO_FONT_WEIGHT_BOLD", "cairo_font_weight_t", CAIRO_FONT_WEIGHT_BOLD},
+        {"CAIRO_SUBPIXEL_ORDER_DEFAULT", "cairo_subpixel_order_t", CAIRO_SUBPIXEL_ORDER_DEFAULT},
+        {"CAIRO_SUBPIXEL_ORDER_RGB", "cairo_subpixel_order_t", CAIRO_SUBPIXEL_ORDER_RGB},
+        {"CAIRO_SUBPIXEL_ORDER_BGR", "cairo_subpixel_order_t", CAIRO_SUBPIXEL_ORDER_BGR},
+        {"CAIRO_SUBPIXEL_ORDER_VRGB", "cairo_subpixel_order_t", CAIRO_SUBPIXEL_ORDER_VRGB},
+        {"CAIRO_SUBPIXEL_ORDER_VBGR", "cairo_subpixel_order_t", CAIRO_SUBPIXEL_ORDER_VBGR},
+        {"CAIRO_HINT_STYLE_DEFAULT", "cairo_hint_style_t", CAIRO_HINT_STYLE_DEFAULT},
+        {"CAIRO_HINT_STYLE_NONE", "cairo_hint_style_t", CAIRO_HINT_STYLE_NONE},
+        {"CAIRO_HINT_STYLE_SLIGHT", "cairo_hint_style_t", CAIRO_HINT_STYLE_SLIGHT},
+        {"CAIRO_HINT_STYLE_MEDIUM", "cairo_hint_style_t", CAIRO_HINT_STYLE_MEDIUM},
+        {"CAIRO_HINT_STYLE_FULL", "cairo_hint_style_t", CAIRO_HINT_STYLE_FULL},
+        {"CAIRO_HINT_METRICS_DEFAULT", "cairo_hint_metrics_t", CAIRO_HINT_METRICS_DEFAULT},
+        {"CAIRO_HINT_METRICS_OFF", "cairo_hint_metrics_t", CAIRO_HINT_METRICS_OFF},
+        {"CAIRO_HINT_METRICS_ON", "cairo_hint_metrics_t", CAIRO_HINT_METRICS_ON},
+        {"CAIRO_FONT_TYPE_TOY", "cairo_font_type_t", CAIRO_FONT_TYPE_TOY},
+        {"CAIRO_FONT_TYPE_FT", "cairo_font_type_t", CAIRO_FONT_TYPE_FT},
+        {"CAIRO_FONT_TYPE_WIN32", "cairo_font_type_t", CAIRO_FONT_TYPE_WIN32},
+        {"CAIRO_FONT_TYPE_QUARTZ", "cairo_font_type_t", CAIRO_FONT_TYPE_QUARTZ},
+        {"CAIRO_PATH_MOVE_TO", "cairo_path_data_type_t", CAIRO_PATH_MOVE_TO},
+        {"CAIRO_PATH_LINE_TO", "cairo_path_data_type_t", CAIRO_PATH_LINE_TO},
+        {"CAIRO_PATH_CURVE_TO", "cairo_path_data_type_t", CAIRO_PATH_CURVE_TO},
+        {"CAIRO_PATH_CLOSE_PATH", "cairo_path_data_type_t", CAIRO_PATH_CLOSE_PATH},
+        {"CAIRO_SURFACE_TYPE_IMAGE", "cairo_surface_type_t", CAIRO_SURFACE_TYPE_IMAGE},
+        {"CAIRO_SURFACE_TYPE_PDF", "cairo_surface_type_t", CAIRO_SURFACE_TYPE_PDF},
+        {"CAIRO_SURFACE_TYPE_PS", "cairo_surface_type_t", CAIRO_SURFACE_TYPE_PS},
+        {"CAIRO_SURFACE_TYPE_XLIB", "cairo_surface_type_t", CAIRO_SURFACE_TYPE_XLIB},
+        {"CAIRO_SURFACE_TYPE_XCB", "cairo_surface_type_t", CAIRO_SURFACE_TYPE_XCB},
+        {"CAIRO_SURFACE_TYPE_GLITZ", "cairo_surface_type_t", CAIRO_SURFACE_TYPE_GLITZ},
+        {"CAIRO_SURFACE_TYPE_QUARTZ", "cairo_surface_type_t", CAIRO_SURFACE_TYPE_QUARTZ},
+        {"CAIRO_SURFACE_TYPE_WIN32", "cairo_surface_type_t", CAIRO_SURFACE_TYPE_WIN32},
+        {"CAIRO_SURFACE_TYPE_BEOS", "cairo_surface_type_t", CAIRO_SURFACE_TYPE_BEOS},
+        {"CAIRO_SURFACE_TYPE_DIRECTFB", "cairo_surface_type_t", CAIRO_SURFACE_TYPE_DIRECTFB},
+        {"CAIRO_SURFACE_TYPE_SVG", "cairo_surface_type_t", CAIRO_SURFACE_TYPE_SVG},
+        {"CAIRO_SURFACE_TYPE_OS2", "cairo_surface_type_t", CAIRO_SURFACE_TYPE_OS2},
+        {"CAIRO_SURFACE_TYPE_WIN32_PRINTING", "cairo_surface_type_t", CAIRO_SURFACE_TYPE_WIN32_PRINTING},
+        {"CAIRO_SURFACE_TYPE_QUARTZ_IMAGE", "cairo_surface_type_t", CAIRO_SURFACE_TYPE_QUARTZ_IMAGE},
+        {"CAIRO_FORMAT_ARGB32", "cairo_format_t", CAIRO_FORMAT_ARGB32},
+        {"CAIRO_FORMAT_RGB24", "cairo_format_t", CAIRO_FORMAT_RGB24},
+        {"CAIRO_FORMAT_A8", "cairo_format_t", CAIRO_FORMAT_A8},
+        {"CAIRO_FORMAT_A1", "cairo_format_t", CAIRO_FORMAT_A1},
+        {"CAIRO_PATTERN_TYPE_SOLID", "cairo_pattern_type_t", CAIRO_PATTERN_TYPE_SOLID},
+        {"CAIRO_PATTERN_TYPE_SURFACE", "cairo_pattern_type_t", CAIRO_PATTERN_TYPE_SURFACE},
+        {"CAIRO_PATTERN_TYPE_LINEAR", "cairo_pattern_type_t", CAIRO_PATTERN_TYPE_LINEAR},
+        {"CAIRO_PATTERN_TYPE_RADIAL", "cairo_pattern_type_t", CAIRO_PATTERN_TYPE_RADIAL},
+        {"CAIRO_EXTEND_NONE", "cairo_extend_t", CAIRO_EXTEND_NONE},
+        {"CAIRO_EXTEND_REPEAT", "cairo_extend_t", CAIRO_EXTEND_REPEAT},
+        {"CAIRO_EXTEND_REFLECT", "cairo_extend_t", CAIRO_EXTEND_REFLECT},
+        {"CAIRO_EXTEND_PAD", "cairo_extend_t", CAIRO_EXTEND_PAD},
+        {"CAIRO_FILTER_FAST", "cairo_filter_t", CAIRO_FILTER_FAST},
+        {"CAIRO_FILTER_GOOD", "cairo_filter_t", CAIRO_FILTER_GOOD},
+        {"CAIRO_FILTER_BEST", "cairo_filter_t", CAIRO_FILTER_BEST},
+        {"CAIRO_FILTER_NEAREST", "cairo_filter_t", CAIRO_FILTER_NEAREST},
+        {"CAIRO_FILTER_BILINEAR", "cairo_filter_t", CAIRO_FILTER_BILINEAR},
+        {"CAIRO_FILTER_GAUSSIAN", "cairo_filter_t", CAIRO_FILTER_GAUSSIAN},
+        {"GTK_DRAG_RESULT_SUCCESS", "GtkDragResult", GTK_DRAG_RESULT_SUCCESS},
+        {"GTK_DRAG_RESULT_NO_TARGET", "GtkDragResult", GTK_DRAG_RESULT_NO_TARGET},
+        {"GTK_DRAG_RESULT_USER_CANCELLED", "GtkDragResult", GTK_DRAG_RESULT_USER_CANCELLED},
+        {"GTK_DRAG_RESULT_TIMEOUT_EXPIRED", "GtkDragResult", GTK_DRAG_RESULT_TIMEOUT_EXPIRED},
+        {"GTK_DRAG_RESULT_GRAB_BROKEN", "GtkDragResult", GTK_DRAG_RESULT_GRAB_BROKEN},
+        {"GTK_DRAG_RESULT_ERROR", "GtkDragResult", GTK_DRAG_RESULT_ERROR},
+#endif
+#if GTK_CHECK_VERSION(2, 14, 0)
+        {"GTK_CALENDAR_SHOW_DETAILS", "GtkCalendarDisplayOptions", GTK_CALENDAR_SHOW_DETAILS},
+        {"GDK_CROSSING_GTK_GRAB", "GdkCrossingMode", GDK_CROSSING_GTK_GRAB},
+        {"GDK_CROSSING_GTK_UNGRAB", "GdkCrossingMode", GDK_CROSSING_GTK_UNGRAB},
+        {"GDK_CROSSING_STATE_CHANGED", "GdkCrossingMode", GDK_CROSSING_STATE_CHANGED},
+#endif
+#if GTK_CHECK_VERSION(2, 16, 0)
+        {"GTK_ENTRY_ICON_PRIMARY", "GtkEntryIconPosition", GTK_ENTRY_ICON_PRIMARY},
+        {"GTK_ENTRY_ICON_SECONDARY", "GtkEntryIconPosition", GTK_ENTRY_ICON_SECONDARY},
+        {"GDK_BLANK_CURSOR ", "GdkCursorType", GDK_BLANK_CURSOR },
+#endif
+#if GTK_CHECK_VERSION(2, 18, 0)
+        {"PANGO_WEIGHT_THIN", "PangoWeight", PANGO_WEIGHT_THIN},
+        {"PANGO_WEIGHT_BOOK", "PangoWeight", PANGO_WEIGHT_BOOK},
+        {"PANGO_WEIGHT_MEDIUM", "PangoWeight", PANGO_WEIGHT_MEDIUM},
+        {"GDK_WINDOW_OFFSCREEN", "GdkWindowType", GDK_WINDOW_OFFSCREEN},
+#endif
+#if GTK_CHECK_VERSION(3, 0, 0)
+        {"GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH", "GtkSizeRequestMode", GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH},
+        {"GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT", "GtkSizeRequestMode", GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT},
+        {"GTK_ASSISTANT_PAGE_CUSTOM", "GtkAssistantPageType", GTK_ASSISTANT_PAGE_CUSTOM},
+        {"GTK_TEXT_SEARCH_CASE_INSENSITIVE", "GtkTextSearchFlags", GTK_TEXT_SEARCH_CASE_INSENSITIVE},
+        {"GTK_SCROLL_MINIMUM", "GtkScrollablePolicy", GTK_SCROLL_MINIMUM},
+        {"GTK_SCROLL_NATURAL", "GtkScrollablePolicy", GTK_SCROLL_NATURAL},
+        {"GTK_TARGET_SAME_APP", "GtkTargetFlags", GTK_TARGET_SAME_APP},
+        {"GTK_TARGET_SAME_WIDGET", "GtkTargetFlags", GTK_TARGET_SAME_WIDGET},
+        {"GTK_TARGET_OTHER_APP", "GtkTargetFlags", GTK_TARGET_OTHER_APP},
+        {"GTK_TARGET_OTHER_WIDGET", "GtkTargetFlags", GTK_TARGET_OTHER_WIDGET},
+        {"GTK_ALIGN_FILL", "GtkAlign", GTK_ALIGN_FILL},
+        {"GTK_ALIGN_START", "GtkAlign", GTK_ALIGN_START},
+        {"GTK_ALIGN_END", "GtkAlign", GTK_ALIGN_END},
+        {"GTK_ALIGN_CENTER", "GtkAlign", GTK_ALIGN_CENTER},
+        {"GTK_TOOL_PALETTE_DRAG_ITEMS", "GtkToolPaletteDragTargets", GTK_TOOL_PALETTE_DRAG_ITEMS},
+        {"GTK_TOOL_PALETTE_DRAG_GROUPS", "GtkToolPaletteDragTargets", GTK_TOOL_PALETTE_DRAG_GROUPS},
+        {"GTK_IMAGE_GICON", "GtkImageType", GTK_IMAGE_GICON},
+        {"GTK_FILE_CHOOSER_ERROR_NONEXISTENT", "GtkFileChooserError", GTK_FILE_CHOOSER_ERROR_NONEXISTENT},
+        {"GTK_FILE_CHOOSER_ERROR_BAD_FILENAME", "GtkFileChooserError", GTK_FILE_CHOOSER_ERROR_BAD_FILENAME},
+        {"GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS", "GtkFileChooserError", GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS},
+        {"GTK_FILE_CHOOSER_ERROR_INCOMPLETE_HOSTNAME", "GtkFileChooserError", GTK_FILE_CHOOSER_ERROR_INCOMPLETE_HOSTNAME},
+        {"GTK_ICON_LOOKUP_FORCE_SIZE", "GtkIconLookupFlags", GTK_ICON_LOOKUP_FORCE_SIZE},
+        {"GTK_ICON_THEME_NOT_FOUND", "GtkIconThemeError", GTK_ICON_THEME_NOT_FOUND},
+        {"GTK_ICON_THEME_FAILED", "GtkIconThemeError", GTK_ICON_THEME_FAILED},
+        {"GTK_STATE_FLAG_NORMAL", "GtkStateFlags", GTK_STATE_FLAG_NORMAL},
+        {"GTK_STATE_FLAG_ACTIVE", "GtkStateFlags", GTK_STATE_FLAG_ACTIVE},
+        {"GTK_STATE_FLAG_PRELIGHT", "GtkStateFlags", GTK_STATE_FLAG_PRELIGHT},
+        {"GTK_STATE_FLAG_SELECTED", "GtkStateFlags", GTK_STATE_FLAG_SELECTED},
+        {"GTK_STATE_FLAG_INSENSITIVE", "GtkStateFlags", GTK_STATE_FLAG_INSENSITIVE},
+        {"GTK_STATE_FLAG_INCONSISTENT", "GtkStateFlags", GTK_STATE_FLAG_INCONSISTENT},
+        {"GTK_STATE_FLAG_FOCUSED", "GtkStateFlags", GTK_STATE_FLAG_FOCUSED},
+#endif
+#if GTK_CHECK_VERSION(3, 10, 0)
+        {"GTK_ALIGN_BASELINE", "GtkAlign", GTK_ALIGN_BASELINE},
+        {"GTK_BASELINE_POSITION_TOP", "GtkBaselinePosition", GTK_BASELINE_POSITION_TOP},
+        {"GTK_BASELINE_POSITION_CENTER", "GtkBaselinePosition", GTK_BASELINE_POSITION_CENTER},
+        {"GTK_BASELINE_POSITION_BOTTOM", "GtkBaselinePosition", GTK_BASELINE_POSITION_BOTTOM},
+        {"GTK_PLACES_OPEN_NORMAL", "GtkPlacesOpenFlags", GTK_PLACES_OPEN_NORMAL},
+        {"GTK_PLACES_OPEN_NEW_TAB", "GtkPlacesOpenFlags", GTK_PLACES_OPEN_NEW_TAB},
+        {"GTK_PLACES_OPEN_NEW_WINDOW", "GtkPlacesOpenFlags", GTK_PLACES_OPEN_NEW_WINDOW},
+        {"GTK_STACK_TRANSITION_TYPE_NONE", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_NONE},
+        {"GTK_STACK_TRANSITION_TYPE_CROSSFADE", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_CROSSFADE},
+        {"GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT},
+        {"GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT},
+        {"GTK_STACK_TRANSITION_TYPE_SLIDE_UP", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_SLIDE_UP},
+        {"GTK_STACK_TRANSITION_TYPE_SLIDE_DOWN", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_SLIDE_DOWN},
+        {"GTK_REVEALER_TRANSITION_TYPE_NONE", "GtkRevealerTransitionType", GTK_REVEALER_TRANSITION_TYPE_NONE},
+        {"GTK_REVEALER_TRANSITION_TYPE_CROSSFADE", "GtkRevealerTransitionType", GTK_REVEALER_TRANSITION_TYPE_CROSSFADE},
+        {"GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT", "GtkRevealerTransitionType", GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT},
+        {"GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT", "GtkRevealerTransitionType", GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT},
+        {"GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP", "GtkRevealerTransitionType", GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP},
+        {"GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN", "GtkRevealerTransitionType", GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN},
+        {"GDK_WINDOW_STATE_TILED", "GdkWindowState", GDK_WINDOW_STATE_TILED},
+#endif
+#if GTK_CHECK_VERSION(3, 12, 0)
+        {"GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT},
+        {"GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN},
+        {"GTK_STACK_TRANSITION_TYPE_OVER_UP", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_OVER_UP},
+        {"GTK_STACK_TRANSITION_TYPE_OVER_DOWN", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_OVER_DOWN},
+        {"GTK_STACK_TRANSITION_TYPE_OVER_LEFT", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_OVER_LEFT},
+        {"GTK_STACK_TRANSITION_TYPE_OVER_RIGHT", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_OVER_RIGHT},
+        {"GTK_STACK_TRANSITION_TYPE_UNDER_UP", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_UNDER_UP},
+        {"GTK_STACK_TRANSITION_TYPE_UNDER_DOWN", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_UNDER_DOWN},
+        {"GTK_STACK_TRANSITION_TYPE_UNDER_LEFT", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_UNDER_LEFT},
+        {"GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT},
+        {"GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN},
+#endif
+#if GTK_CHECK_VERSION(3, 14, 0)
+        {"GTK_PHASE_NONE", "GtkPropagationPhase", GTK_PHASE_NONE},
+        {"GTK_PHASE_CAPTURE", "GtkPropagationPhase", GTK_PHASE_CAPTURE},
+        {"GTK_PHASE_BUBBLE", "GtkPropagationPhase", GTK_PHASE_BUBBLE},
+        {"GTK_PHASE_TARGET", "GtkPropagationPhase", GTK_PHASE_TARGET},
+        {"GTK_TEXT_VIEW_LAYER_BELOW", "GtkTextViewLayer", GTK_TEXT_VIEW_LAYER_BELOW},
+        {"GTK_TEXT_VIEW_LAYER_ABOVE", "GtkTextViewLayer", GTK_TEXT_VIEW_LAYER_ABOVE},
+#endif
+#if GTK_CHECK_VERSION(3, 16, 0)
+        {"GTK_POLICY_EXTERNAL", "GtkPolicyType", GTK_POLICY_EXTERNAL},
+        {"PANGO_WEIGHT_SEMILIGHT", "PangoWeight", PANGO_WEIGHT_SEMILIGHT},
+        {"GTK_TEXT_EXTEND_SELECTION_WORD", "GtkTextExtendSelection", GTK_TEXT_EXTEND_SELECTION_WORD},
+        {"GTK_TEXT_EXTEND_SELECTION_LINE", "GtkTextExtendSelection", GTK_TEXT_EXTEND_SELECTION_LINE},
+#endif
+#if GTK_CHECK_VERSION(3, 18, 0)
+        {"GDK_TOUCHPAD_SWIPE", "GdkEventType", GDK_TOUCHPAD_SWIPE},
+        {"GDK_TOUCHPAD_PINCH", "GdkEventType", GDK_TOUCHPAD_PINCH},
+        {"GDK_TOUCHPAD_GESTURE_PHASE_BEGIN", "GdkTouchpadGesturePhase", GDK_TOUCHPAD_GESTURE_PHASE_BEGIN},
+        {"GDK_TOUCHPAD_GESTURE_PHASE_UPDATE", "GdkTouchpadGesturePhase", GDK_TOUCHPAD_GESTURE_PHASE_UPDATE},
+        {"GDK_TOUCHPAD_GESTURE_PHASE_END", "GdkTouchpadGesturePhase", GDK_TOUCHPAD_GESTURE_PHASE_END},
+        {"GDK_TOUCHPAD_GESTURE_PHASE_CANCEL", "GdkTouchpadGesturePhase", GDK_TOUCHPAD_GESTURE_PHASE_CANCEL},
+        {"GDK_TOUCHPAD_GESTURE_MASK", "GdkEventMask", GDK_TOUCHPAD_GESTURE_MASK},
+        {"GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK", "GdkModifierIntent", GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK},
+#endif
+#if GTK_CHECK_VERSION(3, 2, 0)
+        {"GTK_SIZE_REQUEST_CONSTANT_SIZE", "GtkSizeRequestMode", GTK_SIZE_REQUEST_CONSTANT_SIZE},
+#endif
+#if GTK_CHECK_VERSION(3, 20, 0)
+        {"GTK_SHORTCUT_ACCELERATOR", "GtkShortcutType", GTK_SHORTCUT_ACCELERATOR},
+        {"GTK_SHORTCUT_GESTURE_PINCH", "GtkShortcutType", GTK_SHORTCUT_GESTURE_PINCH},
+        {"GTK_SHORTCUT_GESTURE_STRETCH", "GtkShortcutType", GTK_SHORTCUT_GESTURE_STRETCH},
+        {"GTK_SHORTCUT_GESTURE_ROTATE_CLOCKWISE", "GtkShortcutType", GTK_SHORTCUT_GESTURE_ROTATE_CLOCKWISE},
+        {"GTK_SHORTCUT_GESTURE_ROTATE_COUNTERCLOCKWISE", "GtkShortcutType", GTK_SHORTCUT_GESTURE_ROTATE_COUNTERCLOCKWISE},
+        {"GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_LEFT", "GtkShortcutType", GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_LEFT},
+        {"GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_RIGHT", "GtkShortcutType", GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_RIGHT},
+        {"GTK_SHORTCUT_GESTURE", "GtkShortcutType", GTK_SHORTCUT_GESTURE},
+        {"GTK_POPOVER_CONSTRAINT_NONE", "GtkPopoverConstraint", GTK_POPOVER_CONSTRAINT_NONE},
+        {"GTK_POPOVER_CONSTRAINT_WINDOW", "GtkPopoverConstraint", GTK_POPOVER_CONSTRAINT_WINDOW},
+        {"GDK_WINDOW_TYPE_HINT_SPLASHSCREEN", "GdkWindowTypeHint", GDK_WINDOW_TYPE_HINT_SPLASHSCREEN},
+        {"GDK_WINDOW_TYPE_HINT_UTILITY", "GdkWindowTypeHint", GDK_WINDOW_TYPE_HINT_UTILITY},
+        {"GDK_WINDOW_TYPE_HINT_DOCK", "GdkWindowTypeHint", GDK_WINDOW_TYPE_HINT_DOCK},
+        {"GDK_WINDOW_TYPE_HINT_DESKTOP", "GdkWindowTypeHint", GDK_WINDOW_TYPE_HINT_DESKTOP},
+        {"GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU", "GdkWindowTypeHint", GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU},
+        {"GDK_WINDOW_TYPE_HINT_POPUP_MENU", "GdkWindowTypeHint", GDK_WINDOW_TYPE_HINT_POPUP_MENU},
+        {"GDK_WINDOW_TYPE_HINT_TOOLTIP", "GdkWindowTypeHint", GDK_WINDOW_TYPE_HINT_TOOLTIP},
+        {"GDK_WINDOW_TYPE_HINT_NOTIFICATION", "GdkWindowTypeHint", GDK_WINDOW_TYPE_HINT_NOTIFICATION},
+        {"GDK_WINDOW_TYPE_HINT_COMBO", "GdkWindowTypeHint", GDK_WINDOW_TYPE_HINT_COMBO},
+        {"GDK_WINDOW_TYPE_HINT_DND", "GdkWindowTypeHint", GDK_WINDOW_TYPE_HINT_DND},
+        {"GDK_SEAT_CAPABILITY_NONE", "GdkSeatCapabilities", GDK_SEAT_CAPABILITY_NONE},
+        {"GDK_SEAT_CAPABILITY_POINTER", "GdkSeatCapabilities", GDK_SEAT_CAPABILITY_POINTER},
+        {"GDK_SEAT_CAPABILITY_TOUCH", "GdkSeatCapabilities", GDK_SEAT_CAPABILITY_TOUCH},
+        {"GDK_SEAT_CAPABILITY_TABLET_STYLUS", "GdkSeatCapabilities", GDK_SEAT_CAPABILITY_TABLET_STYLUS},
+        {"GDK_SEAT_CAPABILITY_KEYBOARD", "GdkSeatCapabilities", GDK_SEAT_CAPABILITY_KEYBOARD},
+        {"GDK_SEAT_CAPABILITY_ALL_POINTING", "GdkSeatCapabilities", GDK_SEAT_CAPABILITY_ALL_POINTING},
+        {"GDK_SEAT_CAPABILITY_ALL", "GdkSeatCapabilities", GDK_SEAT_CAPABILITY_ALL},
+        {"GTK_STATE_FLAG_DROP_ACTIVE", "GtkStateFlags", GTK_STATE_FLAG_DROP_ACTIVE},
+        {"GDK_DRAG_CANCEL_NO_TARGET", "GdkDragCancelReason", GDK_DRAG_CANCEL_NO_TARGET},
+        {"GDK_DRAG_CANCEL_USER_CANCELLED", "GdkDragCancelReason", GDK_DRAG_CANCEL_USER_CANCELLED},
+        {"GDK_DRAG_CANCEL_ERROR", "GdkDragCancelReason", GDK_DRAG_CANCEL_ERROR},
+#endif
+#if GTK_CHECK_VERSION(3, 22, 0)
+        {"GDK_AXIS_IGNORE", "GdkAxisUse", GDK_AXIS_IGNORE},
+        {"GDK_AXIS_X", "GdkAxisUse", GDK_AXIS_X},
+        {"GDK_AXIS_Y", "GdkAxisUse", GDK_AXIS_Y},
+        {"GDK_AXIS_PRESSURE", "GdkAxisUse", GDK_AXIS_PRESSURE},
+        {"GDK_AXIS_XTILT", "GdkAxisUse", GDK_AXIS_XTILT},
+        {"GDK_AXIS_YTILT", "GdkAxisUse", GDK_AXIS_YTILT},
+        {"GDK_AXIS_WHEEL", "GdkAxisUse", GDK_AXIS_WHEEL},
+        {"GDK_AXIS_LAST", "GdkAxisUse", GDK_AXIS_LAST},
+        {"GDK_AXIS_FLAG_X", "GdkAxisFlags", GDK_AXIS_FLAG_X},
+        {"GDK_AXIS_FLAG_Y", "GdkAxisFlags", GDK_AXIS_FLAG_Y},
+        {"GDK_AXIS_FLAG_PRESSURE", "GdkAxisFlags", GDK_AXIS_FLAG_PRESSURE},
+        {"GDK_AXIS_FLAG_XTILT", "GdkAxisFlags", GDK_AXIS_FLAG_XTILT},
+        {"GDK_AXIS_FLAG_YTILT", "GdkAxisFlags", GDK_AXIS_FLAG_YTILT},
+        {"GDK_AXIS_FLAG_WHEEL", "GdkAxisFlags", GDK_AXIS_FLAG_WHEEL},
+        {"GDK_AXIS_FLAG_DISTANCE", "GdkAxisFlags", GDK_AXIS_FLAG_DISTANCE},
+        {"GDK_AXIS_FLAG_ROTATION", "GdkAxisFlags", GDK_AXIS_FLAG_ROTATION},
+        {"GDK_AXIS_FLAG_SLIDER", "GdkAxisFlags", GDK_AXIS_FLAG_SLIDER},
+        {"GDK_DEVICE_TOOL_TYPE_UNKNOWN", "GdkDeviceToolType", GDK_DEVICE_TOOL_TYPE_UNKNOWN},
+        {"GDK_DEVICE_TOOL_TYPE_PEN", "GdkDeviceToolType", GDK_DEVICE_TOOL_TYPE_PEN},
+        {"GDK_DEVICE_TOOL_TYPE_ERASER", "GdkDeviceToolType", GDK_DEVICE_TOOL_TYPE_ERASER},
+        {"GDK_DEVICE_TOOL_TYPE_BRUSH", "GdkDeviceToolType", GDK_DEVICE_TOOL_TYPE_BRUSH},
+        {"GDK_DEVICE_TOOL_TYPE_PENCIL", "GdkDeviceToolType", GDK_DEVICE_TOOL_TYPE_PENCIL},
+        {"GDK_DEVICE_TOOL_TYPE_AIRBRUSH", "GdkDeviceToolType", GDK_DEVICE_TOOL_TYPE_AIRBRUSH},
+        {"GDK_DEVICE_TOOL_TYPE_MOUSE", "GdkDeviceToolType", GDK_DEVICE_TOOL_TYPE_MOUSE},
+        {"GDK_DEVICE_TOOL_TYPE_LENS", "GdkDeviceToolType", GDK_DEVICE_TOOL_TYPE_LENS},
+        {"GDK_SUBPIXEL_LAYOUT_UNKNOWN", "GdkSubpixelLayout", GDK_SUBPIXEL_LAYOUT_UNKNOWN},
+        {"GDK_SUBPIXEL_LAYOUT_NONE", "GdkSubpixelLayout", GDK_SUBPIXEL_LAYOUT_NONE},
+        {"GDK_SUBPIXEL_LAYOUT_HORIZONTAL_RGB", "GdkSubpixelLayout", GDK_SUBPIXEL_LAYOUT_HORIZONTAL_RGB},
+        {"GDK_SUBPIXEL_LAYOUT_HORIZONTAL_BGR", "GdkSubpixelLayout", GDK_SUBPIXEL_LAYOUT_HORIZONTAL_BGR},
+        {"GDK_SUBPIXEL_LAYOUT_VERTICAL_RGB", "GdkSubpixelLayout", GDK_SUBPIXEL_LAYOUT_VERTICAL_RGB},
+        {"GDK_SUBPIXEL_LAYOUT_VERTICAL_BGR", "GdkSubpixelLayout", GDK_SUBPIXEL_LAYOUT_VERTICAL_BGR},
+        {"GDK_DEVICE_PAD_FEATURE_BUTTON", "GdkDevicePadFeature", GDK_DEVICE_PAD_FEATURE_BUTTON},
+        {"GDK_DEVICE_PAD_FEATURE_RING", "GdkDevicePadFeature", GDK_DEVICE_PAD_FEATURE_RING},
+        {"GDK_DEVICE_PAD_FEATURE_STRIP", "GdkDevicePadFeature", GDK_DEVICE_PAD_FEATURE_STRIP},
+        {"GDK_PAD_BUTTON_PRESS", "GdkEventType", GDK_PAD_BUTTON_PRESS},
+        {"GDK_PAD_BUTTON_RELEASE", "GdkEventType", GDK_PAD_BUTTON_RELEASE},
+        {"GDK_PAD_RING", "GdkEventType", GDK_PAD_RING},
+        {"GDK_PAD_STRIP", "GdkEventType", GDK_PAD_STRIP},
+        {"GDK_PAD_GROUP_MODE", "GdkEventType", GDK_PAD_GROUP_MODE},
+        {"GDK_TABLET_PAD_MASK", "GdkEventMask", GDK_TABLET_PAD_MASK},
+        {"GDK_ANCHOR_FLIP_X", "GdkAnchorHints", GDK_ANCHOR_FLIP_X},
+        {"GDK_ANCHOR_FLIP_Y", "GdkAnchorHints", GDK_ANCHOR_FLIP_Y},
+        {"GDK_ANCHOR_SLIDE_X", "GdkAnchorHints", GDK_ANCHOR_SLIDE_X},
+        {"GDK_ANCHOR_SLIDE_Y", "GdkAnchorHints", GDK_ANCHOR_SLIDE_Y},
+        {"GDK_ANCHOR_RESIZE_X", "GdkAnchorHints", GDK_ANCHOR_RESIZE_X},
+        {"GDK_ANCHOR_RESIZE_Y", "GdkAnchorHints", GDK_ANCHOR_RESIZE_Y},
+        {"GDK_ANCHOR_FLIP", "GdkAnchorHints", GDK_ANCHOR_FLIP},
+        {"GDK_ANCHOR_SLIDE", "GdkAnchorHints", GDK_ANCHOR_SLIDE},
+        {"GDK_ANCHOR_RESIZE", "GdkAnchorHints", GDK_ANCHOR_RESIZE},
+        {"GTK_PAD_ACTION_BUTTON", "GtkPadActionType", GTK_PAD_ACTION_BUTTON},
+        {"GTK_PAD_ACTION_RING", "GtkPadActionType", GTK_PAD_ACTION_RING},
+        {"GTK_PAD_ACTION_STRIP", "GtkPadActionType", GTK_PAD_ACTION_STRIP},
+#endif
+#if GTK_CHECK_VERSION(3, 4, 0)
+        {"GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR", "GdkModifierIntent", GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR},
+        {"GDK_MODIFIER_INTENT_CONTEXT_MENU", "GdkModifierIntent", GDK_MODIFIER_INTENT_CONTEXT_MENU},
+        {"GDK_MODIFIER_INTENT_EXTEND_SELECTION", "GdkModifierIntent", GDK_MODIFIER_INTENT_EXTEND_SELECTION},
+        {"GDK_MODIFIER_INTENT_MODIFY_SELECTION", "GdkModifierIntent", GDK_MODIFIER_INTENT_MODIFY_SELECTION},
+        {"GDK_MODIFIER_INTENT_NO_TEXT_INPUT", "GdkModifierIntent", GDK_MODIFIER_INTENT_NO_TEXT_INPUT},
+        {"GDK_MODIFIER_INTENT_SHIFT_GROUP", "GdkModifierIntent", GDK_MODIFIER_INTENT_SHIFT_GROUP},
+        {"GTK_REGION_ONLY", "GtkRegionFlags", GTK_REGION_ONLY},
+        {"GDK_WINDOW_STATE_FOCUSED", "GdkWindowState", GDK_WINDOW_STATE_FOCUSED},
+        {"GTK_CELL_RENDERER_EXPANDABLE", "GtkCellRendererState", GTK_CELL_RENDERER_EXPANDABLE},
+        {"GTK_CELL_RENDERER_EXPANDED", "GtkCellRendererState", GTK_CELL_RENDERER_EXPANDED},
+        {"GTK_STATE_FLAG_BACKDROP", "GtkStateFlags", GTK_STATE_FLAG_BACKDROP},
+#endif
+#if GTK_CHECK_VERSION(3, 6, 0)
+        {"GDK_TOUCH_BEGIN", "GdkEventType", GDK_TOUCH_BEGIN},
+        {"GDK_TOUCH_UPDATE", "GdkEventType", GDK_TOUCH_UPDATE},
+        {"GDK_TOUCH_END", "GdkEventType", GDK_TOUCH_END},
+        {"GDK_TOUCH_CANCEL", "GdkEventType", GDK_TOUCH_CANCEL},
+        {"GDK_SCROLL_SMOOTH", "GdkScrollDirection", GDK_SCROLL_SMOOTH},
+        {"GDK_CROSSING_TOUCH_BEGIN", "GdkCrossingMode", GDK_CROSSING_TOUCH_BEGIN},
+        {"GDK_CROSSING_TOUCH_END", "GdkCrossingMode", GDK_CROSSING_TOUCH_END},
+        {"GDK_CROSSING_DEVICE_SWITCH", "GdkCrossingMode", GDK_CROSSING_DEVICE_SWITCH},
+        {"GDK_TOUCH_MASK", "GdkEventMask", GDK_TOUCH_MASK},
+        {"GDK_SMOOTH_SCROLL_MASK", "GdkEventMask", GDK_SMOOTH_SCROLL_MASK},
+        {"GTK_LEVEL_BAR_MODE_CONTINUOUS", "GtkLevelBarMode", GTK_LEVEL_BAR_MODE_CONTINUOUS},
+        {"GTK_LEVEL_BAR_MODE_DISCRETE", "GtkLevelBarMode", GTK_LEVEL_BAR_MODE_DISCRETE},
+        {"GTK_INPUT_PURPOSE_FREE_FORM", "GtkInputPurpose", GTK_INPUT_PURPOSE_FREE_FORM},
+        {"GTK_INPUT_PURPOSE_ALPHA", "GtkInputPurpose", GTK_INPUT_PURPOSE_ALPHA},
+        {"GTK_INPUT_PURPOSE_DIGITS", "GtkInputPurpose", GTK_INPUT_PURPOSE_DIGITS},
+        {"GTK_INPUT_PURPOSE_NUMBER", "GtkInputPurpose", GTK_INPUT_PURPOSE_NUMBER},
+        {"GTK_INPUT_PURPOSE_PHONE", "GtkInputPurpose", GTK_INPUT_PURPOSE_PHONE},
+        {"GTK_INPUT_PURPOSE_URL", "GtkInputPurpose", GTK_INPUT_PURPOSE_URL},
+        {"GTK_INPUT_PURPOSE_EMAIL", "GtkInputPurpose", GTK_INPUT_PURPOSE_EMAIL},
+        {"GTK_INPUT_PURPOSE_NAME", "GtkInputPurpose", GTK_INPUT_PURPOSE_NAME},
+        {"GTK_INPUT_PURPOSE_PASSWORD", "GtkInputPurpose", GTK_INPUT_PURPOSE_PASSWORD},
+        {"GTK_INPUT_PURPOSE_PIN", "GtkInputPurpose", GTK_INPUT_PURPOSE_PIN},
+        {"GTK_INPUT_HINT_NONE", "GtkInputHints", GTK_INPUT_HINT_NONE},
+        {"GTK_INPUT_HINT_SPELLCHECK", "GtkInputHints", GTK_INPUT_HINT_SPELLCHECK},
+        {"GTK_INPUT_HINT_NO_SPELLCHECK", "GtkInputHints", GTK_INPUT_HINT_NO_SPELLCHECK},
+        {"GTK_INPUT_HINT_WORD_COMPLETION", "GtkInputHints", GTK_INPUT_HINT_WORD_COMPLETION},
+        {"GTK_INPUT_HINT_LOWERCASE", "GtkInputHints", GTK_INPUT_HINT_LOWERCASE},
+        {"GTK_INPUT_HINT_UPPERCASE_CHARS", "GtkInputHints", GTK_INPUT_HINT_UPPERCASE_CHARS},
+        {"GTK_INPUT_HINT_UPPERCASE_WORDS", "GtkInputHints", GTK_INPUT_HINT_UPPERCASE_WORDS},
+        {"GTK_INPUT_HINT_UPPERCASE_SENTENCES", "GtkInputHints", GTK_INPUT_HINT_UPPERCASE_SENTENCES},
+        {"GTK_INPUT_HINT_INHIBIT_OSK", "GtkInputHints", GTK_INPUT_HINT_INHIBIT_OSK},
+#endif
+#if GTK_CHECK_VERSION(3, 8, 0)
+        {"GTK_STATE_FLAG_DIR_LTR", "GtkStateFlags", GTK_STATE_FLAG_DIR_LTR},
+        {"GTK_STATE_FLAG_DIR_RTL", "GtkStateFlags", GTK_STATE_FLAG_DIR_RTL},
+        {"GDK_FULLSCREEN_ON_CURRENT_MONITOR", "GdkFullscreenMode", GDK_FULLSCREEN_ON_CURRENT_MONITOR},
+        {"GDK_FULLSCREEN_ON_ALL_MONITORS", "GdkFullscreenMode", GDK_FULLSCREEN_ON_ALL_MONITORS},
+#endif
+#if GTK_CHECK_VERSION(3, 99, 0)
+        {"GTK_SHORTCUT_GESTURE_SWIPE_LEFT", "GtkShortcutType", GTK_SHORTCUT_GESTURE_SWIPE_LEFT},
+        {"GTK_SHORTCUT_GESTURE_SWIPE_RIGHT", "GtkShortcutType", GTK_SHORTCUT_GESTURE_SWIPE_RIGHT},
+#endif
+        {NULL, NULL, 0}};
+
+static s7_pointer enum_value_to_name(s7_scheme *sc, int64_t val, const char *type) 
+{ 
+  int k; 
+  int64_t range_min = 0, range_max = 0; 
+  bool range_set = false; 
+  for (k = 0; ; k++) 
+    { 
+      enummer_t nt; 
+      nt = enum_info[k]; 
+      if (!nt.name) 
+	break; 
+      if (strcmp(nt.type, type) == 0) 
+	{ 
+	  if (nt.value == val)        /* ... value should be <nt.name> */ 
+	    return(s7_make_string(sc, nt.name)); 
+	  if (!range_set) 
+	    { 
+	      range_min = nt.value; 
+	      range_max = nt.value; 
+	      range_set = true; 
+	    } 
+	  else 
+	    { 
+	      if (range_min > nt.value) range_min = nt.value; 
+	      if (range_max < nt.value) range_max = nt.value; 
+	    } 
+	} 
+    } 
+  if (range_set)       /* here we found a matching name, its type is wrong, and it's out of range */ 
+    { 
+      char *range_string; 
+      s7_pointer str; 
+      range_string = (char *)malloc(256 * sizeof(char)); 
+      snprintf(range_string, 256, "between %" PRId64 " and %" PRId64, range_min, range_max); 
+      str = s7_make_string(sc, range_string); 
+      free(range_string); 
+      return(str);                            /* ... value should be between <min> and <max> */ 
+    } 
+  return(s7_make_symbol(sc, "integer?")); 
+}
+
+static s7_pointer g_gtk_enum_t(s7_scheme *sc, s7_pointer args) 
+{ 
+  s7_pointer form, argn, func, arg; 
+  const char *doc_string, *p; 
+  int arg_number; 
+  form = s7_car(args);  
+  argn = s7_cadr(args); 
+  arg_number = s7_integer(argn); 
+  arg = s7_list_ref(sc, form, arg_number); 
+  if ((!s7_is_integer(arg)) && 
+      (!s7_is_symbol(arg))) 
+    return(s7_make_symbol(sc, "integer?")); 
+  func = s7_car(form); 
+  doc_string = s7_procedure_documentation(sc, func); 
+  p = strchr(doc_string, (int)'('); 
+  if (p) 
+    { 
+      int i; 
+      for (i = 1; i < arg_number; i++) 
+	p = strchr((char *)(p + 1), (int)','); 
+      if (p) 
+	{ 
+	  const char *e; 
+	  p += 2; /* past comma and space */ 
+	  e = strchr(p, (int)' '); 
+	  if (e) 
+	    { 
+	      int len; 
+	      char *type; 
+	      len = e - p + 1; 
+	      type = (char *)malloc(len * sizeof(char)); 
+	      for (i = 0; i < len; i++) type[i] = p[i]; 
+	      type[len - 1] = '\0'; 
+	      if (s7_is_symbol(arg)) 
+		{ 
+		  const char *arg_name; 
+		  arg_name = s7_symbol_name(arg); /* no free */ 
+		  for (i = 0; ; i++) 
+		    { 
+		      enummer_t et; 
+		      et = enum_info[i]; 
+		      if (!et.name) 
+			break; 
+		      if (strcmp(et.name, arg_name) == 0) 
+			{ 
+			  if (strcmp(et.type, type) == 0)                 /* success -- name and type match */ 
+			    { 
+			      free(type); 
+			      return(s7_t(sc)); 
+			    } 
+			  return(enum_value_to_name(sc, et.value, type)); /* here the type is wrong, so try to find the correct name */ 
+			} 
+		    } 
+		  return(s7_make_symbol(sc, "integer?"));               /* here we got no matches, so return 'integer? */ 
+		} 
+	      return(enum_value_to_name(sc, s7_integer(arg), type));      /* here arg is an integer */ 
+	    } 
+	} 
+    } 
+  return(s7_make_symbol(sc, "integer?")); 
+}
+
+static void define_lint(s7_scheme *sc)
+{
+  s7_define_safe_function(sc, "gtk_enum_t?", g_gtk_enum_t, 2, 0, 0, "lint helper");
+}
+
+void libgtk_s7_init(s7_scheme *sc);
+void libgtk_s7_init(s7_scheme *sc)
+{
+  s7_pointer cur_env;
+  cur_env = s7_curlet(sc);
+
+  cbsc = sc;
+  lg_true = s7_t(sc);
+  lg_false = s7_f(sc);
+  define_xm_obj(sc);
+  define_integers(sc);
+  define_doubles(sc);
+  define_atoms(sc);
+  define_strings(sc);
+  define_symbols(sc);
+  define_lint(sc);
+  define_structs(sc);
+  define_functions(sc);
+  s7_define_function(sc, "g_signal_connect", lg_g_signal_connect, 3, 1, 0, H_g_signal_connect);
+
+  s7_provide(sc, "libgtk");
+  #if GTK_CHECK_VERSION(3, 90, 0)
+    s7_provide(sc, "gtk4");
+  #else
+    #if GTK_CHECK_VERSION(3, 0, 0)
+      s7_provide(sc, "gtk3");
+    #else
+      s7_provide(sc, "gtk2");
+    #endif
+  #endif
+  s7_define(sc, cur_env, s7_make_symbol(sc, "libgtk-version"), s7_make_string(sc, "01-Aug-17"));
+}
+/* gcc -c libgtk_s7.c -o libgtk_s7.o -I. -fPIC `pkg-config --libs gtk+-3.0 --cflags` -lm -ldl */
+/* gcc libgtk_s7.o -shared -o libgtk_s7.so */
+/* (load "libgtk_s7.so" (define *gtk* (inlet 'init_func 'libgtk_s7_init))) */
diff --git a/libm.scm b/libm.scm
index d859d5d..010dae9 100644
--- a/libm.scm
+++ b/libm.scm
@@ -26,6 +26,7 @@
 	(c-define 
 	 '((double j0 (double) "Bessel j0") 
 	   (double j1 (double)) 
+	   (double jn (int double)) 
 	   (double erf (double)) 
 	   (double erfc (double))
 	   (double lgamma (double))
diff --git a/lint.scm b/lint.scm
index 26bea2b..1590ffb 100644
--- a/lint.scm
+++ b/lint.scm
@@ -16,7 +16,7 @@
 (define *report-one-armed-if* 90)                         ; if -> when/unless, can be #f/#t; if an integer, sets tree length which triggers revision (80 is too small)
 (define *report-loaded-files* #f)                         ; if load is encountered, include that file in the lint process
 (define *report-any-!-as-setter* #t)                      ; unknown funcs/macros ending in ! are treated as setters
-(define *report-doc-strings* #f)                          ; old-style (CL) doc strings
+(define *report-doc-strings* #f)                          ; old-style (CL) doc strings (definstrument ignores this switch -- see ws.scm)
 (define *report-func-as-arg-arity-mismatch* #f)           ; as it says...
 
 (define *report-ridiculous-variable-names* 50)            ; max length of var name 
@@ -330,10 +330,7 @@
 	(*current-file* "")
 	(*top-level-objects* (make-hash-table))
 	(*output-port* *stderr*)
-	(fragments (do ((v (make-vector *fragment-max-size* #f))
-			(i 0 (+ i 1)))
-		       ((= i *fragment-max-size*) v)
-		     (set! (v i) (make-hash-table))))
+	(fragments (make-vector *fragment-max-size* #f))
 	(fragmin *fragment-max-size*)
 	(fragmax 0)
 	(*max-cdr-len* 16)) ; 40 is too high, 24 questionable, if #f the let+do rewrite is turned off
@@ -4435,37 +4432,35 @@
 	(define numerics-table
 	  (let ((h (make-hash-table)))
 	    
-	    (let ()
+	    (let ((coeffs (make-vector 4 0)))
 	      (define (horners-rule form)
 		(and (pair? form)
 		     (call-with-exit 
 		      (lambda (return)
+			(fill! coeffs 0)
 			(do ((p form (cdr p))
-			     (coeffs #f)
 			     (top 0)
 			     (sym #f))
 			    ((not (pair? p))
 			     (do ((x (- top 1) (- x 1))
-				  (result (coeffs top)))
+				  (result (vector-ref coeffs top)))
 				 ((< x 0)
 				  result)
 			       (set! result 
-				     (if (zero? (coeffs x))
+				     (if (zero? (vector-ref coeffs x))
 					 (list '* sym result)
-					 `(+ ,(coeffs x) (* ,sym ,result))))))
+					 `(+ ,(vector-ref coeffs x) (* ,sym ,result))))))
 			  (let ((cx (car p)))
 			    (cond ((number? cx)
-				   (if (not coeffs) (set! coeffs (make-vector 4 0)))
-				   (set! (coeffs 0) (+ (coeffs 0) cx)))
+				   (vector-set! coeffs 0 (+ (vector-ref coeffs 0) cx)))
 				  
 				  ((symbol? cx)
 				   (if (not sym)
 				       (set! sym cx)
 				       (if (not (eq? sym cx))
 					   (return #f)))
-				   (if (not coeffs) (set! coeffs (make-vector 4 0)))
 				   (set! top (max top 1))
-				   (set! (coeffs 1) (+ (coeffs 1) 1)))
+				   (vector-set! coeffs 1 (+ (vector-ref coeffs 1) 1)))
 				  
 				  ((not (and (pair? cx)
 					     (eq? (car cx) '*)))
@@ -4487,11 +4482,10 @@
 							 (set! ax (* ax qx))
 							 (return #f))))
 					       (cdr cx))
-				     (if (not coeffs) (set! coeffs (make-vector 4 0)))
 				     (if (>= ctr (length coeffs))
 					 (set! coeffs (copy coeffs (make-vector (* ctr 2) 0))))
 				     (set! top (max top ctr))
-				     (set! (coeffs ctr) (+ (coeffs ctr) ax)))))))))))
+				     (vector-set! coeffs ctr (+ (vector-ref coeffs ctr) ax)))))))))))
 	      
 	      (define (num+ args form env)
 		(case (length args)
@@ -4839,7 +4833,7 @@
 			   (arg2 (cadr args)))
 		       (cond ((just-rationals? args) (apply - args)) ; (- 3 2) -> 1
 			     
-			     ((eqv? arg1 0) (list '- arg2))              ; (- 0 x) -> (- x)
+			     ((eqv? arg1 0) (list '- arg2))          ; (- 0 x) -> (- x)
 			     
 			     ((eqv? arg2 0) arg1)                    ; (- x 0) -> x
 			     
@@ -4848,7 +4842,7 @@
 			     ((and (len>1? arg2)
 				   (eq? (car arg2) '-))
 			      (if (null? (cddr arg2)) 
-				  (list '+ arg1 (cadr arg2))            ; (- x (- y)) -> (+ x y)
+				  (list '+ arg1 (cadr arg2))         ; (- x (- y)) -> (+ x y)
 				  (simplify-numerics `(- (+ ,arg1 ,@(cddr arg2)) ,(cadr arg2)) env))) ; (- x (- y z)) -> (- (+ x z) y)
 			     
 			     ((and (pair? arg2)                      ; (- x (+ y z)) -> (- x y z)
@@ -4881,6 +4875,19 @@
 				`(if ,(cadr arg2)
 				     ,(if (eqv? true 0) arg1 (list '- arg1 true))
 				     ,(if (eqv? true 0) (list '- arg1 false) arg1))))
+
+			     ((and (len=3? arg2)                     ; (- x (* y (quotient x y))) or reversed -> (remainder x y)
+				   (eq? (car arg2) '*)
+				   (or (and (len=3? (caddr arg2))    ; arg2 here is (* y (quotient x y)), arg1 is x
+					    (eq? (caaddr arg2) 'quotient)
+					    (equal? arg1 (cadr (caddr arg2)))
+					    (equal? (cadr arg2) (caddr (caddr arg2)))
+					    `(remainder ,arg1 ,(cadr arg2)))	    
+				       (and (len=3? (cadr arg2))      ; arg2 here is (* (quotient x y) y), arg1 is x
+					    (eq? (caadr arg2) 'quotient)
+					    (equal? arg1 (cadr (cadr arg2)))
+					    (equal? (caddr arg2) (caddr (cadr arg2)))
+					    `(remainder ,arg1 ,(caddr arg2))))))
 			     
 			     (else (cons '- args)))))
 		    (else 
@@ -5239,6 +5246,13 @@
 				(pair? (cdar args))
 				(integer? (cadar args))))
 		       (car args))
+
+		      ((and (eq? (car form) 'truncate)  ; (truncate (/ x y)) -> (quotient x y)
+			    (pair? (cdr form))
+			    (pair? (cadr form))
+			    (eq? (caadr form) '/)
+			    (len=3? (cadr form)))
+		       (cons 'quotient (cdadr form)))
 		      
 		      ((memq (caar args) '(inexact->exact exact))
 		       (list (car form) (cadar args)))
@@ -13137,21 +13151,24 @@
 	 vars)
 	(set! lint-function-name #f)))
 
+    (define (report-doc-string definer function-name args body)
+      (lint-format "old-style doc string: ~S, in s7 use 'documentation:~%~NC~A" function-name
+		   (car body) (+ lint-left-margin 4) #\space
+		   (lint-pp `(define ,function-name
+			       (let ((documentation ,(car body)))
+				 (,(case definer 
+				     ((define) 'lambda)
+				     ((define*) 'lambda*)
+				     (else))
+				  ,args
+				  ,@(cdr body)))))))
+
     (define (lint-walk-function-body definer function-name args body env)
       ;; walk function body, with possible doc string at the start
       (when (and (len>1? body)
 		 (string? (car body)))
 	(if *report-doc-strings*
-	    (lint-format "old-style doc string: ~S, in s7 use 'documentation:~%~NC~A" function-name
-			 (car body) (+ lint-left-margin 4) #\space
-			 (lint-pp `(define ,function-name
-				     (let ((documentation ,(car body)))
-				       (,(case definer 
-					   ((define) 'lambda)
-					   ((define*) 'lambda*)
-					   (else))
-					,args
-					,@(cdr body)))))))
+	    (report-doc-string definer function-name args body))
 	(set! body (cdr body))) ; ignore old-style doc-string
       ;; (set! arg ...) never happens as last in body
 
@@ -13187,11 +13204,10 @@
     (define (lint-walk-function definer function-name args body form env)
       ;; check out function arguments (adding them to the current env), then walk its body
       ;; first check for (define (hi...) (ho...)) where ho has no opt args (and try to ignore possible string constant doc string)
-      
       (when (eq? definer 'define)
-	(let ((bval (if (and (pair? body)
+	(let ((bval (if (and (len>1? body)
 			     (string? (car body)))
-			(cdr body)          ; strip away the (old-style) documentation string
+			(cdr body)                   ; strip away the (old-style) documentation string
 			body)))
 	  
 	  (cond ((not (and (len=1? bval)             ; not (define (hi a) . 1)!
@@ -16466,6 +16482,7 @@
 				      (new-result (if (and has-else
 							   (= i (- lim 1))
 							   (null? (cddadr p))
+							   (pair? (cdr (caddr p))) ;(else)
 							   (null? (cddr (caddr p))))
 						      (list 'if (caadr p) (cadadr p) (cadr (caddr p)))
 						      (cons 'cond (cdr p)))))
@@ -20545,7 +20562,9 @@
 			       (or (not (pair? (cdr tag)))
 				   (length (cadr tag)))))
 		      ;; (catch #(0) (lambda () #f) (lambda a a))
-		      (lint-format "catch tag ~S is unreliable (catch uses eq? to match tags)" caller tag))
+		      (lint-format "catch tag ~S is unreliable (catch uses eq? to match tags)" caller tag)
+		      (if (not tag) ; (catch #f ...)
+			  (lint-format "catch tag #f makes this catch a no-op" caller)))
 		  (let ((body (caddr form))
 			(error-handler (cadddr form)))
 		    ;; empty catch+catch apparently never happens
@@ -20772,7 +20791,7 @@
     (define (hash-fragment reduced-form leaves env func orig-form line outer-vars)
       ;; func here is either #f or an env-style entry (cons name let) as produced by make-fvar,
       ;;   the let entries accessed are initial-value, history, arglist
-      (let ((old (hash-table-ref (vector-ref fragments leaves) reduced-form)))
+      (let ((old (hash-table-ref (or (vector-ref fragments leaves) (vector-set! fragments leaves (make-hash-table))) reduced-form)))
 	(set! fragmin (min leaves fragmin))
 	(set! fragmax (min *fragment-max-size* (max leaves fragmax)))
 	(if (not (vector? old))
@@ -21138,6 +21157,7 @@
 		 (unless (and (pair? lint-function-body)
 			      (equal? new-form (car lint-function-body)))
 		   (let ((fvars (let ((fcase (and (< leaves *fragment-max-size*)
+						  (vector-ref fragments leaves)
 						  (hash-table-ref (vector-ref fragments leaves) (list reduced-form)))))
 				  (and (vector? fcase)
 				       (vector-ref fcase 2)))))
@@ -21322,13 +21342,12 @@
 		  ;; save any references to vars in their var-history (type checked later)
 		  ;;   this can be fooled by macros, as everywhere else
 		  (for-each (lambda (arg)
-			      (if (symbol? arg)
-				  (let ((v (var-member arg env)))
-				    (if (and v
+			      (when (symbol? arg)
+				(let ((v (var-member arg env)))
+				  (when (and v
 					     (not (memq form (var-history v))))
-					(begin
-					  (set! (var-history v) (cons form (var-history v)))
-					  (set! (var-refenv v) env))))))
+				    (set! (var-history v) (cons form (var-history v)))
+				    (set! (var-refenv v) env)))))
 			    form)
 		  
 		  (if (set!? form env)
@@ -21879,9 +21898,10 @@
 		   (let ((reportables ())
 			 (size-cutoff (+ *fragment-min-size* 6))
 			 (score-cutoff (if (integer? *report-repeated-code-fragments*) *report-repeated-code-fragments* 130)))
-		     (do ((i *fragment-min-size* (+ i 1)))
-			 ((= i *fragment-max-size*))
-		       (when (> (hash-table-entries (vector-ref fragments i)) 0)
+		     (do ((i fragmin (+ i 1)))
+			 ((> i fragmax))
+		       (when (and (vector-ref fragments i)
+				  (> (hash-table-entries (vector-ref fragments i)) 0))
 			 (for-each (lambda (kv)
 				     (let ((vals (cdr kv)))
 				       (when (> (vals 0) 1) ; more than 1 use of fragment
@@ -22238,11 +22258,7 @@
 	(fill! other-names-counts 0)
 
 	(set! fragmax (min fragmax (- *fragment-max-size* 1)))
-	(do ((i fragmin (+ i 1))) 
-	    ((> i fragmax))
-	  (if (> (length (vector-ref fragments i)) 16)
-	      (vector-set! fragments i (make-hash-table))
-	      (fill! (vector-ref fragments i) #f)))
+	(fill! fragments #f)
 
 	(set! last-simplify-boolean-line-number -1)
 	(set! last-simplify-numeric-line-number -1)
@@ -22270,6 +22286,7 @@
 	(set! (hook-functions *read-error-hook*) read-hooks)
 
 	;; preset list-tail and list-ref
+	(vector-set! fragments 10 (make-hash-table))
 	(hash-table-set! (vector-ref fragments 10) '((if (zero? _2_) _1_ (_F_ (cdr _1_) (- _2_ 1))))
 			 (vector 0 () 
 				 (list (cons 'list-tail 
@@ -22278,7 +22295,7 @@
 						    :history :built-in)))
 				 '(define (list-tail x k) (if (zero? k) x (list-tail (cdr x) (- k 1))))
 				 #f))
-	
+	(vector-set! fragments 12 (make-hash-table))
 	(hash-table-set! (vector-ref fragments 12) '((if (= _2_ 0) (car _1_) (_F_ (cdr _1_) (- _2_ 1))))
 			 (vector 0 ()
 				 (list (cons 'list-ref (inlet :initial-value '(define (list-ref items n) (if (= n 0) (car items) (list-ref (cdr items) (- n 1))))
@@ -22498,7 +22515,7 @@
     #f))
 |#
 
-;;; 62 31733 883913
+;;; 63 910075
 ;;;
 ;;; combine do|case|cond: currently combine-successive-ifs for if|when|unless 12874 (see t605 for examples)
 
diff --git a/makefile.in b/makefile.in
index e590fcc..999e962 100644
--- a/makefile.in
+++ b/makefile.in
@@ -73,6 +73,7 @@ O_FILES = snd-io.o snd-utils.o snd-listener.o snd-completion.o snd-menu.o snd-ax
 MOTIF_O_FILES = snd-gxbitmaps.o snd-gxcolormaps.o snd-motif.o xm.o
 
 GTK_O_FILES = snd-gutils.o snd-ghelp.o snd-gfind.o snd-gmenu.o snd-gdraw.o snd-glistener.o glistener.o snd-gchn.o snd-gsnd.o snd-gregion.o snd-gmain.o snd-gmix.o snd-genv.o snd-gxbitmaps.o snd-gxcolormaps.o snd-gfft.o snd-gfile.o snd-gprefs.o xg.o
+# xg.o is optional, and the functionality can be loaded at run-time (libxg.so or libgtk_s7.so), but there's no obvious reason to wait (core sizes are nearly the same, etc)
 
 NO_GUI_O_FILES = snd-nogui.o
 GM_FILES = xm.o
diff --git a/mockery.scm b/mockery.scm
index 1155fdf..d3eacec 100644
--- a/mockery.scm
+++ b/mockery.scm
@@ -7,10 +7,9 @@
 
 (define (make-method f accessor)
   (lambda args
-    (apply f
-           (if (let? (car args))
-               (values (accessor (car args)) (cdr args))
-               (values (car args) (accessor (cadr args)) (cddr args))))))
+    (if (let? (car args))
+	(apply f (accessor (car args)) (cdr args))
+	(apply f (car args) (accessor (cadr args)) (cddr args)))))
 
 (define (make-object . args)
   (openlet
diff --git a/new-effects.scm b/new-effects.scm
index fdfcc85..41e4c34 100644
--- a/new-effects.scm
+++ b/new-effects.scm
@@ -2814,7 +2814,8 @@ the synthesis amplitude, the FFT size, and the radius value."))
 				      (samp0 0.0)
 				      (samp1 0.0)
 				      (samp2 0.0)
-				      (len (framples)))
+				      (len (framples))
+				      (local-max 0.0))
 				  (call-with-exit
 				   (lambda (return)
 				     (do ((ctr loc (+ ctr 1)))
@@ -2822,11 +2823,11 @@ the synthesis amplitude, the FFT size, and the radius value."))
 				       (set! samp0 samp1)
 				       (set! samp1 samp2)
 				       (set! samp2 (next-sample reader))
-				       (let ((local-max (max .1 (moving-max mmax samp0))))
-					 (if (and (> (abs (- samp0 samp1)) local-max)
-						  (> (abs (- samp1 samp2)) local-max)
-						  (< (abs (- samp0 samp2)) (/ local-max 2)))
-					     (return (- ctr 1))))))))))
+				       (set! local-max (max .1 (moving-max mmax samp0)))
+				       (if (and (> (abs (- samp0 samp1)) local-max)
+						(> (abs (- samp1 samp2)) local-max)
+						(< (abs (- samp0 samp2)) (/ local-max 2)))
+					   (return (- ctr 1)))))))))
 		     (when (integer? click)
 		       (smooth-sound (- click 2) 4)
 		       (remove-click (+ click 2)))))))
diff --git a/numerics.scm b/numerics.scm
index a2b8535..196db08 100644
--- a/numerics.scm
+++ b/numerics.scm
@@ -869,7 +869,8 @@
 	
 
 ;;; --------------------------------------------------------------------------------
-
+#|
+;;; built-in as an experiment
 (define (exptmod a b n) ; from the net somewhere: (modulo (expt a b) n)
   (cond ((zero? b) 1)
         ((even? b) (exptmod (modulo (* a a) n) (quotient b 2) n))
@@ -878,3 +879,4 @@
 ;; (exptmod 3 100 5) 1
 ;; (exptmod 3 101 5) 3
 ;; (exptmod 3 100 3) 0
+|#
diff --git a/peak-phases.scm b/peak-phases.scm
index 3f3d923..05638ed 100644
--- a/peak-phases.scm
+++ b/peak-phases.scm
@@ -1470,32 +1470,30 @@
 ;;; 256 all -------------------------------------------------------------------------------- (16)
 (vector 256 23.353 #r(0 0 1 1 0 1 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1)
 
-	16.015648 #(0.000000 0.913073 0.365032 -0.108482 -0.850779 -0.029112 -0.478221 0.299853 0.005930 0.028684 0.489375 0.147659 0.996302 -0.711773 0.844258 0.842025 -0.127152 0.541536 0.197810 -0.436340 -0.768131 0.238796 -0.466158 0.863007 -0.035212 -0.456714 0.735955 -0.230524 -0.009416 0.553478 -0.052779 -0.042468 0.170073 -0.634690 -0.059697 -0.948449 -1.045458 0.789684 -0.057400 -0.414983 -0.212938 -0.507440 -0.007591 -0.442717 0.339164 0.509734 0.793943 -0.256492 -0.231808 -0.778192 0.734232 0.783518 0.363369 -0.620669 0.577317 0.339118 0.845065 -1.026930 0.267559 0.850069 0.330602 -0.130805 -0.131595 -0.899177 -0.612868 0.777144 -0.313041 0.155890 0.057943 0.873482 -0.147270 -0.230789 -0.264303 -0.544562 0.830094 -0.198370 0.527237 0.888849 0.176321 0.036834 -0.606699 0.721034 -0.998615 0.929187 -0.601311 -0.559511 0.175522 -0.212560 0.335615 0.741117 0.713881 -0.342068 -0.786092 -0.355971 0.316302 0.458583 0.831922 -0.438701 0.902759 -0.520319 -0.943992 -0.918858 0.236362 -0.525398 -0.355285 -0.657017 -0.171348 -0.775711 -0.706238 0.935550 -0.857506 -0.255804 -0.015911 0.908310 -0.620626 0.749200 -0.090957 0.449328 -0.692035 -0.879768 0.488921 0.242083 0.526063 0.977469 -0.769561 0.798088 0.732466 0.379621 0.165711 0.845386 -0.051576 0.621025 -0.850421 1.079254 -0.294265 -0.113623 0.019082 -0.915633 0.175555 0.655223 0.003180 -0.501018 -0.072745 0.430361 0.405286 -0.568091 0.914362 -0.108464 0.623625 -0.134945 0.312963 0.199622 -0.473122 -0.159637 0.742702 0.640041 0.728192 -0.454474 -0.454159 0.769919 0.420837 0.674995 -0.347142 -0.691204 0.048761 -0.186020 0.921972 -0.865601 -0.060675 -0.139337 -0.814725 0.330667 -0.294249 0.397138 0.372289 0.290428 -0.887223 0.111373 0.754623 -0.480381 0.874753 -0.710905 0.732459 -0.022383 -0.769465 0.599679 0.273603 0.014636 -0.012073 -0.008582 0.121652 0.181281 -0.921287 -0.016414 0.034842 -0.700966 -0.893100 0.800484 -0.344865 -0.641014 0.507181 -0.742638 0.533441 0.230072 0.218915 -0.859405 0.461077 0.940883 -0.596799 -0.035117 -0.825297 -0.128261 0.459343 0.859514 -0.512344 0.079703 0.668236 -0.859257 0.621100 -0.194240 0.546942 -0.771748 -0.285659 -0.118406 -0.179653 0.607923 0.056770 0.787692 0.368958 0.194256 0.637505 -0.036460 0.316367 -0.064912 0.784004 0.497108 0.067884 0.856156 -0.185759 0.126991 -0.003872 0.229782 -0.016427 -0.164906 0.302017 0.785790 -0.631477 -0.851702 0.785147 0.653827 0.856436 0.022692 0.693752 0.899424 0.001443 0.429665)	16.010386 #(0.000000 0.920945 0.363394 -0.111459 -0.852961 -0.030743 -0.486427 0.303296 0.010874 0.025631 0.486771 0.146546 0.994416 -0.718811 0.828960 0.840913 -0.131882 0.543317 0.204985 -0.439493 -0.763137 0.245247 -0.475554 0.866796 -0.041025 -0.461673 0.740755 -0.226719 0.001506 0.552697 -0.059966 -0.035327 0.173366 -0.628245 -0.054838 -0.934551 -1.031441 0.793233 -0.043124 -0.412676 -0.208047 -0.513793 -0.006876 -0.455348 0.342378 0.516301 0.791942 -0.257287 -0.226499 -0.779985 0.732619 0.786192 0.363409 -0.619448 0.578093 0.339825 0.847881 -1.025827 0.259379 0.843283 0.334363 -0.127324 -0.127579 -0.903361 -0.620509 0.785133 -0.312323 0.153398 0.055471 0.866327 -0.142491 -0.229933 -0.269705 -0.547332 0.834680 -0.192895 0.531124 0.904440 0.173178 0.030764 -0.606946 0.721023 -0.994614 0.933155 -0.603090 -0.567732 0.177246 -0.206163 0.314884 0.733548 0.702209 -0.341642 -0.790663 -0.358956 0.314517 0.460531 0.827952 -0.426749 0.886351 -0.525470 -0.948488 -0.914665 0.232069 -0.530778 -0.361820 -0.652252 -0.173056 -0.775244 -0.707798 0.944444 -0.853094 -0.252134 -0.004542 0.918692 -0.618838 0.749411 -0.096229 0.446266 -0.693117 -0.882196 0.495495 0.243764 0.526690 0.971870 -0.769433 0.799709 0.728152 0.378075 0.171064 0.836718 -0.059131 0.609743 -0.860513 1.066200 -0.297224 -0.113848 0.009565 -0.919496 0.163385 0.657120 -0.007832 -0.503984 -0.072991 0.430986 0.397326 -0.574038 0.916295 -0.106489 0.622703 -0.141369 0.297377 0.207168 -0.476795 -0.160183 0.738329 0.640718 0.737546 -0.452103 -0.465273 0.778970 0.427298 0.674878 -0.339954 -0.691811 0.050490 -0.187869 0.914497 -0.875986 -0.064207 -0.145638 -0.815661 0.323974 -0.295041 0.389771 0.374451 0.289464 -0.891822 0.110356 0.749603 -0.486262 0.877252 -0.708311 0.727538 -0.029129 -0.768613 0.599336 0.273696 0.009013 -0.014981 -0.018066 0.115337 0.181872 -0.918064 -0.020664 0.032568 -0.717156 -0.885234 0.789019 -0.363390 -0.638226 0.506111 -0.747084 0.513174 0.227388 0.223304 -0.868865 0.451813 0.936259 -0.593299 -0.029106 -0.826842 -0.123816 0.463175 0.854642 -0.509021 0.082861 0.662066 -0.846887 0.626221 -0.184798 0.557138 -0.776207 -0.285287 -0.116068 -0.189148 0.597111 0.058719 0.802492 0.367358 0.191462 0.632917 -0.047441 0.319907 -0.068892 0.783354 0.495351 0.072287 0.851620 -0.191477 0.138573 -0.011049 0.217910 -0.014525 -0.163969 0.288573 0.772557 -0.642325 -0.867993 0.783974 0.657342 0.848756 0.031694 0.695222 0.896605 -0.007103 0.420073)
-	16.008340 #(0.000000 0.924276 0.362291 -0.110441 -0.855698 -0.030196 -0.480404 0.303965 0.009025 0.027019 0.487751 0.146987 0.992342 -0.715809 0.832216 0.842695 -0.128929 0.541176 0.204364 -0.437798 -0.765322 0.242761 -0.476383 0.866350 -0.040142 -0.461897 0.740014 -0.226437 0.001280 0.552675 -0.060305 -0.034943 0.171195 -0.626477 -0.054275 -0.933557 -1.029874 0.790379 -0.040028 -0.415691 -0.211695 -0.511211 -0.005858 -0.454729 0.340940 0.516909 0.790921 -0.254671 -0.228556 -0.779360 0.734348 0.784373 0.366944 -0.617800 0.579129 0.340372 0.850813 -1.024999 0.259101 0.845491 0.332824 -0.127386 -0.128393 -0.902198 -0.617002 0.785840 -0.310320 0.156978 0.056183 0.866094 -0.144000 -0.229666 -0.270074 -0.544365 0.834774 -0.189187 0.529494 0.900861 0.175206 0.028280 -0.606895 0.722759 -0.995982 0.928632 -0.603148 -0.565317 0.180632 -0.209974 0.316840 0.735409 0.703715 -0.342118 -0.787262 -0.357579 0.314391 0.459878 0.826358 -0.427718 0.888529 -0.525271 -0.945443 -0.913228 0.231775 -0.528581 -0.362681 -0.652446 -0.170681 -0.778933 -0.706870 0.944000 -0.851084 -0.250037 -0.007916 0.914800 -0.618253 0.752824 -0.095797 0.448364 -0.688784 -0.882018 0.494289 0.244800 0.527326 0.972752 -0.770390 0.801900 0.727890 0.377259 0.168397 0.839259 -0.056173 0.610729 -0.859386 1.065435 -0.296285 -0.116304 0.012386 -0.917455 0.163423 0.658308 -0.004289 -0.504726 -0.072443 0.431079 0.400162 -0.571656 0.916254 -0.106918 0.624416 -0.139453 0.301252 0.208891 -0.473136 -0.159529 0.739641 0.641158 0.737619 -0.453693 -0.459609 0.780666 0.427044 0.673810 -0.339936 -0.692550 0.051402 -0.186142 0.916940 -0.874831 -0.063472 -0.146540 -0.815123 0.328135 -0.296042 0.387539 0.376603 0.291908 -0.888391 0.110594 0.751903 -0.484544 0.877623 -0.709582 0.729244 -0.026531 -0.769098 0.603634 0.275819 0.005088 -0.013515 -0.016447 0.117067 0.179057 -0.919285 -0.020847 0.034627 -0.715244 -0.885330 0.790864 -0.357208 -0.639673 0.512003 -0.743397 0.516329 0.229113 0.220081 -0.867161 0.457431 0.938171 -0.592499 -0.026197 -0.827691 -0.126675 0.463427 0.854982 -0.511275 0.083456 0.664033 -0.844142 0.624587 -0.182221 0.558181 -0.775220 -0.285024 -0.114116 -0.189160 0.602407 0.058002 0.799801 0.366190 0.194199 0.633876 -0.040563 0.320907 -0.068732 0.783604 0.496750 0.073752 0.852116 -0.188642 0.135755 -0.011019 0.220204 -0.013472 -0.162668 0.293284 0.774369 -0.643319 -0.865194 0.784214 0.657100 0.852895 0.029268 0.692648 0.897181 -0.004533 0.420500)
-	16.007884 #(0.000000 0.922928 0.360969 -0.107860 -0.853470 -0.029739 -0.481669 0.303315 0.009338 0.028396 0.486499 0.146132 0.993098 -0.716983 0.833516 0.842808 -0.130854 0.540155 0.204117 -0.438506 -0.764609 0.243640 -0.476256 0.866245 -0.040566 -0.462329 0.739042 -0.226174 0.001845 0.553660 -0.059003 -0.035708 0.170583 -0.628149 -0.054651 -0.932927 -1.031061 0.789629 -0.040309 -0.414361 -0.211066 -0.509611 -0.006959 -0.454572 0.341645 0.518519 0.790868 -0.253675 -0.226460 -0.778751 0.732678 0.787220 0.367578 -0.616591 0.579809 0.338997 0.847944 -1.024413 0.259470 0.846524 0.331885 -0.127206 -0.127246 -0.900458 -0.618112 0.787082 -0.308785 0.155238 0.054669 0.867046 -0.145996 -0.230082 -0.268529 -0.546788 0.835157 -0.189054 0.529309 0.899414 0.175300 0.028857 -0.606131 0.722991 -0.995706 0.929667 -0.603038 -0.566383 0.181600 -0.209369 0.315795 0.736615 0.704221 -0.339987 -0.786786 -0.359640 0.313838 0.459500 0.827383 -0.428267 0.890546 -0.523938 -0.946755 -0.913641 0.231607 -0.529405 -0.360728 -0.651910 -0.172578 -0.778899 -0.708198 0.943254 -0.853690 -0.250004 -0.007860 0.915151 -0.619600 0.752955 -0.095360 0.447052 -0.689433 -0.882237 0.495592 0.240815 0.527219 0.972414 -0.770145 0.803371 0.728537 0.377205 0.169425 0.838329 -0.055361 0.611409 -0.859388 1.064945 -0.296072 -0.114375 0.011844 -0.918381 0.162905 0.656933 -0.003591 -0.504715 -0.072526 0.430703 0.400543 -0.572452 0.914945 -0.107438 0.624510 -0.139283 0.298753 0.207864 -0.473764 -0.159103 0.738807 0.640564 0.740226 -0.453558 -0.462283 0.780075 0.427464 0.673736 -0.340464 -0.694277 0.049740 -0.185832 0.916192 -0.874941 -0.066498 -0.145479 -0.815161 0.327644 -0.296274 0.390966 0.375097 0.293318 -0.888195 0.108966 0.752273 -0.485707 0.877930 -0.708223 0.730314 -0.026034 -0.769704 0.603525 0.276135 0.007717 -0.015521 -0.015223 0.118342 0.180381 -0.920163 -0.021297 0.033412 -0.714448 -0.885904 0.790856 -0.358137 -0.637432 0.511650 -0.745980 0.516306 0.227315 0.221380 -0.869170 0.456938 0.935313 -0.593138 -0.028218 -0.830358 -0.129244 0.461693 0.855245 -0.510744 0.082243 0.663409 -0.845153 0.622076 -0.183948 0.558112 -0.778556 -0.282504 -0.113851 -0.187331 0.602125 0.057597 0.799289 0.363875 0.192187 0.633453 -0.040616 0.319802 -0.069003 0.783592 0.497842 0.073819 0.850815 -0.189639 0.136903 -0.011177 0.220479 -0.014447 -0.163761 0.292892 0.773917 -0.643620 -0.865036 0.783924 0.659841 0.852895 0.029278 0.694166 0.895461 -0.005968 0.422337)
-	16.007758 #(0.000000 0.922886 0.360972 -0.107941 -0.853286 -0.029890 -0.481728 0.303305 0.009234 0.028475 0.486321 0.146367 0.993034 -0.716937 0.833360 0.842940 -0.130941 0.540450 0.204063 -0.438608 -0.764665 0.243847 -0.476092 0.866251 -0.040608 -0.462102 0.739126 -0.226105 0.002005 0.553838 -0.059157 -0.035773 0.170554 -0.628122 -0.054794 -0.932916 -1.031067 0.789801 -0.040195 -0.414609 -0.211239 -0.509500 -0.006824 -0.454468 0.341669 0.518587 0.790785 -0.253519 -0.226399 -0.778499 0.732573 0.786981 0.367583 -0.616850 0.579690 0.339133 0.848152 -1.024614 0.259249 0.846135 0.331943 -0.127295 -0.127362 -0.900595 -0.617953 0.786896 -0.308783 0.154980 0.054689 0.866856 -0.146078 -0.229852 -0.268444 -0.546735 0.835185 -0.189037 0.529339 0.899346 0.175520 0.028886 -0.606288 0.722972 -0.995810 0.929794 -0.602789 -0.566459 0.181481 -0.209331 0.315729 0.736580 0.703962 -0.340033 -0.786608 -0.359731 0.313840 0.459240 0.827505 -0.428109 0.890672 -0.523798 -0.946754 -0.913444 0.231652 -0.529509 -0.360469 -0.651956 -0.172550 -0.778471 -0.708248 0.942972 -0.853473 -0.249961 -0.007683 0.915085 -0.619588 0.752807 -0.095290 0.447074 -0.689339 -0.882361 0.495622 0.240903 0.527291 0.972486 -0.770253 0.803157 0.728557 0.377081 0.169677 0.838362 -0.055433 0.611167 -0.859496 1.065141 -0.296195 -0.114442 0.011772 -0.918417 0.162830 0.656868 -0.003818 -0.504586 -0.072366 0.430687 0.400829 -0.572606 0.914943 -0.107354 0.624501 -0.139104 0.298717 0.208083 -0.473638 -0.159211 0.739078 0.640327 0.740293 -0.453613 -0.462248 0.780093 0.427735 0.673800 -0.340510 -0.694481 0.049758 -0.185965 0.916405 -0.874891 -0.066553 -0.145490 -0.814908 0.327680 -0.296467 0.390858 0.375037 0.293421 -0.888420 0.109092 0.752148 -0.485721 0.877755 -0.708292 0.730678 -0.026088 -0.769863 0.603666 0.276298 0.007787 -0.015304 -0.015000 0.118489 0.180365 -0.920315 -0.021100 0.033412 -0.714561 -0.885991 0.790966 -0.357847 -0.637530 0.511863 -0.745813 0.516168 0.227595 0.221419 -0.869477 0.457242 0.935302 -0.593242 -0.028100 -0.830395 -0.129369 0.461682 0.855401 -0.510650 0.082356 0.663400 -0.844931 0.621875 -0.183856 0.558303 -0.778542 -0.282640 -0.114035 -0.187343 0.602102 0.057635 0.799108 0.363734 0.192206 0.633422 -0.040728 0.319629 -0.068935 0.783582 0.497982 0.073772 0.851108 -0.189632 0.136765 -0.011310 0.220494 -0.014269 -0.163713 0.292846 0.773802 -0.643651 -0.864921 0.783857 0.659743 0.852615 0.029067 0.694103 0.895444 -0.006212 0.422310)
+	16.004494 #(0.000000 0.923816 0.361639 -0.107454 -0.859742 -0.028657 -0.483980 0.304450 0.009620 0.028111 0.488083 0.145329 0.992522 -0.712585 0.835199 0.844863 -0.130023 0.541909 0.203354 -0.437282 -0.763012 0.240385 -0.474816 0.867235 -0.042272 -0.459829 0.739290 -0.226994 0.000326 0.548038 -0.057597 -0.036183 0.171858 -0.629562 -0.054153 -0.933713 -1.031920 0.790526 -0.041636 -0.413967 -0.216472 -0.508969 -0.005543 -0.455212 0.341069 0.517767 0.790358 -0.252446 -0.226255 -0.777399 0.732727 0.787972 0.367821 -0.617361 0.579757 0.338221 0.846564 -1.027653 0.259324 0.849386 0.331276 -0.126506 -0.126388 -0.903010 -0.617286 0.786967 -0.310247 0.156945 0.053599 0.868872 -0.145454 -0.229626 -0.267431 -0.545652 0.832464 -0.190728 0.528705 0.904620 0.174421 0.028586 -0.605220 0.721468 -0.996563 0.931650 -0.599780 -0.564533 0.182431 -0.204505 0.318571 0.733352 0.706688 -0.342127 -0.790260 -0.358786 0.315925 0.458784 0.831646 -0.430450 0.891531 -0.527239 -0.950154 -0.914766 0.232786 -0.531049 -0.361289 -0.654862 -0.172115 -0.782072 -0.708290 0.943431 -0.852316 -0.252543 -0.007994 0.913765 -0.616490 0.750657 -0.095885 0.449506 -0.691238 -0.883734 0.490213 0.243896 0.522669 0.972888 -0.771052 0.800503 0.729518 0.378651 0.170051 0.840751 -0.055721 0.611168 -0.857658 1.069398 -0.296402 -0.114941 0.012304 -0.915913 0.163671 0.653378 -0.005673 -0.505719 -0.069401 0.429234 0.399932 -0.572847 0.916709 -0.105681 0.623431 -0.135832 0.295771 0.205111 -0.476164 -0.158542 0.738313 0.642827 0.735903 -0.449294 -0.462374 0.777115 0.428654 0.673744 -0.340257 -0.689443 0.050240 -0.189272 0.914422 -0.878746 -0.068019 -0.143830 -0.819958 0.328664 -0.298336 0.392924 0.371409 0.289571 -0.889659 0.110277 0.754586 -0.489103 0.877567 -0.709198 0.733528 -0.023455 -0.771095 0.604769 0.274655 0.010504 -0.018009 -0.015237 0.115976 0.176482 -0.918708 -0.022918 0.031436 -0.713376 -0.890487 0.791812 -0.355370 -0.638230 0.507087 -0.746586 0.519222 0.225200 0.220685 -0.870714 0.455315 0.938855 -0.591543 -0.023644 -0.833799 -0.128752 0.459819 0.854274 -0.511312 0.083997 0.667854 -0.850579 0.624178 -0.182558 0.556230 -0.776685 -0.286810 -0.115990 -0.183540 0.598780 0.054693 0.795983 0.363080 0.192692 0.637320 -0.044998 0.315471 -0.070081 0.782006 0.497451 0.070613 0.847255 -0.191377 0.137860 -0.013771 0.217518 -0.015827 -0.167256 0.291737 0.773328 -0.642920 -0.865159 0.781886 0.657254 0.854299 0.024065 0.695663 0.894978 -0.001701 0.424563)
+	16.004138 #(0.000000 0.924688 0.362089 -0.109382 -0.857400 -0.027666 -0.483597 0.303703 0.009369 0.026084 0.487301 0.145538 0.992375 -0.713596 0.834901 0.845857 -0.131135 0.540880 0.202907 -0.439585 -0.762665 0.242561 -0.475639 0.867784 -0.040726 -0.461522 0.738430 -0.225241 -0.000123 0.549831 -0.057366 -0.036092 0.167920 -0.630075 -0.053340 -0.934464 -1.031733 0.789169 -0.041446 -0.413395 -0.214005 -0.510226 -0.006280 -0.453731 0.341121 0.517585 0.788920 -0.250815 -0.228232 -0.778281 0.732454 0.787024 0.365809 -0.617906 0.580304 0.338111 0.848622 -1.028080 0.259726 0.848976 0.331331 -0.126236 -0.125945 -0.901411 -0.617430 0.786835 -0.309380 0.155702 0.055098 0.868459 -0.144800 -0.229746 -0.266266 -0.547389 0.833748 -0.191366 0.529498 0.901813 0.175373 0.029185 -0.604488 0.721819 -0.997709 0.930161 -0.600763 -0.566888 0.181567 -0.207773 0.318595 0.732571 0.706321 -0.341245 -0.789781 -0.360662 0.313865 0.457991 0.831245 -0.430592 0.891544 -0.526683 -0.948178 -0.915890 0.232164 -0.531297 -0.361678 -0.653779 -0.170857 -0.781145 -0.705158 0.943037 -0.851661 -0.251794 -0.006856 0.913255 -0.615596 0.752146 -0.095992 0.446977 -0.690745 -0.883343 0.490963 0.243245 0.523041 0.972647 -0.771765 0.799699 0.730717 0.378320 0.170318 0.838466 -0.055430 0.611346 -0.855476 1.069073 -0.296657 -0.116264 0.010475 -0.917481 0.163531 0.654015 -0.003459 -0.507158 -0.068560 0.429668 0.400299 -0.574095 0.917084 -0.108337 0.624969 -0.138433 0.296368 0.204510 -0.476966 -0.159609 0.740602 0.642361 0.735627 -0.448857 -0.463591 0.777132 0.428587 0.673546 -0.340680 -0.690706 0.049109 -0.188268 0.915421 -0.878268 -0.066336 -0.144713 -0.818195 0.329276 -0.297274 0.391748 0.368179 0.290498 -0.889991 0.110037 0.753241 -0.489413 0.878493 -0.712662 0.730659 -0.025312 -0.771363 0.602415 0.274544 0.010140 -0.016950 -0.014686 0.117732 0.177066 -0.917962 -0.020014 0.032847 -0.712137 -0.892564 0.792401 -0.356763 -0.638883 0.506947 -0.748125 0.518022 0.226702 0.219873 -0.870753 0.456311 0.937372 -0.593056 -0.026080 -0.832275 -0.129742 0.460048 0.852618 -0.509471 0.083336 0.666559 -0.848858 0.624087 -0.183776 0.557165 -0.776788 -0.286160 -0.116088 -0.184525 0.600292 0.055028 0.797840 0.360468 0.190986 0.638246 -0.043778 0.314598 -0.069579 0.782102 0.494808 0.071358 0.849548 -0.189940 0.138086 -0.014070 0.218801 -0.018027 -0.165167 0.289397 0.774255 -0.641779 -0.863379 0.780232 0.656465 0.853904 0.025600 0.694962 0.895916 -0.005212 0.424160)
+	16.003630 #(0.000000 0.923847 0.361694 -0.107462 -0.859817 -0.028657 -0.484040 0.304447 0.009611 0.028067 0.488034 0.145389 0.992498 -0.712576 0.835208 0.844839 -0.129970 0.541905 0.203401 -0.437221 -0.763002 0.240431 -0.474760 0.867215 -0.042206 -0.459832 0.739200 -0.226980 0.000327 0.548166 -0.057671 -0.036223 0.171887 -0.629570 -0.054140 -0.933750 -1.032004 0.790508 -0.041629 -0.413948 -0.216505 -0.508965 -0.005557 -0.455191 0.341053 0.517716 0.790332 -0.252483 -0.226213 -0.777449 0.732773 0.787933 0.367904 -0.617387 0.579722 0.338191 0.846633 -1.027672 0.259344 0.849403 0.331302 -0.126522 -0.126424 -0.902918 -0.617263 0.786948 -0.310234 0.156943 0.053596 0.868846 -0.145455 -0.229611 -0.267427 -0.545610 0.832483 -0.190735 0.528596 0.904624 0.174451 0.028646 -0.605167 0.721495 -0.996645 0.931623 -0.599730 -0.564592 0.182433 -0.204470 0.318571 0.733334 0.706664 -0.342096 -0.790252 -0.358744 0.315888 0.458839 0.831655 -0.430398 0.891511 -0.527192 -0.950149 -0.914809 0.232824 -0.531017 -0.361252 -0.654895 -0.172123 -0.782098 -0.708324 0.943417 -0.852303 -0.252585 -0.007983 0.913775 -0.616513 0.750653 -0.095875 0.449523 -0.691246 -0.883753 0.490169 0.243885 0.522647 0.972850 -0.771088 0.800464 0.729569 0.378613 0.170034 0.840754 -0.055689 0.611131 -0.857565 1.069406 -0.296390 -0.114912 0.012325 -0.915935 0.163690 0.653378 -0.005655 -0.505707 -0.069416 0.429303 0.399958 -0.572779 0.916722 -0.105747 0.623398 -0.135860 0.295749 0.205019 -0.476127 -0.158541 0.738280 0.642883 0.735928 -0.449222 -0.462362 0.777133 0.428649 0.673692 -0.340201 -0.689491 0.050235 -0.189302 0.914447 -0.878751 -0.068007 -0.143885 -0.819972 0.328707 -0.298330 0.392914 0.371393 0.289497 -0.889663 0.110231 0.754611 -0.489075 0.877581 -0.709161 0.733578 -0.023534 -0.771121 0.604803 0.274625 0.010542 -0.018029 -0.015252 0.115994 0.176495 -0.918714 -0.022969 0.031390 -0.713351 -0.890487 0.791835 -0.355368 -0.638229 0.507069 -0.746578 0.519158 0.225155 0.220663 -0.870722 0.455250 0.938870 -0.591613 -0.023703 -0.833787 -0.128770 0.459890 0.854236 -0.511318 0.084035 0.667890 -0.850609 0.624169 -0.182523 0.556209 -0.776655 -0.286843 -0.116030 -0.183539 0.598802 0.054674 0.795963 0.363083 0.192724 0.637306 -0.044984 0.315434 -0.070083 0.781945 0.497481 0.070624 0.847242 -0.191341 0.137867 -0.013819 0.217503 -0.015829 -0.167290 0.291685 0.773372 -0.642887 -0.865192 0.781893 0.657214 0.854277 0.024075 0.695669 0.894936 -0.001759 0.424517)
       )
 
 ;;; 512 all -------------------------------------------------------------------------------- (22.627)
 (vector 512 34.212551772691 #r(0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 1)
 
       ;; from (try-all :all 512 513 1.0491155462743 0.38189660798029) = 28.3830
-	23.447706 #(0.000000 0.426044 1.633708 1.350280 1.822804 1.117244 0.760667 1.218703 0.489220 0.131095 0.659797 1.857797 1.521853 0.046587 1.243767 0.934650 1.505713 0.634431 0.335362 0.893106 0.022076 1.771168 0.330129 1.445347 1.190395 1.726813 0.869471 0.682662 1.150720 0.343682 0.173189 0.588032 1.804217 1.684164 0.134104 1.329663 1.163731 1.734444 0.858967 0.631329 1.295909 0.342596 0.140608 0.794655 1.883382 1.642551 0.224842 1.367308 1.190153 1.704002 0.940016 0.794558 1.221228 0.506176 0.402140 0.834237 0.087808 -0.009349 0.494554 1.668651 1.555556 0.081367 1.193806 1.090241 1.622457 0.742170 0.633009 1.125571 0.327065 0.236311 0.784555 0.007026 1.905943 0.547056 1.721396 1.563357 0.199584 1.333207 1.227299 1.761129 0.923965 0.841615 1.352322 0.582481 0.472318 1.017351 0.355842 0.155957 0.741816 0.069387 1.865137 0.443149 1.678605 1.613225 0.140270 1.330017 1.377157 1.842142 1.016389 1.092737 1.598833 0.786375 0.783263 1.366084 0.596813 0.485778 1.108325 0.377669 0.289753 0.849219 0.105980 0.065089 0.612684 1.826755 1.810107 0.367420 1.631370 1.589749 0.161057 1.494507 1.386008 1.954198 1.308234 1.154144 1.812520 1.102079 0.991639 1.657984 0.947500 0.885765 1.444371 0.775990 0.774779 1.289425 0.549674 0.613062 1.134416 0.434937 0.421164 0.932422 0.317139 0.326873 0.888730 0.170155 0.216384 0.828818 0.045292 0.040392 0.641832 -0.002957 1.970586 0.581934 1.955967 1.971180 0.582291 1.831131 1.890082 0.453685 1.764758 1.809030 0.361473 1.808543 1.748037 0.376510 1.770108 1.635840 0.354278 1.584837 1.604942 0.332568 1.545624 1.688980 0.365504 1.682292 1.703299 0.329125 1.769500 1.613525 0.302659 1.742362 1.621835 0.356730 1.654219 1.680293 0.368667 1.670213 1.698169 0.359738 1.763391 1.757939 0.465090 1.805690 1.827093 0.604956 1.812925 1.903367 0.604764 1.922467 -0.025294 0.628482 0.089594 0.137527 0.798028 0.262512 0.258877 0.911337 0.287514 0.324127 0.998558 0.332378 0.380843 1.151589 0.535232 0.553092 1.371022 0.747359 0.744895 1.502854 0.865718 0.976266 1.650643 1.006169 1.106970 1.791773 1.242225 1.260090 -0.015493 1.406560 1.331339 0.096575 1.527099 1.636535 0.388321 1.680395 1.842931 0.617303 0.037514 0.206026 0.897517 0.308552 0.271648 1.031024 0.575724 0.609930 1.349235 0.734419 0.775137 1.618315 1.020351 1.284385 1.970785 1.300002 1.371580 0.127374 1.659861 1.733801 0.422372 1.877971 -0.124654 0.713050 0.209833 0.346893 1.127179 0.437124 0.588854 1.432995 0.900023 0.972522 1.733352 1.196377 1.323783 0.085855 1.616691 1.687760 0.520248 1.958862 0.045964 0.842704 0.272784 0.385563 1.254777 0.646529 0.726764 1.482577 1.020683 1.267843 0.057572 1.547226 1.616003 0.452522 1.870078 0.145163 0.875749 0.485546 0.508608 1.429635 0.748624 0.886073 1.688243 1.255738 1.472471 0.306561 1.765612 1.834766 0.642197 0.080630 0.375039 1.102978 0.833759 0.850343 1.767238 1.162381 1.224801 0.095208 1.586855 1.861578 0.755155 0.319961 0.353038 1.320731 0.620095 0.945907 1.774571 1.298278 1.517656 0.297706 1.952642 -0.038337 0.893178 0.328516 0.613616 1.363053 1.057818 1.211503 0.087536 1.604365 1.714531 0.728904 0.210695 0.460405 1.225001 0.710004 1.062252 1.876178 1.520212 1.510480 0.425053 -0.097606 0.255753 1.023751 0.690356 0.805742 1.690677 1.335670 1.483385 0.408341 1.893159 0.192442 1.161411 0.739588 0.925135 1.829951 1.365567 1.594797 0.509658 0.005143 0.242997 1.168938 0.817902 0.963916 1.857104 1.417510 1.653626 0.585496 0.202138 0.478316 1.384828 0.843333 1.158230 0.077613 1.760367 1.991495 0.880832 0.424302 0.668646 1.640237 1.279509 1.492224 0.438109 0.019040 0.359527 1.181372 0.777284 1.020087 -0.068629 1.601067 1.864491 0.711315 0.477258 0.630936 1.650085 1.163207 1.512004 0.565624 0.176851 0.401308 1.257747 0.848965 1.298253 0.235808 1.902518 0.017403 1.028387 0.666377 0.971703 0.006144 1.616350 1.921496 0.930440 0.386963 0.792916 1.753615 1.450589 1.722065 0.588282 0.189495 0.476219 1.468100 1.193455 1.470365 0.436381 0.079359 0.420904 1.447660 1.202499 1.449364 0.374602 0.038089 0.356451 1.332338 0.985146 1.364219 0.312539 -0.086805 0.271062 1.287916 0.990171 1.307320 0.328617 0.080264 0.298457 1.327271 0.964737 1.372802 0.416893 0.055261 0.471272 1.365200 1.078259 1.380118 0.386065 0.246323 0.422893 1.483916 1.070257 1.397825 0.560586 0.187349 0.566295 1.630632 1.149236 1.685105 0.667157 0.378525 0.731550 1.737848 1.577519 1.900618 0.865671 0.626718 0.985350 0.051991 1.713168 0.133614 1.176445 0.840279 1.212169 0.308045 0.044807 0.412756 1.430012 1.183088 1.552370 0.555032 0.334828 0.813003 1.836345 1.610299 1.988363 1.015828 0.766021 1.137781 0.269403 0.014111 0.441778 1.556738 1.304115 1.781815 0.811303 0.509380 1.001982 0.101347)
-	23.440634 #(0.000000 0.426030 1.633705 1.350244 1.822699 1.117406 0.760360 1.218705 0.489063 0.130982 0.660045 1.857954 1.522020 0.046221 1.243722 0.934404 1.505808 0.634520 0.335568 0.893023 0.022202 1.770959 0.330133 1.445279 1.190570 1.726817 0.869688 0.682732 1.150875 0.343543 0.173129 0.588037 1.804434 1.684302 0.134268 1.329600 1.163625 1.734196 0.858998 0.631488 1.295997 0.342522 0.140446 0.794731 1.883601 1.642749 0.224765 1.367524 1.190082 1.703985 0.940140 0.794510 1.221050 0.506326 0.401990 0.834102 0.087660 -0.009348 0.494606 1.668822 1.555834 0.081180 1.193765 1.090147 1.622352 0.742254 0.632981 1.125333 0.327431 0.236167 0.784711 0.007146 1.906126 0.547040 1.721445 1.563510 0.199627 1.333384 1.227168 1.761235 0.923991 0.841192 1.351807 0.582425 0.472422 1.017208 0.356082 0.156052 0.741955 0.069415 1.865228 0.443182 1.678386 1.612970 0.140383 1.329706 1.377378 1.842230 1.016703 1.092840 1.598984 0.786321 0.783290 1.366382 0.596830 0.485853 1.108224 0.377773 0.289559 0.849099 0.105928 0.064781 0.612391 1.826534 1.809917 0.367089 1.631365 1.589731 0.161087 1.494515 1.386116 1.954189 1.308690 1.154519 1.812516 1.102100 0.991677 1.658122 0.947519 0.885543 1.444418 0.776188 0.774879 1.289586 0.549665 0.613017 1.134252 0.434792 0.421243 0.932319 0.317022 0.327169 0.888461 0.170057 0.216105 0.828813 0.045389 0.040689 0.641854 -0.002848 1.970444 0.582196 1.956226 1.971250 0.582269 1.831066 1.890158 0.453559 1.764288 1.808788 0.361533 1.808649 1.748165 0.376653 1.770438 1.636191 0.354208 1.584889 1.605114 0.332398 1.545608 1.688883 0.365394 1.682257 1.703243 0.329182 1.769538 1.613411 0.302562 1.742414 1.621620 0.356580 1.654026 1.680618 0.368698 1.670281 1.697881 0.359656 1.763776 1.758111 0.465066 1.805483 1.827186 0.605021 1.812596 1.903274 0.604865 1.922230 -0.025387 0.628349 0.089731 0.137752 0.798263 0.262482 0.259156 0.911079 0.287722 0.324018 0.998763 0.332415 0.380752 1.151737 0.535342 0.552776 1.370792 0.747285 0.745091 1.502875 0.865891 0.976216 1.650874 1.006357 1.107105 1.792005 1.242340 1.260107 -0.015443 1.406656 1.331304 0.096460 1.527143 1.636433 0.388059 1.680297 1.842977 0.617185 0.037555 0.206008 0.897751 0.308693 0.271454 1.030932 0.575683 0.609956 1.349186 0.734334 0.774877 1.617986 1.020318 1.284176 1.971094 1.299830 1.371580 0.127063 1.659891 1.733883 0.422404 1.877916 -0.124472 0.713110 0.209948 0.346821 1.126577 0.437048 0.588743 1.433036 0.899986 0.972766 1.733429 1.196252 1.323740 0.085920 1.616637 1.687489 0.520302 1.959177 0.046095 0.842588 0.272625 0.385751 1.254850 0.646533 0.726440 1.482746 1.020734 1.267838 0.057603 1.547154 1.615861 0.452541 1.870137 0.145167 0.875598 0.485371 0.508869 1.429584 0.748534 0.886224 1.688084 1.255595 1.472540 0.306419 1.766192 1.835107 0.642280 0.080214 0.375180 1.102720 0.833892 0.850373 1.766980 1.162157 1.224930 0.095082 1.586950 1.861328 0.755297 0.319553 0.352910 1.320696 0.619979 0.946006 1.774647 1.298293 1.517836 0.297710 1.952038 -0.038078 0.892992 0.328197 0.613535 1.363108 1.057662 1.211565 0.087446 1.604243 1.714707 0.729059 0.210757 0.460524 1.224990 0.710062 1.062423 1.876120 1.520283 1.510479 0.425166 -0.097643 0.255955 1.023768 0.690540 0.805852 1.690752 1.335687 1.483416 0.408233 1.893221 0.192221 1.161360 0.739517 0.925202 1.829775 1.365788 1.594776 0.509348 0.005048 0.242905 1.169014 0.817863 0.963813 1.857359 1.417487 1.653556 0.585583 0.202291 0.478261 1.384817 0.843148 1.158244 0.077605 1.760528 1.991459 0.880960 0.424295 0.668758 1.640376 1.279409 1.492356 0.437776 0.018676 0.359543 1.181398 0.777400 1.020046 -0.068615 1.601281 1.864426 0.711509 0.477287 0.630886 1.649929 1.163365 1.511936 0.565541 0.176581 0.401518 1.257992 0.849031 1.298324 0.235601 1.902596 0.017213 1.028733 0.666161 0.971699 0.006334 1.616499 1.921574 0.930376 0.386830 0.792955 1.753467 1.450876 1.722096 0.588511 0.189432 0.476076 1.468203 1.193520 1.470282 0.436184 0.079560 0.420631 1.447840 1.202654 1.449101 0.374792 0.038042 0.356591 1.332522 0.985149 1.364328 0.312406 -0.086898 0.270918 1.287974 0.989872 1.307478 0.328851 0.080347 0.298469 1.327442 0.964765 1.372970 0.416732 0.055396 0.471213 1.365312 1.077953 1.380339 0.386377 0.246182 0.422737 1.483895 1.070541 1.397778 0.560578 0.187438 0.566528 1.630790 1.149300 1.685334 0.666982 0.378533 0.731666 1.737806 1.577416 1.900835 0.865782 0.626581 0.985429 0.051655 1.713139 0.133657 1.176134 0.840423 1.212183 0.308483 0.044946 0.412679 1.430233 1.183002 1.552533 0.554928 0.335051 0.812955 1.836391 1.610505 1.988382 1.015880 0.765978 1.137783 0.269272 0.013962 0.441694 1.556548 1.304151 1.781860 0.811228 0.509326 1.001994 0.101493)
+	23.415771 #(0.000000 0.420972 1.627139 1.354101 1.822609 1.126260 0.765932 1.226925 0.489851 0.133351 0.658718 1.855649 1.533156 0.051246 1.244255 0.942130 1.505634 0.634183 0.345555 0.894394 0.018950 1.772187 0.334727 1.441725 1.195838 1.730772 0.868778 0.680680 1.150477 0.344425 0.172959 0.590283 1.809967 1.685703 0.133094 1.329250 1.160232 1.734353 0.857988 0.640051 1.298084 0.355543 0.134424 0.792758 1.886329 1.647892 0.230211 1.379655 1.190981 1.702805 0.939432 0.795897 1.222066 0.500808 0.402899 0.825396 0.083917 -0.009679 0.493074 1.665893 1.562887 0.084725 1.197793 1.087009 1.624492 0.734519 0.632604 1.128384 0.327245 0.234189 0.787731 -0.004819 1.903376 0.545482 1.720595 1.569821 0.201180 1.342058 1.234856 1.768831 0.928963 0.845541 1.349338 0.587136 0.474177 1.008870 0.363393 0.155223 0.738603 0.072769 1.864626 0.443380 1.680295 1.616526 0.138144 1.333844 1.382520 1.841567 1.018809 1.098101 1.605617 0.784894 0.778874 1.364245 0.590050 0.490550 1.116143 0.369407 0.295902 0.853202 0.107947 0.068317 0.613221 1.826654 1.807727 0.371075 1.629025 1.587498 0.162697 1.500653 1.381877 1.951021 1.308982 1.157899 1.810715 1.098355 1.003711 1.656890 0.941769 0.886901 1.441208 0.777453 0.773841 1.296841 0.543725 0.615942 1.136175 0.431077 0.426269 0.927540 0.316302 0.324334 0.892744 0.164214 0.212792 0.830178 0.044289 0.042589 0.633813 0.000969 1.977937 0.583541 1.949451 1.966100 0.581308 1.826111 1.888961 0.450289 1.757808 1.814797 0.363397 1.811587 1.750630 0.375943 1.770221 1.630064 0.350652 1.574577 1.602901 0.341519 1.545497 1.688317 0.369148 1.689845 1.706237 0.327468 1.779665 1.612007 0.299262 1.744886 1.619519 0.359133 1.648346 1.678634 0.360387 1.668135 1.687260 0.347375 1.767030 1.758428 0.466550 1.800917 1.829812 0.605250 1.811868 1.909595 0.598558 1.922999 -0.027654 0.625937 0.087763 0.135560 0.797047 0.258814 0.263199 0.910225 0.283815 0.321213 0.993695 0.328825 0.376193 1.153774 0.532433 0.549527 1.365514 0.751632 0.739810 1.501215 0.875524 0.978132 1.655105 1.008558 1.112094 1.804824 1.236625 1.254985 -0.017817 1.405616 1.326990 0.093587 1.523731 1.633977 0.379838 1.675374 1.841782 0.610497 0.037534 0.209449 0.895228 0.310571 0.268628 1.028138 0.586364 0.611623 1.346884 0.738484 0.777326 1.620457 1.022095 1.291352 1.973319 1.285772 1.372711 0.120413 1.666847 1.732519 0.427302 1.873456 -0.120568 0.706805 0.212927 0.352427 1.133558 0.431370 0.583366 1.435618 0.907174 0.969499 1.733971 1.203253 1.321888 0.082557 1.615212 1.680389 0.523879 1.962220 0.053732 0.844649 0.272909 0.393299 1.252941 0.644223 0.719664 1.480861 1.030704 1.265734 0.047147 1.549762 1.608049 0.460856 1.870276 0.146004 0.867237 0.490927 0.510046 1.433483 0.746249 0.889451 1.681733 1.253682 1.471945 0.308717 1.774109 1.825193 0.636255 0.078274 0.378641 1.104822 0.843046 0.850566 1.768081 1.165185 1.223144 0.098293 1.585143 1.870402 0.763420 0.320293 0.349074 1.324887 0.604401 0.950328 1.776561 1.299158 1.515080 0.306026 1.948557 -0.032017 0.889992 0.321810 0.616996 1.364315 1.058122 1.210272 0.079647 1.609813 1.715656 0.732506 0.211699 0.465878 1.229742 0.712690 1.064777 1.875316 1.521786 1.506735 0.421975 -0.094779 0.260127 1.015647 0.688882 0.807993 1.695998 1.338444 1.483831 0.407174 1.893530 0.187998 1.166463 0.737897 0.931690 1.828367 1.366869 1.591217 0.513283 0.002888 0.236196 1.171683 0.814726 0.967542 1.855513 1.416050 1.649388 0.581253 0.203339 0.472687 1.382509 0.841481 1.164235 0.086792 1.757164 1.990615 0.873808 0.423601 0.668423 1.642567 1.279971 1.495332 0.447265 0.008141 0.363001 1.186719 0.785619 1.022890 -0.072894 1.604411 1.861784 0.701510 0.469201 0.626626 1.646558 1.159245 1.510579 0.571495 0.173708 0.396747 1.250996 0.849889 1.296361 0.233260 1.912936 0.013994 1.019998 0.658258 0.964505 0.009224 1.607370 1.913937 0.933096 0.382472 0.793360 1.750507 1.447606 1.724624 0.590859 0.197451 0.480188 1.472946 1.189761 1.473590 0.445293 0.076345 0.421948 1.449274 1.215007 1.441696 0.368990 0.034305 0.348862 1.338055 0.977946 1.354469 0.306368 -0.097466 0.277509 1.283023 0.983090 1.308471 0.314454 0.080043 0.297430 1.330621 0.959292 1.379645 0.420083 0.065740 0.469675 1.358281 1.080776 1.380908 0.388623 0.246089 0.418198 1.477919 1.070119 1.403491 0.555913 0.197244 0.569914 1.638518 1.152165 1.685219 0.671138 0.382287 0.734209 1.745424 1.589750 1.901323 0.869840 0.630448 0.983800 0.050064 1.709590 0.137256 1.183118 0.835723 1.211884 0.303631 0.032261 0.397028 1.431432 1.184321 1.557119 0.546926 0.341133 0.810331 1.836671 1.615299 1.984480 1.022869 0.770079 1.146312 0.268820 0.024024 0.443575 1.553100 1.313488 1.780883 0.818958 0.508729 1.001864 0.103635)
 	)
 
 ;;; 1024 all -------------------------------------------------------------------------------- (32)
 (vector 1024 54.490282136658 #r(0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0)
 
        ;; from (try-all :all 1024 1025 0.0030465754082342 1.0966230312279) = 39.6408 -- starting point for next
-	33.374473 #(0.000000 0.252466 0.588951 0.993527 1.357313 1.683734 0.069809 0.450439 0.797448 1.186593 1.578272 1.940345 0.307053 0.750457 1.055380 1.462831 1.817883 0.237479 0.537067 0.937575 1.345387 1.754717 0.087929 0.559072 0.909744 1.309407 1.642019 0.101091 0.475619 0.872339 1.284410 1.742673 0.203121 0.590834 1.015458 1.386384 1.861592 0.250991 0.617588 1.087952 1.502288 1.958251 0.358349 0.833894 1.266192 1.707184 0.106355 0.586042 1.044908 1.429192 1.903768 0.324280 0.784739 1.272123 1.718895 0.124307 0.583814 1.047738 1.449153 1.935335 0.423671 0.902671 1.334661 1.850264 0.329540 0.856853 1.269574 1.748920 0.252528 0.680725 1.219132 1.716699 0.175050 0.633885 1.168238 1.644609 0.139639 0.621115 1.085185 1.605137 0.102611 0.579483 1.120346 1.650249 0.154949 0.714900 1.195205 1.701851 0.280014 0.782977 1.313733 1.813976 0.293596 0.850057 1.368487 1.911546 0.442371 0.978381 1.488296 0.047014 0.605437 1.168355 1.699786 0.264864 0.808435 1.331553 1.849562 0.431369 0.985127 1.556109 0.117837 0.630352 1.255885 1.824281 0.392991 0.967598 1.500456 0.124772 0.729848 1.269485 1.843754 0.407420 1.046501 1.579408 0.181940 0.806117 1.386254 0.001009 0.563805 1.190016 1.801496 0.390948 0.992792 1.614455 0.210258 0.781394 1.383257 0.000666 0.602470 1.235233 1.863100 0.531303 1.131585 1.743010 0.420996 1.020656 1.623868 0.265165 0.904942 1.532392 0.166093 0.866254 1.489209 0.133622 0.775195 1.393642 0.035938 0.663395 1.358225 -0.031248 0.674767 1.345484 0.011038 0.726890 1.359966 0.012592 0.666536 1.355458 -0.004366 0.648071 1.362053 0.015012 0.678133 1.414541 0.079788 0.791559 1.487446 0.156449 0.840897 1.538269 0.215586 0.944875 1.656501 0.337296 1.056987 1.748917 0.481011 1.222798 1.949397 0.643598 1.334666 0.012773 0.756898 1.495281 0.233846 0.987847 1.681320 0.445510 1.147284 1.880454 0.550973 1.299839 0.096454 0.834160 1.602645 0.329204 1.033491 1.822199 0.555160 1.342200 0.084319 0.791481 1.559457 0.369205 1.109797 1.897967 0.644861 1.408557 0.166439 0.927185 1.747959 0.474274 1.322629 0.055063 0.852456 1.629387 0.426864 1.256914 0.032615 0.797766 1.564512 0.350911 1.149497 -0.000040 0.798696 1.562186 0.396375 1.189875 -0.018096 0.838570 1.632349 0.458136 1.274671 0.059254 0.914741 1.734535 0.560451 1.391448 0.203824 1.054809 1.896371 0.705797 1.574147 0.418484 1.214141 0.028485 0.895706 1.790344 0.623050 1.493771 0.320252 1.176177 0.050029 0.913211 1.795700 0.666014 1.474707 0.328339 1.193655 0.074210 0.979728 1.814943 0.670174 1.557795 0.436269 1.308677 0.222750 1.112829 0.008125 0.850193 1.752643 0.663492 1.575371 0.455015 1.361742 0.280736 1.149516 0.049087 0.929854 1.815964 0.737606 1.707892 0.641655 1.518614 0.405387 1.338935 0.314296 1.225580 0.140607 1.081337 -0.017239 0.936324 1.857449 0.822615 1.721300 0.673418 1.628566 0.549339 1.480517 0.473833 1.439096 0.368510 1.320631 0.264193 1.239814 0.177843 1.137112 0.130531 1.073537 0.042883 0.987981 -0.004279 0.936009 1.888189 0.930189 1.891869 0.820811 1.834827 0.887039 1.824376 0.747815 1.790439 0.780503 1.796779 0.759219 1.766971 0.797655 1.784554 0.745936 1.771373 0.792407 1.786375 0.804589 1.803550 0.837418 1.866094 0.878964 1.883068 0.919516 -0.015185 0.950852 0.031346 1.056039 0.072641 1.095935 0.112880 1.148861 0.179066 1.266345 0.274163 1.349332 0.375026 1.420407 0.470055 1.600747 0.585724 1.641289 0.778546 1.782299 0.821719 1.891814 0.973740 0.056436 1.100293 0.188196 1.266716 0.326930 1.426317 0.523355 1.597494 0.675246 1.710775 0.855617 1.948453 1.034108 0.171254 1.253350 0.339035 1.456884 0.495692 1.601468 0.741390 1.844124 0.978634 0.069362 1.190306 0.312916 1.359275 0.532374 1.674891 0.805593 1.907279 1.045394 0.152007 1.297408 0.432266 1.599082 0.714594 1.832747 1.012497 0.155234 1.247584 0.410225 1.574039 0.780688 1.902527 1.062189 0.220275 1.355578 0.497978 1.677196 0.830984 0.009602 1.165929 0.314143 1.493130 0.653284 1.857571 1.020668 0.222423 1.438209 0.581964 1.752997 0.967293 0.121829 1.301778 0.555368 1.729424 0.920178 0.112029 1.344983 0.552127 1.746200 0.932133 0.121046 1.387103 0.613592 1.782747 1.017822 0.226370 1.467755 0.683561 1.907207 1.122982 0.357556 1.639460 0.871552 0.063413 1.293194 0.553668 1.778829 1.007632 0.273725 1.513322 0.761325 0.030734 1.275232 0.487423 1.728311 1.015629 0.263344 1.522299 0.799410 0.044265 1.304514 0.617183 1.877877 1.149672 0.431853 1.677004 1.007028 0.302211 1.550471 0.830712 0.171703 1.448480 0.698486 -0.031127 1.271404 0.597706 1.861766 1.199953 0.516029 1.763915 1.104156 0.388173 1.701901 1.066694 0.321839 1.603390 0.959621 0.283658 1.584712 0.934566 0.271985 1.573608 0.915269 0.290696 1.570692 0.929882 0.269333 1.578798 0.968633 0.290489 1.619305 0.991513 0.312359 1.657482 0.998956 0.429983 1.756634 1.057784 0.418664 1.800624 1.183798 0.580987 1.922612 1.270752 0.656543 0.049978 1.402642 0.747715 0.172924 1.558081 0.969294 0.317219 1.680723 1.101146 0.471812 1.822804 1.290460 0.673288 0.054597 1.459594 0.889985 0.272866 1.707599 1.099319 0.539813 1.933112 1.350417 0.746491 0.168901 1.587604 1.012663 0.439717 1.848855 1.289046 0.699225 0.110900 1.617704 1.032004 0.486471 1.883481 1.347450 0.740815 0.273665 1.683814 1.143137 0.582919 0.025433 1.497822 0.920817 0.405635 1.885698 1.374658 0.807406 0.264005 1.731265 1.191426 0.696988 0.175518 1.604013 1.118868 0.624645 0.099225 1.558445 1.043940 0.564134 0.010522 1.534509 0.977597 0.494357 0.019653 1.520055 1.045952 0.505344 0.035488 1.536251 1.041325 0.583702 0.067507 1.579160 1.096009 0.648153 0.167694 1.664323 1.196255 0.745939 0.243575 1.794373 1.302872 0.854116 0.402215 1.917600 1.507649 0.988437 0.530059 0.093891 1.632161 1.231648 0.751898 0.319666 1.867074 1.434799 1.008544 0.585827 0.127128 1.632587 1.248019 0.782886 0.394903 1.983386 1.521085 1.181230 0.723256 0.284301 1.855881 1.414227 1.028625 0.624603 0.192084 1.817801 1.405052 0.998220 0.624346 0.196694 1.823334 1.364186 1.002850 0.636156 0.271164 1.867655 1.456035 1.107502 0.666593 0.368326 1.946509 1.537766 1.165530 0.809896 0.419009 0.110115 1.746698 1.350928 1.018055 0.608571 0.251616 1.901427 1.522807 1.168888 0.829662 0.505211 0.184783 1.828526 1.503308 1.150698 0.826375 0.428165 0.158649 1.807468 1.440860 1.131643 0.785520 0.447898 0.128873 1.860682 1.510820 1.223548 0.896640 0.557184 0.253717 1.926870 1.641384 1.338683 1.035590 0.712004 0.404139 0.112150 1.812688 1.574586 1.216207 0.941513 0.625042 0.408198 0.062380 1.810869 1.482062 1.240688 0.957365 0.680320 0.429796 0.154764 1.860026 1.599693 1.376641 1.071073 0.859627 0.552489 0.358909 0.051522 1.779345 1.502678 1.321934 1.021840 0.809020 0.564858 0.271454 0.099141 1.782086 1.583810 1.359029 1.096557 0.902358 0.692594 0.423964 0.183482 0.010493 1.741888 1.541983 1.375015 1.129819 0.921131 0.712282 0.503309 0.299387 0.066672 1.846788 1.740922 1.453873 1.287077 1.096208 0.901776 0.696344 0.505740 0.279658 0.141218 -0.009868 1.749203 1.586308 1.414178 1.263965 1.012233 0.925940 0.712089 0.554819 0.406768 0.214210 0.089079 1.971321 1.760810 1.619247 1.423122 1.307100 1.088608 0.965427 0.819180 0.676003 0.546765 0.433232 0.274525 0.162885 -0.018342 1.869887 1.712968 1.635401 1.471330 1.433087 1.199704 1.121027 0.996776 0.865997 0.721985 0.649519 0.503572 0.378030 0.306063 0.167812 0.043117 1.955954 1.877053 1.790219 1.660027 1.629588 1.503196 1.451102 1.397998 1.283286 1.173782 1.089892 1.019019 0.869773 0.834761 0.732093 0.747994 0.643643 0.523427 0.515735 0.445955 0.405429 0.221137 0.271772 0.178970 0.122432 0.013828 -0.003132 -0.001158 1.950035 1.860450 1.798152 1.772591 1.763536 1.729625 1.643982 1.610256 1.606010 1.590205 1.508785 1.532490 1.462457 1.451053 1.422444 1.446066 1.447988 1.386261 1.404128 1.414727 1.398914 1.364119 1.389560 1.352679 1.319320 1.338376 1.366863 1.375496 1.385684 1.385446 1.384425 1.413777 1.477028 1.430636 1.444983 1.474705 1.453343 1.468425 1.512139 1.536733 1.569253 1.569297 1.665250 1.689514 1.720655 1.816152 1.816532 1.910481 1.890678 1.959987 -1.792426 0.053715 0.115329 0.166763 0.231814 0.310808 0.324074 0.430373 0.462911 0.495915 0.617237 0.670044 0.713502 0.786959 0.873729 0.946470 1.028984 1.046472 1.174623 1.308868 1.411019 1.454609 1.611193 1.668848 1.765214 1.860585 1.976181 0.035788 0.164142 0.247894 0.350093 0.473449 0.588072 0.735194 0.803520 0.961783 1.067895 1.217363 1.313938 1.443209 1.597599 1.675037 1.816330 1.965102 0.116284 0.203328 0.322221 0.450260 0.632704 0.767955 0.897425 1.061506 1.164967 1.371694 1.484400 1.640468 1.798663 -0.032025 0.162330 0.379793 0.505773 0.642450 0.845431 1.017724 1.216278 1.429899 1.565994 1.768428 1.940934 0.042255 0.296837 0.472048 0.648674 0.816029 1.058523 1.225825 1.353792 1.601152 1.737085 -0.028473 0.197707 0.373692 0.582653 0.817097 1.021485 1.251988 1.456630 1.644133 1.876522 0.142009 0.374211 0.577570 0.848737 1.089787 1.313869 1.567866 1.781059 -1.711473 0.200912 0.510980 0.713060 0.951010 1.155259 1.371244 1.698759 1.871132 0.184166 0.440877 0.692757 0.984187 1.190414 1.477138 1.754476 0.035944 0.316410 0.556995 0.803845 1.078376 1.363995 1.614641 1.912582 0.211128 0.450712 0.806827 1.121281 1.408410 1.704293 0.008976 0.318343 0.616467 0.933106 1.209105 1.543596 1.851741 0.136561 0.499220 0.746641 1.072967 1.396431 1.652410 -0.009945 0.328852 0.712515 1.027614 1.349165 1.697419 0.088151)
+	33.340007 #(0.000000 0.252269 0.590828 0.994887 1.359048 1.684721 0.070907 0.453530 0.796038 1.189302 1.577908 1.940576 0.306581 0.749523 1.053967 1.461358 1.818593 0.238534 0.533583 0.938628 1.342005 1.756655 0.086928 0.555636 0.907200 1.311910 1.643548 0.097011 0.474305 0.870710 1.280393 1.740808 0.203215 0.591686 1.017425 1.386448 1.858864 0.251137 0.617732 1.088895 1.504421 1.957386 0.360246 0.832606 1.263770 1.707814 0.108365 0.583073 1.043103 1.433282 1.903478 0.328336 0.784264 1.270729 1.720181 0.125593 0.585027 1.047740 1.448506 1.933572 0.421468 0.903408 1.335030 1.850492 0.329729 0.858342 1.270650 1.749237 0.251328 0.683221 1.217944 1.718425 0.174340 0.635471 1.165141 1.642852 0.139152 0.620485 1.087487 1.605562 0.097647 0.579288 1.121704 1.650257 0.153564 0.714584 1.193636 1.701640 0.281663 0.781138 1.316342 1.817766 0.291134 0.849276 1.369003 1.911519 0.440699 0.975960 1.488826 0.045864 0.603906 1.167532 1.701920 0.261869 0.808426 1.333965 1.850481 0.429421 0.989431 1.556608 0.118328 0.632837 1.255433 1.824929 0.392971 0.969539 1.501379 0.124987 0.731940 1.271495 1.842455 0.405279 1.046487 1.579816 0.181520 0.808607 1.386996 0.003149 0.564629 1.189594 1.801263 0.390629 0.990431 1.614889 0.210388 0.780982 1.381269 0.002784 0.603793 1.234714 1.862957 0.533885 1.130508 1.745877 0.421420 1.018908 1.622124 0.267271 0.904765 1.531462 0.167717 0.864598 1.486275 0.136538 0.777102 1.391173 0.035750 0.665736 1.357747 -0.028815 0.675066 1.344746 0.013621 0.728672 1.360861 0.014282 0.669625 1.352910 -0.002905 0.650591 1.359740 0.014528 0.678157 1.413571 0.082010 0.791370 1.490294 0.156745 0.841897 1.537067 0.216174 0.944263 1.655383 0.335541 1.056073 1.750407 0.481090 1.229828 1.955901 0.647017 1.334982 0.013096 0.753096 1.493488 0.235071 0.989592 1.679687 0.444571 1.145720 1.878198 0.548671 1.300854 0.095103 0.836488 1.600503 0.328534 1.032816 1.819975 0.557109 1.341511 0.080725 0.788811 1.561199 0.370076 1.109912 1.899485 0.647338 1.410009 0.165243 0.928376 1.745535 0.478727 1.325981 0.052931 0.852469 1.627999 0.429483 1.254064 0.032335 0.795741 1.564126 0.348410 1.150200 0.001820 0.797946 1.564815 0.396072 1.187711 -0.014956 0.838149 1.632563 0.456999 1.271698 0.058685 0.915152 1.735195 0.558649 1.391374 0.204142 1.057193 1.895610 0.709067 1.572992 0.418080 1.215210 0.029279 0.897296 1.791314 0.624777 1.494417 0.318085 1.173817 0.047917 0.911985 1.792834 0.665067 1.473924 0.330581 1.194235 0.074467 0.981260 1.814712 0.673439 1.557491 0.439810 1.309718 0.222488 1.115578 0.007239 0.846351 1.747727 0.664079 1.573411 0.454231 1.360493 0.277992 1.147972 0.044760 0.928949 1.818264 0.737763 1.706580 0.640435 1.520842 0.410166 1.340467 0.315589 1.223574 0.142561 1.081772 -0.018666 0.936014 1.855865 0.821129 1.719805 0.673297 1.627617 0.547512 1.477344 0.472770 1.439684 0.367720 1.320421 0.260885 1.238593 0.181404 1.138221 0.130048 1.073178 0.042071 0.988120 -0.004514 0.932671 1.888952 0.928446 1.893601 0.824317 1.833600 0.884473 1.823398 0.748957 1.790801 0.780961 1.798257 0.757647 1.770781 0.797482 1.785481 0.741730 1.770474 0.794163 1.785589 0.804798 1.808651 0.838722 1.868473 0.877932 1.880911 0.918231 -0.014253 0.956604 0.030035 1.058149 0.072729 1.092658 0.112226 1.146721 0.178297 1.266810 0.273869 1.348472 0.376143 1.419893 0.468973 1.601752 0.589799 1.641091 0.774589 1.783918 0.819593 1.892672 0.972202 0.057976 1.104276 0.187165 1.264627 0.324238 1.424586 0.523836 1.598567 0.674090 1.710471 0.856792 1.948985 1.035222 0.174501 1.252778 0.336429 1.455775 0.496914 1.599007 0.740011 1.842844 0.979025 0.068802 1.192073 0.312229 1.357986 0.528716 1.674107 0.803971 1.907933 1.043283 0.152665 1.297317 0.431787 1.600612 0.711420 1.828071 1.009519 0.151515 1.248902 0.411205 1.575668 0.779076 1.901574 1.064056 0.219728 1.354374 0.497491 1.678337 0.831523 0.008628 1.166472 0.313872 1.495293 0.655442 1.855274 1.021811 0.220984 1.436884 0.582010 1.751513 0.964333 0.118612 1.298395 0.558553 1.731785 0.918721 0.111603 1.346175 0.553931 1.746095 0.934546 0.121479 1.392563 0.614916 1.780041 1.018274 0.224983 1.465968 0.685503 1.907317 1.124026 0.360855 1.641567 0.874696 0.062191 1.290422 0.553651 1.778275 1.007949 0.272518 1.511215 0.762412 0.029044 1.273777 0.484653 1.727630 1.017026 0.263777 1.520403 0.797751 0.043030 1.305475 0.613503 1.881943 1.151373 0.430416 1.679656 1.005985 0.303225 1.551000 0.829279 0.168526 1.451352 0.700222 -0.029547 1.272285 0.599893 1.861684 1.197829 0.516750 1.767686 1.101025 0.388135 1.703473 1.065271 0.323477 1.604197 0.960130 0.281789 1.581409 0.933246 0.273577 1.573406 0.913462 0.290612 1.570381 0.931821 0.267802 1.579541 0.966804 0.292938 1.619856 0.993340 0.309470 1.657166 1.000050 0.429762 1.755838 1.058027 0.416953 1.800672 1.183880 0.581858 1.922587 1.270163 0.657427 0.052208 1.404254 0.744124 0.171435 1.554378 0.969529 0.316283 1.683259 1.098306 0.473515 1.825000 1.290695 0.671100 0.060471 1.462270 0.895317 0.275425 1.707012 1.097391 0.541000 1.935864 1.347378 0.744565 0.166661 1.586179 1.012344 0.440924 1.848288 1.291090 0.702026 0.108396 1.615165 1.026409 0.486835 1.882944 1.345344 0.740036 0.271378 1.682166 1.142431 0.583086 0.025848 1.499539 0.922278 0.407328 1.883486 1.377596 0.805432 0.262056 1.730217 1.189156 0.698109 0.175581 1.605225 1.117070 0.625259 0.096284 1.558728 1.046545 0.565363 0.006896 1.532998 0.977232 0.493874 0.019923 1.521982 1.044725 0.504392 0.032980 1.535315 1.040156 0.584838 0.067366 1.579334 1.096886 0.648588 0.166277 1.660696 1.196777 0.745800 0.244448 1.792685 1.306736 0.852386 0.403378 1.914699 1.507026 0.985958 0.530153 0.096414 1.629670 1.232632 0.752292 0.321154 1.869873 1.434329 1.006314 0.587221 0.126427 1.633322 1.250405 0.781526 0.394867 1.983608 1.520336 1.180732 0.723309 0.287019 1.857147 1.412415 1.029040 0.623603 0.193448 1.815361 1.405135 0.996541 0.627145 0.198255 1.824503 1.366660 1.005067 0.636464 0.268203 1.866235 1.459138 1.105165 0.667080 0.366091 1.949219 1.537137 1.165333 0.814673 0.422816 0.111016 1.750975 1.348291 1.019137 0.606129 0.251319 1.902811 1.525082 1.169236 0.827850 0.505272 0.183608 1.829362 1.501991 1.149161 0.821853 0.430362 0.160486 1.805123 1.439374 1.131145 0.781555 0.447532 0.125873 1.862472 1.510116 1.222183 0.897453 0.553805 0.255014 1.923724 1.643455 1.338025 1.035941 0.711845 0.404046 0.112579 1.812346 1.574519 1.218776 0.940653 0.625152 0.408253 0.061333 1.811142 1.480483 1.240166 0.958281 0.681899 0.431645 0.152108 1.857113 1.603531 1.374452 1.070754 0.862840 0.554212 0.357560 0.051735 1.783132 1.501842 1.324038 1.022839 0.808375 0.564292 0.269808 0.099947 1.780168 1.580476 1.360809 1.095592 0.904490 0.694788 0.422065 0.181952 0.007255 1.740293 1.541763 1.378118 1.130775 0.922257 0.714793 0.502430 0.302269 0.063718 1.849896 1.739107 1.451550 1.281882 1.101827 0.898773 0.698850 0.504087 0.285002 0.139429 -0.009542 1.748450 1.587717 1.418469 1.261180 1.014459 0.927762 0.709263 0.555124 0.406294 0.215730 0.086721 1.967080 1.762864 1.620390 1.423142 1.307319 1.089239 0.966567 0.817947 0.676255 0.549794 0.433950 0.271882 0.165900 -0.016930 1.871907 1.711612 1.635342 1.472897 1.432211 1.199146 1.125404 0.997980 0.869030 0.723533 0.649389 0.501165 0.379779 0.303965 0.167299 0.043634 1.954030 1.878032 1.787485 1.658925 1.629449 1.505132 1.446404 1.398647 1.281307 1.172894 1.087686 1.017708 0.871345 0.831376 0.733586 0.746175 0.641963 0.526676 0.513717 0.447134 0.406051 0.223368 0.270628 0.175327 0.125934 0.011712 -0.000851 -0.004141 1.949804 1.858782 1.795380 1.773772 1.765390 1.725738 1.644068 1.608178 1.601848 1.590570 1.510185 1.534885 1.457274 1.449675 1.423890 1.447991 1.450821 1.384697 1.403240 1.413473 1.397653 1.365481 1.389579 1.350423 1.317991 1.341171 1.369367 1.376766 1.385962 1.388396 1.381704 1.416508 1.475869 1.430329 1.443510 1.472963 1.450539 1.470046 1.510735 1.536932 1.570484 1.569326 1.662659 1.691506 1.719949 1.813440 1.816308 1.911226 1.887360 1.961530 -1.792537 0.053661 0.115257 0.166481 0.233911 0.310188 0.325068 0.431757 0.460230 0.497292 0.617591 0.669160 0.713580 0.784354 0.875202 0.944862 1.026641 1.045786 1.173338 1.308607 1.409905 1.450957 1.609941 1.669019 1.764640 1.859890 1.980033 0.037526 0.166611 0.250009 0.350054 0.469000 0.588648 0.736584 0.804951 0.959125 1.068863 1.219010 1.314442 1.444976 1.599024 1.675532 1.812178 1.964033 0.114219 0.204096 0.320624 0.448877 0.632063 0.767395 0.893517 1.060402 1.163237 1.370645 1.482403 1.639743 1.797877 -0.032505 0.164252 0.381485 0.507256 0.639171 0.846588 1.017154 1.215084 1.430076 1.565557 1.769839 1.944446 0.039879 0.299829 0.471992 0.648375 0.816027 1.061196 1.227314 1.352891 1.601369 1.737855 -0.030116 0.193774 0.373048 0.579901 0.821618 1.021072 1.251676 1.456289 1.642276 1.875895 0.139645 0.373363 0.580016 0.844791 1.093492 1.314337 1.565715 1.784411 -1.711801 0.199266 0.510714 0.713847 0.947353 1.153945 1.372542 1.701941 1.871791 0.184883 0.442933 0.691746 0.983323 1.192165 1.480252 1.752492 0.030706 0.313650 0.557482 0.801654 1.082848 1.361390 1.610297 1.911802 0.209797 0.451108 0.808958 1.120683 1.407421 1.708141 0.012298 0.315962 0.614414 0.934810 1.209210 1.544697 1.851261 0.138324 0.500159 0.747587 1.073170 1.395149 1.654596 -0.007332 0.329201 0.713742 1.030039 1.350535 1.698612 0.089036)
        )
 
 ;;; 2048 all -------------------------------------------------------------------------------- (45.254)
 (vector 2048 89.570060996356 #r(0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 1 0)
 
        ;; from (try-all :all 2048 2049 1.0476749041086 0.34832901677121) = 55.7655 start for next
-	49.845955 #(0.000000 0.433943 1.591413 1.328420 1.791489 0.936749 0.643138 1.049692 0.275950 0.021793 0.425411 1.634140 1.319628 1.822009 0.940566 0.686410 1.165533 0.265780 0.033852 0.534212 1.585346 1.366796 1.848004 0.983818 0.772703 1.211578 0.308132 0.080027 0.590798 1.696510 1.455348 1.893141 1.053975 0.856911 1.266833 0.408998 0.218886 0.667797 1.769849 1.530204 0.019725 1.152880 0.893639 1.397718 0.523733 0.291895 0.796715 1.876169 1.693213 0.121507 1.243697 1.023498 1.507644 0.626087 0.408060 0.873404 0.043118 1.769718 0.262856 1.420354 1.171453 1.613317 0.831154 0.563037 1.040910 0.192328 -0.001932 0.429109 1.585467 1.375267 1.781372 1.002093 0.719912 1.226963 0.367097 0.110275 0.653639 1.802519 1.550869 0.055224 1.168404 0.970047 1.462693 0.586034 0.422003 0.868134 1.976605 1.791789 0.218289 1.421996 1.232261 1.685119 0.825128 0.626512 1.109710 0.222335 0.051025 0.532628 1.652417 1.492192 1.937838 1.090858 0.855285 1.367406 0.506117 0.309542 0.834452 1.952235 1.704632 0.243508 1.354369 1.176803 1.689577 0.786638 0.597284 1.105136 0.224504 0.068648 0.498707 1.692745 1.535662 0.004418 1.120167 0.926036 1.420613 0.582657 0.371012 0.883298 0.023591 1.850236 0.349119 1.493885 1.314402 1.781064 0.901699 0.775096 1.231896 0.352688 0.160642 0.725219 1.837676 1.644772 0.154288 1.295051 1.134298 1.588065 0.776742 0.609763 1.034969 0.201615 0.037266 0.548326 1.689380 1.473271 0.010231 1.166774 0.976998 1.475231 0.635715 0.468379 0.918536 0.119521 1.940496 0.469122 1.615730 1.416451 1.913197 1.104141 0.911530 1.446039 0.570379 0.415203 0.907324 0.066253 1.884890 0.359940 1.520358 1.400884 1.870321 1.087506 0.907013 1.343194 0.570201 0.333761 0.839797 0.053271 1.923579 0.423048 1.571906 1.380418 1.894924 1.053721 0.899660 1.384164 0.531885 0.389474 0.913948 0.054650 1.946334 0.431797 1.526332 1.395376 1.924035 1.103087 0.930884 1.421455 0.615219 0.444917 0.956627 0.096326 0.022641 0.491119 1.636894 1.492642 0.033903 1.187676 1.058891 1.573502 0.741052 0.524795 1.092969 0.284275 0.104762 0.631479 1.816039 1.631225 0.177392 1.332923 1.152467 1.743942 0.870941 0.721667 1.253960 0.407908 0.254123 0.726375 1.964760 1.807940 0.357551 1.543067 1.337885 1.843868 1.061739 0.911016 1.416403 0.609319 0.476368 0.992444 0.181599 0.053062 0.514178 1.739451 1.606894 0.128668 1.312114 1.154407 1.692441 0.886016 0.689659 1.249618 0.486106 0.278339 0.838839 -0.014708 1.877284 0.419739 1.583560 1.438816 1.965447 1.127816 1.047538 1.568060 0.742919 0.594065 1.104127 0.309001 0.184872 0.693892 1.867778 1.749395 0.239796 1.468212 1.320797 1.885663 1.041806 0.932286 1.486878 0.686533 0.534036 1.021821 0.248000 0.134179 0.675503 1.869376 1.707416 0.278975 1.421413 1.324147 1.885314 1.053326 0.926634 1.460661 0.682124 0.569039 1.067043 0.292618 0.178870 0.702748 1.906590 1.761916 0.296651 1.503830 1.407361 1.895900 1.082498 1.017078 1.576302 0.723155 0.625656 1.181042 0.387617 0.226194 0.770397 -0.012033 1.888648 0.443023 1.611994 1.447231 0.077332 1.317109 1.138733 1.694962 0.876175 0.758614 1.305937 0.554243 0.380452 0.958264 0.150053 0.052312 0.591617 1.786010 1.679240 0.243598 1.420964 1.313390 1.863905 1.124682 1.002478 1.513335 0.790255 0.644763 1.184425 0.408081 0.277719 0.847744 0.140868 1.942588 0.511237 1.750552 1.585662 0.128942 1.339768 1.259931 1.816421 1.041111 0.961602 1.489993 0.713970 0.633568 1.155315 0.395777 0.308204 0.837416 0.085121 1.959978 0.464093 1.772955 1.653130 0.148711 1.405125 1.316239 1.913004 1.136339 1.005236 1.561250 0.786348 0.684578 1.248043 0.476790 0.346798 0.896202 0.157805 0.035876 0.613535 1.830832 1.715281 0.342194 1.547028 1.416832 -0.027146 1.247560 1.110646 1.704788 0.927596 0.825272 1.430797 0.655702 0.511799 1.149659 0.369805 0.233963 0.836010 0.037457 1.954065 0.494695 1.779785 1.675590 0.267270 1.489948 1.374886 1.956445 1.177469 1.069995 1.644942 0.885856 0.761694 1.357608 0.609293 0.511180 1.067704 0.369158 0.256824 0.815480 0.078002 1.982435 0.555312 1.803958 1.686277 0.240372 1.498144 1.464126 0.036185 1.270701 1.200568 1.791289 0.997173 0.933746 1.499861 0.782739 0.634310 1.222943 0.504243 0.390877 1.018275 0.252842 0.138228 0.771016 -0.001193 1.962971 0.508814 1.744860 1.654285 0.238486 1.452934 1.422950 0.003954 1.242942 1.190937 1.781747 1.034270 0.954469 1.521207 0.768872 0.725770 1.279738 0.568210 0.470207 1.075848 0.320356 0.216249 0.879461 0.093907 0.035668 0.578144 1.859087 1.779154 0.336822 1.630592 1.562204 0.153304 1.390761 1.339652 1.955535 1.195129 1.107155 1.724850 0.932461 0.942187 1.477571 0.774598 0.700500 1.294624 0.556494 0.469850 1.080390 0.369449 0.238781 0.870797 0.121774 0.035477 0.650118 1.951557 1.851579 0.455191 1.690204 1.681933 0.268637 1.528191 1.471115 0.088559 1.328216 1.265994 1.862013 1.127052 1.070655 1.691693 0.946519 0.916307 1.545452 0.799481 0.753181 1.312713 0.655091 0.527866 1.175646 0.457381 0.394597 0.975693 0.212402 0.165295 0.773126 0.037472 -0.022339 0.638796 1.890960 1.831325 0.461489 1.753342 1.695699 0.322399 1.546550 1.505716 0.102077 1.365659 1.345283 1.942836 1.219861 1.209639 1.781994 1.033361 1.009987 1.679006 0.906416 0.881687 1.488315 0.753960 0.733364 1.306282 0.615668 0.555710 1.146399 0.437872 0.397664 1.055050 0.334334 0.305548 0.917467 0.194708 0.143923 0.756063 0.044803 -0.028943 0.653418 1.907732 1.881595 0.485435 1.790450 1.721252 0.367828 1.611696 1.574004 0.219961 1.489456 1.460118 0.079107 1.379453 1.318730 1.977600 1.251564 1.217355 1.883159 1.140937 1.126255 1.747085 1.005545 0.975839 1.650876 0.938866 0.896621 1.483603 0.840386 0.807872 1.382574 0.671026 0.691594 1.291629 0.591519 0.548567 1.145133 0.531959 0.444979 1.053663 0.380626 0.379906 0.980893 0.286229 0.258164 0.890834 0.178866 0.155936 0.802136 0.120026 0.056962 0.703274 -0.029356 0.000838 0.631113 1.929704 1.907420 0.526791 1.821589 1.824460 0.416683 1.742786 1.769814 0.333855 1.680182 1.646164 0.304090 1.608955 1.584989 0.244353 1.534363 1.493168 0.147814 1.452756 1.370865 0.080380 1.396389 1.343875 -0.007053 1.310718 1.309595 1.927482 1.226577 1.249681 1.869423 1.183060 1.201383 1.821585 1.155591 1.133724 1.743161 1.061627 1.023040 1.757087 1.048112 1.008008 1.663881 1.020954 0.950947 1.611647 0.950677 0.899177 1.565610 0.883348 0.912380 1.557519 0.885068 0.878167 1.499708 0.883098 0.786969 1.463682 0.816998 0.808453 1.419212 0.744878 0.760205 1.420988 0.721474 0.725549 1.404474 0.734035 0.674657 1.410031 0.644705 0.657686 1.359538 0.685487 0.655005 1.258610 0.660499 0.620179 1.303407 0.607517 0.597099 1.271849 0.609939 0.610896 1.253814 0.598268 0.598920 1.272853 0.587979 0.605127 1.241074 0.565630 0.574783 1.248848 0.543704 0.577848 1.249082 0.550181 0.575879 1.245498 0.567937 0.592256 1.303925 0.590572 0.601364 1.284135 0.574235 0.621163 1.269543 0.557140 0.622646 1.242819 0.595759 0.644162 1.290368 0.615293 0.678142 1.282172 0.663954 0.658120 1.324804 0.691399 0.670854 1.346991 0.690601 0.751730 1.375226 0.766524 0.741600 1.417565 0.787073 0.771837 1.422613 0.799950 0.794934 1.492575 0.840888 0.828325 1.512529 0.910769 0.872013 1.539911 0.886707 0.904451 1.636408 0.956158 0.959277 1.677218 0.982061 1.017844 1.679034 0.995318 1.099462 1.785019 1.104379 1.071977 1.794082 1.143598 1.162963 1.814707 1.227208 1.204386 1.926662 1.299691 1.256663 -0.027676 1.330128 1.378369 0.024846 1.454138 1.419532 0.132734 1.489251 1.513822 0.181317 1.554978 1.575708 0.270439 1.592450 1.651923 0.302695 1.683207 1.702332 0.425443 1.764996 1.809779 0.487989 1.818894 1.860776 0.534072 1.948048 -0.117917 0.669125 0.029366 0.067641 0.777359 0.131597 0.195439 0.871666 0.218800 0.252950 0.986733 0.300319 0.392738 1.030174 0.444918 0.430168 1.154900 0.558231 0.539841 1.272010 0.636085 0.679350 1.364453 0.745483 0.792344 1.468902 0.822859 0.853577 1.596538 0.966430 0.971422 1.666372 1.077389 1.133677 1.846043 1.213316 1.205250 1.961891 1.302934 1.314148 0.084551 1.444925 1.474682 0.167418 1.571874 1.636296 0.361002 1.684980 1.728795 0.453062 1.814808 1.871399 0.543816 1.935529 1.982077 0.752029 0.070159 0.161303 0.826745 0.220893 0.302945 0.952063 0.361893 0.414055 1.123705 0.517831 0.536749 1.306544 0.653725 0.714329 1.457649 0.769320 0.872870 1.546032 0.968780 1.003128 1.727954 1.090038 1.222214 1.896447 1.282197 1.349396 0.034982 1.424008 1.441688 0.207836 1.625143 1.676511 0.341464 1.735419 1.841571 0.570764 1.947416 0.018364 0.695705 0.134421 0.147851 0.876009 0.268577 0.343019 1.097550 0.485090 0.520670 1.266650 0.678101 0.683595 1.424919 0.814090 0.929196 1.654440 1.066518 1.099020 1.808689 1.225464 1.260849 0.018099 1.420492 1.470799 0.225824 1.591234 1.648950 0.404022 1.779166 1.845819 0.625286 -0.011169 0.077241 0.792216 0.190241 0.286772 1.008904 0.436840 0.491348 1.219303 0.602451 0.675190 1.461006 0.847923 0.910586 1.631951 1.030369 1.128140 1.851857 1.267797 1.304394 0.058740 1.466025 1.529688 0.290485 1.686719 1.760421 0.467920 1.937753 -0.011020 0.737815 0.167568 0.210906 0.993525 0.365593 0.461007 1.180489 0.638743 0.680474 1.458743 0.846730 0.910685 1.698418 1.069878 1.181163 1.894946 1.333424 1.404153 0.150864 1.642397 1.679657 0.378888 1.813084 1.889625 0.640106 0.075024 0.173516 0.921176 0.270550 0.419972 1.130055 0.587194 0.641915 1.395081 0.837090 0.916836 1.687803 1.138876 1.205697 1.978702 1.393631 1.449613 0.150624 1.638460 1.714821 0.455533 1.878037 0.016796 0.707092 0.196561 0.199289 1.007468 0.417233 0.530584 1.301377 0.705720 0.801319 1.533908 0.954810 1.060213 1.861205 1.307107 1.375045 0.133317 1.533880 1.648075 0.422290 1.840853 1.958901 0.705923 0.116478 0.241457 1.001587 0.481975 0.498168 1.265432 0.734447 0.830060 1.562378 1.038893 1.136469 1.914847 1.325178 1.407312 0.209959 1.636418 1.725632 0.491108 1.935719 0.027189 0.782300 0.223307 0.383645 1.112364 0.565052 0.649041 1.459878 0.840324 0.971924 1.749944 1.212126 1.315123 0.088589 1.500436 1.626324 0.430430 1.824551 1.937039 0.731756 0.151958 0.287467 1.027510 0.528740 0.618823 1.354424 0.793343 0.982821 1.734834 1.163194 1.233193 0.033978 1.518205 1.589935 0.421456 1.835612 1.930263 0.693296 0.193430 0.292131 1.089579 0.524497 0.648057 1.417291 0.851210 1.004292 1.786407 1.219791 1.371189 0.136214 1.558605 1.702332 0.492149 1.944241 0.027162 0.828689 0.311839 0.432307 1.192312 0.646253 0.775670 1.534867 0.952424 1.148860 1.982022 1.386219 1.493904 0.235696 1.732718 1.908743 0.658997 0.104864 0.236481 1.059030 0.511306 0.605168 1.413570 0.866578 0.974298 1.804649 1.256063 1.390682 0.154987 1.625372 1.771765 0.556184 0.017397 0.097954 0.959813 0.385592 0.556110 1.327986 0.782477 0.933088 1.715658 1.225641 1.337378 0.126404 1.548644 1.736252 0.509805 0.048207 0.123175 0.899012 0.371714 0.572509 1.340281 0.819709 0.959604 1.769135 1.225210 1.354686 0.125022 1.578838 1.761863 0.591179 0.057323 0.173612 0.987171 0.433367 0.620214 1.386571 0.888296 1.023051 1.822141 1.274932 1.416642 0.246870 1.751719 1.843601 0.629438 0.152208 0.270767 1.102264 0.561661 0.759828 1.527600 1.028915 1.150707 1.945310 1.436155 1.588253 0.428426 1.861361 0.038032 0.834351 0.317212 0.471899 1.259204 0.771274 0.904850 1.707790 1.194584 1.356562 0.155522 1.643284 1.799242 0.592407 0.102070 0.277924 1.103657 0.552895 0.664708 1.509555 0.974428 1.217123 1.955055 1.476790 1.652740 0.414118 1.948583 0.145612 0.904620 0.434213 0.552852 1.403262 0.833130 1.004738 1.852052 1.331338 1.486748 0.312930 1.813173 0.001831 0.799230 0.290929 0.486184 1.322060 0.753425 0.936240 1.791387 1.270405 1.375053 0.216469 1.723820 1.919063 0.723099 0.282262 0.399543 1.214829 0.700407 0.887842 1.732858 1.230834 1.416811 0.185197 1.734205 1.897142 0.751130 0.213091 0.354978 1.195201 0.682483 0.827568 1.675872 1.205398 1.372960 0.222248 1.702899 1.891407 0.728329 0.261490 0.420686 1.252279 0.721408 0.895437 1.773310 1.241515 1.376861 0.269781 1.792848 1.926916 0.786743 0.285292 0.425899 1.332441 0.806760 0.988991 1.840783 1.333550 1.546589 0.374088 1.891372 0.030138 0.877057 0.425767 0.583997 1.375949 0.938571 1.073215 1.960878 1.424762 1.642947 0.490870 0.009505 0.173021 1.063786 0.552569 0.713979 1.609077 1.104316 1.265076 0.159704 1.626657 1.846264 0.624192 0.159742 0.403104 1.260554 0.731579 0.976922 1.782711 1.321943 1.480378 0.384956 1.860922 0.064216 0.877109 0.420108 0.592588 1.462552 0.998547 1.165001 0.050314 1.555285 1.736668 0.583066 0.116042 0.309668 1.207164 0.686950 0.903769 1.752613 1.287264 1.471408 0.313799 1.834097 0.069613 0.936359 0.413552 0.615365 1.465782 1.036690 1.211960 0.090150 1.578544 1.817884 0.624797 0.182004 0.398918 1.255118 0.802954 0.975569 1.877077 1.346197 1.565424 0.444467 1.911507 0.145446 1.014448 0.595215 0.765473 1.638360 1.164425 1.375808 0.202751 1.784777 -0.012906 0.838941 0.365267 0.585274 1.468987 1.018504 1.206943 0.041664 1.603890 1.804233 0.696883 0.248304 0.384080 1.306169 0.846967 1.023480 1.894991 1.460788 1.638474 0.535097 0.081660 0.285209 1.146934 0.706264 0.915860 1.800259 1.362304 1.532227 0.461449 1.958540 0.186429 1.029249 0.572024 0.826307 1.713557 1.245915 1.468385 0.306813 1.882260 0.139040 0.965888 0.509584 0.741054 1.595954 1.168612 1.396553 0.251514 1.802067 0.058842 0.901546 0.464406 0.671681 1.574543 1.103037 1.362172 0.225639 1.740025 0.010321 0.886176 0.436768 0.698309 1.578463 1.058024 1.333928 0.190892 1.767292 1.985010 0.884721 0.444105 0.692566 1.536775 1.146254 1.324204 0.209100 1.752774 -0.026092 0.928306 0.465835 0.693888 1.575969 1.113511 1.342865 0.238925 1.804263 0.042912 0.903335 0.511019 0.739556 1.624080 1.229305 1.392349 0.316989 1.872312 0.113636 0.982864 0.550319 0.771003 1.670385 1.282606 1.486766 0.422624 1.938255 0.195033 1.079951 0.634350 0.880409 1.802397 1.326166 1.608421 0.505591 0.126410 0.288022 1.233279 0.734983 0.978214 1.917650 1.529128 1.760668 0.628692 0.195637 0.428461 1.351882 0.917782 1.150312 0.058233 1.641199 1.887607 0.777198 0.339699 0.610260 1.480222 1.081458 1.335482 0.238294 1.813298 0.054699 0.977693 0.579695 0.811776 1.702175 1.231128 1.517417 0.426812 -0.011837 0.227902 1.209862 0.736547 1.041230 1.897149 1.493751 1.768281 0.653994 0.199048 0.483676 1.391699 0.991311 1.255625 0.152452 1.737372 1.993017 0.882934 0.444566 0.711791 1.630917 1.260419 1.477423 0.406792 -0.001262 0.270137 1.198892 0.720944 1.022024 1.954229 1.532459 1.775400 0.679332 0.312995 0.548599 1.448615 1.053061 1.383630 0.243904 1.839929 0.077058 1.028594 0.595772 0.872355 1.746025 1.382826 1.654545 0.547977 0.139699 0.415210 1.350167 0.917655 1.195919 0.157376 1.776434 0.029946 0.915915 0.521044 0.748317 1.735470 1.293741 1.581802 0.522793 0.147249 0.378886 1.269595 0.880160 1.160555 0.096115 1.722751 1.963789 0.903873 0.496938 0.747896 1.674394 1.269820 1.577457 0.490093 0.115630 0.358327 1.331620 0.967711 1.210098 0.196478 1.748578 -0.008118 0.975251 0.563282 0.831741 1.792242 1.388090 1.626968 0.640917 0.173380 0.496491 1.383244 1.028079 1.278249 0.200310 1.842727 0.117148 1.067699 0.655137 0.977189 1.891116 1.496512 1.800213 0.716310 0.313444 0.614299 1.596050 1.178017 1.448771 0.411035 -0.007864 0.314025 1.250761 0.872187 1.132979 0.112063 1.703696 0.015227 0.928450 0.579700 0.842983 1.779446 1.377597 1.679190 0.661287 0.276868 0.530019 1.478057 1.097154 1.452199 0.391837 0.004121 0.319689 1.204245 0.889767 1.131034 0.062507 1.731008 0.011613 0.965730 0.558406 0.872384 1.839449 1.453663 1.739285 0.633419 0.292926 0.609121 1.533242 1.166740 1.521408 0.455919 0.111761 0.375636 1.330666 0.980258 1.263314 0.218368 1.793898 0.131302 1.089003 0.699335 1.041259 1.994585 1.628723 1.912993 0.832370 0.539580 0.767514 1.769278 1.382315 1.665782 0.617608 0.263928 0.570577 1.556110 1.185546 1.452308 0.486631 0.106886 0.397980 1.344314 0.987257 1.262163 0.257284 1.913879 0.229482 1.209030 0.808943 1.119187 0.155118 1.751366 0.096906 1.030390 0.707621 0.961539 1.939727 1.624587 1.884052 0.858349 0.510674 0.828402 1.766413 1.410150 1.709911 0.653624 0.349063 0.644480 1.649581 1.245315 1.563235 0.592781 0.167581 0.502225 1.532309 1.115803 1.450753 0.426158 0.112785 0.397158 1.341986 0.998136 1.359927 0.326614 1.953237 0.255125 1.269134 0.954473 1.248911 0.228524 1.851109 0.198774 1.199193 0.822703 1.143597 0.139647 1.798001 0.135111 1.075196 0.738509 1.039459 0.043005 1.695473 0.039278 0.940397 0.687169 0.955892 1.945195 1.637385 1.959830 0.901513 0.591436 0.916690 1.946367 1.511113 1.841924 0.914735 0.519103 0.871169 1.853623 1.476616 1.831779 0.794119 0.501496 0.786489 1.823119 1.465319 1.813871 0.799549 0.473434 0.778703 1.772303 1.423191 1.765814 0.746512 0.402084 0.723228 1.731227 1.437201 1.752746 0.729080 0.435572 0.748619 1.797620 1.448442 1.778977 0.722708 0.433233 0.745465 1.782786 1.482461 1.763974 0.804180 0.487357 0.771934 1.821426 1.488095 1.835669 0.815665 0.503919 0.831723 1.856721 1.502256 1.855043 0.816966 0.516621 0.854045 1.891945 1.495038 1.853580 0.872201 0.582240 0.931525 1.880728 1.580438 1.908097 0.894383 0.601328 0.871902 1.945481 1.611764 1.975538 0.986978 0.650096 0.963999 -0.032490 1.683125 0.032047 1.062372 0.663516 1.074100 0.088995 1.772416 0.118155 1.151844 0.782506 1.170812 0.145856 1.824973 0.220085 1.231138 0.962185 1.299812 0.294149 1.936129 0.313734 1.333419 1.055294 1.371781 0.396021 0.068687 0.426799 1.490404 1.128883 1.501606 0.554044 0.262705 0.579954 1.607218 1.349037 1.702723 0.626972 0.355059 0.708682 1.722687 1.445063 1.778556 0.809974 0.563933 0.858893 1.890157 1.554541 1.962560 1.015889 0.655265 0.995058 0.058445 1.766560 0.066580 1.164447 0.874606 1.250821 0.221521 1.907661 0.337034 1.302485 0.996939 1.334000 0.415109 0.143021 0.409278 1.504570 1.254169 1.540803 0.590908 0.336649 0.650261 1.671983 1.404338 1.811372 0.828487 0.523375 0.858702 1.890794 1.611908 1.952387 0.983966 0.707120 1.081893 0.130105 1.822640 0.253333 1.262864 0.941722 1.295374 0.327657 0.014962 0.454338 1.468747 1.197525 1.508879 0.612828 0.267231 0.688296 1.725905 1.384216 1.853699 0.885810 0.585987 0.933071 -0.006819 1.694029 0.065091 1.146482 0.855494 1.246888 0.278187 1.938799 0.300864 1.433337 1.123095 1.475117 0.517418 0.244495 0.608732 1.705696 1.414510 1.822499 0.844800 0.559571 0.947233 -0.856216 1.713193 0.077674 1.108949 0.840365 1.223335 0.259879 0.055702 0.362327 1.417424 1.153693 1.558143 0.610765 0.353786 0.723554 1.762002 1.526477 1.891633 0.940841 0.664258 1.033806 0.086715 1.848396 0.229523 1.278690 1.043074 1.438168 0.459983 0.187214 0.627643 1.684006 1.378174 1.769356 0.854071 0.600466 1.000326 0.030342 1.827280 0.142082 1.201898 0.961915 1.369073 0.429230 0.168228 0.557414 1.638718 1.393686 1.737160 0.845841 0.615853 0.941048 0.022648)
+	49.597757 #(0.000000 0.432865 1.592871 1.324139 1.788221 0.942167 0.643685 1.051045 0.282522 0.026474 0.428400 1.632120 1.318826 1.821120 0.938735 0.685180 1.164104 0.269070 0.040518 0.534459 1.585472 1.363294 1.842902 0.987766 0.775600 1.211716 0.310558 0.080649 0.586517 1.696966 1.455943 1.891139 1.056878 0.859480 1.271186 0.411741 0.218925 0.665278 1.768177 1.533604 0.021164 1.154578 0.897092 1.401276 0.524856 0.295680 0.801109 1.875797 1.691667 0.117511 1.245079 1.026873 1.509419 0.624936 0.412031 0.870360 0.041393 1.773929 0.262128 1.419027 1.172792 1.617850 0.833153 0.564935 1.041197 0.191245 -0.005375 0.435228 1.585742 1.376825 1.781847 1.001829 0.720122 1.225465 0.364498 0.112534 0.656581 1.800538 1.556616 0.053583 1.165896 0.966016 1.457663 0.586645 0.421307 0.868796 1.977304 1.789832 0.223488 1.420761 1.233904 1.686215 0.820974 0.626173 1.103464 0.223436 0.050096 0.530179 1.654756 1.489831 1.932348 1.093464 0.857622 1.372128 0.503735 0.305919 0.828816 1.949337 1.703606 0.245675 1.364030 1.174658 1.685385 0.783632 0.597090 1.107378 0.224457 0.067297 0.498904 1.693619 1.535392 0.001100 1.122466 0.924819 1.422218 0.582022 0.371868 0.883672 0.023121 1.851299 0.347558 1.492791 1.313353 1.780644 0.903790 0.769480 1.228486 0.349181 0.160342 0.723514 1.833797 1.643503 0.152469 1.292314 1.136124 1.585109 0.781677 0.605789 1.024752 0.200509 0.035881 0.545488 1.691727 1.473152 0.009326 1.165324 0.979681 1.472985 0.641008 0.464263 0.916070 0.115193 1.943574 0.470071 1.612905 1.412106 1.906166 1.099734 0.911156 1.445877 0.566995 0.415438 0.903760 0.068012 1.884615 0.361133 1.525102 1.394785 1.866799 1.085049 0.905038 1.343401 0.572999 0.336552 0.840021 0.058006 1.920662 0.419293 1.569314 1.377126 1.892516 1.053725 0.899312 1.382374 0.525629 0.389756 0.915240 0.054554 1.948670 0.432968 1.522295 1.393372 1.927981 1.101207 0.932830 1.420963 0.614510 0.443553 0.957140 0.097162 0.020076 0.491931 1.638578 1.498603 0.034700 1.185623 1.057195 1.570123 0.739618 0.524177 1.087927 0.280667 0.104100 0.634922 1.816392 1.630022 0.177551 1.337197 1.150994 1.738259 0.870029 0.720187 1.256272 0.409065 0.257038 0.726761 1.963048 1.804342 0.360761 1.537930 1.337719 1.844762 1.059764 0.909285 1.418297 0.610902 0.478255 0.989716 0.177245 0.055184 0.519514 1.737980 1.609345 0.124170 1.313347 1.158634 1.696401 0.894021 0.690094 1.250649 0.488164 0.277218 0.839087 -0.015171 1.881248 0.423342 1.578030 1.440523 1.967992 1.124826 1.047153 1.573050 0.745473 0.591794 1.101797 0.310544 0.178288 0.690885 1.866221 1.744743 0.239513 1.466522 1.318725 1.884330 1.039002 0.927125 1.486913 0.680174 0.528995 1.021479 0.250747 0.133926 0.680694 1.869366 1.711636 0.281386 1.427675 1.326563 1.882830 1.053193 0.926175 1.466057 0.682367 0.566146 1.065755 0.292827 0.172581 0.703018 1.907039 1.758235 0.303623 1.502293 1.410303 1.900119 1.083485 1.017339 1.575009 0.721227 0.630154 1.179454 0.388209 0.222690 0.769823 -0.008956 1.890911 0.443026 1.613239 1.445488 0.070601 1.310823 1.138309 1.700026 0.878984 0.755138 1.294973 0.552366 0.381438 0.960518 0.154523 0.054235 0.592109 1.784798 1.682482 0.246240 1.422847 1.310434 1.872185 1.120905 1.001049 1.516015 0.793315 0.649661 1.185249 0.408907 0.280125 0.847968 0.137038 1.943033 0.504327 1.755230 1.582360 0.130331 1.345963 1.261547 1.815327 1.039475 0.962355 1.489561 0.713235 0.640220 1.146346 0.393793 0.307409 0.835620 0.084262 1.960304 0.467383 1.777395 1.651007 0.152565 1.402097 1.314188 1.907657 1.135364 1.002445 1.554772 0.785828 0.681306 1.250456 0.481606 0.349895 0.900041 0.157904 0.034843 0.611277 1.834163 1.718691 0.336544 1.547009 1.424221 -0.027818 1.250987 1.108578 1.703157 0.930093 0.829445 1.431687 0.657083 0.508380 1.149601 0.368943 0.232398 0.837659 0.037487 1.956637 0.493380 1.782438 1.677205 0.258627 1.488171 1.375534 1.954782 1.173234 1.075498 1.644803 0.888310 0.765062 1.358393 0.611283 0.511548 1.066006 0.367096 0.255944 0.813796 0.082435 1.982970 0.551899 1.799859 1.688872 0.243264 1.496914 1.460830 0.036923 1.268960 1.199739 1.786589 0.995545 0.933511 1.493078 0.783647 0.634491 1.224537 0.501414 0.389756 1.017956 0.252159 0.135580 0.773228 -0.002147 1.958828 0.505692 1.738189 1.653701 0.234949 1.455803 1.428102 0.005460 1.247085 1.194008 1.787473 1.038809 0.946584 1.521146 0.768193 0.721450 1.273736 0.568359 0.470034 1.079849 0.325534 0.217136 0.882728 0.093762 0.035384 0.580014 1.857949 1.781207 0.338277 1.626696 1.566042 0.150639 1.389447 1.340871 1.953627 1.195959 1.108090 1.720739 0.931858 0.941045 1.477884 0.776380 0.698054 1.294673 0.551254 0.470567 1.081619 0.367349 0.242482 0.870322 0.123954 0.036747 0.647537 1.948672 1.856099 0.456419 1.690233 1.681655 0.269606 1.526421 1.474191 0.086996 1.321706 1.264523 1.857616 1.130194 1.071740 1.689560 0.947994 0.917707 1.542194 0.800078 0.751270 1.317079 0.653810 0.526709 1.174243 0.456859 0.391521 0.973530 0.208335 0.162238 0.774390 0.035275 -0.018889 0.636860 1.894819 1.829627 0.462423 1.753299 1.695016 0.324672 1.549111 1.505836 0.105156 1.365562 1.346178 1.945802 1.223084 1.210056 1.778638 1.030398 1.007469 1.676153 0.906749 0.885713 1.485879 0.755499 0.729408 1.305512 0.614331 0.557092 1.148040 0.431865 0.399300 1.059360 0.336089 0.306346 0.917114 0.195579 0.144273 0.757516 0.042571 -0.026216 0.654405 1.904272 1.878617 0.484079 1.795330 1.720583 0.370211 1.611611 1.577034 0.213189 1.489319 1.461582 0.078736 1.378237 1.315941 1.972831 1.252615 1.219917 1.886490 1.139344 1.124291 1.748944 1.008121 0.973317 1.651139 0.936551 0.896776 1.483480 0.839558 0.803316 1.383311 0.667482 0.691568 1.289156 0.593835 0.549443 1.146408 0.532008 0.450809 1.054655 0.377503 0.379716 0.984180 0.285225 0.261050 0.892660 0.181029 0.154607 0.800004 0.118378 0.063255 0.701146 -0.025117 -0.000001 0.629976 1.928075 1.906244 0.526129 1.822998 1.825327 0.415850 1.740871 1.767294 0.335590 1.680808 1.646106 0.306851 1.613519 1.581911 0.243532 1.540895 1.492136 0.148406 1.453907 1.376813 0.080748 1.397305 1.348964 -0.011207 1.311590 1.307089 1.928501 1.231088 1.251245 1.871032 1.182835 1.202878 1.820632 1.154354 1.130583 1.742805 1.062074 1.022618 1.753171 1.043938 1.013258 1.658491 1.024604 0.944849 1.609642 0.952950 0.897038 1.565003 0.884593 0.912924 1.552532 0.892121 0.880836 1.498501 0.880520 0.786418 1.465532 0.816299 0.813420 1.423290 0.752035 0.762743 1.421741 0.714590 0.723818 1.403987 0.733505 0.671351 1.412702 0.641308 0.651932 1.358274 0.689205 0.653982 1.258159 0.661194 0.621558 1.301944 0.609469 0.595918 1.270714 0.607222 0.610133 1.256263 0.599262 0.606483 1.272647 0.589368 0.603196 1.243206 0.567032 0.574766 1.248481 0.547265 0.581046 1.248405 0.545884 0.574934 1.242400 0.563385 0.590975 1.302477 0.595557 0.598981 1.286347 0.573656 0.621518 1.267660 0.562916 0.616733 1.243454 0.596055 0.640979 1.292918 0.620185 0.679600 1.287827 0.665780 0.652995 1.326697 0.693727 0.675577 1.347691 0.691879 0.747675 1.378948 0.762649 0.742568 1.415858 0.785369 0.778274 1.423730 0.795367 0.800309 1.487021 0.838008 0.827993 1.512430 0.907810 0.871187 1.543040 0.884992 0.900008 1.638239 0.949920 0.961755 1.677585 0.987190 1.018513 1.678460 1.001946 1.096200 1.783389 1.108153 1.076168 1.796404 1.145757 1.167884 1.816877 1.227231 1.207129 1.925401 1.301758 1.252501 -0.033136 1.332237 1.372270 0.028423 1.450758 1.418021 0.130334 1.489405 1.510035 0.176222 1.549612 1.576623 0.265940 1.598459 1.655456 0.303917 1.682678 1.704966 0.423892 1.763249 1.808957 0.488353 1.820168 1.862755 0.534951 1.946378 -0.115479 0.666199 0.023393 0.070415 0.776037 0.128186 0.196356 0.864792 0.217545 0.252618 0.983654 0.304095 0.389115 1.027461 0.448812 0.433801 1.150454 0.555772 0.544155 1.273177 0.632101 0.677317 1.365954 0.744777 0.790974 1.471500 0.822071 0.853589 1.598102 0.967229 0.975370 1.675087 1.077551 1.127441 1.852886 1.213207 1.210199 1.962339 1.304240 1.316836 0.086161 1.448424 1.477859 0.168832 1.574539 1.634408 0.361203 1.688291 1.728122 0.453375 1.814338 1.871351 0.547295 1.938859 1.979267 0.752732 0.074670 0.160869 0.827612 0.212649 0.303690 0.949851 0.357249 0.409363 1.123505 0.514448 0.536003 1.304242 0.654766 0.714393 1.455092 0.770881 0.875898 1.545383 0.969922 0.999892 1.730974 1.092273 1.222450 1.896848 1.280424 1.350530 0.032613 1.429107 1.444205 0.215184 1.624803 1.675066 0.342340 1.740939 1.838968 0.569216 1.949133 0.015232 0.698478 0.131234 0.151361 0.884335 0.271354 0.339635 1.095722 0.482243 0.517579 1.265483 0.675346 0.688472 1.422281 0.814655 0.928247 1.654512 1.068405 1.093822 1.815010 1.225299 1.260244 0.017712 1.420397 1.474081 0.220455 1.588472 1.648773 0.401957 1.778079 1.840700 0.625639 -0.012808 0.070030 0.792678 0.190737 0.284258 1.005387 0.437535 0.489104 1.218728 0.602131 0.683287 1.465082 0.844345 0.911267 1.639021 1.029139 1.130675 1.851590 1.268118 1.312010 0.057719 1.469504 1.530093 0.289014 1.690700 1.762107 0.471621 1.931281 -0.012817 0.740641 0.165067 0.208795 0.993684 0.366154 0.463936 1.182761 0.636567 0.684720 1.456517 0.844543 0.909905 1.694483 1.067261 1.181261 1.896495 1.332158 1.404902 0.148721 1.645362 1.679155 0.384571 1.818062 1.890447 0.640102 0.071315 0.176310 0.919899 0.272294 0.419881 1.132758 0.581784 0.644364 1.396819 0.836068 0.922668 1.687496 1.141228 1.207835 1.976947 1.393265 1.445536 0.156703 1.638569 1.718070 0.451856 1.881129 0.019744 0.709819 0.192369 0.200233 1.008355 0.419069 0.531216 1.302578 0.702030 0.803637 1.532231 0.954007 1.055324 1.859846 1.306678 1.377590 0.138108 1.531332 1.648592 0.426002 1.840641 1.951451 0.700627 0.118667 0.244651 0.998582 0.485323 0.494920 1.261859 0.732347 0.826064 1.562712 1.044415 1.134399 1.913175 1.329153 1.407665 0.210304 1.638322 1.725321 0.484147 1.936916 0.022008 0.780302 0.222619 0.378941 1.116036 0.561669 0.646670 1.460945 0.840177 0.975275 1.751371 1.215332 1.315124 0.085541 1.505629 1.627610 0.425238 1.825377 1.933820 0.732714 0.154007 0.292319 1.027427 0.529547 0.619665 1.349696 0.791752 0.981251 1.733406 1.162674 1.225536 0.032169 1.514092 1.592543 0.423713 1.836777 1.932372 0.696317 0.191085 0.296586 1.088262 0.524773 0.647464 1.415906 0.852802 1.001896 1.787222 1.217882 1.367593 0.135845 1.559711 1.706568 0.491434 1.938959 0.026345 0.826211 0.317377 0.432981 1.194648 0.647306 0.771866 1.535526 0.952010 1.145656 1.980339 1.386350 1.493970 0.242766 1.734727 1.909211 0.658526 0.105654 0.240947 1.055406 0.511622 0.606837 1.419260 0.864036 0.975595 1.804774 1.255562 1.392582 0.156261 1.624048 1.773878 0.556805 0.012216 0.101553 0.957436 0.383878 0.559809 1.328764 0.783210 0.930677 1.713014 1.224422 1.337576 0.125478 1.546688 1.739290 0.510760 0.051356 0.125824 0.903590 0.374800 0.570311 1.339019 0.818007 0.962926 1.765683 1.223160 1.352645 0.124754 1.578650 1.764146 0.590453 0.057826 0.175877 0.984158 0.432278 0.618760 1.384181 0.889783 1.023343 1.823416 1.277093 1.414188 0.246182 1.745636 1.841848 0.632862 0.150280 0.265895 1.101760 0.557549 0.758026 1.529218 1.025952 1.147354 1.946907 1.439368 1.589004 0.427538 1.864111 0.041990 0.827673 0.316445 0.468857 1.261958 0.771133 0.904081 1.706830 1.196837 1.354053 0.157014 1.645405 1.795526 0.592578 0.101982 0.281057 1.107888 0.555911 0.665961 1.514373 0.975447 1.213878 1.959789 1.475594 1.656049 0.416307 1.949872 0.140532 0.905252 0.432622 0.553868 1.405319 0.832421 1.008362 1.856115 1.331589 1.485200 0.316050 1.815997 0.001982 0.798883 0.288741 0.481539 1.323761 0.758828 0.934297 1.788942 1.267491 1.370187 0.217281 1.721203 1.919437 0.723380 0.279673 0.398068 1.213104 0.696604 0.889585 1.736104 1.231878 1.417072 0.196804 1.740060 1.896204 0.752408 0.209899 0.351910 1.189449 0.686930 0.826773 1.673487 1.203632 1.367796 0.227288 1.703465 1.892120 0.729701 0.258694 0.421789 1.254495 0.723732 0.895086 1.779562 1.244719 1.374161 0.270588 1.787482 1.924236 0.787793 0.287248 0.422089 1.333403 0.808325 0.984271 1.840316 1.336807 1.553111 0.371948 1.893784 0.031265 0.874015 0.422345 0.585588 1.373906 0.935718 1.074589 1.960457 1.423467 1.642278 0.497119 0.007230 0.172820 1.064655 0.555185 0.715595 1.605235 1.101805 1.263400 0.160550 1.626164 1.849766 0.620973 0.160024 0.397275 1.257895 0.728140 0.977614 1.783020 1.323145 1.477393 0.382882 1.860862 0.066768 0.875470 0.419086 0.592867 1.461744 0.999216 1.162569 0.047194 1.554396 1.742935 0.580510 0.114340 0.307878 1.210814 0.685210 0.900668 1.754451 1.284046 1.474337 0.316703 1.834072 0.067724 0.938411 0.414449 0.612252 1.463903 1.036203 1.215159 0.093484 1.579565 1.813929 0.627570 0.181199 0.397007 1.253571 0.803499 0.975099 1.879553 1.346316 1.565404 0.444558 1.911445 0.150267 1.014332 0.596259 0.761190 1.640692 1.167006 1.374288 0.200430 1.785916 -0.020237 0.841328 0.369575 0.587235 1.465755 1.022353 1.203397 0.040082 1.603319 1.800923 0.697642 0.246613 0.378743 1.303747 0.848235 1.017723 1.888665 1.465179 1.638069 0.541822 0.082773 0.284599 1.149056 0.705011 0.912207 1.802795 1.357122 1.532261 0.462396 1.960061 0.188350 1.028855 0.569613 0.826327 1.711792 1.244532 1.465696 0.305039 1.879498 0.140598 0.968889 0.509249 0.742336 1.596289 1.166386 1.391414 0.250189 1.804643 0.064874 0.903491 0.467350 0.675826 1.578530 1.102397 1.363852 0.225750 1.743932 0.006288 0.882481 0.438933 0.696451 1.580178 1.062251 1.334731 0.188903 1.764852 1.991822 0.884813 0.443960 0.695114 1.536355 1.147684 1.325690 0.207421 1.752051 -0.023263 0.928427 0.463372 0.697882 1.577692 1.110848 1.341223 0.235227 1.805566 0.036684 0.904441 0.507933 0.737993 1.620574 1.230872 1.392481 0.318832 1.877264 0.116128 0.977979 0.545815 0.770170 1.667826 1.282773 1.491249 0.424668 1.940451 0.197650 1.078051 0.632930 0.876449 1.807184 1.325741 1.610903 0.506501 0.124399 0.286036 1.237801 0.734018 0.978890 1.917198 1.533637 1.761730 0.630843 0.194340 0.429221 1.351806 0.919094 1.153849 0.063514 1.646281 1.887957 0.778829 0.340418 0.610717 1.475110 1.083155 1.334552 0.241175 1.811975 0.055298 0.973842 0.579397 0.808094 1.698861 1.228502 1.517724 0.430321 -0.012715 0.232021 1.209762 0.734727 1.038762 1.894879 1.499017 1.764964 0.656865 0.194997 0.486147 1.397331 0.988704 1.256155 0.152597 1.733661 1.991544 0.882853 0.443022 0.712924 1.634427 1.260408 1.474919 0.412849 -0.004509 0.267096 1.204753 0.725936 1.027284 1.958711 1.533697 1.775241 0.680270 0.314668 0.547444 1.449735 1.055653 1.383128 0.243443 1.840385 0.080308 1.022537 0.598258 0.873247 1.744915 1.383123 1.654137 0.545219 0.137721 0.414935 1.354838 0.924044 1.193412 0.160127 1.779808 0.028263 0.919676 0.526051 0.741475 1.740937 1.292793 1.580290 0.521987 0.149508 0.379570 1.270826 0.885333 1.161088 0.097110 1.728236 1.965362 0.904667 0.495476 0.749809 1.674421 1.271631 1.573863 0.486520 0.117535 0.354117 1.328470 0.968861 1.214600 0.194285 1.746354 -0.013159 0.972454 0.559816 0.831291 1.789789 1.391352 1.633609 0.642376 0.173893 0.493805 1.383170 1.027293 1.279111 0.201704 1.847088 0.115233 1.069029 0.652933 0.976810 1.890576 1.504075 1.796737 0.721053 0.315620 0.608487 1.595560 1.176288 1.447600 0.409920 -0.008271 0.315252 1.251649 0.874022 1.138274 0.108304 1.701728 0.013258 0.927868 0.575448 0.846099 1.783532 1.377785 1.683605 0.662680 0.277737 0.535356 1.483126 1.099360 1.456528 0.388972 0.005809 0.315780 1.208059 0.889115 1.127900 0.058940 1.729602 0.017441 0.963488 0.554371 0.868202 1.841553 1.454871 1.737963 0.632554 0.289748 0.615006 1.535634 1.164994 1.516592 0.452618 0.110624 0.369539 1.332611 0.980445 1.263002 0.221446 1.793101 0.137127 1.090077 0.696186 1.043495 1.991512 1.629891 1.912267 0.835862 0.540631 0.763715 1.769327 1.379958 1.666447 0.617190 0.267494 0.568007 1.553643 1.191148 1.449176 0.485909 0.105698 0.393627 1.344336 0.990108 1.268397 0.255753 1.909479 0.231988 1.208443 0.814232 1.117175 0.159529 1.753829 0.098434 1.030386 0.705624 0.963450 1.940764 1.624005 1.883850 0.859131 0.512040 0.828265 1.766614 1.408529 1.712566 0.655434 0.348884 0.645886 1.655297 1.247037 1.560679 0.595559 0.172718 0.503982 1.532111 1.117785 1.452470 0.421821 0.111329 0.389166 1.339463 1.002911 1.356462 0.328722 1.951461 0.256322 1.268860 0.952025 1.251385 0.230011 1.855153 0.199382 1.198794 0.829075 1.152002 0.141759 1.798851 0.134892 1.073982 0.739640 1.038813 0.038727 1.699535 0.038990 0.938557 0.683947 0.961488 1.945118 1.640693 1.959858 0.903335 0.592658 0.917891 1.942489 1.513365 1.844699 0.917182 0.518952 0.871440 1.849152 1.476241 1.824242 0.797513 0.500767 0.785754 1.824448 1.466127 1.818823 0.798962 0.467013 0.776405 1.771957 1.422550 1.762020 0.738178 0.400377 0.721303 1.732461 1.436154 1.750901 0.732186 0.438385 0.744556 1.796746 1.448501 1.773803 0.729359 0.433969 0.747508 1.785476 1.479685 1.762912 0.805656 0.486883 0.778930 1.820379 1.488654 1.832564 0.813166 0.505157 0.832300 1.858331 1.502516 1.851071 0.818299 0.522658 0.854273 1.898075 1.496807 1.849394 0.874480 0.582761 0.930056 1.880027 1.582550 1.908397 0.891373 0.600683 0.873246 1.945276 1.613104 1.974828 0.989774 0.653805 0.964411 -0.032735 1.680973 0.035614 1.062005 0.661299 1.068083 0.085607 1.773476 0.115768 1.149387 0.781321 1.165122 0.145233 1.821894 0.214749 1.232621 0.960286 1.300877 0.293840 1.936867 0.318614 1.335076 1.050506 1.368069 0.394976 0.069792 0.428475 1.495659 1.128825 1.503688 0.550822 0.258799 0.578006 1.607899 1.346658 1.700417 0.631785 0.350486 0.712870 1.719463 1.447998 1.775988 0.807449 0.560552 0.860024 1.891535 1.554976 1.958262 1.020865 0.656380 0.993813 0.055258 1.769097 0.072037 1.165005 0.875803 1.246799 0.214821 1.910055 0.337750 1.298291 0.996892 1.331279 0.411622 0.139243 0.409518 1.505483 1.258567 1.538797 0.588689 0.328653 0.648901 1.669818 1.399372 1.811750 0.824763 0.526414 0.863005 1.889105 1.613855 1.952692 0.985453 0.707839 1.077277 0.128247 1.820638 0.254136 1.257006 0.943972 1.289407 0.326020 0.016341 0.448157 1.466547 1.195432 1.507509 0.611970 0.265971 0.687009 1.722964 1.388494 1.856610 0.886492 0.588674 0.933363 -0.004635 1.694685 0.063055 1.147288 0.850327 1.245042 0.275918 1.937461 0.298671 1.431234 1.121611 1.474917 0.520088 0.242529 0.609350 1.708129 1.410558 1.821242 0.845688 0.556064 0.947395 -0.850031 1.713901 0.070147 1.109488 0.840455 1.227131 0.262250 0.054546 0.366126 1.417980 1.152186 1.555113 0.612462 0.355632 0.720283 1.759048 1.524868 1.893222 0.944541 0.666697 1.030867 0.086227 1.845031 0.230492 1.279325 1.037542 1.437547 0.459750 0.191757 0.622554 1.682832 1.382748 1.770132 0.857737 0.598033 0.997876 0.029582 1.825363 0.144386 1.204006 0.967348 1.370347 0.434948 0.169743 0.558239 1.638313 1.393485 1.743237 0.853905 0.620857 0.948028 0.027996)
        )
 
 
@@ -4890,6 +4888,15 @@
 ;(test-all-phases #f) in test-phases.scm
 
 #|
+;;; 31-May-10: 214
+;;;  1-Mar-11: 120
+;;;  6-Mar-12:  28
+;;;  3-Feb-13:  41
+;;; 19-Jul-14:  22
+;;;  9-Jul-15:  18
+;;;  9-Nov-16:  22
+;;; 20-Jul-17:   6 (370)
+
 <1> (load "test-phases.scm")
 test-all-phases
 <2> (test-all-phases #f)
@@ -4902,6 +4909,17 @@ test-all-phases
 ;prime peaks... Wed 09-Nov-2016 16:45
 (0.001975582609148319 2048)
 ;all done! Wed 09-Nov-2016 16:51
+
+<1> (test-all-phases #f)
+;all peaks... Thu 20-Jul-2017 14:49
+(0.00149573739942177 101)
+;odd peaks... Thu 20-Jul-2017 14:51
+(0.001687315629254726 125)
+;even peaks... Thu 20-Jul-2017 14:52
+(0.001467169674692848 4)
+;prime peaks... Thu 20-Jul-2017 14:53
+(0.001975582609148319 2048)
+;all done! Thu 20-Jul-2017 14:55
 |#
 
 ;;; gad161: clean-up-evens
diff --git a/primes.scm b/primes.scm
index c5d4437..73ba6d2 100644
--- a/primes.scm
+++ b/primes.scm
@@ -1,6 +1,6 @@
 ;(load "t.scm")
 
-(define primes (vector 1
+(define primes #i(1
        2       3       5       7      11      13      17      19      23 
       29      31      37      41      43      47      53      59      61 
       67      71      73      79      83      89      97     101     103 
diff --git a/repl.scm b/repl.scm
index 3490774..9059a05 100644
--- a/repl.scm
+++ b/repl.scm
@@ -550,29 +550,29 @@
 	    (define keymap (dilambda
 			    (lambda (c)
 			      (cond ((char? c) 
-				     (keymap-functions (char->integer c)))
+				     (vector-ref keymap-functions (char->integer c)))
 				    ((integer? c) 
-				     (keymap-functions c))
+				     (vector-ref keymap-functions c))
 				    ((not (string? c))
 				     (error 'wrong-type-arg "keymap takes a character or string argument"))
 				    ((= (length c) 1) 
-				     (keymap-functions (char->integer (c 0))))
+				     (vector-ref keymap-functions (char->integer (c 0))))
 				    ((and (= (length c) 2)
 					  (char=? (c 0) #\escape))
-				     (meta-keymap-functions (char->integer (c 1))))
+				     (vector-ref meta-keymap-functions (char->integer (c 1))))
 				    (else (lambda (c) #t))))
 			    (lambda (c f)
 			      (cond ((char? c) 
-				     (set! (keymap-functions (char->integer c)) f))
+				     (vector-set! keymap-functions (char->integer c) f))
 				    ((integer? c) 
-				     (set! (keymap-functions c) f))
+				     (vector-set! keymap-functions c f))
 				    ((not (string? c))
 				     (error 'wrong-type-arg "set! keymap takes a character or string first argument"))
 				    ((= (length c) 1)
-				     (set! (keymap-functions (char->integer (c 0))) f))
+				     (vector-set! keymap-functions (char->integer (c 0)) f))
 				    ((and (= (length c) 2)
 					  (char=? (c 0) #\escape))
-				     (set! (meta-keymap-functions (char->integer (c 1))) f))))))
+				     (vector-set! meta-keymap-functions (char->integer (c 1)) f))))))
 	    
 	    (define C-a 1)     ; #\x01 etc
 	    (define C-b 2)
@@ -645,15 +645,15 @@
 	      
 	      (do ((i 0 (+ i 1)))
 		  ((= i 32))
-		(set! (keymap-functions i) no-op-keyfunc))
+		(vector-set! keymap-functions i no-op-keyfunc))
 	      
 	      (do ((i 32 (+ i 1)))
 		  ((= i 256))
-		(set! (keymap-functions i) main-keyfunc))
+		(vector-set! keymap-functions i main-keyfunc))
 	      
 	      (do ((i 0 (+ i 1)))
 		  ((= i 256))
-		(set! (meta-keymap-functions i) no-op-keyfunc)))
+		(vector-set! meta-keymap-functions i no-op-keyfunc)))
 	    
 	    
 	    ;; -------- cursor movement 
diff --git a/s7.c b/s7.c
index 979151d..7b885f3 100644
--- a/s7.c
+++ b/s7.c
@@ -132,9 +132,16 @@
  * -O3 is often slower, sometimes faster (at least according to callgrind), similarly for -finline-functions and -ftree-vectorize
  * -march=native -fomit-frame-pointer -m64 -funroll-loops gains about .1%
  * -ffast-math makes a mess of NaNs, and does not appear to be faster
- * for timing tests, I use: -O2 -DINITIAL_HEAP_SIZE=1024000 -march=native -fomit-frame-pointer -funroll-loops
+ * for timing tests, I use: -O2 -march=native -fomit-frame-pointer -funroll-loops
+ * according to callgrind, clang is normally about 10% slower than gcc, and vectorization either doesn't work or is much worse than gcc's
  */
 
+#if (defined(__GNUC__) || defined(__clang__))
+  #define WITH_GCC 1
+#else
+  #define WITH_GCC 0
+#endif
+
 
 /* ---------------- initial sizes ---------------- */
 
@@ -182,7 +189,7 @@
   #define WITH_GMP 0
   /* this includes multiprecision arithmetic for all numeric types and functions, using gmp, mpfr, and mpc
    * WITH_GMP adds the following functions: bignum and bignum?, and (*s7* 'bignum-precision)
-   * using gmp with precision=128 is about 50 times slower than using C doubles and long long ints.
+   * using gmp with precision=128 is about 50 times slower than using C doubles and int64_ts.
    */
 #endif
 
@@ -217,7 +224,7 @@
 #endif
 
 #ifndef WITH_C_LOADER
-  #if (defined(__GNUC__) || defined(__clang__))
+  #if WITH_GCC
     #define WITH_C_LOADER 1
   /* (load file.so [e]) looks for (e 'init_func) and if found, calls it
    *   as the shared object init function.  If WITH_SYSTEM_EXTRAS is 0, the caller
@@ -243,12 +250,6 @@
   /* this includes profiling data collection accessible from scheme via the hash-table (*s7* 'profile-info) */
 #endif
 
-#if (defined(__GNUC__) || defined(__clang__))
-  #define WITH_GCC 1
-#else
-  #define WITH_GCC 0
-#endif
-
 /* in case mus-config.h forgets these */
 #ifdef _MSC_VER
   #ifndef HAVE_COMPLEX_NUMBERS
@@ -306,6 +307,7 @@
   #pragma warning(disable: 4244)
 #endif
 
+#include <stdio.h>
 #include <limits.h>
 #include <ctype.h>
 #include <string.h>
@@ -314,6 +316,9 @@
 #include <time.h>
 #include <stdarg.h>
 #include <stddef.h>
+#include <stdint.h>
+#include <inttypes.h>
+#include <setjmp.h>
 
 #if WITH_MULTITHREAD_CHECKS
   #include <pthread.h>
@@ -343,19 +348,8 @@
 #endif
 #endif
 
-#ifdef __MINGW32__
-  #include <inttypes.h>
-#endif
-
-#include <setjmp.h>
-
 #include "s7.h"
 
-
-enum {NO_JUMP, CALL_WITH_EXIT_JUMP, THROW_JUMP, CATCH_JUMP, ERROR_JUMP, ERROR_QUIT_JUMP};
-enum {NO_SET_JUMP, READ_SET_JUMP, LOAD_SET_JUMP, DYNAMIC_WIND_SET_JUMP, S7_CALL_SET_JUMP, EVAL_SET_JUMP};
-
-
 #ifndef M_PI
   #define M_PI 3.1415926535897932384626433832795029L
 #endif
@@ -373,7 +367,7 @@ enum {NO_SET_JUMP, READ_SET_JUMP, LOAD_SET_JUMP, DYNAMIC_WIND_SET_JUMP, S7_CALL_
 #define UNBOLD_TEXT "\033[22m"
 
 #define WRITE_REAL_PRECISION 16
-static int float_format_precision = WRITE_REAL_PRECISION;
+static int32_t float_format_precision = WRITE_REAL_PRECISION;
 
 #if ((!__NetBSD__) && ((_MSC_VER) || (!defined(__STC__)) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ < 199901L))))
   #define __func__ __FUNCTION__
@@ -384,32 +378,21 @@ static int float_format_precision = WRITE_REAL_PRECISION;
 #define DISPLAY_80(Obj) object_to_truncated_string(sc, Obj, 80)
 #define ODISPLAY_80(Obj) object_to_truncated_string(cur_sc, Obj, 80)
 
-#ifdef __MINGW32__
-  #define LL_U "PRIu64"
-  #define LL_D "PRId64"
-#else
-  #define LL_U "llu"
-  #define LL_D "lld"
-#endif
 
 #define PRINT_NAME_PADDING 16
 #if (((defined(SIZEOF_VOID_P)) && (SIZEOF_VOID_P == 4)) || ((defined(__SIZEOF_POINTER__)) && (__SIZEOF_POINTER__ == 4)))
-  #define opcode_t unsigned int
-  #define ptr_int unsigned int
-  #define INT_FORMAT "%u"
-  #define PD_U "%u"
+  #define opcode_t uint32_t
+  #define ptr_int uint32_t
+  #define INT_FORMAT "%" PRIu32
+  #define PD_U "%" PRIu32
   /* INT_FORMAT is for opcode_t and raw c_pointer printout, not s7_int values, PD_U is for pointer differences */
   #define PRINT_NAME_SIZE (20 - PRINT_NAME_PADDING - 2) /* pointless */
   #define POINTER_32 true
 #else
-  #define opcode_t unsigned long long int
-  #define ptr_int unsigned long long int
-  #define INT_FORMAT "%" LL_U
-  #ifdef __MINGW32__
-    #define PD_U "%" LL_U
-  #else
-    #define PD_U "%lu"
-  #endif
+  #define opcode_t uint64_t
+  #define ptr_int uint64_t
+  #define INT_FORMAT "%" PRIu64
+  #define PD_U "%" PRIu64
   #define PRINT_NAME_SIZE (40 - PRINT_NAME_PADDING - 2)
   #define POINTER_32 false
 #endif
@@ -424,8 +407,8 @@ static int float_format_precision = WRITE_REAL_PRECISION;
 #define T_EOF_OBJECT           5
 #define T_BOOLEAN              6
 #define T_CHARACTER            7
-#define T_SYMBOL               8
-#define T_SYNTAX               9
+#define T_SYNTAX               8
+#define T_SYMBOL               9
 
 #define T_INTEGER             10
 #define T_RATIO               11
@@ -489,7 +472,7 @@ typedef struct {
   bool needs_free;
   FILE *file;
   char *filename;
-  int filename_length, gc_loc; /* gc_loc uses -1 as unset flag -- kinda ugly */
+  int32_t filename_length, gc_loc; /* gc_loc uses -1 as unset flag -- kinda ugly */
   void *next;
   s7_pointer (*input_function)(s7_scheme *sc, s7_read_t read_choice, s7_pointer port);
   void (*output_function)(s7_scheme *sc, unsigned char c, s7_pointer port);
@@ -497,11 +480,11 @@ typedef struct {
    *   (rather than an integer for both, indexing from the base string) was not faster.
    */
   s7_pointer orig_str;                                                   /* GC protection for string port string */
-  int (*read_character)(s7_scheme *sc, s7_pointer port);                 /* function to read a character */
-  void (*write_character)(s7_scheme *sc, int c, s7_pointer port);        /* function to write a character */
-  void (*write_string)(s7_scheme *sc, const char *str, int len, s7_pointer port); /* function to write a string of known length */
+  int32_t (*read_character)(s7_scheme *sc, s7_pointer port);             /* function to read a character */
+  void (*write_character)(s7_scheme *sc, int32_t c, s7_pointer port);    /* function to write a character */
+  void (*write_string)(s7_scheme *sc, const char *str, int32_t len, s7_pointer port); /* function to write a string of known length */
   token_t (*read_semicolon)(s7_scheme *sc, s7_pointer port);             /* internal skip-to-semicolon reader */
-  int (*read_white_space)(s7_scheme *sc, s7_pointer port);               /* internal skip white space reader */
+  int32_t (*read_white_space)(s7_scheme *sc, s7_pointer port);           /* internal skip white space reader */
   s7_pointer (*read_name)(s7_scheme *sc, s7_pointer pt);                 /* internal get-next-name reader */
   s7_pointer (*read_sharp)(s7_scheme *sc, s7_pointer pt);                /* internal get-next-sharp-constant reader */
   s7_pointer (*read_line)(s7_scheme *sc, s7_pointer pt, bool eol_case, bool copied);  /* function to read a string up to \n */
@@ -510,19 +493,19 @@ typedef struct {
 
 
 typedef struct opt_funcs {
-  int typ;
+  int32_t typ;
   void *func;
   struct opt_funcs *next;
 } opt_funcs;
 
 typedef struct {
   const char *name;
-  int name_length;
-  unsigned int id;
+  int32_t name_length;
+  uint32_t id;
   char *doc;
   s7_pointer generic_ff;
   s7_pointer signature;
-  s7_pointer (*chooser)(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops);
+  s7_pointer (*chooser)(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops);
   s7_pointer *arg_defaults, *arg_names;
   s7_pointer call_args;
   opt_funcs *opt_data;
@@ -530,13 +513,13 @@ typedef struct {
 
 
 typedef struct {               /* call/cc */
-  unsigned int stack_size, op_stack_loc, op_stack_size;
-  int local_key;               /* for with-baffle */
+  uint32_t stack_size, op_stack_loc, op_stack_size;
+  int32_t local_key;               /* for with-baffle */
 } continuation_t;
 
 
 typedef struct vdims_t {
-  unsigned int ndims;
+  uint32_t ndims;
   bool elements_allocated, dimensions_allocated; /* these are allocated as bytes, not ints, so the struct size is 32 */
   s7_int *dims, *offsets;
   s7_pointer original;
@@ -544,8 +527,8 @@ typedef struct vdims_t {
 
 
 typedef struct {
-  int type;
-  unsigned int outer_type;
+  int32_t type;
+  uint32_t outer_type;
   const char *name;
   s7_pointer scheme_name;
   char *(*print)(s7_scheme *sc, void *value);
@@ -567,13 +550,32 @@ typedef struct {
 typedef struct hash_entry_t {
   s7_pointer key, value;
   struct hash_entry_t *next;
-  unsigned int raw_hash;
+  uint32_t raw_hash;
 } hash_entry_t;
 
-typedef unsigned int (*hash_map_t)(s7_scheme *sc, s7_pointer table, s7_pointer key);    /* hash-table object->location mapper */
+typedef uint32_t (*hash_map_t)(s7_scheme *sc, s7_pointer table, s7_pointer key);    /* hash-table object->location mapper */
 typedef hash_entry_t *(*hash_check_t)(s7_scheme *sc, s7_pointer table, s7_pointer key); /* hash-table object equality function */
 static hash_map_t *default_hash_map;
 
+typedef s7_int (*s7_i_pi_t)(s7_pointer p, s7_int i1);
+typedef s7_int (*s7_i_pii_t)(s7_pointer p, s7_int i1, s7_int i2);
+typedef s7_int (*s7_i_iii_t)(s7_int i1, s7_int i2, s7_int i3);
+typedef s7_pointer (*s7_p_p_t)(s7_pointer p);
+typedef s7_pointer (*s7_p_t)(void);
+typedef bool (*s7_b_pp_t)(s7_pointer p1, s7_pointer p2);
+typedef bool (*s7_b_pi_t)(s7_pointer p1, s7_int i2);
+typedef bool (*s7_b_d_t)(s7_double p1);
+typedef bool (*s7_b_i_t)(s7_int p1);
+typedef bool (*s7_b_ii_t)(s7_int p1, s7_int p2);
+typedef bool (*s7_b_dd_t)(s7_double p1, s7_double p2);
+typedef s7_pointer (*s7_p_pp_t)(s7_pointer p1, s7_pointer p2);
+typedef s7_pointer (*s7_p_ppi_t)(s7_pointer p1, s7_pointer p2, s7_int i1);
+typedef s7_pointer (*s7_p_ppp_t)(s7_pointer p1, s7_pointer p2, s7_pointer p3);
+typedef s7_pointer (*s7_p_pi_t)(s7_pointer p1, s7_int i1);
+typedef s7_pointer (*s7_p_pip_t)(s7_pointer p1, s7_int i1, s7_pointer p2);
+typedef s7_pointer (*s7_p_ii_t)(s7_int i1, s7_int i2);
+typedef s7_pointer (*s7_p_dd_t)(s7_double x1, s7_double x2);
+
 typedef union {
   s7_int i;
   s7_double x;
@@ -617,6 +619,7 @@ typedef union {
   s7_pointer (*p_ppi_f)(s7_pointer p1, s7_pointer p2, s7_int i1);
   s7_pointer (*p_pip_f)(s7_pointer p1, s7_int i1, s7_pointer p2);
   s7_pointer (*p_ii_f)(s7_int x1, s7_int x2);
+  s7_pointer (*p_dd_f)(s7_double x1, s7_double x2);
   s7_pointer (*all_f)(s7_scheme *sc, s7_pointer expr);
   s7_double (*fd)(void *o);
   s7_int (*fi)(void *o);
@@ -635,11 +638,11 @@ typedef struct {
 /* cell structure */
 typedef struct s7_cell {
   union {
-    unsigned int flag;
-    unsigned char type_field;
-    unsigned short sflag;
+    uint64_t flag;
+    uint8_t type_field;
+    uint16_t sflag;
   } tf;
-  int hloc;
+  int64_t hloc;
   union {
 
     union {                       /* integers, floats */
@@ -661,8 +664,8 @@ typedef struct s7_cell {
 	s7_double im;
       } complex_value;
 
-      unsigned long ul_value;     /* these two are not used by s7 in any way */
-      unsigned long long ull_value;
+      unsigned long ul_value;    /* these two are not used by s7 in any way -- "unsigned long" for backwards compatibility */
+      uint64_t ull_value;
 
 #if WITH_GMP
       mpz_t big_integer;          /* bignums */
@@ -680,22 +683,25 @@ typedef struct s7_cell {
     struct {                       /* ports */
       port_t *port;
       unsigned char *data;
-      unsigned int size, point;    /* these limit the in-core portion of a string-port to 2^31 bytes */
-      unsigned int line_number, file_number;
+      uint32_t size, point;    /* these limit the in-core portion of a string-port to 2^31 bytes */
+      uint32_t line_number, file_number;
       bool is_closed;
       port_type_t ptype;
     } prt;
 
     struct{                        /* characters */
       unsigned char c, up_c;
-      int length;
+      int32_t length;
       bool alpha_c, digit_c, space_c, upper_c, lower_c;
       char c_name[12];
     } chr;
 
-    void *c_pointer;               /* c-pointers */
+    struct {                       /* c-pointers */
+      void *c_pointer; 
+      s7_pointer c_type, info;
+    } cptr;
 
-    int baffle_key;                /* baffles */
+    int32_t baffle_key;            /* baffles */
 
     struct {                       /* vectors */
       s7_int length;
@@ -713,11 +719,11 @@ typedef struct s7_cell {
       s7_int length;
       s7_pointer *objects;
       vdims_t *dim_info;
-      int top;
+      int32_t top;
     } stk;
 
     struct {                        /* hash-tables */
-      unsigned int mask, entries;
+      uint32_t mask, entries;
       hash_entry_t **elements;
       hash_check_t hash_func;
       hash_map_t *loc;
@@ -742,7 +748,7 @@ typedef struct s7_cell {
       c_proc_t *c_proc;              /* C functions, macros */
       s7_function ff;
       s7_pointer setter;
-      unsigned int required_args, optional_args, all_args;
+      uint32_t required_args, optional_args, all_args;
       bool rest_arg;
     } fnc;
 
@@ -752,30 +758,30 @@ typedef struct s7_cell {
 
     struct {                         /* special purpose pairs (symbol-table etc) */
       s7_pointer unused_car, unused_cdr;
-      unsigned long long int hash;
+      uint64_t hash;
       const char *fstr;
-      unsigned int op, line;         /* op=optimize_op, line=pair_line or saved symbol_ctr */
+      uint32_t op, line;             /* op=optimize_op, line=pair_line or saved symbol_ctr */
     } sym_cons;
 
     struct {                        /* scheme functions */
       s7_pointer args, body, env, setter;  /* args can be a symbol, as well as a list */
-      int arity, opt_addr;
+      int32_t arity, opt_addr;
     } func;
 
     struct {                        /* optlist (internal) */
-      int num_exprs, num_args, len, addr, pc;
+      int32_t num_exprs, num_args, len, addr, pc;
       opt_info *opts;
     } opt;
 
     struct {                        /* strings */
-      unsigned int length;
+      uint32_t length;
       union {
 	bool needs_free;
-	unsigned int accessor;
-	int temp_len;
+	uint32_t accessor;
+	int32_t temp_len;
       } str_ext;
       char *svalue;
-      unsigned long long int hash;  /* string hash-index */
+      uint64_t hash;  /* string hash-index */
       s7_pointer initial_slot;
       union {
 	char *documentation;
@@ -785,14 +791,14 @@ typedef struct s7_cell {
 
     struct {                       /* symbols */
       s7_pointer name, global_slot, local_slot;
-      long long int id;
-      unsigned int ctr, tag;
+      int64_t id;
+      uint32_t ctr, tag;
     } sym;
 
     struct {                       /* syntax */
       s7_pointer symbol;
-      int op;
-      short min_args, max_args;
+      int32_t op;
+      int16_t min_args, max_args;
     } syn;
 
     struct {                       /* slots (bindings) */
@@ -801,18 +807,18 @@ typedef struct s7_cell {
 
     struct {                       /* environments (frames, lets) */
       s7_pointer slots, nxt;
-      long long int id;            /* id of rootlet is -1 */
+      int64_t id;            /* id of rootlet is -1 */
       union {
 	struct {
 	  s7_pointer function;     /* __func__ (code) if this is a funclet */
-	  unsigned int line, file; /* __func__ location if it is known */
+	  uint32_t line, file; /* __func__ location if it is known */
 	} efnc;
 	struct {
 	  s7_pointer dox1, dox2;   /* do loop variables */
 	} dox;
 	struct {                   /* (catch #t ...) opts */
 	  s7_pointer result;
-	  unsigned int op_stack_loc, goto_loc;
+	  uint32_t op_stack_loc, goto_loc;
 	} ctall;
       } edat;
     } envr;
@@ -820,27 +826,27 @@ typedef struct s7_cell {
     struct {                        /* special stuff like #<unspecified> */
       /* these 3 are just place-holders */
       s7_pointer unused_slots, unused_nxt;
-      long long int unused_id;
+      int64_t unused_id;
       /* these two fields are for some special case objects like #<unspecified> */
       const char *name;
-      int len;
+      int32_t len;
     } unq;
 
     struct {                        /* counter (internal) */
       s7_pointer result, list, env, slots; /* env = counter_let (curlet after map/for-each frame created) */
-      unsigned long long int cap;          /* sc->capture_let_counter for frame reuse */
+      uint64_t cap;          /* sc->capture_let_counter for frame reuse */
     } ctr;
 
     struct {                        /* random-state */
 #if WITH_GMP
       gmp_randstate_t state;
 #else
-      unsigned long long int seed, carry;
+      uint64_t seed, carry;
 #endif
     } rng;
 
     struct {                        /* additional object types (C) */
-      int type;
+      int32_t type;
       void *value;                  /*  the value the caller associates with the object */
       s7_pointer e;                 /*   the method list, if any (openlet) */
       s7_pointer (*ref)(s7_scheme *sc, s7_pointer obj, s7_int pos);
@@ -853,27 +859,28 @@ typedef struct s7_cell {
     } cwcc;
 
     struct {                        /* call-with-exit */
-      unsigned int goto_loc, op_stack_loc;
+      uint32_t goto_loc, op_stack_loc;
       bool active;
     } rexit;
 
     struct {                        /* catch */
-      unsigned int goto_loc, op_stack_loc;
+      uint32_t goto_loc, op_stack_loc;
       s7_pointer tag;
       s7_pointer handler;
     } rcatch; /* C++ reserves "catch" I guess */
 
     struct {                       /* dynamic-wind */
       s7_pointer in, out, body;
-      unsigned int state;
+      uint32_t state;
     } winder;
   } object;
 
 #if WITH_PROFILE
-  int file_and_line;
+  int32_t file_and_line;
 #endif
 #if DEBUGGING
-  int current_alloc_line, previous_alloc_line, current_alloc_type, previous_alloc_type, debugger_bits, gc_line, alloc_line, uses;
+  int32_t current_alloc_line, previous_alloc_line, gc_line, alloc_line, uses;
+  int64_t current_alloc_type, previous_alloc_type, debugger_bits;
   const char *current_alloc_func, *previous_alloc_func, *gc_func, *alloc_func;
 #endif
 
@@ -882,14 +889,14 @@ typedef struct s7_cell {
 
 typedef struct {
   s7_pointer *objs;
-  int size, top, ref;
+  int32_t size, top, ref;
   bool has_hits;
-  int *refs;
+  int32_t *refs;
 } shared_info;
 
 
 typedef struct {
-  int loc, curly_len, ctr;
+  int32_t loc, curly_len, ctr;
   char *curly_str;
   s7_pointer args, orig_str, curly_arg;
   s7_pointer port, strport;
@@ -901,6 +908,11 @@ typedef struct gc_obj {
   struct gc_obj *nxt;
 } gc_obj;
 
+typedef struct {
+  s7_pointer *list;
+  uint32_t size, loc;
+} gc_list;
+
 
 static s7_pointer *small_ints, *chars;
 static s7_pointer real_zero, real_NaN, real_pi, real_one, arity_not_set, max_arity, real_infinity, real_minus_infinity, minus_one, minus_two;
@@ -915,21 +927,14 @@ struct s7_scheme {
   token_t tok;
 
   s7_pointer stack;                   /* stack is a vector */
-  unsigned int stack_size;
+  uint32_t stack_size;
   s7_pointer *stack_start, *stack_end, *stack_resize_trigger;
 
   s7_pointer *op_stack, *op_stack_now, *op_stack_end;
-  unsigned int op_stack_size, max_stack_size;
+  uint32_t op_stack_size, max_stack_size;
 
   s7_cell **heap, **free_heap, **free_heap_top, **free_heap_trigger, **previous_free_heap_top;
-  unsigned int heap_size;
-  int gc_freed;
-  /* "int" or "unsigned int" seems safe here:
-   *      sizeof(s7_cell) = 48 bytes
-   *      so to get more than 2^32 actual objects would require ca 206 GBytes RAM
-   *      vectors might be full of the same object (sc->nil for example), so there
-   *      we need ca 38 GBytes RAM (8 bytes per pointer).
-   */
+  int64_t heap_size, gc_freed;
 
 #if WITH_HISTORY
   s7_pointer eval_history1, eval_history2, error_history;
@@ -937,16 +942,16 @@ struct s7_scheme {
 #endif
 
 #if WITH_MULTITHREAD_CHECKS
-  int lock_count;
+  int32_t lock_count;
   pthread_mutex_t lock;
 #endif
 
   gc_obj *permanent_objects;
 
   s7_pointer protected_objects, protected_accessors;       /* a vector of gc-protected objects */
-  unsigned int *gpofl;
-  unsigned int protected_objects_size, protected_accessors_size, protected_accessors_loc;
-  int gpofl_loc;
+  uint32_t *gpofl;
+  uint32_t protected_objects_size, protected_accessors_size, protected_accessors_loc;
+  int32_t gpofl_loc;
 
   s7_pointer nil;                     /* empty list */
   s7_pointer T;                       /* #t */
@@ -978,12 +983,12 @@ struct s7_scheme {
   s7_pointer direct_str;
 
   bool gc_off;                        /* gc_off: if true, the GC won't run */
-  unsigned int gc_stats;
-  unsigned int gensym_counter, cycle_counter, f_class, add_class, multiply_class, subtract_class, equal_class;
-  int format_column;
-  unsigned long long int capture_let_counter;
+  uint32_t gc_stats;
+  uint32_t gensym_counter, f_class, add_class, multiply_class, subtract_class, equal_class;
+  int32_t format_column;
+  uint64_t capture_let_counter;
   bool short_print, is_autoloading;
-  long long int let_number;
+  int64_t let_number;
   double default_rationalize_error, morally_equal_float_epsilon, hash_table_float_epsilon;
   s7_int default_hash_table_length, initial_string_port_length, print_length, objstr_max_len, history_size, true_history_size;
   s7_int max_vector_length, max_string_length, max_list_length, max_vector_dimensions;
@@ -991,9 +996,9 @@ struct s7_scheme {
   vdims_t *wrap_only;
 
   char *typnam;
-  int typnam_len;
+  int32_t typnam_len;
   char *help_arglist;
-  int print_width;
+  int32_t print_width;
   s7_pointer *singletons;
 
   #define INITIAL_TMP_STR_SIZE 16
@@ -1001,15 +1006,15 @@ struct s7_scheme {
 
   #define INITIAL_FILE_NAMES_SIZE 8
   s7_pointer *file_names;
-  int file_names_size, file_names_top;
+  int32_t file_names_size, file_names_top;
 
   #define INITIAL_STRBUF_SIZE 1024
-  unsigned int strbuf_size;
+  uint32_t strbuf_size;
   #define TMPBUF_SIZE 1024
   char *strbuf, *tmpbuf;
 
   char *read_line_buf;
-  unsigned int read_line_buf_size;
+  uint32_t read_line_buf_size;
 
   s7_pointer v, w, x, y, z;         /* evaluator local vars */
   s7_pointer temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8, temp9, temp10, temp11;
@@ -1019,34 +1024,29 @@ struct s7_scheme {
   s7_pointer a1_1, a2_1, a2_2, a3_1, a3_2, a3_3, a4_1, a4_2, a4_3, a4_4;
   #define T_TEMPS_SIZE 32
   s7_pointer t_temps[T_TEMPS_SIZE];              /* more eval temps */
-  int t_temp_ctr;
+  int32_t t_temp_ctr;
 
   jmp_buf goto_start;
   bool longjmp_ok;
-  int setjmp_loc;
+  int32_t setjmp_loc;
 
   void (*begin_hook)(s7_scheme *sc, bool *val);
 
-  int no_values, current_line, s7_call_line, safety;
+  int32_t no_values, current_line, s7_call_line, safety;
   const char *current_file, *s7_call_file, *s7_call_name;
 
   shared_info *circle_info;
   format_data **fdats;
-  int num_fdats;
+  int32_t num_fdats;
   s7_pointer elist_1, elist_2, elist_3, elist_4, elist_5, plist_1, plist_2, plist_3, qlist_2;
-
-  s7_pointer *strings, *strings1, *vectors, *input_ports, *output_ports, *continuations;
-  s7_pointer *c_objects, *hash_tables, *gensyms, *setters, *optlists;
-  unsigned int strings_size, strings1_size, vectors_size, input_ports_size, output_ports_size;
-  unsigned int continuations_size, c_objects_size, hash_tables_size, gensyms_size, setters_size, optlists_size;
-  unsigned int strings_loc, strings1_loc, vectors_loc, input_ports_loc, output_ports_loc;
-  unsigned int continuations_loc, c_objects_loc, hash_tables_loc, gensyms_loc, setters_loc, optlists_loc;
-
+  gc_list *strings, *strings1, *vectors, *input_ports, *output_ports, *continuations, *c_objects, *hash_tables, *gensyms, *optlists;
+  s7_pointer *setters;
+  uint32_t setters_size, setters_loc;
   char ***string_lists;
-  int *string_locs, *string_sizes, *string_max_sizes;
+  int32_t *string_locs, *string_sizes, *string_max_sizes;
 
-  unsigned int syms_tag;
-  int ht_iter_tag, baffle_ctr, bignum_precision;
+  uint32_t syms_tag;
+  int32_t ht_iter_tag, baffle_ctr, bignum_precision;
   s7_pointer default_rng;
 
   /* these symbols are primarily for the generic function search */
@@ -1105,7 +1105,8 @@ struct s7_scheme {
              string_set_symbol, string_symbol, string_to_number_symbol, string_to_symbol_symbol, string_upcase_symbol,
              sublet_symbol, substring_symbol, subtract_symbol, symbol_access_symbol, symbol_symbol, symbol_to_dynamic_value_symbol,
              symbol_to_keyword_symbol, symbol_to_string_symbol, symbol_to_value_symbol, s7_version_symbol,
-             tan_symbol, tanh_symbol, throw_symbol, string_to_byte_vector_symbol, truncate_symbol, type_of_symbol,
+             tan_symbol, tanh_symbol, throw_symbol, string_to_byte_vector_symbol, 
+             tree_count_symbol, truncate_symbol, type_of_symbol,
              unlet_symbol, 
              values_symbol, varlet_symbol, vector_append_symbol, vector_dimensions_symbol, vector_fill_symbol, vector_ref_symbol,
              vector_set_symbol, vector_symbol, 
@@ -1177,15 +1178,16 @@ struct s7_scheme {
              let_all_opsq_symbol, let_all_s_symbol, let_all_x_symbol, let_c_symbol, let_no_vars_symbol, let_one_symbol,
              let_opcq_symbol, let_opsq_p_symbol, let_opsq_symbol, let_car_symbol, let_opssq_symbol, let_opssq_e_symbol, let_opassq_e_symbol, 
              let_s_symbol, let_s_z_symbol, let_star2_symbol, let_a_symbol, let_a_z_symbol,
-             let_star_all_x_symbol, let_star_unchecked_symbol, let_unchecked_symbol, let_z_symbol, letrec_star_unchecked_symbol,
+             let_star_all_x_symbol, let_star_a2_symbol, let_star_unchecked_symbol, let_unchecked_symbol, let_z_symbol, letrec_star_unchecked_symbol,
              letrec_unchecked_symbol, named_let_no_vars_symbol, named_let_star_symbol, named_let_symbol, let_temporarily_unchecked_symbol,
 
-             or_ap_symbol, or_az_symbol, or_p_symbol, or_safe_aa_symbol, or_safe_p_symbol,
+             or_ap_symbol, or_p_symbol, or_safe_aa_symbol, or_safe_p_symbol,
              or_unchecked_symbol, quote_unchecked_symbol, safe_do_symbol, safe_dotimes_symbol, set_cons_symbol, set_let_all_x_symbol,
-             set_let_s_symbol, set_normal_symbol, set_pair_a_symbol, set_pair_c_p_symbol, set_pair_c_symbol, set_pair_p_symbol,
+             set_let_s_symbol, set_normal_symbol, set_pair_a_symbol, set_pair_p_symbol,
              set_pair_symbol, set_dilambda_symbol, set_dilambda_z_symbol, set_pair_z_symbol, set_pair_za_symbol, 
              set_pws_symbol, set_symbol_a_symbol, set_symbol_c_symbol,
              set_symbol_opcq_symbol, set_symbol_opsq_symbol, set_symbol_opssq_symbol, set_symbol_opsssq_symbol, set_symbol_p_symbol,
+             set_symbol_oplq_symbol, set_symbol_opllq_symbol, 
              set_symbol_q_symbol, set_symbol_s_symbol, set_symbol_l_symbol, set_symbol_z_symbol, set_unchecked_symbol, 
              simple_do_symbol, unless_s_symbol, unless_a_symbol, unless_unchecked_symbol, 
              when_s_symbol, when_a_symbol, when_p_symbol, when_unchecked_symbol, 
@@ -1195,9 +1197,7 @@ struct s7_scheme {
 
 #if WITH_GMP
   s7_pointer bignum_symbol, is_bignum_symbol;
-  s7_pointer *bigints, *bigratios, *bigreals, *bignumbers;
-  unsigned int bigints_size, bigratios_size, bigreals_size, bignumbers_size;
-  unsigned int bigints_loc, bigratios_loc, bigreals_loc, bignumbers_loc;
+  gc_list *bigints, *bigratios, *bigreals, *bignumbers;
 #endif
 
 #if WITH_SYSTEM_EXTRAS
@@ -1214,17 +1214,17 @@ struct s7_scheme {
   s7_pointer *syn_docs; /* prebuilt evaluator arg lists, syntax doc strings */
   #define NUM_SAFE_LISTS 64
   s7_pointer safe_lists[NUM_SAFE_LISTS];
-  int current_safe_list;
+  int32_t current_safe_list;
 
   s7_pointer autoload_table, libraries, profile_info;
   const char ***autoload_names;
-  int *autoload_names_sizes;
+  int32_t *autoload_names_sizes;
   bool **autoloaded_already;
-  int autoload_names_loc, autoload_names_top;
+  int32_t autoload_names_loc, autoload_names_top;
   port_t *port_heap;
 
-  int format_depth;
-  int slash_str_size;
+  int32_t format_depth;
+  int32_t slash_str_size;
   char *slash_str;
 
   bool undefined_identifier_warnings;
@@ -1232,7 +1232,7 @@ struct s7_scheme {
 
   opt_info *free_opts;
   jmp_buf opt_exit;
-  int pc, funcalls, unwraps;
+  int32_t pc, funcalls, unwraps;
   #define OPTS_SIZE 128      /* 128 overflows twice in s7test, 64 overflows 4 times in s7test, once in tall! */
   opt_info *opts[OPTS_SIZE]; /* this form is a lot faster than opt_info**! */
 };
@@ -1249,8 +1249,8 @@ typedef enum {USE_DISPLAY, USE_WRITE, USE_READABLE_WRITE, USE_WRITE_WRONG} use_w
 
 #define INITIAL_STORED_OPTLISTS_SIZE 8
 static s7_pointer *stored_optlists = NULL;
-static int stored_optlists_size, stofl_loc = -1;
-static int *stofl = NULL;
+static int32_t stored_optlists_size, stofl_loc = -1;
+static int32_t *stofl = NULL;
 
 static s7_pointer prepackaged_type_names[NUM_TYPES];
 
@@ -1262,7 +1262,7 @@ static bool t_procedure_p[NUM_TYPES], t_applicable_p[NUM_TYPES];
 
 static void init_types(void)
 {
-  int i;
+  int32_t i;
   for (i = 0; i < NUM_TYPES; i++)
     {
       t_number_p[i] = false;
@@ -1408,7 +1408,7 @@ static void init_types(void)
 #if WITH_HISTORY
 #define current_code(Sc)           car(Sc->cur_code)
 #define set_current_code(Sc, Code) do {Sc->cur_code = cdr(Sc->cur_code); set_car(Sc->cur_code, Code);} while (0)
-#define mark_current_code(Sc)      do {int i; s7_pointer p; for (p = Sc->cur_code, i = 0; i < sc->history_size; i++, p = cdr(p)) S7_MARK(car(p));} while (0)
+#define mark_current_code(Sc)      do {int32_t i; s7_pointer p; for (p = Sc->cur_code, i = 0; i < sc->history_size; i++, p = cdr(p)) S7_MARK(car(p));} while (0)
 #else
 #define current_code(Sc)           Sc->cur_code
 #define set_current_code(Sc, Code) Sc->cur_code = Code
@@ -1421,45 +1421,45 @@ static void init_types(void)
 static s7_scheme *cur_sc = NULL;
 
 #if DEBUGGING
-  static const char *check_name(int typ);
-  static s7_pointer check_seti(s7_scheme *sc, s7_pointer x, const char *func, int line);
-  static s7_pointer check_ref(s7_pointer p, int expected_type, const char *func, int line, const char *func1, const char *func2);
-  static s7_pointer check_ref2(s7_pointer p, int expected_type, int other_type, const char *func, int line, const char *func1, const char *func2);
-  static s7_pointer check_ref3(s7_pointer p, const char *func, int line);
-  static s7_pointer check_ref4(s7_pointer p, const char *func, int line);
-  static s7_pointer check_ref5(s7_pointer p, const char *func, int line);
-  static s7_pointer check_ref6(s7_pointer p, const char *func, int line);
-  static s7_pointer check_ref7(s7_pointer p, const char *func, int line);
-  static s7_pointer check_ref8(s7_pointer p, const char *func, int line);
-  static s7_pointer check_ref9(s7_pointer p, const char *func, int line);
-  static s7_pointer check_ref10(s7_pointer p, const char *func, int line);
-  static s7_pointer check_ref11(s7_pointer p, const char *func, int line);
-  static s7_pointer check_nref(s7_pointer p, const char *func, int line);
-  static s7_pointer check_cell(s7_pointer p, const char *func, int line);
-  static void print_gc_info(s7_pointer obj, int line);
-
-  static s7_pointer opt1_1(s7_scheme *sc, s7_pointer p, unsigned int role, const char *func, int line);
-  static s7_pointer set_opt1_1(s7_scheme *sc, s7_pointer p, s7_pointer x, unsigned int role, const char *func, int line);
-  static s7_pointer opt2_1(s7_scheme *sc, s7_pointer p, unsigned int role, const char *func, int line);
-  static void set_opt2_1(s7_scheme *sc, s7_pointer p, s7_pointer x, unsigned int role, const char *func, int line);
-  static s7_pointer opt3_1(s7_scheme *sc, s7_pointer p, unsigned int role, const char *func, int line);
-  static void set_opt3_1(s7_scheme *sc, s7_pointer p, s7_pointer x, unsigned int role, const char *func, int line);
-
-  static unsigned long long int s_hash_1(s7_scheme *sc, s7_pointer p, const char *func, int line);
-  static void set_s_hash_1(s7_scheme *sc, s7_pointer p, unsigned long long int x, const char *func, int line);
-  static const char *s_name_1(s7_scheme *sc, s7_pointer p, const char *func, int line);
-  static void set_s_name_1(s7_scheme *sc, s7_pointer p, const char *str, const char *func, int line);
-  static unsigned int s_line_1(s7_scheme *sc, s7_pointer p, const char *func, int line);
-  static void set_s_line_1(s7_scheme *sc, s7_pointer p, unsigned int x, const char *func, int line);
-  static unsigned int s_len_1(s7_scheme *sc, s7_pointer p, const char *func, int line);
-  static void set_s_len_1(s7_scheme *sc, s7_pointer p, unsigned int x, const char *func, int line);
-  static unsigned int s_op_1(s7_scheme *sc, s7_pointer p, const char *func, int line);
-  static void set_s_op_1(s7_scheme *sc, s7_pointer p, unsigned int x, const char *func, int line);
-  static unsigned int s_syn_op_1(s7_scheme *sc, s7_pointer p, const char *func, int line);
-  static void set_s_syn_op_1(s7_scheme *sc, s7_pointer p, unsigned int x, const char *func, int line);
+  static const char *check_name(int32_t typ);
+  static s7_pointer check_seti(s7_scheme *sc, s7_pointer x, const char *func, int32_t line);
+  static s7_pointer check_ref(s7_pointer p, int32_t expected_type, const char *func, int32_t line, const char *func1, const char *func2);
+  static s7_pointer check_ref2(s7_pointer p, int32_t expected_type, int32_t other_type, const char *func, int32_t line, const char *func1, const char *func2);
+  static s7_pointer check_ref3(s7_pointer p, const char *func, int32_t line);
+  static s7_pointer check_ref4(s7_pointer p, const char *func, int32_t line);
+  static s7_pointer check_ref5(s7_pointer p, const char *func, int32_t line);
+  static s7_pointer check_ref6(s7_pointer p, const char *func, int32_t line);
+  static s7_pointer check_ref7(s7_pointer p, const char *func, int32_t line);
+  static s7_pointer check_ref8(s7_pointer p, const char *func, int32_t line);
+  static s7_pointer check_ref9(s7_pointer p, const char *func, int32_t line);
+  static s7_pointer check_ref10(s7_pointer p, const char *func, int32_t line);
+  static s7_pointer check_ref11(s7_pointer p, const char *func, int32_t line);
+  static s7_pointer check_nref(s7_pointer p, const char *func, int32_t line);
+  static s7_pointer check_cell(s7_pointer p, const char *func, int32_t line);
+  static void print_gc_info(s7_pointer obj, int32_t line);
+
+  static s7_pointer opt1_1(s7_scheme *sc, s7_pointer p, uint32_t role, const char *func, int32_t line);
+  static s7_pointer set_opt1_1(s7_scheme *sc, s7_pointer p, s7_pointer x, uint32_t role, const char *func, int32_t line);
+  static s7_pointer opt2_1(s7_scheme *sc, s7_pointer p, uint32_t role, const char *func, int32_t line);
+  static void set_opt2_1(s7_scheme *sc, s7_pointer p, s7_pointer x, uint32_t role, const char *func, int32_t line);
+  static s7_pointer opt3_1(s7_scheme *sc, s7_pointer p, uint32_t role, const char *func, int32_t line);
+  static void set_opt3_1(s7_scheme *sc, s7_pointer p, s7_pointer x, uint32_t role, const char *func, int32_t line);
+
+  static uint64_t s_hash_1(s7_scheme *sc, s7_pointer p, const char *func, int32_t line);
+  static void set_s_hash_1(s7_scheme *sc, s7_pointer p, uint64_t x, const char *func, int32_t line);
+  static const char *s_name_1(s7_scheme *sc, s7_pointer p, const char *func, int32_t line);
+  static void set_s_name_1(s7_scheme *sc, s7_pointer p, const char *str, const char *func, int32_t line);
+  static uint32_t s_line_1(s7_scheme *sc, s7_pointer p, const char *func, int32_t line);
+  static void set_s_line_1(s7_scheme *sc, s7_pointer p, uint32_t x, const char *func, int32_t line);
+  static uint32_t s_len_1(s7_scheme *sc, s7_pointer p, const char *func, int32_t line);
+  static void set_s_len_1(s7_scheme *sc, s7_pointer p, uint32_t x, const char *func, int32_t line);
+  static uint32_t s_op_1(s7_scheme *sc, s7_pointer p, const char *func, int32_t line);
+  static void set_s_op_1(s7_scheme *sc, s7_pointer p, uint32_t x, const char *func, int32_t line);
+  static uint32_t s_syn_op_1(s7_scheme *sc, s7_pointer p, const char *func, int32_t line);
+  static void set_s_syn_op_1(s7_scheme *sc, s7_pointer p, uint32_t x, const char *func, int32_t line);
 
   #define unchecked_type(p)           ((p)->tf.type_field)
-  #define type(p) ({unsigned char _t_; _t_ = (p)->tf.type_field; if (((_t_ == T_FREE)) || (_t_ >= NUM_TYPES)) print_gc_info(p, __LINE__); _t_;})
+  #define type(p) ({uint8_t _t_; _t_ = (p)->tf.type_field; if (((_t_ == T_FREE)) || (_t_ >= NUM_TYPES)) print_gc_info(p, __LINE__); _t_;})
 
   #define set_type(p, f)						\
     do {								\
@@ -1471,11 +1471,11 @@ static s7_scheme *cur_sc = NULL;
       p->current_alloc_type = f;					\
       p->uses++; 					                \
       if ((((f) & 0xff) == T_FREE) || (((f) & 0xff) >= NUM_TYPES))	\
-        fprintf(stderr, "%d: set free %p type to %x\n", __LINE__, p, f); \
+        fprintf(stderr, "%d: set free %p type to %" PRIx64 "\n", __LINE__, p, (int64_t)(f)); \
       else								\
 	{								\
 	  if (((typeflag(p) & T_IMMUTABLE) != 0) && ((typeflag(p) != (f))))						\
-	    {fprintf(stderr, "%s[%d]: set immutable %p type %d to %d\n", __func__, __LINE__, p, unchecked_type(p), f); abort();} \
+	    {fprintf(stderr, "%s[%d]: set immutable %p type %d to %" PRId64 "\n", __func__, __LINE__, p, unchecked_type(p), (int64_t)(f)); abort();} \
 	  if (((typeflag(p) & T_LINE_NUMBER) != 0) && (((typeflag(p)) & 0xff) == T_PAIR) && (((f) & T_LINE_NUMBER) == 0)) \
             fprintf(stderr, "%d unsets line_number\n", __LINE__); \
 	}								\
@@ -1636,17 +1636,28 @@ static s7_scheme *cur_sc = NULL;
 #define T_SYNTACTIC                   (1 << (TYPE_BITS + 1))
 #define is_syntactic(p)               ((typesflag(_NFre(p)) & T_SYNTACTIC) != 0)
 #define is_syntactic_symbol(p)        ((typesflag(_NFre(p)) & (T_SYNTACTIC | 0xff)) == (T_SYMBOL | T_SYNTACTIC))
-#define SYNTACTIC_TYPE                (unsigned short)(T_SYMBOL | T_DONT_EVAL_ARGS | T_SYNTACTIC)
-#define SYNTACTIC_PAIR                (unsigned short)(T_PAIR | T_SYNTACTIC)
+#define SYNTACTIC_TYPE                (uint16_t)(T_SYMBOL | T_DONT_EVAL_ARGS | T_SYNTACTIC)
+#define SYNTACTIC_PAIR                (uint16_t)(T_PAIR | T_SYNTACTIC)
 /* this marks symbols that represent syntax objects, it should be in the second byte */
 #define set_syntactic_pair(p)         typeflag(_TPair(p)) = (SYNTACTIC_PAIR | (typeflag(p) & 0xffff0000))
 
-/* bit 2 currently unused */
+
+#define T_SIMPLE_ARG_DEFAULTS         (1 << (TYPE_BITS + 2))
+#define has_simple_arg_defaults(p)    ((typeflag(_TPair(p)) & T_SIMPLE_ARG_DEFAULTS) != 0)
+#define set_simple_arg_defaults(p)    typeflag(_TPair(p)) |= T_SIMPLE_ARG_DEFAULTS
+/* are all lambda* default values simple? */
+
+#define T_LIST_IN_USE                 T_SIMPLE_ARG_DEFAULTS
+#define list_is_in_use(p)             ((typeflag(_TPair(p)) & T_LIST_IN_USE) != 0)
+#define set_list_in_use(p)            typeflag(_TPair(p)) |= T_LIST_IN_USE
+#define clear_list_in_use(p)          typeflag(_TPair(p)) &= (~T_LIST_IN_USE)
+/* these could all be one permanent list, indexed from inside, and this bit is never actually protecting anything across a call */
+
 
 #define T_OPTIMIZED                   (1 << (TYPE_BITS + 3))
 #define set_optimized(p)              typesflag(_TPair(p)) |= T_OPTIMIZED
 #define clear_optimized(p)            typeflag(_TPair(p)) &= (~(T_OPTIMIZED | T_OVERLAY | T_SYNTACTIC | T_HAS_ALL_X))
-#define OPTIMIZED_PAIR                (unsigned short)(T_PAIR | T_OPTIMIZED)
+#define OPTIMIZED_PAIR                (uint16_t)(T_PAIR | T_OPTIMIZED)
 #define is_optimized(p)               (typesflag(p) == OPTIMIZED_PAIR)
 #define unoptimize(p)                 typesflag(_TPair(p)) &= (~T_OPTIMIZED)
 /*   this is faster than the bit extraction above and the same speed as xor */
@@ -1657,6 +1668,7 @@ static s7_scheme *cur_sc = NULL;
 #define is_scope_safe(p)              ((typeflag(_TFnc(p)) & T_SCOPE_SAFE) != 0)
 #define set_scope_safe(p)             typeflag(_TFnc(p)) |= T_SCOPE_SAFE
 
+
 #define T_SAFE_CLOSURE                (1 << (TYPE_BITS + 4))
 #define is_safe_closure(p)            ((typesflag(_NFre(p)) & T_SAFE_CLOSURE) != 0)
 #define set_safe_closure(p)           typesflag(p) |= T_SAFE_CLOSURE
@@ -1702,9 +1714,9 @@ static s7_scheme *cur_sc = NULL;
 #define set_global(p)                 do {if (!is_local(p)) typeflag(_TSym(p)) |= T_GLOBAL;} while (0)
 #if 0
   /* to find who is stomping on our symbols: */
-  static char *object_to_truncated_string(s7_scheme *sc, s7_pointer p, int len);
+  static char *object_to_truncated_string(s7_scheme *sc, s7_pointer p, int32_t len);
 
-  static void set_local_1(s7_scheme *sc, s7_pointer symbol, const char *func, int line)
+  static void set_local_1(s7_scheme *sc, s7_pointer symbol, const char *func, int32_t line)
   {
     if (is_global(symbol)) /* || (is_syntactic(symbol))) */
       fprintf(stderr, "%s[%d]: %s%s%s in %s\n", func, line, BOLD_TEXT, DISPLAY(symbol), UNBOLD_TEXT, DISPLAY_80(sc->cur_code));
@@ -1760,6 +1772,7 @@ static s7_scheme *cur_sc = NULL;
 #define clear_simple_defaults(p)      typeflag(_TFnc(p)) &= (~T_SIMPLE_DEFAULTS)
 /* flag c_func_star arg defaults that need GC protection */
 
+
 #define T_SHARED                      (1 << (TYPE_BITS + 11))
 #define is_shared(p)                  ((typeflag(_TSeq(p)) & T_SHARED) != 0)
 #define set_shared(p)                 typeflag(_TSeq(p)) |= T_SHARED
@@ -1778,7 +1791,7 @@ static s7_scheme *cur_sc = NULL;
 
 #define T_SAFE_PROCEDURE              (1 << (TYPE_BITS + 13))
 #define is_safe_procedure(p)          ((typeflag(_NFre(p)) & T_SAFE_PROCEDURE) != 0)
-#define is_scope_safe_procedure(p)    ((typeflag(_TFnc(p)) & (T_SCOPE_SAFE | T_SAFE_PROCEDURE)) != 0)
+#define is_safe_or_scope_safe_procedure(p) ((typeflag(_TFnc(p)) & (T_SCOPE_SAFE | T_SAFE_PROCEDURE)) != 0)
 /* applicable objects that do not return or modify their arg list directly (no :rest arg in particular),
  *    and that can't call apply themselves either directly or via s7_call, and that don't mess with the stack.
  */
@@ -1854,6 +1867,7 @@ static s7_scheme *cur_sc = NULL;
 #define let_removed(p)                ((typeflag(_TLet(p)) & T_LET_REMOVED) != 0)
 /* these mark objects that have been removed from the heap or checked for that possibility */
 
+
 #define T_MUTABLE                     (1 << (TYPE_BITS + 18))
 #define is_mutable(p)                 ((typeflag(_TNum(p)) & T_MUTABLE) != 0)
 /* #define set_mutable(p)             typeflag(_TNum(p)) |= T_MUTABLE */
@@ -1899,6 +1913,10 @@ static s7_scheme *cur_sc = NULL;
 #define set_no_bool_opt(p)            typeflag(_TPair(p)) |= T_NO_BOOL_OPT
 #define no_bool_opt(p)                ((typeflag(_TPair(p)) & T_NO_BOOL_OPT) != 0)
 
+#define T_DIRECT_X_OPT                T_SAFE_STEPPER
+#define set_direct_x_opt(p)           typeflag(_TPair(p)) |= T_DIRECT_X_OPT
+#define has_direct_x_opt(p)           ((typeflag(_TPair(p)) & T_DIRECT_X_OPT) != 0)
+
 
 #define T_SAFE_STEPPER                (1 << (TYPE_BITS + 19))
 #define is_safe_stepper(p)            ((typeflag(_TSlp(p)) & T_SAFE_STEPPER) != 0)
@@ -1923,6 +1941,7 @@ static s7_scheme *cur_sc = NULL;
 #define set_has_set_fallback(p)       typeflag(_TLet(p)) |= T_HAS_SET_FALLBACK
 #define set_all_methods(p, e)         typeflag(_TLet(p)) |= (typeflag(e) & (T_HAS_METHODS | T_HAS_REF_FALLBACK | T_HAS_SET_FALLBACK))
 
+
 #define T_COPY_ARGS                   (1 << (TYPE_BITS + 20))
 #define needs_copied_args(p)          ((typeflag(_NFre(p)) & T_COPY_ARGS) != 0)
 /* this marks something that might mess with its argument list, it should not be in the second byte */
@@ -1936,16 +1955,7 @@ static s7_scheme *cur_sc = NULL;
 #define is_gensym(p)                  ((typeflag(_TSym(p)) & T_GENSYM) != 0)
 /* symbol is from gensym (GC-able etc) */
 
-#define T_SIMPLE_ARG_DEFAULTS         T_GENSYM
-#define has_simple_arg_defaults(p)    ((typeflag(_TPair(p)) & T_SIMPLE_ARG_DEFAULTS) != 0)
-#define set_simple_arg_defaults(p)    typeflag(_TPair(p)) |= T_SIMPLE_ARG_DEFAULTS
-/* are all lambda* default values simple? */
-
-#define T_LIST_IN_USE                 T_GENSYM
-#define list_is_in_use(p)             ((typeflag(_TPair(p)) & T_LIST_IN_USE) != 0)
-#define set_list_in_use(p)            typeflag(_TPair(p)) |= T_LIST_IN_USE
-#define clear_list_in_use(p)          typeflag(_TPair(p)) &= (~T_LIST_IN_USE)
-/* these could all be one permanent list, indexed from inside, and this bit is never actually protecting anything across a call */
+ /* gensym bit is ok for a pair */
 
 #define T_FUNCLET                     T_GENSYM
 #define is_funclet(p)                 ((typeflag(_TLet(p)) & T_FUNCLET) != 0)
@@ -1965,13 +1975,13 @@ static s7_scheme *cur_sc = NULL;
  * don't reuse this bit if possible
  */
 
-#define T_GC_MARK                     0x80000000            /* (1 << (TYPE_BITS + 23)) but that makes gcc unhappy */
+#define T_GC_MARK                     0x8000000000000000
 #define is_marked(p)                  ((typeflag(p) &  T_GC_MARK) != 0)
 #define set_mark(p)                   typeflag(_NFre(p)) |= T_GC_MARK
 #define clear_mark(p)                 typeflag(p) &= (~T_GC_MARK)
 /* using bit 23 for this makes a big difference in the GC */
 
-static int not_heap = -1;
+static int32_t not_heap = -1;
 #define heap_location(p)              (p)->hloc
 #define not_in_heap(p)                ((_NFre(p))->hloc < 0)
 #define in_heap(p)                    ((_NFre(p))->hloc >= 0)
@@ -2073,8 +2083,8 @@ static int not_heap = -1;
 #define G_ARGLEN                      (1 << 3)  /* arglist length */
 #define G_SYM                         (1 << 4)  /* expression symbol access */
 #define G_AND                         (1 << 5)  /* and second clause */
-#define G_CTR                         (1 << 6)  /* saved symbol ctr -- currently unused */
-#define G_MASK                        (G_ARGLEN | G_SYM | G_AND | S_OP | S_LINE | S_LEN | S_SYNOP | G_CTR)
+#define G_DIRECT                      (1 << 6)  /* direct call info */
+#define G_MASK                        (G_ARGLEN | G_SYM | G_AND | S_OP | S_LINE | S_LEN | S_SYNOP | G_DIRECT)
 
 #define opt3_is_set(p)                (((p)->debugger_bits & G_SET) != 0)
 #define set_opt3_is_set(p)            (p)->debugger_bits |= G_SET
@@ -2084,7 +2094,7 @@ static int not_heap = -1;
 #define set_opt3(p, x, Role)          set_opt3_1(cur_sc, _TPair(p), x, Role, __func__, __LINE__)
 
 /* opt1 == s_hash, opt2 == s_fstr, opt3 == s_op|len|line and op==len so they are contradictory (but only op/line|opt3 actually collide)
- * line|len|op: unsigned int set G_SET and S_* if S_LEN -> not op and vice versa
+ * line|len|op: uint32_t set G_SET and S_* if S_LEN -> not op and vice versa
  * another collider: pair_syntax_op|optimize_op below.  Both need bits: S_SYNOP?
  */
 
@@ -2123,19 +2133,6 @@ static int not_heap = -1;
 #define opt_slot1(P)                  _TSlt(opt1(P,              E_SLOT))
 #define set_opt_slot1(P, X)           set_opt1(P, _TSlt(X),      E_SLOT)
 
-#define c_callee(f)                   ((s7_function)opt2(f,      F_CALL))
-#define c_call(f)                     ((s7_function)opt2(f,      F_CALL))
-#if DEBUGGING
-  #define set_c_call(f, X)              do {if (!(X)) fprintf(stderr, "%s[%d] c_call null\n", __func__, __LINE__); set_opt2(f, (s7_pointer)(X), F_CALL);} while (0)
-  #define set_x_call_checked(f, X)      do {if ((!(X)) && (strcmp(__func__, "check_and") != 0) && (strcmp(__func__, "check_or") != 0)) fprintf(stderr, "%s[%d] x_call null\n", __func__, __LINE__); set_opt2(f, (s7_pointer)(X), F_CALL); if (X) set_has_all_x(f); else clear_has_all_x(f);} while (0)
-  #define set_x_call(f, X)              do {if (!(X)) fprintf(stderr, "%s[%d] x_call null\n", __func__, __LINE__); set_opt2(f, (s7_pointer)(X), F_CALL); if (X) set_has_all_x(f); else clear_has_all_x(f);} while (0)
-#else
-  #define set_c_call(f, X)              set_opt2(f, (s7_pointer)(X), F_CALL)
-  #define set_x_call(f, X)              do {set_opt2(f, (s7_pointer)(X), F_CALL); set_has_all_x(f);} while (0)
-  #define set_x_call_checked(f, X)      do {set_opt2(f, (s7_pointer)(X), F_CALL); if (X) set_has_all_x(f); else clear_has_all_x(f);} while (0)
-#endif
-#define set_x_call_direct(f, X)         do {set_opt2(f, (s7_pointer)(X), F_CALL); set_has_all_x(f);} while (0)
-
 #define opt_key(P)                    _NFre(opt2(P,              F_KEY))
 #define set_opt_key(P, X)             set_opt2(P, _NFre(X),      F_KEY)
 #define opt_slow(P)                   _TLst(opt2(P,              F_SLOW))
@@ -2148,6 +2145,8 @@ static int not_heap = -1;
 #define set_opt_con2(P, X)            set_opt2(P, _NFre(X),      F_CON)
 #define opt_lambda2(P)                _TPair(opt2(P,             F_LAMBDA))
 #define set_opt_lambda2(P, X)         set_opt2(P, _TPair(X),     F_LAMBDA)
+#define opt_direct_x_call(P)          opt2(P,                    F_LAMBDA)
+#define set_opt_direct_x_call(P, X)   set_opt2(P, (s7_pointer)(X), F_LAMBDA)
 
 #define arglist_length(P)             _TI(opt3(cdr(P),           G_ARGLEN))
 #define set_arglist_length(P, X)      set_opt3(cdr(P), _TI(X),   G_ARGLEN)
@@ -2157,6 +2156,21 @@ static int not_heap = -1;
 #define set_opt_and_2_test(P, X)      set_opt3(P, _TPair(X),     G_AND)
 #define opt_else(P)                   _NFre(opt3(P,              G_AND))
 #define set_opt_else(P, X)            set_opt3(P, _NFre(X),      G_AND)
+#define opt_direct_x(P)               opt3(P,                    G_DIRECT)
+#define set_opt_direct_x(P, X)        set_opt3(P, (s7_pointer)(X), G_DIRECT)
+
+#define c_callee(f)                   ((s7_function)opt2(f,      F_CALL))
+#define c_call(f)                     ((s7_function)opt2(f,      F_CALL))
+#if DEBUGGING
+  #define set_c_call(f, _X_)          do {s7_pointer X; X = (s7_pointer)(_X_); if (!(X)) fprintf(stderr, "%s[%d] c_call null\n", __func__, __LINE__); set_opt2(f, X, F_CALL);} while (0)
+  #define set_x_call_checked(f, _X_)  do {s7_pointer X; X = (s7_pointer)(_X_); if ((!(X)) && (strcmp(__func__, "check_and") != 0) && (strcmp(__func__, "check_or") != 0)) fprintf(stderr, "%s[%d] x_call null\n", __func__, __LINE__); set_opt2(f, X, F_CALL); if (X) set_has_all_x(f); else clear_has_all_x(f);} while (0)
+  #define set_x_call(f, _X_)          do {s7_pointer X; X = (s7_pointer)(_X_); if (!(X)) fprintf(stderr, "%s[%d] x_call null: %s\n", __func__, __LINE__, DISPLAY(f)); set_opt2(f, X, F_CALL); if (X) set_has_all_x(f); else clear_has_all_x(f);} while (0)
+#else
+  #define set_c_call(f, X)            set_opt2(f, (s7_pointer)(X), F_CALL)
+  #define set_x_call(f, X)            do {set_opt2(f, (s7_pointer)(X), F_CALL); set_has_all_x(f);} while (0)
+  #define set_x_call_checked(f, _X_)  do {s7_pointer X; X = (s7_pointer)(_X_); set_opt2(f, X, F_CALL); if (X) set_has_all_x(f); else clear_has_all_x(f);} while (0)
+#endif
+#define set_x_call_direct(f, X)       do {set_opt2(f, (s7_pointer)(X), F_CALL); set_has_all_x(f);} while (0)
 
 
 #define car(p)                        (_TLst(p))->object.cons.car
@@ -2245,7 +2259,7 @@ static int not_heap = -1;
 #define clear_hop(P)                  set_optimize_op(P, op_no_hop(P))
 #define clear_optimize_op(P)          set_optimize_op(P, 0)
 #define set_safe_optimize_op(P, Q)    do {set_optimized(P); set_optimize_op(P, Q);} while (0)
-#define set_unsafe_optimize_op(P, Q)  do {set_unsafely_optimized(P); set_optimize_op(P, Q);} while (0)
+#define set_unsafe_optimize_op(P, Q)  do {set_unsafely_optimized(P); set_optimize_op(P, Q); /* if (is_unknown_op(Q)) fprintf(stderr, "%d %s %s\n", __LINE__, opt_names[Q], DISPLAY_80(P)); */ } while (0)
 
 #define is_symbol(p)                  (type(p) == T_SYMBOL)
 #define is_safe_symbol(p)             ((is_symbol(p)) && (is_slot(find_symbol(sc, p))))
@@ -2258,7 +2272,7 @@ static int not_heap = -1;
 #define symbol_id(p)                  (_TSym(p))->object.sym.id
 #define symbol_set_id(p, X)           (_TSym(p))->object.sym.id = X
 /* we need 64-bits here, since we don't want this thing to wrap around, and frames are created at a great rate
- *    callgrind says this is faster than an unsigned int!
+ *    callgrind says this is faster than an uint32_t!
  */
 #define symbol_syntax_op(p)           syntax_opcode(slot_value(global_slot(p)))
 
@@ -2523,7 +2537,7 @@ static int not_heap = -1;
 #define closure_arity_unknown(p)      (closure_arity(p) == CLOSURE_ARITY_NOT_SET)
 #define is_thunk(Sc, Fnc)             ((type(Fnc) >= T_GOTO) && (s7_is_aritable(Sc, Fnc, 0)))
 
-#define is_optlist(p)                 (type(p) == T_OPTLIST)
+/* #define is_optlist(p)              (type(p) == T_OPTLIST) */
 #define optlist_num_exprs(p)          (_TOpt(p))->object.opt.num_exprs
 #define optlist_set_num_exprs(p, Val) (_TOpt(p))->object.opt.num_exprs = Val
 #define optlist_addr(p)               (_TOpt(p))->object.opt.addr
@@ -2533,7 +2547,7 @@ static int not_heap = -1;
 #define optlist_set_num_args(p, Val)  (_TOpt(p))->object.opt.num_args = Val
 #define optlist_len(p)                (_TOpt(p))->object.opt.len
 #define optlist_set_len(p, Val)       (_TOpt(p))->object.opt.len = Val
-#define optlist_opts(p)               (_TOpt(p))->object.opt.opts
+/* #define optlist_opts(p)            (_TOpt(p))->object.opt.opts */
 
 #define hook_has_functions(p)         (is_pair(s7_hook_functions(sc, _TClo(p))))
 
@@ -2563,8 +2577,8 @@ enum {DWIND_INIT, DWIND_BODY, DWIND_FINISH};
 #define c_object_cref(p)              (_TObj(p))->object.c_obj.ref
 
 static c_object_t **object_types = NULL;
-static int object_types_size = 0;
-static int num_object_types = 0;
+static int32_t object_types_size = 0;
+static int32_t num_object_types = 0;
 
 #define c_object_info(p)              object_types[c_object_type(_TObj(p))]
 #define c_object_ref(p)               c_object_info(p)->ref
@@ -2583,7 +2597,10 @@ static int num_object_types = 0;
 #define c_object_scheme_name(p)       _TStr(c_object_info(p)->scheme_name)
 /* #define c_object_outer_type(p)     c_object_info(p)->outer_type */
 
-#define raw_pointer(p)                (_TPtr(p))->object.c_pointer
+#define raw_pointer(p)                (_TPtr(p))->object.cptr.c_pointer
+#define raw_pointer_type(p)           (_TPtr(p))->object.cptr.c_type
+#define raw_pointer_info(p)           (_TPtr(p))->object.cptr.info
+#define is_c_pointer(p)               (type(p) == T_C_POINTER)
 
 #define is_counter(p)                 (type(p) == T_COUNTER)
 #define counter_result(p)             (_TCtr(p))->object.ctr.result
@@ -2636,7 +2653,7 @@ static int num_object_types = 0;
 #define print_name(p)                 (char *)((_TNum(p))->object.number.pval.name + 1)
 #define print_name_length(p)          (_TNum(p))->object.number.pval.name[0]
 
-static void set_print_name(s7_pointer p, const char *name, int len)
+static void set_print_name(s7_pointer p, const char *name, int32_t len)
 {
   if ((len < PRINT_NAME_SIZE) &&
       (!is_mutable(p)))
@@ -2714,7 +2731,7 @@ static s7_int s7_int_max = 0, s7_int_min = 0;
  * timing tests involving these are very hard to interpret -- pervasive inconsistency!
  */
 
-static int safe_strlen(const char *str)
+static inline int32_t safe_strlen(const char *str)
 {
   /* this is safer than strlen, and slightly faster */
   char *tmp = (char *)str;
@@ -2724,7 +2741,7 @@ static int safe_strlen(const char *str)
 }
 
 
-static int safe_strlen5(const char *str)
+static int32_t safe_strlen5(const char *str)
 {
   /* safe_strlen but we quit counting if len>5 */
   char *tmp = (char *)str;
@@ -2736,7 +2753,7 @@ static int safe_strlen5(const char *str)
 }
 
 
-static char *copy_string_with_length(const char *str, int len)
+static char *copy_string_with_length(const char *str, int32_t len)
 {
   char *newstr;
   newstr = (char *)malloc((len + 1) * sizeof(char));
@@ -2773,15 +2790,18 @@ static bool safe_strcmp(const char *s1, const char *s2)
 }
 
 
-static bool local_strncmp(const char *s1, const char *s2, unsigned int n)
+static bool local_strncmp(const char *s1, const char *s2, uint32_t n)
 {
-#if defined(__x86_64__) || defined(__i386__) /* unaligned accesses are safe on i386 hardware, sez everyone */
+#if S7_ALIGNED
+  return(strncmp(s1, s2, n) == 0);
+#else
+#if (defined(__x86_64__) || defined(__i386__)) /* unaligned accesses are safe on i386 hardware, sez everyone */
   if (n >= 4)
     {
-      int *is1, *is2;
-      int n4 = n >> 2;
-      is1 = (int *)s1;
-      is2 = (int *)s2;
+      int32_t *is1, *is2;
+      int32_t n4 = n >> 2;
+      is1 = (int32_t *)s1;
+      is2 = (int32_t *)s2;
       do {if (*is1++ != *is2++) return(false);} while (--n4 > 0);
       s1 = (const char *)is1;
       s2 = (const char *)is2;
@@ -2794,18 +2814,22 @@ static bool local_strncmp(const char *s1, const char *s2, unsigned int n)
       n--;
     }
   return(true);
+#endif
 }
 
 #define strings_are_equal_with_length(Str1, Str2, Len) (local_strncmp(Str1, Str2, Len))
 
 
- static void memclr(void *s, size_t n)
+static void memclr(void *s, size_t n)
 {
   unsigned char *s2;
-#if defined(__x86_64__) || defined(__i386__)
+#if S7_ALIGNED
+  s2 = (unsigned char *)s;
+#else
+#if (defined(__x86_64__) || defined(__i386__))
   if (n >= 4)
     {
-      int *s1 = (int *)s;
+      int32_t *s1 = (int32_t *)s;
       size_t n4 = n >> 2;
       do {*s1++ = 0;} while (--n4 > 0);
       n &= 3;
@@ -2815,6 +2839,7 @@ static bool local_strncmp(const char *s1, const char *s2, unsigned int n)
 #else
   s2 = (unsigned char *)s;
 #endif
+#endif
   while (n > 0)
     {
       *s2++ = 0;
@@ -2823,58 +2848,31 @@ static bool local_strncmp(const char *s1, const char *s2, unsigned int n)
 }
 
 
-#define SHOW_DEBUG_HISTORY 0
-#if DEBUGGING && SHOW_DEBUG_HISTORY
-  #define DEBUG_HISTORY_SIZE 16
-  static char *debug_history[DEBUG_HISTORY_SIZE];
-  static int debug_history_loc = 0;
-  static void add_debug_history(char *str)
-  {
-    if (debug_history[debug_history_loc])
-      free(debug_history[debug_history_loc]);
-    debug_history[debug_history_loc++] = copy_string(str);
-    if (debug_history_loc >= DEBUG_HISTORY_SIZE)
-      debug_history_loc = 0;
-  }
-  static void show_debug_history(void)
-  {
-    int i;
-    for (i = debug_history_loc; i < DEBUG_HISTORY_SIZE; i++)
-      fprintf(stderr, "%s\n", debug_history[i]);
-    for (i = 0; i < debug_history_loc; i++)
-      fprintf(stderr, "%s\n", debug_history[i]);
-    fprintf(stderr, "\n");
-  }
-#endif
-
-
 /* ---------------- forward decls ---------------- */
 
-static char *number_to_string_base_10(s7_pointer obj, int width, int precision, char float_choice, int *nlen, use_write_t choice);
-static bool is_proper_list(s7_scheme *sc, s7_pointer lst);
+static char *number_to_string_base_10(s7_pointer obj, int32_t width, int32_t precision, char float_choice, int32_t *nlen, use_write_t choice);
 static s7_pointer iterator_finished(s7_scheme *sc, s7_pointer iterator);
 static s7_pointer eval(s7_scheme *sc, opcode_t first_op);
 static s7_pointer division_by_zero_error(s7_scheme *sc, s7_pointer caller, s7_pointer arg);
 static s7_pointer file_error(s7_scheme *sc, const char *caller, const char *descr, const char *name);
 static s7_pointer prepackaged_type_name(s7_scheme *sc, s7_pointer x);
-static void s7_warn(s7_scheme *sc, int len, const char *ctrl, ...);
+static void s7_warn(s7_scheme *sc, int32_t len, const char *ctrl, ...);
 static s7_pointer safe_reverse_in_place(s7_scheme *sc, s7_pointer list);
 static s7_pointer cons_unchecked(s7_scheme *sc, s7_pointer a, s7_pointer b);
-static s7_pointer permanent_cons(s7_pointer a, s7_pointer b, unsigned int type);
-static s7_pointer permanent_list(s7_scheme *sc, int len);
+static s7_pointer permanent_cons(s7_pointer a, s7_pointer b, uint32_t type);
+static s7_pointer permanent_list(s7_scheme *sc, int32_t len);
 static void free_object(s7_pointer a);
-static s7_pointer make_atom(s7_scheme *sc, char *q, int radix, bool want_symbol, bool with_error);
+static s7_pointer make_atom(s7_scheme *sc, char *q, int32_t radix, bool want_symbol, bool with_error);
 static s7_pointer apply_error(s7_scheme *sc, s7_pointer obj, s7_pointer args);
-static int remember_file_name(s7_scheme *sc, const char *file);
-static const char *type_name(s7_scheme *sc, s7_pointer arg, int article);
-static s7_pointer make_vector_1(s7_scheme *sc, s7_int len, bool filled, unsigned int typ);
-static s7_pointer make_string_uncopied_with_length(s7_scheme *sc, char *str, int len);
-static s7_pointer make_string_wrapper_with_length(s7_scheme *sc, const char *str, int len);
-static s7_pointer make_string_wrapper(s7_scheme *sc, const char *str);
+static int32_t remember_file_name(s7_scheme *sc, const char *file);
+static const char *type_name(s7_scheme *sc, s7_pointer arg, int32_t article);
+static s7_pointer make_vector_1(s7_scheme *sc, s7_int len, bool filled, uint32_t typ);
+static s7_pointer make_string_uncopied_with_length(s7_scheme *sc, char *str, int32_t len);
+static s7_pointer make_string_wrapper_with_length(s7_scheme *sc, const char *str, int32_t len);
 static void check_for_substring_temp(s7_scheme *sc, s7_pointer expr);
 static s7_pointer splice_in_values(s7_scheme *sc, s7_pointer args);
 static void pop_input_port(s7_scheme *sc);
-static char *object_to_truncated_string(s7_scheme *sc, s7_pointer p, int len);
+static char *object_to_truncated_string(s7_scheme *sc, s7_pointer p, int32_t len);
 static token_t token(s7_scheme *sc);
 static s7_pointer implicit_index(s7_scheme *sc, s7_pointer obj, s7_pointer indices);
 static bool s7_is_morally_equal(s7_scheme *sc, s7_pointer x, s7_pointer y);
@@ -2892,7 +2890,7 @@ static bool int_optimize(s7_scheme *sc, s7_pointer expr);
 static bool bool_optimize(s7_scheme *sc, s7_pointer expr);
 static bool bool_optimize_nw(s7_scheme *sc, s7_pointer expr);
 static bool cell_optimize(s7_scheme *sc, s7_pointer expr);
-static void pc_fallback(s7_scheme *sc, int new_pc);
+static void pc_fallback(s7_scheme *sc, int32_t new_pc);
 
 
 #if WITH_GMP
@@ -2904,7 +2902,7 @@ static double next_random(s7_pointer r);
 #if DEBUGGING && WITH_GCC
   static s7_pointer find_symbol_unchecked_1(s7_scheme *sc, s7_pointer symbol);
   #define find_symbol_unchecked(Sc, Sym) check_null_sym(Sc, find_symbol_unchecked_1(Sc, Sym), Sym, __LINE__, __func__)
-  static s7_pointer check_null_sym(s7_scheme *sc, s7_pointer p, s7_pointer sym, int line, const char *func);
+  static s7_pointer check_null_sym(s7_scheme *sc, s7_pointer p, s7_pointer sym, int32_t line, const char *func);
   #define find_symbol_unexamined(Sc, Sym) find_symbol_unchecked_1(Sc, Sym)
   static s7_pointer check_sym(s7_scheme *sc, s7_pointer sym);
 #else
@@ -2963,7 +2961,7 @@ static s7_pointer car_a_list_string, cdr_a_list_string, caar_a_list_string, cadr
                   a_normal_real_string, a_rational_string, a_boolean_string, a_number_string, a_let_string, 
                   a_procedure_string, a_proper_list_string, a_thunk_string, something_applicable_string, a_symbol_string, 
                   a_non_negative_integer_string, a_format_port_string, an_unsigned_byte_string, value_is_missing_string,
-                  a_non_constant_symbol_string, an_eq_func_string, a_sequence_string, its_too_small_string, 
+                  a_non_constant_symbol_string, an_eq_func_string, a_sequence_string, its_too_small_string, parameter_set_twice_string,
                   a_normal_procedure_string, its_too_large_string, its_negative_string, result_is_too_large_string, 
                   its_nan_string, its_infinite_string, too_many_indices_string, a_valid_radix_string, an_input_string_port_string, 
                   an_input_file_port_string, an_output_string_port_string, an_output_file_port_string, a_random_state_object_string;
@@ -3011,9 +3009,10 @@ enum {OP_NO_OP, OP_GC_PROTECT,
 
       OP_SET_UNCHECKED, OP_SET_SYMBOL_C, OP_SET_SYMBOL_L, OP_SET_SYMBOL_S, OP_SET_SYMBOL_Q, OP_SET_SYMBOL_P, OP_SET_SYMBOL_Z, OP_SET_SYMBOL_A,
       OP_SET_SYMBOL_opSq, OP_SET_SYMBOL_opCq, OP_SET_SYMBOL_opSSq, OP_SET_SYMBOL_opSSSq, 
+      OP_SET_SYMBOL_opLq, OP_SET_SYMBOL_opLLq, 
       OP_SET_NORMAL, OP_SET_PAIR, OP_SET_DILAMBDA, OP_SET_DILAMBDA_Z, OP_SET_DILAMBDA_Z_1, OP_SET_PAIR_Z, OP_SET_PAIR_A, OP_SET_PAIR_P, OP_SET_PAIR_ZA,
       OP_SET_PAIR_P_1, OP_SET_WITH_ACCESSOR, OP_SET_PWS, OP_SET_LET_S, OP_SET_LET_ALL_X,
-      OP_SET_PAIR_C, OP_SET_PAIR_C_P, OP_SET_PAIR_C_P_1, OP_SET_SAFE,
+      OP_SET_SAFE,
       OP_INCREMENT_1, OP_DECREMENT_1, OP_SET_CONS,
       OP_INCREMENT_SS, OP_INCREMENT_SSS, OP_INCREMENT_SZ, OP_INCREMENT_SA, OP_INCREMENT_SAA,
 
@@ -3023,7 +3022,7 @@ enum {OP_NO_OP, OP_GC_PROTECT,
 
       OP_LET_NO_VARS, OP_NAMED_LET, OP_NAMED_LET_NO_VARS, OP_NAMED_LET_STAR,
       OP_LET_C, OP_LET_S, OP_LET_S_Z, OP_LET_ALL_C, OP_LET_ALL_S, OP_LET_ALL_X,
-      OP_LET_STAR_ALL_X, OP_LET_opCq, OP_LET_opSSq, OP_LET_opSSq_E, OP_LET_opaSSq_E,
+      OP_LET_STAR_ALL_X, OP_LET_STAR_A2, OP_LET_STAR_A, OP_LET_opCq, OP_LET_opSSq, OP_LET_opSSq_E, OP_LET_opaSSq_E,
       OP_LET_opSq, OP_LET_ALL_opSq, OP_LET_opSq_P, OP_LET_CAR, OP_LET_ONE, OP_LET_ONE_1, OP_LET_Z, OP_LET_Z_1, OP_LET_A, OP_LET_A_Z,
 
       OP_CASE_A_E_S, OP_CASE_A_I_S, OP_CASE_A_G_S, OP_CASE_A_E_G, OP_CASE_A_G_G, 
@@ -3032,7 +3031,7 @@ enum {OP_NO_OP, OP_GC_PROTECT,
       OP_CASE_E_S, OP_CASE_I_S, OP_CASE_G_S, OP_CASE_E_G, OP_CASE_G_G, 
 
       OP_IF_UNCHECKED, OP_AND_UNCHECKED, OP_AND_P, OP_AND_P1, OP_AND_AP, OP_AND_AZ, OP_AND_SAFE_P, OP_AND_SAFE_AA, 
-      OP_OR_UNCHECKED, OP_OR_P, OP_OR_P1, OP_OR_AP, OP_OR_AZ, OP_OR_SAFE_P, OP_OR_SAFE_AA,
+      OP_OR_UNCHECKED, OP_OR_P, OP_OR_P1, OP_OR_AP, OP_OR_SAFE_P, OP_OR_SAFE_AA,
       OP_COND_FEED, OP_COND_FEED_1, OP_WHEN_S, OP_WHEN_A, OP_WHEN_P, OP_UNLESS_S, OP_UNLESS_A,
 
       OP_IF_S_P, OP_IF_S_P_P, OP_IF_S_R, OP_IF_S_N, OP_IF_S_N_N,
@@ -3090,7 +3089,8 @@ enum {OP_SAFE_C_C, HOP_SAFE_C_C,
       OP_SAFE_C_S, HOP_SAFE_C_S, OP_SAFE_C_L, HOP_SAFE_C_L,
       OP_SAFE_CAR_S, HOP_SAFE_CAR_S, OP_SAFE_CDR_S, HOP_SAFE_CDR_S, OP_SAFE_CADR_S, HOP_SAFE_CADR_S,
       OP_SAFE_IS_PAIR_S, HOP_SAFE_IS_PAIR_S, OP_SAFE_IS_NULL_S, HOP_SAFE_IS_NULL_S, OP_SAFE_IS_SYMBOL_S, HOP_SAFE_IS_SYMBOL_S, /* order matters here */
-      OP_SAFE_C_SS, HOP_SAFE_C_SS, OP_SAFE_C_SC, HOP_SAFE_C_SC, OP_SAFE_C_CS, HOP_SAFE_C_CS,
+      OP_SAFE_C_SS, HOP_SAFE_C_SS, OP_SAFE_C_LL, HOP_SAFE_C_LL, 
+      OP_SAFE_C_SC, HOP_SAFE_C_SC, OP_SAFE_C_CS, HOP_SAFE_C_CS,
       OP_SAFE_C_SQ, HOP_SAFE_C_SQ, OP_SAFE_C_QS, HOP_SAFE_C_QS, OP_SAFE_C_QQ, HOP_SAFE_C_QQ,
       OP_SAFE_C_CQ, HOP_SAFE_C_CQ, OP_SAFE_C_QC, HOP_SAFE_C_QC,
       OP_SAFE_C_SSS, HOP_SAFE_C_SSS, OP_SAFE_C_SCS, HOP_SAFE_C_SCS, OP_SAFE_C_SSC, HOP_SAFE_C_SSC, OP_SAFE_C_CSS, HOP_SAFE_C_CSS,
@@ -3126,6 +3126,9 @@ enum {OP_SAFE_C_C, HOP_SAFE_C_C,
       OP_SAFE_C_op_S_opSq_q, HOP_SAFE_C_op_S_opSq_q, OP_SAFE_C_op_opSq_S_q, HOP_SAFE_C_op_opSq_S_q, 
       OP_SAFE_C_opSq_Q, HOP_SAFE_C_opSq_Q, OP_SAFE_C_opSq_QS, HOP_SAFE_C_opSq_QS,
 
+      OP_SAFE_C_STAR_A, HOP_SAFE_C_STAR_A, OP_SAFE_C_STAR_AA, HOP_SAFE_C_STAR_AA, OP_SAFE_C_STAR_ALL_X, HOP_SAFE_C_STAR_ALL_X, 
+
+      OP_SAFE_QUOTE, HOP_SAFE_QUOTE,
       OP_SAFE_IFA_SS_A, HOP_SAFE_IFA_SS_A, OP_SAFE_C_P, HOP_SAFE_C_P,
 
       OP_SAFE_C_Z, HOP_SAFE_C_Z, OP_SAFE_C_ZZ, HOP_SAFE_C_ZZ, OP_SAFE_C_SZ, HOP_SAFE_C_SZ, OP_SAFE_C_ZS, HOP_SAFE_C_ZS,
@@ -3144,6 +3147,7 @@ enum {OP_SAFE_C_C, HOP_SAFE_C_C,
       OP_CLOSURE_ALL_X, HOP_CLOSURE_ALL_X, OP_CLOSURE_ALL_S, HOP_CLOSURE_ALL_S, OP_CLOSURE_ALL_S_P, HOP_CLOSURE_ALL_S_P,
       OP_CLOSURE_FA, HOP_CLOSURE_FA,
       OP_CLOSURE_AP, HOP_CLOSURE_AP, OP_CLOSURE_PA, HOP_CLOSURE_PA, 
+      OP_CLOSURE_ANY_ALL_X, HOP_CLOSURE_ANY_ALL_X, 
 
       OP_CLOSURE_STAR_A, HOP_CLOSURE_STAR_A, OP_CLOSURE_STAR_AA, HOP_CLOSURE_STAR_AA, OP_CLOSURE_STAR_ALL_X, HOP_CLOSURE_STAR_ALL_X,
 
@@ -3151,10 +3155,10 @@ enum {OP_SAFE_C_C, HOP_SAFE_C_C,
       OP_SAFE_THUNK_E, HOP_SAFE_THUNK_E, 
       OP_SAFE_THUNK_P, HOP_SAFE_THUNK_P, OP_SAFE_LTHUNK_P, HOP_SAFE_LTHUNK_P, 
 
-      OP_SAFE_CLOSURE_S, HOP_SAFE_CLOSURE_S, OP_SAFE_LCLOSURE_L, HOP_SAFE_LCLOSURE_L, 
+      OP_SAFE_CLOSURE_S, HOP_SAFE_CLOSURE_S, 
       OP_SAFE_CLOSURE_C, HOP_SAFE_CLOSURE_C, OP_SAFE_CLOSURE_P, HOP_SAFE_CLOSURE_P, 
       OP_SAFE_CLOSURE_SS, HOP_SAFE_CLOSURE_SS, OP_SAFE_CLOSURE_SC, HOP_SAFE_CLOSURE_SC, OP_SAFE_CLOSURE_CS, HOP_SAFE_CLOSURE_CS,
-      OP_SAFE_CLOSURE_A, HOP_SAFE_CLOSURE_A, OP_SAFE_LCLOSURE_A, HOP_SAFE_LCLOSURE_A, 
+      OP_SAFE_CLOSURE_A, HOP_SAFE_CLOSURE_A, OP_SAFE_LCLOSURE_A, HOP_SAFE_LCLOSURE_A, OP_SAFE_LCLOSURE_A_P, HOP_SAFE_LCLOSURE_A_P, 
       OP_SAFE_CLOSURE_SA, HOP_SAFE_CLOSURE_SA, 
       OP_SAFE_CLOSURE_S_P, HOP_SAFE_CLOSURE_S_P, OP_SAFE_LCLOSURE_L_P, HOP_SAFE_LCLOSURE_L_P, 
       OP_SAFE_CLOSURE_SAA, HOP_SAFE_CLOSURE_SAA, OP_SAFE_CLOSURE_S_C, HOP_SAFE_CLOSURE_S_C,
@@ -3175,8 +3179,10 @@ enum {OP_SAFE_C_C, HOP_SAFE_C_C,
       OP_C_FA, HOP_C_FA, OP_C_AA, HOP_C_AA,
 
       OP_GOTO, HOP_GOTO, OP_GOTO_C, HOP_GOTO_C, OP_GOTO_S, HOP_GOTO_S, OP_GOTO_A, HOP_GOTO_A,
-      OP_ITERATE, HOP_ITERATE,
-      OP_VECTOR_A, HOP_VECTOR_A, OP_STRING_A, HOP_STRING_A,
+      OP_ITERATE, HOP_ITERATE, 
+      OP_CONTINUATION_A, HOP_CONTINUATION_A,
+      OP_VECTOR_A, HOP_VECTOR_A, OP_CVECTOR_A, HOP_CVECTOR_A, 
+      OP_STRING_A, HOP_STRING_A,
       OP_C_OBJECT_A, HOP_C_OBJECT_A, OP_PAIR_A, HOP_PAIR_A, OP_HASH_TABLE_A, HOP_HASH_TABLE_A,
       OP_ENVIRONMENT_Q, HOP_ENVIRONMENT_Q, OP_ENVIRONMENT_A, HOP_ENVIRONMENT_A,
 
@@ -3188,6 +3194,8 @@ enum {OP_SAFE_C_C, HOP_SAFE_C_C,
       OP_SAFE_C_SP, HOP_SAFE_C_SP, OP_SAFE_C_CP, HOP_SAFE_C_CP, OP_SAFE_C_QP, HOP_SAFE_C_QP, OP_SAFE_C_AP, HOP_SAFE_C_AP,
       OP_SAFE_C_PS, HOP_SAFE_C_PS, OP_SAFE_C_PC, HOP_SAFE_C_PC, OP_SAFE_C_PQ, HOP_SAFE_C_PQ,
       OP_SAFE_C_SSP, HOP_SAFE_C_SSP,
+      
+      OP_S, HOP_S, OP_S_S, HOP_S_S, OP_S_C, HOP_S_C, OP_S_A, HOP_S_A,
       OPT_MAX_DEFINED
 };
 
@@ -3200,26 +3208,26 @@ static const char *op_names[OP_MAX_DEFINED_1] = {
       "apply", "eval_macro", "lambda", "quote", "macroexpand",
       "define", "define1", "begin", "begin_unchecked", "begin1",
       "if", "if1", "when", "when1", "unless", "unless1", "set", "set1", "set2",
-      "let", "let1", "let_star", "let_star1", "let_star2",
-      "letrec", "letrec1", "letrec_star", "letrec_star1", 
+      "let", "let1", "let*", "let*1", "let*2",
+      "letrec", "letrec1", "letrec*", "letrec*1", 
       "let_temporarily", "let_temp_unchecked", "let_temp_init1", "let_temp_init2", "let_temp_done", "let_temp_done1",
       "cond", "cond1", "cond1_1", "cond_simple", "cond1_simple", "cond_unchecked_z", 
       "and", "and1", "or", "or1",
-      "define_macro", "define_macro_star", "define_expansion",
+      "define_macro", "define_macro*", "define_expansion",
       "case", "read_list", "read_next", "read_dot", "read_quote",
       "read_quasiquote", "read_unquote", "read_apply_values",
       "read_vector", "read_byte_vector", "read_int_vector", "read_float_vector", "read_done",
       "load_return_if_eof", "load_close_and_pop_if_eof", "eval_done",
       "catch", "dynamic_wind", "define_constant", "define_constant1",
       "do", "do_end", "do_end1", "do_step", "do_step2", "do_init",
-      "define_star", "lambda_star", "lambda_star_default", "error_quit", "unwind_input", "unwind_output",
+      "define*", "lambda*", "lambda*_default", "error_quit", "unwind_input", "unwind_output",
       "error_hook_quit",
       "with_let", "with_let1", "with_let_unchecked", "with_let_s",
       "with_baffle", "with_baffle_unchecked", "expansion",
       "for_each", "for_each_1", "for_each_2", "for_each_3", 
       "map", "map_1", "map_gather", "map_gather_1", "barrier", "deactivate_goto",
 
-      "define_bacro", "define_bacro_star",
+      "define_bacro", "define_bacro*",
       "get_output_string", "get_output_string_1",
       "sort", "sort1", "sort2", "sort3", "sort_pair_end", "sort_vector_end", "sort_string_end",
       "eval_string_1", "eval_string_2",
@@ -3229,20 +3237,21 @@ static const char *op_names[OP_MAX_DEFINED_1] = {
 
       "set_unchecked", "set_symbol_c", "set_symbol_l", "set_symbol_s", "set_symbol_q", "set_symbol_p", "set_symbol_z", "set_symbol_a",
       "set_symbol_opsq", "set_symbol_opcq", "set_symbol_opssq", "set_symbol_opsssq", 
+      "set_symbol_oplq", "set_symbol_opllq", 
       "set_normal", "set_pair", "set_dilambda", "set_dilambda_z", "set_dilambda_z_1",
       "set_pair_z", "set_pair_a", "set_pair_p", "set_pair_za",
       "set_pair_p_1", "set_with_accessor", "set_pws", "set_let_s", "set_let_all_x",
-      "set_pair_c", "set_pair_c_p", "set_pair_c_p_1", "set_safe",
+      "set_safe",
       "increment_1", "decrement_1", "set_cons",
       "increment_ss", "increment_sss", "increment_sz", "increment_sa", "increment_saa",
 
-      "let_star_unchecked", "letrec_unchecked", "letrec_star_unchecked", "cond_unchecked",
-      "lambda_star_unchecked", "do_unchecked", "define_unchecked", "define_star_unchecked", "define_funchecked", "define_constant_unchecked",
+      "let*_unchecked", "letrec_unchecked", "letrec*_unchecked", "cond_unchecked",
+      "lambda*_unchecked", "do_unchecked", "define_unchecked", "define*_unchecked", "define_funchecked", "define_constant_unchecked",
       "define_with_accessor", "define_macro_with_accessor",
 
-      "let_no_vars", "named_let", "named_let_no_vars", "named_let_star",
+      "let_no_vars", "named_let", "named_let_no_vars", "named_let*",
       "let_c", "let_s", "let_s_z", "let_all_c", "let_all_s", "let_all_x",
-      "let_star_all_x", "let_opcq", "let_opssq", "let_opssq_e", "let_opassq_e",
+      "let*_all_x", "let*_a2", "let*_a", "let_opcq", "let_opssq", "let_opssq_e", "let_opassq_e",
       "let_opsq", "let_all_opsq", "let_opsq_p", "let_car", "let_one", "let_one_1", "let_z", "let_z_1", "let_a", "let_a_z",
 
       "case_a_e_s", "case_a_i_s", "case_a_g_s", "case_a_e_g", "case_a_g_g", 
@@ -3251,7 +3260,7 @@ static const char *op_names[OP_MAX_DEFINED_1] = {
       "case_e_s", "case_i_s", "case_g_s", "case_e_g", "case_g_g", 
 
       "if_unchecked", "and_unchecked", "and_p", "and_p1", "and_ap", "and_az", "and_safe_p", "and_safe_aa", 
-      "or_unchecked", "or_p", "or_p1", "or_ap", "or_az", "or_safe_p", "or_safe_aa",
+      "or_unchecked", "or_p", "or_p1", "or_ap", "or_safe_p", "or_safe_aa",
       "cond_feed", "cond_feed_1", "when_s", "when_a", "when_p", "unless_s", "unless_a",
 
       "if_s_p", "if_s_p_p", "if_s_r", "if_s_n", "if_s_n_n",
@@ -3307,7 +3316,8 @@ static const char* opt_names[OPT_MAX_DEFINED] =
       "safe_c_s", "h_safe_c_s", "safe_c_l", "h_safe_c_l", 
       "safe_car_s", "h_safe_car_s", "safe_cdr_s", "h_safe_cdr_s", "safe_cadr_s", "h_safe_cadr_s",
       "safe_is_pair_s", "h_safe_is_pair_s", "safe_is_null_s", "h_safe_is_null_s", "safe_is_symbol_s", "h_safe_is_symbol_s", 
-      "safe_c_ss", "h_safe_c_ss", "safe_c_sc", "h_safe_c_sc", "safe_c_cs", "h_safe_c_cs",
+      "safe_c_ss", "h_safe_c_ss", "safe_c_ll", "h_safe_c_ll", 
+      "safe_c_sc", "h_safe_c_sc", "safe_c_cs", "h_safe_c_cs",
       "safe_c_sq", "h_safe_c_sq", "safe_c_qs", "h_safe_c_qs", "safe_c_qq", "h_safe_c_qq",
       "safe_c_cq", "h_safe_c_cq", "safe_c_qc", "h_safe_c_qc",
       "safe_c_sss", "h_safe_c_sss", "safe_c_scs", "h_safe_c_scs", "safe_c_ssc", "h_safe_c_ssc", "safe_c_css", "h_safe_c_css",
@@ -3342,7 +3352,10 @@ static const char* opt_names[OPT_MAX_DEFINED] =
       "safe_c_c_op_s_opcqq", "h_safe_c_c_op_s_opcqq",
       "safe_c_op_s_opsq_q", "h_safe_c_op_s_opsq_q", "safe_c_op_opsq_s_q", "h_safe_c_op_opsq_s_q",
       "safe_c_opsq_q", "h_safe_c_opsq_q", "safe_c_opsq_q_s", "h_safe_c_opsq_q_s",
+      
+      "safe_c*_a", "h_safe_c*_a", "safe_c*_aa", "h_safe_c*_aa", "safe_c*_all_x", "h_safe_c*_all_x", 
 
+      "safe_quote", "h_safe_quote",
       "safe_ifa_ss_a", "h_safe_ifa_ss_a", "safe_c_p", "h_safe_c_p",
 
       "safe_c_z", "h_safe_c_z", "safe_c_zz", "h_safe_c_zz", "safe_c_sz", "h_safe_c_sz", "safe_c_zs", "h_safe_c_zs",
@@ -3357,20 +3370,21 @@ static const char* opt_names[OPT_MAX_DEFINED] =
       "closure_s", "h_closure_s", "closure_c", "h_closure_c", "closure_p", "h_closure_p", 
       "closure_ss", "h_closure_ss", "closure_ss_p", "h_closure_ss_p", 
       "closure_sc", "h_closure_sc", "closure_cs", "h_closure_cs",
-      "closure_a", "h_closure_a", "closure_aa", "h_closure_aa", "closure_a_p", "h_closure_a_p",
+      "closure_a", "h_closure_a", "closure_aa", "h_closure_aa", "closure_a_p", "h_closure_a_p", 
       "closure_all_x", "h_closure_all_x", "closure_all_s", "h_closure_all_s", "closure_all_s_p", "h_closure_all_s_p",
       "closure_fa", "h_closure_fa",
       "closure_ap", "h_closure_ap", "closure_pa", "h_closure_pa", 
+      "closure_any_all_x", "h_closure_any_all_x", 
 
-      "closure_star_a", "h_closure_star_a", "closure_star_aa", "h_closure_star_aa", "closure_star_all_x", "h_closure_star_all_x",
+      "closure*_a", "h_closure*_a", "closure*_aa", "h_closure*_aa", "closure*_all_x", "h_closure*_all_x",
 
       "safe_thunk", "h_safe_thunk", 
       "safe_thunk_e", "h_safe_thunk_e", 
       "safe_thunk_p", "h_safe_thunk_p", "safe_lthunk", "h_safe_lthunk", 
-      "safe_closure_s", "h_safe_closure_s", "safe_lclosure_l", "h_safe_lclosure_l", 
+      "safe_closure_s", "h_safe_closure_s", 
       "safe_closure_c", "h_safe_closure_c", "safe_closure_p", "h_safe_closure_p", 
       "safe_closure_ss", "h_safe_closure_ss", "safe_closure_sc", "h_safe_closure_sc", "safe_closure_cs", "h_safe_closure_cs",
-      "safe_closure_a", "h_safe_closure_a", "safe_lclosure_a", "h_safe_lclosure_a", 
+      "safe_closure_a", "h_safe_closure_a", "safe_lclosure_a", "h_safe_lclosure_a", "safe_lclosure_a_p", "h_safe_lclosure_a_p", 
       "safe_closure_sa", "h_safe_closure_sa", 
       "safe_closure_s_p", "h_safe_closure_s_p", "safe_lclosure_l_p", "h_safe_lclosure_l_p", 
       "safe_closure_saa", "h_safe_closure_saa", "safe_closure_s_c", "h_safe_closure_s_c",
@@ -3378,8 +3392,8 @@ static const char* opt_names[OPT_MAX_DEFINED] =
       "safe_closure_all_x", "h_safe_closure_all_x", "safe_closure_aa", "h_safe_closure_aa",
       "safe_closure_ap", "h_safe_closure_ap", "safe_closure_pa", "h_safe_closure_pa", 
 
-      "safe_closure_star_a", "h_safe_closure_star_a", "safe_closure_star_aa", "h_safe_closure_star_aa", 
-      "safe_closure_star_s0", "h_safe_closure_star_s0", "safe_closure_star_all_x", "h_safe_closure_star_all_x",
+      "safe_closure*_a", "h_safe_closure*_a", "safe_closure*_aa", "h_safe_closure*_aa", 
+      "safe_closure*_s0", "h_safe_closure*_s0", "safe_closure*_all_x", "h_safe_closure*_all_x",
 
       "apply_ss", "h_apply_ss",
       "c_all_x", "h_c_all_x", "call_with_exit", "h_call_with_exit", 
@@ -3391,7 +3405,9 @@ static const char* opt_names[OPT_MAX_DEFINED] =
 
       "goto", "h_goto", "goto_c", "h_goto_c", "goto_s", "h_goto_s", "goto_a", "h_goto_a",
       "iterate", "h_iterate",
-      "vector_a", "h_vector_a", "string_a", "h_string_a",
+      "continuation_a", "h_continuation_a", 
+      "vector_a", "h_vector_a", "cvector_a", "h_cvector_a", 
+      "string_a", "h_string_a",
       "c_object_a", "h_c_object_a", "pair_a", "h_pair_a", "hash_table_a", "h_hash_table_a",
       "environment_q", "h_environment_q", "environment_a", "h_environment_a",
 
@@ -3403,6 +3419,8 @@ static const char* opt_names[OPT_MAX_DEFINED] =
       "safe_c_sp", "h_safe_c_sp", "safe_c_cp", "h_safe_c_cp", "safe_c_qp", "h_safe_c_qp", "safe_c_ap", "h_safe_c_ap",
       "safe_c_ps", "h_safe_c_ps", "safe_c_pc", "h_safe_c_pc", "safe_c_pq", "h_safe_c_pq",
       "safe_c_ssp", "h_safe_c_ssp",
+      
+      "s", "h_s", "s_s", "h_s_s", "s_c", "h_s_c", "s_a", "h_s_a",
 };
 #endif
 
@@ -3423,9 +3441,9 @@ static bool is_h_optimized(s7_pointer p)
 #define is_h_safe_c_s(P) ((is_optimized(P)) && (optimize_op(P) >= HOP_SAFE_C_S) && (optimize_op(P) <= HOP_SAFE_IS_SYMBOL_S) && ((optimize_op(P) & 1) != 0))
 #define is_safe_c_s(P)   ((is_optimized(P)) && (optimize_op(P) >= HOP_SAFE_C_S) && (optimize_op(P) <= HOP_SAFE_IS_SYMBOL_S))
 
-static int position_of(s7_pointer p, s7_pointer args)
+static int32_t position_of(s7_pointer p, s7_pointer args)
 {
-  int i;
+  int32_t i;
   for (i = 1; p != args; i++, args = cdr(args));
   return(i);
 }
@@ -3777,19 +3795,19 @@ static s7_pointer g_is_constant(s7_scheme *sc, s7_pointer args)
  *   case) to manage them in the sweep process by tracking lets.  
  */
 
-unsigned int s7_gc_protect(s7_scheme *sc, s7_pointer x)
+uint32_t s7_gc_protect(s7_scheme *sc, s7_pointer x)
 {
-  unsigned int loc;
+  uint32_t loc;
 
   if (sc->gpofl_loc < 0)
     {
-      unsigned int i, size, new_size;
+      uint32_t i, size, new_size;
       size = sc->protected_objects_size;
       new_size = 2 * size;
       vector_elements(sc->protected_objects) = (s7_pointer *)realloc(vector_elements(sc->protected_objects), new_size * sizeof(s7_pointer));
       vector_length(sc->protected_objects) = new_size;
       sc->protected_objects_size = new_size;
-      sc->gpofl = (unsigned int *)realloc(sc->gpofl, new_size * sizeof(unsigned int));
+      sc->gpofl = (uint32_t *)realloc(sc->gpofl, new_size * sizeof(uint32_t));
       for (i = size; i < new_size; i++)
 	{
 	  vector_element(sc->protected_objects, i) = sc->gc_nil;
@@ -3810,7 +3828,7 @@ unsigned int s7_gc_protect(s7_scheme *sc, s7_pointer x)
 
 void s7_gc_unprotect(s7_scheme *sc, s7_pointer x)
 {
-  unsigned int i;
+  uint32_t i;
 
   for (i = 0; i < sc->protected_objects_size; i++)
     if (vector_element(sc->protected_objects, i) == x)
@@ -3822,7 +3840,7 @@ void s7_gc_unprotect(s7_scheme *sc, s7_pointer x)
 }
 
 
-void s7_gc_unprotect_at(s7_scheme *sc, unsigned int loc)
+void s7_gc_unprotect_at(s7_scheme *sc, uint32_t loc)
 {
   if (loc < sc->protected_objects_size)
     {
@@ -3833,7 +3851,7 @@ void s7_gc_unprotect_at(s7_scheme *sc, unsigned int loc)
 }
 
 
-s7_pointer s7_gc_protected_at(s7_scheme *sc, unsigned int loc)
+s7_pointer s7_gc_protected_at(s7_scheme *sc, uint32_t loc)
 {
   s7_pointer obj;
 
@@ -3906,11 +3924,11 @@ static void free_optlist(s7_scheme *sc, s7_pointer p);
 
 static void init_string_free_lists(s7_scheme *sc)
 {
-  int i;
+  int32_t i;
   sc->string_lists = (char ***)calloc(STRING_LISTS, sizeof(char **));
-  sc->string_locs = (int *)calloc(STRING_LISTS, sizeof(int));
-  sc->string_sizes = (int *)malloc(STRING_LISTS * sizeof(int));
-  sc->string_max_sizes = (int *)malloc(STRING_LISTS * sizeof(int));
+  sc->string_locs = (int32_t *)calloc(STRING_LISTS, sizeof(int));
+  sc->string_sizes = (int32_t *)malloc(STRING_LISTS * sizeof(int));
+  sc->string_max_sizes = (int32_t *)malloc(STRING_LISTS * sizeof(int));
   for (i = 0; i < STRING_LISTS; i++)
     {
       sc->string_lists[i] = (char **)calloc(STRING_LIST_INIT_SIZE, sizeof(char *));
@@ -3931,7 +3949,7 @@ static void init_string_free_lists(s7_scheme *sc)
     }
 }
 
-static char *alloc_string(s7_scheme *sc, int len)
+static char *alloc_string(s7_scheme *sc, int32_t len)
 {
   if ((len < STRING_LISTS) &&
       (sc->string_locs[len] > 0))
@@ -3939,7 +3957,7 @@ static char *alloc_string(s7_scheme *sc, int len)
   return((char *)malloc((len + 1) * sizeof(char)));
 }
 
-static void string_to_free_list(s7_scheme *sc, char *value, int len)
+static void string_to_free_list(s7_scheme *sc, char *value, int32_t len)
 {
   if (len >= STRING_LISTS)
     free(value);
@@ -3962,15 +3980,17 @@ static void string_to_free_list(s7_scheme *sc, char *value, int len)
 
 static void sweep(s7_scheme *sc)
 {
-  unsigned int i, j;
+  uint32_t i, j;
   s7_pointer s1;
-
-  if (sc->strings_loc > 0)
+  gc_list *gp;
+  
+  gp = sc->strings;
+  if (gp->loc > 0)
     {
       /* unrolling this loop is not an improvement */
-      for (i = 0, j = 0; i < sc->strings_loc; i++)
+      for (i = 0, j = 0; i < gp->loc; i++)
 	{
-	  s1 = sc->strings[i];
+	  s1 = gp->list[i];
 	  if (is_free_and_clear(s1))
 	    {
 	      if (string_needs_free(s1))
@@ -3983,73 +4003,78 @@ static void sweep(s7_scheme *sc)
 	       *   forever, slowing down the loop. 
 	       */
 	      if (in_heap(s1)) /* this costs more than it saves */
-		sc->strings[j++] = s1;
+		gp->list[j++] = s1;
 	    }
 	}
-      sc->strings_loc = j;
+      gp->loc = j;
     }
 
-  if (sc->strings1_loc > 0)
+  gp = sc->strings1;
+  if (gp->loc > 0)
     {
-      for (i = 0, j = 0; i < sc->strings1_loc; i++)
+      for (i = 0, j = 0; i < gp->loc; i++)
 	{
-	  s1 = sc->strings1[i];
+	  s1 = gp->list[i];
 	  if (is_free_and_clear(s1))
 	    {
 	      if (string_needs_free(s1))
 		free(string_value(s1));
 	    }
-	  else sc->strings1[j++] = s1;
+	  else gp->list[j++] = s1;
 	}
-      sc->strings1_loc = j;
+      gp->loc = j;
     }
 
-  if (sc->gensyms_loc > 0)
+  gp = sc->gensyms;
+  if (gp->loc > 0)
     {
-      for (i = 0, j = 0; i < sc->gensyms_loc; i++)
+      for (i = 0, j = 0; i < gp->loc; i++)
 	{
-	  s1 = sc->gensyms[i];
+	  s1 = gp->list[i];
 	  if (is_free_and_clear(s1))
 	    {
 	      remove_gensym_from_symbol_table(sc, s1); /* this uses symbol_name_cell data */
 	      free(symbol_name(s1));
 	      free(symbol_name_cell(s1));
 	    }
-	  else sc->gensyms[j++] = s1;
+	  else gp->list[j++] = s1;
 	}
-      sc->gensyms_loc = j;
+      gp->loc = j;
       if (j == 0) mark_function[T_SYMBOL] = mark_noop;
     }
 
-  if (sc->c_objects_loc > 0)
+  gp = sc->c_objects;
+  if (gp->loc > 0)
     {
-      for (i = 0, j = 0; i < sc->c_objects_loc; i++)
+      for (i = 0, j = 0; i < gp->loc; i++)
 	{
-	  s1 = sc->c_objects[i];
+	  s1 = gp->list[i];
 	  if (is_free_and_clear(s1))
 	    free_object(s1);
-	  else sc->c_objects[j++] = s1;
+	  else gp->list[j++] = s1;
 	}
-      sc->c_objects_loc = j;
+      gp->loc = j;
     }
 
-  if (sc->optlists_loc > 0)
+  gp = sc->optlists;
+  if (gp->loc > 0)
     {
-      for (i = 0, j = 0; i < sc->optlists_loc; i++)
+      for (i = 0, j = 0; i < gp->loc; i++)
 	{
-	  s1 = sc->optlists[i];
+	  s1 = gp->list[i];
 	  if (is_free_and_clear(s1))
 	    free_optlist(sc, s1);
-	  else sc->optlists[j++] = s1;
+	  else gp->list[j++] = s1;
 	}
-      sc->optlists_loc = j;
+      gp->loc = j;
     }
 
-  if (sc->vectors_loc > 0)
+  gp = sc->vectors;
+  if (gp->loc > 0)
     {
-      for (i = 0, j = 0; i < sc->vectors_loc; i++)
+      for (i = 0, j = 0; i < gp->loc; i++)
 	{
-	  s1 = sc->vectors[i];
+	  s1 = gp->list[i];
 	  if (is_free_and_clear(s1))
 	    {
 	      /* a multidimensional empty vector can have dimension info, wrapped vectors always have dimension info */
@@ -4071,31 +4096,33 @@ static void sweep(s7_scheme *sc)
 		    free(vector_elements(s1));
 		}
 	    }
-	  else sc->vectors[j++] = s1;
+	  else gp->list[j++] = s1;
 	}
-      sc->vectors_loc = j;
+      gp->loc = j;
     }
 
-  if (sc->hash_tables_loc > 0)
+  gp = sc->hash_tables;
+  if (gp->loc > 0)
     {
-      for (i = 0, j = 0; i < sc->hash_tables_loc; i++)
+      for (i = 0, j = 0; i < gp->loc; i++)
 	{
-	  s1 = sc->hash_tables[i];
+	  s1 = gp->list[i];
 	  if (is_free_and_clear(s1))
 	    {
 	      if (hash_table_mask(s1) > 0)
 		free_hash_table(s1);
 	    }
-	  else sc->hash_tables[j++] = s1;
+	  else gp->list[j++] = s1;
 	}
-      sc->hash_tables_loc = j;
+      gp->loc = j;
     }
 
-  if (sc->input_ports_loc > 0)
+  gp = sc->input_ports;
+  if (gp->loc > 0)
     {
-      for (i = 0, j = 0; i < sc->input_ports_loc; i++)
+      for (i = 0, j = 0; i < gp->loc; i++)
 	{
-	  s1 = sc->input_ports[i];
+	  s1 = gp->list[i];
 	  if (is_free_and_clear(s1))
 	    {
 	      if (port_needs_free(s1))
@@ -4116,31 +4143,33 @@ static void sweep(s7_scheme *sc)
 		}
 	      free_port(sc, port_port(s1));
 	    }
-	  else sc->input_ports[j++] = s1;
+	  else gp->list[j++] = s1;
 	}
-      sc->input_ports_loc = j;
+      gp->loc = j;
     }
 
-  if (sc->output_ports_loc > 0)
+  gp = sc->output_ports;
+  if (gp->loc > 0)
     {
-      for (i = 0, j = 0; i < sc->output_ports_loc; i++)
+      for (i = 0, j = 0; i < gp->loc; i++)
 	{
-	  s1 = sc->output_ports[i];
+	  s1 = gp->list[i];
 	  if (is_free_and_clear(s1))
 	    {
 	      close_output_port(sc, s1); /* needed for free filename, etc */
 	      free_port(sc, port_port(s1));
 	    }
-	  else sc->output_ports[j++] = s1;
+	  else gp->list[j++] = s1;
 	}
-      sc->output_ports_loc = j;
+      gp->loc = j;
     }
 
-  if (sc->continuations_loc > 0)
+  gp = sc->continuations;
+  if (gp->loc > 0)
     {
-      for (i = 0, j = 0; i < sc->continuations_loc; i++)
+      for (i = 0, j = 0; i < gp->loc; i++)
 	{
-	  s1 = sc->continuations[i];
+	  s1 = gp->list[i];
 	  if (is_free_and_clear(s1))
 	    {
 	      if (continuation_op_stack(s1))
@@ -4150,248 +4179,134 @@ static void sweep(s7_scheme *sc)
 		}
 	      free(continuation_data(s1));
 	    }
-	  else sc->continuations[j++] = s1;
+	  else gp->list[j++] = s1;
 	}
-      sc->continuations_loc = j;
+      gp->loc = j;
     }
 
 #if WITH_GMP
-  if (sc->bigints_loc > 0)
+  gp = sc->bigints;
+  if (gp->loc > 0)
     {
-      for (i = 0, j = 0; i < sc->bigints_loc; i++)
+      for (i = 0, j = 0; i < gp->loc; i++)
 	{
 	  s7_pointer s1;
-	  s1 = sc->bigints[i];
+	  s1 = gp->list[i];
 	  if (is_free_and_clear(s1))
 	    mpz_clear(big_integer(s1));
-	  else sc->bigints[j++] = s1;
+	  else gp->list[j++] = s1;
 	}
-      sc->bigints_loc = j;
+      gp->loc = j;
     }
 
-  if (sc->bigratios_loc > 0)
+  gp = sc->bigratios;
+  if (gp->loc > 0)
     {
-      for (i = 0, j = 0; i < sc->bigratios_loc; i++)
+      for (i = 0, j = 0; i < gp->loc; i++)
 	{
 	  s7_pointer s1;
-	  s1 = sc->bigratios[i];
+	  s1 = gp->list[i];
 	  if (is_free_and_clear(s1))
 	    mpq_clear(big_ratio(s1));
-	  else sc->bigratios[j++] = s1;
+	  else gp->list[j++] = s1;
 	}
-      sc->bigratios_loc = j;
+      gp->loc = j;
     }
 
-  if (sc->bigreals_loc > 0)
+  gp = sc->bigreals;
+  if (gp->loc > 0)
     {
-      for (i = 0, j = 0; i < sc->bigreals_loc; i++)
+      for (i = 0, j = 0; i < gp->loc; i++)
 	{
 	  s7_pointer s1;
-	  s1 = sc->bigreals[i];
+	  s1 = gp->list[i];
 	  if (is_free_and_clear(s1))
 	    mpfr_clear(big_real(s1));
-	  else sc->bigreals[j++] = s1;
+	  else gp->list[j++] = s1;
 	}
-      sc->bigreals_loc = j;
+      gp->loc = j;
     }
 
-  if (sc->bignumbers_loc > 0)
+  gp = sc->bignumbers;
+  if (gp->loc > 0)
     {
-      for (i = 0, j = 0; i < sc->bignumbers_loc; i++)
+      for (i = 0, j = 0; i < gp->loc; i++)
 	{
 	  s7_pointer s1;
-	  s1 = sc->bignumbers[i];
+	  s1 = gp->list[i];
 	  if (is_free_and_clear(s1))
 	    mpc_clear(big_complex(s1));
-	  else sc->bignumbers[j++] = s1;
+	  else gp->list[j++] = s1;
 	}
-      sc->bignumbers_loc = j;
+      gp->loc = j;
     }
 #endif
 }
 
-
-static void add_gensym(s7_scheme *sc, s7_pointer p)
+static inline void add_to_gc_list(gc_list *gp, s7_pointer p)
 {
-  if (sc->gensyms_loc == sc->gensyms_size)
+  if (gp->loc == gp->size)
     {
-      sc->gensyms_size *= 2;
-      sc->gensyms = (s7_pointer *)realloc(sc->gensyms, sc->gensyms_size * sizeof(s7_pointer));
+      gp->size *= 2;
+      gp->list = (s7_pointer *)realloc(gp->list, gp->size * sizeof(s7_pointer));
     }
-  sc->gensyms[sc->gensyms_loc++] = p;
-  mark_function[T_SYMBOL] = mark_symbol;
+  gp->list[gp->loc++] = p;
 }
 
-
-static void add_c_object(s7_scheme *sc, s7_pointer p)
+static gc_list *make_gc_list(void)
 {
-  if (sc->c_objects_loc == sc->c_objects_size)
-    {
-      sc->c_objects_size *= 2;
-      sc->c_objects = (s7_pointer *)realloc(sc->c_objects, sc->c_objects_size * sizeof(s7_pointer));
-    }
-  sc->c_objects[sc->c_objects_loc++] = p;
-}
-
-
-static void add_optlist(s7_scheme *sc, s7_pointer p)
-{
-  if (sc->optlists_loc == sc->optlists_size)
-    {
-      sc->optlists_size *= 2;
-      sc->optlists = (s7_pointer *)realloc(sc->optlists, sc->optlists_size * sizeof(s7_pointer));
-    }
-  sc->optlists[sc->optlists_loc++] = p;
+  gc_list *gp;
+  #define INIT_GC_CACHE_SIZE 4
+  gp = (gc_list *)malloc(sizeof(gc_list));
+  gp->size = INIT_GC_CACHE_SIZE;
+  gp->loc = 0;
+  gp->list = (s7_pointer *)malloc(gp->size * sizeof(s7_pointer));
+  return(gp);			 
 }
 
-
-static void add_hash_table(s7_scheme *sc, s7_pointer p)
-{
-  if (sc->hash_tables_loc == sc->hash_tables_size)
-    {
-      sc->hash_tables_size *= 2;
-      sc->hash_tables = (s7_pointer *)realloc(sc->hash_tables, sc->hash_tables_size * sizeof(s7_pointer));
-    }
-  sc->hash_tables[sc->hash_tables_loc++] = p;
-}
-
-
-static void add_vector(s7_scheme *sc, s7_pointer p)
-{
-  if (sc->vectors_loc == sc->vectors_size)
-    {
-      sc->vectors_size *= 2;
-      sc->vectors = (s7_pointer *)realloc(sc->vectors, sc->vectors_size * sizeof(s7_pointer));
-    }
-  sc->vectors[sc->vectors_loc++] = p;
-}
-
-#define Add_Vector(Vec) if (sc->vectors_loc == sc->vectors_size) add_vector(sc, Vec); else sc->vectors[sc->vectors_loc++] = Vec
-
-static void add_input_port(s7_scheme *sc, s7_pointer p)
-{
-  if (sc->input_ports_loc == sc->input_ports_size)
-    {
-      sc->input_ports_size *= 2;
-      sc->input_ports = (s7_pointer *)realloc(sc->input_ports, sc->input_ports_size * sizeof(s7_pointer));
-    }
-  sc->input_ports[sc->input_ports_loc++] = p;
-}
-
-
-static void add_output_port(s7_scheme *sc, s7_pointer p)
+static void add_gensym(s7_scheme *sc, s7_pointer p)
 {
-  if (sc->output_ports_loc == sc->output_ports_size)
-    {
-      sc->output_ports_size *= 2;
-      sc->output_ports = (s7_pointer *)realloc(sc->output_ports, sc->output_ports_size * sizeof(s7_pointer));
-    }
-  sc->output_ports[sc->output_ports_loc++] = p;
+  add_to_gc_list(sc->gensyms, p);
+  mark_function[T_SYMBOL] = mark_symbol;
 }
 
 
-static void add_continuation(s7_scheme *sc, s7_pointer p)
-{
-  if (sc->continuations_loc == sc->continuations_size)
-    {
-      sc->continuations_size *= 2;
-      sc->continuations = (s7_pointer *)realloc(sc->continuations, sc->continuations_size * sizeof(s7_pointer));
-    }
-  sc->continuations[sc->continuations_loc++] = p;
-}
+#define add_c_object(sc, p)     {add_to_gc_list(sc->c_objects, p);}
+#define add_optlist(sc, p)      {add_to_gc_list(sc->optlists, p);}
+#define add_hash_table(sc, p)   {add_to_gc_list(sc->hash_tables, p);}
+#define add_string(sc, p)       {add_to_gc_list(sc->strings, p);}
+#define add_string1(sc, p)      {add_to_gc_list(sc->strings1, p);}
+#define add_vector(sc, p)       {add_to_gc_list(sc->vectors, p);}
+#define add_input_port(sc, p)   {add_to_gc_list(sc->input_ports, p);}
+#define add_output_port(sc, p)  {add_to_gc_list(sc->output_ports, p);}
+#define add_continuation(sc, p) {add_to_gc_list(sc->continuations, p);}
 
 #if WITH_GMP
-static void add_bigint(s7_scheme *sc, s7_pointer p)
-{
-  if (sc->bigints_loc == sc->bigints_size)
-    {
-      sc->bigints_size *= 2;
-      sc->bigints = (s7_pointer *)realloc(sc->bigints, sc->bigints_size * sizeof(s7_pointer));
-    }
-  sc->bigints[sc->bigints_loc++] = p;
-}
-
-
-static void add_bigratio(s7_scheme *sc, s7_pointer p)
-{
-  if (sc->bigratios_loc == sc->bigratios_size)
-    {
-      sc->bigratios_size *= 2;
-      sc->bigratios = (s7_pointer *)realloc(sc->bigratios, sc->bigratios_size * sizeof(s7_pointer));
-    }
-  sc->bigratios[sc->bigratios_loc++] = p;
-}
-
-
-static void add_bigreal(s7_scheme *sc, s7_pointer p)
-{
-  if (sc->bigreals_loc == sc->bigreals_size)
-    {
-      sc->bigreals_size *= 2;
-      sc->bigreals = (s7_pointer *)realloc(sc->bigreals, sc->bigreals_size * sizeof(s7_pointer));
-    }
-  sc->bigreals[sc->bigreals_loc++] = p;
-}
-
-
-static void add_bignumber(s7_scheme *sc, s7_pointer p)
-{
-  if (sc->bignumbers_loc == sc->bignumbers_size)
-    {
-      sc->bignumbers_size *= 2;
-      sc->bignumbers = (s7_pointer *)realloc(sc->bignumbers, sc->bignumbers_size * sizeof(s7_pointer));
-    }
-  sc->bignumbers[sc->bignumbers_loc++] = p;
-}
+#define add_bigint(sc, p)    {add_to_gc_list(sc->bigints, p);}
+#define add_bigratio(sc, p)  {add_to_gc_list(sc->bigratios, p);}
+#define add_bigreal(sc, p)   {add_to_gc_list(sc->bigreals, p);}
+#define add_bignumber(sc, p) {add_to_gc_list(sc->bignumbers, p);}
 #endif
 
 
 #define INIT_GC_CACHE_SIZE 4
 static void init_gc_caches(s7_scheme *sc)
 {
-  sc->strings_size = INIT_GC_CACHE_SIZE;
-  sc->strings_loc = 0;
-  sc->strings = (s7_pointer *)malloc(sc->strings_size * sizeof(s7_pointer));
-  sc->strings1_size = INIT_GC_CACHE_SIZE;
-  sc->strings1_loc = 0;
-  sc->strings1 = (s7_pointer *)malloc(sc->strings1_size * sizeof(s7_pointer));
-  sc->gensyms_size = INIT_GC_CACHE_SIZE;
-  sc->gensyms_loc = 0;
-  sc->gensyms = (s7_pointer *)malloc(sc->gensyms_size * sizeof(s7_pointer));
-  sc->vectors_size = INIT_GC_CACHE_SIZE;
-  sc->vectors_loc = 0;
-  sc->vectors = (s7_pointer *)malloc(sc->vectors_size * sizeof(s7_pointer));
-  sc->hash_tables_size = INIT_GC_CACHE_SIZE;
-  sc->hash_tables_loc = 0;
-  sc->hash_tables = (s7_pointer *)malloc(sc->hash_tables_size * sizeof(s7_pointer));
-  sc->input_ports_size = INIT_GC_CACHE_SIZE;
-  sc->input_ports_loc = 0;
-  sc->input_ports = (s7_pointer *)malloc(sc->input_ports_size * sizeof(s7_pointer));
-  sc->output_ports_size = INIT_GC_CACHE_SIZE;
-  sc->output_ports_loc = 0;
-  sc->output_ports = (s7_pointer *)malloc(sc->output_ports_size * sizeof(s7_pointer));
-  sc->continuations_size = INIT_GC_CACHE_SIZE;
-  sc->continuations_loc = 0;
-  sc->continuations = (s7_pointer *)malloc(sc->continuations_size * sizeof(s7_pointer));
-  sc->c_objects_size = INIT_GC_CACHE_SIZE;
-  sc->c_objects_loc = 0;
-  sc->c_objects = (s7_pointer *)malloc(sc->c_objects_size * sizeof(s7_pointer));
-  sc->optlists_size = INIT_GC_CACHE_SIZE;
-  sc->optlists_loc = 0;
-  sc->optlists = (s7_pointer *)malloc(sc->optlists_size * sizeof(s7_pointer));
+  sc->strings = make_gc_list();
+  sc->strings1 = make_gc_list();
+  sc->gensyms = make_gc_list();
+  sc->vectors = make_gc_list();
+  sc->hash_tables = make_gc_list();
+  sc->input_ports = make_gc_list();
+  sc->output_ports = make_gc_list();
+  sc->continuations = make_gc_list();
+  sc->c_objects = make_gc_list();
+  sc->optlists = make_gc_list();
 #if WITH_GMP
-  sc->bigints_size = INIT_GC_CACHE_SIZE;
-  sc->bigints_loc = 0;
-  sc->bigints = (s7_pointer *)malloc(sc->bigints_size * sizeof(s7_pointer));
-  sc->bigratios_size = INIT_GC_CACHE_SIZE;
-  sc->bigratios_loc = 0;
-  sc->bigratios = (s7_pointer *)malloc(sc->bigratios_size * sizeof(s7_pointer));
-  sc->bigreals_size = INIT_GC_CACHE_SIZE;
-  sc->bigreals_loc = 0;
-  sc->bigreals = (s7_pointer *)malloc(sc->bigreals_size * sizeof(s7_pointer));
-  sc->bignumbers_size = INIT_GC_CACHE_SIZE;
-  sc->bignumbers_loc = 0;
-  sc->bignumbers = (s7_pointer *)malloc(sc->bignumbers_size * sizeof(s7_pointer));
+  sc->bigints = make_gc_list();
+  sc->bigratios = make_gc_list();
+  sc->bigreals = make_gc_list();
+  sc->bignumbers = make_gc_list();
 #endif
 
   /* slightly unrelated... */
@@ -4406,7 +4321,7 @@ static void add_setter(s7_scheme *sc, s7_pointer p, s7_pointer setter)
   /* procedure-setters GC-protected. The c_function_setter field can't be used because the built-in functions
    *   are often removed from the heap and never thereafter marked.
    */
-  unsigned int i;
+  uint32_t i;
   for (i = 0; i < sc->setters_loc; i++)
     {
       s7_pointer x;
@@ -4467,6 +4382,13 @@ static void just_mark(s7_pointer p)
   set_mark(p);
 }
 
+static void mark_c_pointer(s7_pointer p)
+{
+  set_mark(p);
+  S7_MARK(raw_pointer_type(p));
+  S7_MARK(raw_pointer_info(p));
+}
+
 static void mark_c_proc_star(s7_pointer p)
 {
   set_mark(p);
@@ -4549,7 +4471,7 @@ static void mark_stack(s7_pointer p)
 
 static void mark_continuation(s7_pointer p)
 {
-  unsigned int i;
+  uint32_t i;
   set_mark(p);
   mark_stack_1(continuation_stack(p), continuation_stack_top(p));
   for (i = 0; i < continuation_op_loc(p); i++)
@@ -4623,7 +4545,7 @@ static void mark_hash_table(s7_pointer p)
   S7_MARK(hash_table_procedures(p));
   if (hash_table_entries(p) > 0)
     {
-      unsigned int len;
+      uint32_t len;
       hash_entry_t **entries, **last;
 
       entries = hash_table_elements(p);
@@ -4671,6 +4593,9 @@ static void init_mark_functions(void)
   mark_function[T_UNSPECIFIED]         = mark_noop;
   mark_function[T_NIL]                 = mark_noop;
   mark_function[T_BOOLEAN]             = mark_noop;
+  mark_function[T_SYNTAX]              = mark_noop;
+  mark_function[T_CHARACTER]           = mark_noop;
+  mark_function[T_SYMBOL]              = mark_noop; /* this changes to mark_symbol when gensyms are in the heap */
   mark_function[T_STRING]              = just_mark;
   mark_function[T_INTEGER]             = just_mark;
   mark_function[T_RATIO]               = just_mark;
@@ -4680,12 +4605,22 @@ static void init_mark_functions(void)
   mark_function[T_BIG_RATIO]           = just_mark;
   mark_function[T_BIG_REAL]            = just_mark;
   mark_function[T_BIG_COMPLEX]         = just_mark;
-  mark_function[T_SYMBOL]              = mark_noop; /* this changes to mark_symbol when gensyms are in the heap */
+  mark_function[T_RANDOM_STATE]        = just_mark;
+  mark_function[T_GOTO]                = just_mark;
+  mark_function[T_OUTPUT_PORT]         = just_mark;
+  mark_function[T_OPTLIST]             = just_mark;
+  mark_function[T_BAFFLE]              = just_mark;
+  mark_function[T_C_MACRO]             = just_mark;
+  mark_function[T_C_POINTER]           = mark_c_pointer;
+  mark_function[T_C_FUNCTION]          = just_mark;
+  mark_function[T_C_FUNCTION_STAR]     = just_mark;  /* changes to mark_c_proc_star if defaults involve an expression */
+  mark_function[T_C_ANY_ARGS_FUNCTION] = just_mark;
+  mark_function[T_C_OPT_ARGS_FUNCTION] = just_mark;
+  mark_function[T_C_RST_ARGS_FUNCTION] = just_mark;
   mark_function[T_PAIR]                = mark_pair;
   mark_function[T_CLOSURE]             = mark_closure;
   mark_function[T_CLOSURE_STAR]        = mark_closure;
   mark_function[T_CONTINUATION]        = mark_continuation;
-  mark_function[T_CHARACTER]           = mark_noop;
   mark_function[T_INPUT_PORT]          = mark_input_port;
   mark_function[T_VECTOR]              = mark_vector; /* this changes if shared vector created (similarly below) */
   mark_function[T_INT_VECTOR]          = mark_int_or_float_vector;
@@ -4695,27 +4630,14 @@ static void init_mark_functions(void)
   mark_function[T_MACRO_STAR]          = mark_closure;
   mark_function[T_BACRO_STAR]          = mark_closure;
   mark_function[T_C_OBJECT]            = mark_c_object;
-  mark_function[T_RANDOM_STATE]        = just_mark;
-  mark_function[T_GOTO]                = just_mark;
-  mark_function[T_OUTPUT_PORT]         = just_mark;
   mark_function[T_CATCH]               = mark_catch;
   mark_function[T_DYNAMIC_WIND]        = mark_dynamic_wind;
   mark_function[T_HASH_TABLE]          = mark_hash_table;
   mark_function[T_ITERATOR]            = mark_iterator;
-  mark_function[T_SYNTAX]              = mark_noop;
   mark_function[T_LET]                 = mark_let;
   mark_function[T_STACK]               = mark_stack;
   mark_function[T_COUNTER]             = mark_counter;
-  mark_function[T_OPTLIST]             = just_mark;
   mark_function[T_SLOT]                = mark_slot;
-  mark_function[T_BAFFLE]              = just_mark;
-  mark_function[T_C_MACRO]             = just_mark;
-  mark_function[T_C_POINTER]           = just_mark;
-  mark_function[T_C_FUNCTION]          = just_mark;
-  mark_function[T_C_FUNCTION_STAR]     = just_mark;  /* changes to mark_c_proc_star if defaults involve an expression */
-  mark_function[T_C_ANY_ARGS_FUNCTION] = just_mark;
-  mark_function[T_C_OPT_ARGS_FUNCTION] = just_mark;
-  mark_function[T_C_RST_ARGS_FUNCTION] = just_mark;
 }
 
 
@@ -4771,7 +4693,7 @@ static void unmark_permanent_objects(s7_scheme *sc)
 
 
 #if DEBUGGING
-static int last_gc_line = 0;
+static int32_t last_gc_line = 0;
 static const char *last_gc_func = NULL;
 #endif
 
@@ -4784,7 +4706,7 @@ static const char *last_gc_func = NULL;
 #define show_heap_stats(Sc) ((Sc->gc_stats & HEAP_STATS) != 0)
 
 
-static int gc(s7_scheme *sc)
+static int32_t gc(s7_scheme *sc)
 {
   s7_cell **old_free_heap_top;
   /* mark all live objects (the symbol table is in permanent memory, not the heap) */
@@ -4864,7 +4786,7 @@ static int gc(s7_scheme *sc)
   S7_MARK(sc->temp10);
   S7_MARK(sc->temp11);
   {
-    int i;
+    int32_t i;
     for (i = 0; i < T_TEMPS_SIZE; i++) {S7_MARK(sc->t_temps[i]);}
   }
   set_mark(sc->input_port);
@@ -4899,7 +4821,7 @@ static int gc(s7_scheme *sc)
   S7_MARK(cadr(sc->qlist_2));
 
   {
-    unsigned int i;
+    uint32_t i;
     s7_pointer p;
     /* perhaps: if (sc->current_safe_list > 0) ... but this loop is down in the noise */
     for (i = 1; i < NUM_SAFE_LISTS; i++)
@@ -4911,7 +4833,7 @@ static int gc(s7_scheme *sc)
       S7_MARK(cdr(sc->setters[i]));
   }
   {
-    int i;
+    int32_t i;
     for (i = 0; i < sc->num_fdats; i++)
       if (sc->fdats[i])
 	S7_MARK(sc->fdats[i]->curly_arg);
@@ -5031,9 +4953,9 @@ static int gc(s7_scheme *sc)
       double secs;
       gettimeofday(&t0, &z0);
       secs = (t0.tv_sec - start_time.tv_sec) +  0.000001 * (t0.tv_usec - start_time.tv_usec);
-      fprintf(stdout, "freed %d/%u (free: " PD_U "), time: %f\n", sc->gc_freed, sc->heap_size, sc->free_heap_top - sc->free_heap, secs);
+      fprintf(stdout, "freed %" PRId64 "/%" PRId64 " (free: " PD_U "), time: %f\n", sc->gc_freed, sc->heap_size, (ptr_int)(sc->free_heap_top - sc->free_heap), secs);
 #else
-      fprintf(stdout, "freed %d/%u\n", sc->gc_freed, sc->heap_size);
+      fprintf(stdout, "freed %" PRId64 "/%" PRId64 "\n", sc->gc_freed, sc->heap_size);
 #endif
     }
   
@@ -5043,8 +4965,8 @@ static int gc(s7_scheme *sc)
 }
 
 void s7_gc_stats(s7_scheme *sc, bool on) {sc->gc_stats = (on) ? GC_STATS : 0;}
-unsigned int s7_heap_size(s7_scheme *sc) {return(sc->heap_size);}
-int s7_gc_freed(s7_scheme *sc) {return(sc->gc_freed);}
+int64_t s7_heap_size(s7_scheme *sc) {return(sc->heap_size);}
+int64_t s7_gc_freed(s7_scheme *sc) {return(sc->gc_freed);}
 
 
 #define GC_TRIGGER_SIZE 64
@@ -5068,10 +4990,10 @@ int s7_gc_freed(s7_scheme *sc) {return(sc->gc_freed);}
    */
 #else
 /* DEBUGGING */
-static bool for_any_other_reason(s7_scheme *sc, int line)
+static bool for_any_other_reason(s7_scheme *sc, int32_t line)
 {
 #if 0
-  static int ctr = 0;
+  static int32_t ctr = 0;
   if ((sc->default_rng) &&
       (!sc->gc_off) &&
       (ctr > GC_TRIGGER_SIZE))
@@ -5106,27 +5028,35 @@ static bool for_any_other_reason(s7_scheme *sc, int line)
 #endif
 
 
-static void resize_heap(s7_scheme *sc)
+static void resize_heap_to(s7_scheme *sc, uint32_t size)
 {
   /* alloc more heap */
-  unsigned int old_size, old_free, k;
+  int64_t old_size, old_free, k;
   s7_cell *cells;
   s7_pointer p;
 
   old_size = sc->heap_size;
   old_free = sc->free_heap_top - sc->free_heap;
 
-  if (sc->heap_size < 512000)
-    sc->heap_size *= 2;
-  else sc->heap_size += 512000;
+  if (size == 0)
+    {
+      if (sc->heap_size < 512000)
+	sc->heap_size *= 2;
+      else sc->heap_size += 512000;
+    }
+  else
+    {
+      if (size > sc->heap_size)
+	while (sc->heap_size < size) sc->heap_size *= 2;
+    }
 
   sc->heap = (s7_cell **)realloc(sc->heap, sc->heap_size * sizeof(s7_cell *));
   if (!(sc->heap))
-    s7_warn(sc, 256, "heap reallocation failed! tried to get %lu bytes\n", (unsigned long)(sc->heap_size * sizeof(s7_cell *)));
+    s7_warn(sc, 256, "heap reallocation failed! tried to get %" PRId64 " bytes\n", (int64_t)(sc->heap_size * sizeof(s7_cell *)));
 
   sc->free_heap = (s7_cell **)realloc(sc->free_heap, sc->heap_size * sizeof(s7_cell *));
   if (!(sc->free_heap))
-    s7_warn(sc, 256, "free heap reallocation failed! tried to get %lu bytes\n", (unsigned long)(sc->heap_size * sizeof(s7_cell *)));
+    s7_warn(sc, 256, "free heap reallocation failed! tried to get %" PRId64 " bytes\n", (int64_t)(sc->heap_size * sizeof(s7_cell *)));
 
   sc->free_heap_trigger = (s7_cell **)(sc->free_heap + GC_TRIGGER_SIZE);
   sc->free_heap_top = sc->free_heap + old_free; /* incremented below, added old_free 21-Aug-12?!? */
@@ -5152,7 +5082,7 @@ static void resize_heap(s7_scheme *sc)
 
   if (show_heap_stats(sc))
     {
-      fprintf(stderr, "heap grows to %u\n", sc->heap_size);
+      fprintf(stderr, "heap grows to %" PRId64 "\n", sc->heap_size);
 #if DEBUGGING
       if (sc->heap_size > 50000000) /* maybe a max-heap-size? */
 	{
@@ -5163,6 +5093,8 @@ static void resize_heap(s7_scheme *sc)
     }
 }
 
+#define resize_heap(Sc) resize_heap_to(Sc, 0)
+
 static void try_to_call_gc(s7_scheme *sc)
 {
   /* called only from new_cell and cons */
@@ -5174,14 +5106,14 @@ static void try_to_call_gc(s7_scheme *sc)
   else
     {
 #if (!DEBUGGING)
-      unsigned int freed_heap;
+      int64_t freed_heap;
       freed_heap = gc(sc);
       if ((freed_heap < sc->heap_size / 2) &&
 	  (freed_heap < 1000000)) /* if huge heap */
 	resize_heap(sc);
 #else
       gc(sc);
-      if ((unsigned int)(sc->free_heap_top - sc->free_heap) < sc->heap_size / 2)
+      if ((int64_t)(sc->free_heap_top - sc->free_heap) < sc->heap_size / 2)
 	resize_heap(sc);
 #endif
     }
@@ -5224,12 +5156,12 @@ s7_pointer s7_gc_on(s7_scheme *sc, bool on)
 }
 
 
-static int permanent_cells = 0;
+static int32_t permanent_cells = 0;
 #if (!WITH_THREADS)
 static s7_cell *alloc_pointer(void)
 {
   #define ALLOC_SIZE 256
-  static unsigned int alloc_k = ALLOC_SIZE;
+  static uint32_t alloc_k = ALLOC_SIZE;
   static s7_cell *alloc_cells = NULL;
 
   if (alloc_k == ALLOC_SIZE)     /* if either no current block or the block is used up */
@@ -5273,7 +5205,7 @@ static void free_vlist(s7_scheme *sc, s7_pointer lst)
     }
 }
 
-static inline s7_pointer petrify(s7_scheme *sc, s7_pointer x, int loc)
+static inline s7_pointer petrify(s7_scheme *sc, s7_pointer x, int32_t loc)
 {
   s7_pointer p;
   p = alloc_pointer();
@@ -5286,7 +5218,7 @@ static inline s7_pointer petrify(s7_scheme *sc, s7_pointer x, int loc)
 
 static void s7_remove_from_heap(s7_scheme *sc, s7_pointer x)
 {
-  int loc;
+  int32_t loc;
   /* global functions are very rarely redefined, so we can remove the function body from
    *   the heap when it is defined.  If redefined, we currently lose the memory held by the
    *   old definition.  (It is not trivial to recover this memory because it is allocated
@@ -5348,7 +5280,8 @@ static void s7_remove_from_heap(s7_scheme *sc, s7_pointer x)
     case T_SYMBOL:
       if (is_gensym(x))
 	{
-	  unsigned int i;
+	  uint32_t i;
+	  gc_list *gp;
 	  sc->heap[loc] = alloc_pointer();
 	  free_cell(sc, sc->heap[loc]);
 	  heap_location(sc->heap[loc]) = loc;
@@ -5359,15 +5292,16 @@ static void s7_remove_from_heap(s7_scheme *sc, s7_pointer x)
 	   *   continues to be valid.  symbol_hmap is abs(heap_location), and the possible overlap with other not-in-heap
 	   *   ints is not problematic (they'll just hash to the same location).
 	   */
-	  for (i = 0; i < sc->gensyms_loc; i++) /* sc->gensyms reaches size 512 during s7test, but this search is called 3 times and costs nothing */
-	    if (sc->gensyms[i] == x)
+	  gp = sc->gensyms;
+	  for (i = 0; i < gp->loc; i++) /* sc->gensyms reaches size 512 during s7test, but this search is called 3 times and costs nothing */
+	    if (gp->list[i] == x)
 	      {
-		unsigned int j;
-		for (j = i + 1; i < sc->gensyms_loc - 1; i++, j++)
-		  sc->gensyms[i] = sc->gensyms[j];
-		sc->gensyms[i] = NULL;
-		sc->gensyms_loc--;
-		if (sc->gensyms_loc == 0) mark_function[T_SYMBOL] = mark_noop;
+		uint32_t j;
+		for (j = i + 1; i < gp->loc - 1; i++, j++)
+		  gp->list[i] = gp->list[j];
+		gp->list[i] = NULL;
+		gp->loc--;
+		if (gp->loc == 0) mark_function[T_SYMBOL] = mark_noop;
 		break;
 	      }
 	}
@@ -5427,7 +5361,7 @@ static s7_pointer pop_op_stack(s7_scheme *sc)
 
 static void initialize_op_stack(s7_scheme *sc)
 {
-  int i;
+  int32_t i;
   sc->op_stack = (s7_pointer *)malloc(OP_STACK_INITIAL_SIZE * sizeof(s7_pointer));
   sc->op_stack_size = OP_STACK_INITIAL_SIZE;
   sc->op_stack_now = sc->op_stack;
@@ -5439,13 +5373,13 @@ static void initialize_op_stack(s7_scheme *sc)
 
 static void resize_op_stack(s7_scheme *sc)
 {
-  int i, loc, new_size;
+  int32_t i, loc, new_size;
   loc = (int)(sc->op_stack_now - sc->op_stack);
   new_size = sc->op_stack_size * 2;
   sc->op_stack = (s7_pointer *)realloc((void *)(sc->op_stack), new_size * sizeof(s7_pointer));
   for (i = sc->op_stack_size; i < new_size; i++)
     sc->op_stack[i] = sc->nil;
-  sc->op_stack_size = (unsigned int)new_size;
+  sc->op_stack_size = (uint32_t)new_size;
   sc->op_stack_now = (s7_pointer *)(sc->op_stack + loc);
   sc->op_stack_end = (s7_pointer *)(sc->op_stack + sc->op_stack_size);
 }
@@ -5590,7 +5524,7 @@ static void stack_reset(s7_scheme *sc)
 
 static void resize_stack(s7_scheme *sc)
 {
-  unsigned int i, new_size, loc;  /* long long ints?? sc->stack_size also is an unsigned int */
+  uint32_t i, new_size, loc;  /* int64_ts?? sc->stack_size also is an uint32_t */
 
   loc = s7_stack_top(sc);
   new_size = sc->stack_size * 2;
@@ -5600,11 +5534,11 @@ static void resize_stack(s7_scheme *sc)
    *   size currently reaches 8192 in s7test
    */
   if (new_size > sc->max_stack_size)
-    s7_error(sc, s7_make_symbol(sc, "stack-too-big"), set_elist_1(sc, make_string_wrapper(sc, "stack has grown past (*s7* 'max-stack-size)")));
+    s7_error(sc, s7_make_symbol(sc, "stack-too-big"), set_elist_1(sc, s7_make_string_wrapper(sc, "stack has grown past (*s7* 'max-stack-size)")));
 
   vector_elements(sc->stack) = (s7_pointer *)realloc(vector_elements(sc->stack), new_size * sizeof(s7_pointer));
   if (!vector_elements(sc->stack))
-    s7_error(sc, s7_make_symbol(sc, "stack-too-big"), set_elist_1(sc, make_string_wrapper(sc, "no room to expand stack?")));
+    s7_error(sc, s7_make_symbol(sc, "stack-too-big"), set_elist_1(sc, s7_make_string_wrapper(sc, "no room to expand stack?")));
 
   for (i = sc->stack_size; i < new_size; i++)
     vector_element(sc->stack, i) = sc->nil;
@@ -5633,9 +5567,9 @@ static void resize_stack(s7_scheme *sc)
 
 /* -------------------------------- symbols -------------------------------- */
 
-static unsigned long long int raw_string_hash(const unsigned char *key, unsigned int len)
+static inline uint64_t raw_string_hash(const unsigned char *key, uint32_t len)
 {
-  unsigned long long int x;
+  uint64_t x;
   unsigned char *cx = (unsigned char *)&x;
 
   x = 0;
@@ -5643,7 +5577,7 @@ static unsigned long long int raw_string_hash(const unsigned char *key, unsigned
     memcpy((void *)cx, (void *)key, len);
   else
     {
-      unsigned long long int y;
+      uint64_t y;
       unsigned char *cy = (unsigned char *)&y;
 
       memcpy((void *)cx, (void *)key, 8);
@@ -5656,9 +5590,9 @@ static unsigned long long int raw_string_hash(const unsigned char *key, unsigned
 }
 
 
-static s7_pointer make_symbol_with_length(s7_scheme *sc, const char *name, unsigned int len);
+static s7_pointer make_symbol_with_length(s7_scheme *sc, const char *name, uint32_t len);
 
-static s7_pointer new_symbol(s7_scheme *sc, const char *name, unsigned int len, unsigned long long int hash, unsigned int location)
+static s7_pointer new_symbol(s7_scheme *sc, const char *name, uint32_t len, uint64_t hash, uint32_t location)
 {
   /* name might not be null-terminated */
   s7_pointer x, str, p;
@@ -5708,7 +5642,7 @@ static s7_pointer new_symbol(s7_scheme *sc, const char *name, unsigned int len,
 	  if (c == ':')
 	    {
 	      char *kstr;
-	      unsigned int klen;
+	      uint32_t klen;
 	      klen = symbol_name_length(x) - 1;
 	      /* can't used tmpbuf_* here (or not safely I think) because name is already using tmpbuf */
 	      kstr = (char *)malloc((klen + 1) * sizeof(char));
@@ -5734,11 +5668,11 @@ static s7_pointer new_symbol(s7_scheme *sc, const char *name, unsigned int len,
   return(x);
 }
 
-static s7_pointer make_symbol_with_length(s7_scheme *sc, const char *name, unsigned int len)
+static s7_pointer make_symbol_with_length(s7_scheme *sc, const char *name, uint32_t len)
 {
   s7_pointer x;
-  unsigned long long int hash;
-  unsigned int location;
+  uint64_t hash;
+  uint32_t location;
 
   hash = raw_string_hash((const unsigned char *)name, len);
   location = hash % SYMBOL_TABLE_SIZE;
@@ -5774,7 +5708,7 @@ s7_pointer s7_make_symbol(s7_scheme *sc, const char *name)
   return(make_symbol_with_length(sc, name, safe_strlen(name)));
 }
 
-static s7_pointer symbol_table_find_by_name(s7_scheme *sc, const char *name, unsigned long long int hash, unsigned int location)
+static s7_pointer symbol_table_find_by_name(s7_scheme *sc, const char *name, uint64_t hash, uint32_t location)
 {
   s7_pointer x;
   for (x = vector_element(sc->symbol_table, location); is_not_null(x); x = cdr(x))
@@ -5787,8 +5721,8 @@ static s7_pointer symbol_table_find_by_name(s7_scheme *sc, const char *name, uns
 
 s7_pointer s7_symbol_table_find_name(s7_scheme *sc, const char *name)
 {
-  unsigned long long int hash;
-  unsigned int location;
+  uint64_t hash;
+  uint32_t location;
   s7_pointer result;
 
   hash = raw_string_hash((const unsigned char *)name, safe_strlen(name));
@@ -5811,7 +5745,7 @@ static s7_pointer g_symbol_table(s7_scheme *sc, s7_pointer args)
 
   s7_pointer lst, x;
   s7_pointer *els;
-  int i, j, syms = 0;
+  int32_t i, j, syms = 0;
 
   /* this can't be optimized by returning the actual symbol-table (a vector of lists), because
    *    gensyms can cause the table's lists and symbols to change at any time.  This wreaks havoc
@@ -5823,13 +5757,13 @@ static s7_pointer g_symbol_table(s7_scheme *sc, s7_pointer args)
    *    (for-each-symbol (lambda (sym) (gensym) 1))
    */
 
-  for (i = 0; i < vector_length(sc->symbol_table); i++)
+  for (i = 0; i < SYMBOL_TABLE_SIZE; i++)
     for (x = vector_element(sc->symbol_table, i); is_not_null(x); x = cdr(x))
       syms++;
   sc->w = make_vector_1(sc, syms, NOT_FILLED, T_VECTOR);
   els = vector_elements(sc->w);
 
-  for (i = 0, j = 0; i < vector_length(sc->symbol_table); i++)
+  for (i = 0, j = 0; i < SYMBOL_TABLE_SIZE; i++)
     for (x = vector_element(sc->symbol_table, i); is_not_null(x); x = cdr(x))
       els[j++] = car(x);
 
@@ -5842,10 +5776,10 @@ static s7_pointer g_symbol_table(s7_scheme *sc, s7_pointer args)
 bool s7_for_each_symbol_name(s7_scheme *sc, bool (*symbol_func)(const char *symbol_name, void *data), void *data)
 {
   /* this includes the special constants #<unspecified> and so on for simplicity -- are there any others? */
-  int i;
+  int32_t i;
   s7_pointer x;
 
-  for (i = 0; i < vector_length(sc->symbol_table); i++)
+  for (i = 0; i < SYMBOL_TABLE_SIZE; i++)
     for (x = vector_element(sc->symbol_table, i); is_not_null(x); x = cdr(x))
       if (symbol_func(symbol_name(car(x)), data))
 	return(true);
@@ -5862,10 +5796,10 @@ bool s7_for_each_symbol_name(s7_scheme *sc, bool (*symbol_func)(const char *symb
 
 bool s7_for_each_symbol(s7_scheme *sc, bool (*symbol_func)(const char *symbol_name, s7_pointer value, void *data), void *data)
 {
-  int i;
+  int32_t i;
   s7_pointer x;
 
-  for (i = 0; i < vector_length(sc->symbol_table); i++)
+  for (i = 0; i < SYMBOL_TABLE_SIZE; i++)
     for (x = vector_element(sc->symbol_table, i); is_not_null(x); x = cdr(x))
       if (symbol_func(symbol_name(car(x)), cdr(x), data))
 	return(true);
@@ -5878,7 +5812,7 @@ static void remove_gensym_from_symbol_table(s7_scheme *sc, s7_pointer sym)
 {
   /* sym is a free cell at this point (we're called after the GC), but the name_cell is still intact */
   s7_pointer x, name;
-  unsigned int location;
+  uint32_t location;
 
   name = symbol_name_cell(sym);
   location = string_hash(name) % SYMBOL_TABLE_SIZE;
@@ -5911,8 +5845,8 @@ static void remove_gensym_from_symbol_table(s7_scheme *sc, s7_pointer sym)
 s7_pointer s7_gensym(s7_scheme *sc, const char *prefix)
 {
   char *name;
-  unsigned int len, location;
-  unsigned long long int hash;
+  uint32_t len, location;
+  uint64_t hash;
   s7_pointer x;
 
   len = safe_strlen(prefix) + 32;
@@ -5938,7 +5872,7 @@ static s7_pointer g_is_gensym(s7_scheme *sc, s7_pointer args)
 }
 
 
-static char *pos_int_to_str(s7_int num, unsigned int *len, char endc)
+static char *pos_int_to_str(s7_int num, uint32_t *len, char endc)
 {
   #define INT_TO_STR_SIZE 32
   static char itos[INT_TO_STR_SIZE];
@@ -5960,8 +5894,8 @@ static s7_pointer g_gensym(s7_scheme *sc, s7_pointer args)
 
   const char *prefix;
   char *name, *p;
-  unsigned int len, plen, nlen, location;
-  unsigned long long int hash;
+  uint32_t len, plen, nlen, location;
+  uint64_t hash;
   s7_pointer x, str, stc;
 
   /* get symbol name */
@@ -6124,7 +6058,7 @@ static s7_pointer g_string_to_symbol_1(s7_scheme *sc, s7_pointer str, s7_pointer
   if (!is_string(str))
     method_or_bust_one_arg(sc, str, caller, list_1(sc, str), T_STRING);
   if (string_length(str) == 0)
-    return(simple_wrong_type_argument_with_type(sc, caller, str, make_string_wrapper(sc, "a non-null string")));
+    return(simple_wrong_type_argument_with_type(sc, caller, str, s7_make_string_wrapper(sc, "a non-null string")));
 
   /* currently if the string has an embedded null, it marks the end of the new symbol name. */
   return(make_symbol_with_length(sc, string_value(str), string_length(str)));
@@ -6143,7 +6077,7 @@ static s7_pointer string_to_symbol_p_p(s7_pointer p)
   if (!is_string(p))
     simple_wrong_type_argument(cur_sc, cur_sc->string_to_symbol_symbol, p, T_STRING);
   if (string_length(p) == 0)
-    simple_wrong_type_argument_with_type(cur_sc, cur_sc->string_to_symbol_symbol, p, make_string_wrapper(cur_sc, "a non-null string"));
+    simple_wrong_type_argument_with_type(cur_sc, cur_sc->string_to_symbol_symbol, p, s7_make_string_wrapper(cur_sc, "a non-null string"));
   return(make_symbol_with_length(cur_sc, string_value(p), string_length(p)));
 }
 
@@ -6181,9 +6115,9 @@ static s7_pointer add_symbol_to_list(s7_scheme *sc, s7_pointer sym)
       set_outlet(_x_, Old_Env);			      \
       New_Env = _x_;				      \
   } while (0)
+/* this macro is noticeably faster than using the equivalent inlined new_frame_in_env function below */
 
-
-static s7_pointer new_frame_in_env(s7_scheme *sc, s7_pointer old_env)
+static inline s7_pointer new_frame_in_env(s7_scheme *sc, s7_pointer old_env)
 {
   /* return(cons(sc, sc->nil, old_env)); */
   s7_pointer x;
@@ -6195,7 +6129,7 @@ static s7_pointer new_frame_in_env(s7_scheme *sc, s7_pointer old_env)
 }
 
 
-static s7_pointer make_simple_let(s7_scheme *sc)
+static inline s7_pointer make_simple_let(s7_scheme *sc)
 {
   s7_pointer frame;
   new_cell(sc, frame, T_LET | T_SAFE_PROCEDURE);
@@ -6303,7 +6237,7 @@ static s7_pointer reuse_as_slot(s7_pointer slot, s7_pointer symbol, s7_pointer v
 static s7_pointer old_frame_with_slot(s7_scheme *sc, s7_pointer env, s7_pointer val)
 {
   s7_pointer x, sym;
-  unsigned long long int id;
+  uint64_t id;
 
   id = ++sc->let_number;
   let_id(env) = id;
@@ -6319,7 +6253,7 @@ static s7_pointer old_frame_with_slot(s7_scheme *sc, s7_pointer env, s7_pointer
 static s7_pointer old_frame_with_two_slots(s7_scheme *sc, s7_pointer env, s7_pointer val1, s7_pointer val2)
 {
   s7_pointer x, sym;
-  unsigned long long int id;
+  uint64_t id;
 
   id = ++sc->let_number;
   let_id(env) = id;
@@ -6339,7 +6273,7 @@ static s7_pointer old_frame_with_two_slots(s7_scheme *sc, s7_pointer env, s7_poi
 static s7_pointer old_frame_with_three_slots(s7_scheme *sc, s7_pointer env, s7_pointer val1, s7_pointer val2, s7_pointer val3)
 {
   s7_pointer x, sym;
-  unsigned long long int id;
+  uint64_t id;
 
   id = ++sc->let_number;
   let_id(env) = id;
@@ -6400,11 +6334,11 @@ static s7_pointer let_fill(s7_scheme *sc, s7_pointer args)
   e = car(args);
 
   if (e == sc->rootlet)
-    return(out_of_range(sc, sc->fill_symbol, small_int(1), e, make_string_wrapper(sc, "can't fill! rootlet")));
+    return(out_of_range(sc, sc->fill_symbol, small_int(1), e, s7_make_string_wrapper(sc, "can't fill! rootlet")));
   if (e == sc->owlet)
-    return(out_of_range(sc, sc->fill_symbol, small_int(1), e, make_string_wrapper(sc, "can't fill! owlet")));
+    return(out_of_range(sc, sc->fill_symbol, small_int(1), e, s7_make_string_wrapper(sc, "can't fill! owlet")));
   if (is_funclet(e))
-    return(out_of_range(sc, sc->fill_symbol, small_int(1), e, make_string_wrapper(sc, "can't fill! a funclet")));
+    return(out_of_range(sc, sc->fill_symbol, small_int(1), e, s7_make_string_wrapper(sc, "can't fill! a funclet")));
 
   val = cadr(args);
   if (val == sc->undefined)
@@ -6448,10 +6382,10 @@ static s7_pointer find_method(s7_scheme *sc, s7_pointer env, s7_pointer symbol)
 }
 
 
-static int let_length(s7_scheme *sc, s7_pointer e)
+static int32_t let_length(s7_scheme *sc, s7_pointer e)
 {
   /* used by length, applicable_length, copy, and some length optimizations */
-  int i;
+  int32_t i;
   s7_pointer p;
 
   if (e == sc->rootlet)
@@ -6526,8 +6460,8 @@ static void remove_let_from_heap(s7_scheme *sc, s7_pointer lt)
 	      (!hash_table_removed(val)))
 	    {
 	      s7_pointer iterator, p;
-	      unsigned int gc_iter;
-	      int i, len;
+	      uint32_t gc_iter;
+	      int32_t i, len;
 	      
 	      len = hash_table_entries(val);
 	      iterator = s7_make_iterator(sc, val);
@@ -6598,10 +6532,11 @@ s7_pointer s7_make_slot(s7_scheme *sc, s7_pointer env, s7_pointer symbol, s7_poi
       vector_element(ge, sc->rootlet_entries++) = slot;
       if (sc->rootlet_entries >= vector_length(ge))
 	{
-	  int i;
+	  int32_t i, len;
 	  vector_length(ge) *= 2;
-	  vector_elements(ge) = (s7_pointer *)realloc(vector_elements(ge), vector_length(ge) * sizeof(s7_pointer));
-	  for (i = sc->rootlet_entries; i < vector_length(ge); i++)
+	  len = vector_length(ge);
+	  vector_elements(ge) = (s7_pointer *)realloc(vector_elements(ge), len * sizeof(s7_pointer));
+	  for (i = sc->rootlet_entries; i < len; i++)
 	    vector_element(ge, i) = sc->nil;
 	}
       set_global_slot(symbol, slot);
@@ -6657,7 +6592,7 @@ static s7_pointer g_is_let(s7_scheme *sc, s7_pointer args)
 
 static void save_unlet(s7_scheme *sc)
 {
-  int i, k = 0;
+  int32_t i, k = 0;
   s7_pointer x;
   s7_pointer *inits;
 
@@ -6671,7 +6606,7 @@ static void save_unlet(s7_scheme *sc)
   s7_vector_fill(sc, sc->unlet, sc->nil);
   unheap(sc->unlet);
 
-  for (i = 0; i < vector_length(sc->symbol_table); i++)
+  for (i = 0; i < SYMBOL_TABLE_SIZE; i++)
     for (x = vector_element(sc->symbol_table, i); is_not_null(x); x = cdr(x))
       {
 	s7_pointer sym;
@@ -6713,7 +6648,7 @@ static s7_pointer g_unlet(s7_scheme *sc, s7_pointer args)
    *
    * Also (define hi 3) #_hi => 3, (set! hi 4), #_hi -> 3 but (with-let (unlet) hi) -> 4!
    */
-  int i;
+  int32_t i;
   s7_pointer *inits;
   s7_pointer x;
 
@@ -6871,14 +6806,14 @@ s7_pointer s7_varlet(s7_scheme *sc, s7_pointer env, s7_pointer symbol, s7_pointe
   if (!is_symbol(symbol))
     return(wrong_type_argument_with_type(sc, sc->varlet_symbol, 2, symbol, a_symbol_string));
 
+  if ((is_slot(global_slot(symbol))) &&
+      (is_syntax(slot_value(global_slot(symbol)))))
+    return(wrong_type_argument_with_type(sc, sc->varlet_symbol, 2, symbol, s7_make_string_wrapper(sc, "a non-syntactic name")));
+
   if (env == sc->rootlet)
     {
       if (is_slot(global_slot(symbol)))
-	{
-	  if (is_syntax(slot_value(global_slot(symbol))))
-	    return(wrong_type_argument_with_type(sc, sc->varlet_symbol, 2, symbol, make_string_wrapper(sc, "a non-syntactic keyword")));
-	  slot_set_value(global_slot(symbol), value);
-	}
+	slot_set_value(global_slot(symbol), value);
       else s7_make_slot(sc, env, symbol, value);
     }
   else make_slot_1(sc, env, symbol, value);
@@ -6943,7 +6878,7 @@ to the environment env, and returns the environment."
 	  if (is_slot(global_slot(sym)))
 	    {
 	      if (is_syntax(slot_value(global_slot(sym))))
-		return(wrong_type_argument_with_type(sc, sc->varlet_symbol, position_of(x, args), p, make_string_wrapper(sc, "a non-syntactic keyword")));
+		return(wrong_type_argument_with_type(sc, sc->varlet_symbol, position_of(x, args), p, s7_make_string_wrapper(sc, "a non-syntactic keyword")));
 	      /*  without this check we can end up turning our code into gibberish:
 	       *   :(set! quote 1)
 	       *   ;can't set! quote
@@ -7088,6 +7023,9 @@ static s7_pointer sublet_1(s7_scheme *sc, s7_pointer e, s7_pointer bindings, s7_
 
 	  if (is_immutable_symbol(sym))
 	    return(wrong_type_argument_with_type(sc, caller, position_of(x, bindings), sym, a_non_constant_symbol_string));
+	  if ((is_slot(global_slot(sym))) &&
+	      (is_syntax(slot_value(global_slot(sym)))))
+	    return(wrong_type_argument_with_type(sc, sc->sublet_symbol, 2, sym, s7_make_string_wrapper(sc, "a non-syntactic name")));
 
 	  /* here we know new_e is a let and is not rootlet */
 	  make_slot_1(sc, new_e, sym, val);
@@ -7150,7 +7088,7 @@ static s7_pointer g_simple_inlet(s7_scheme *sc, s7_pointer args)
 {
   /* here all args are paired with normal symbol/value, no fallbacks, no immutable symbols etc */
   s7_pointer new_e, x;
-  long long int id;
+  int64_t id;
   new_e = new_frame_in_env(sc, sc->nil);
   sc->temp3 = new_e;
   id = let_id(new_e);
@@ -7177,7 +7115,7 @@ static bool is_proper_quote(s7_scheme *sc, s7_pointer p)
 	 (is_pair(cdr(p))));
 }
 
-static s7_pointer inlet_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer inlet_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (!ops) return(f);
   if ((args > 0) &&
@@ -7213,7 +7151,7 @@ s7_pointer s7_let_to_list(s7_scheme *sc, s7_pointer env)
 
   if (env == sc->rootlet)
     {
-      unsigned int i, lim2;
+      uint32_t i, lim2;
       s7_pointer *entries;
 
       entries = vector_elements(env);
@@ -7391,7 +7329,7 @@ static s7_pointer g_local_lint_let_ref(s7_scheme *sc, s7_pointer args)
 }
 
 
-static s7_pointer let_ref_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer let_ref_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (!ops) return(f);
   if ((is_h_safe_c_c(expr)) &&
@@ -7446,7 +7384,7 @@ static s7_pointer call_accessor(s7_scheme *sc, s7_pointer slot, s7_pointer old_v
   else return(old_value);
 
   if (new_value == sc->error_symbol)
-    return(s7_error(sc, sc->error_symbol, set_elist_3(sc, make_string_wrapper(sc, "can't set! ~S to ~S"), slot_symbol(slot), old_value)));
+    return(s7_error(sc, sc->error_symbol, set_elist_3(sc, s7_make_string_wrapper(sc, "can't set! ~S to ~S"), slot_symbol(slot), old_value)));
   return(new_value);
 }
 
@@ -7597,7 +7535,7 @@ static s7_pointer g_local_lint_let_set(s7_scheme *sc, s7_pointer args)
 }
 
 
-static s7_pointer let_set_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer let_set_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (!ops) return(f);
   if ((is_h_safe_c_c(expr)) &&
@@ -7997,7 +7935,7 @@ s7_pointer s7_symbol_set_value(s7_scheme *sc, s7_pointer sym, s7_pointer val)
 
 /* -------------------------------- symbol->dynamic-value -------------------------------- */
 
-static s7_pointer find_dynamic_value(s7_scheme *sc, s7_pointer x, s7_pointer sym, long long int *id)
+static s7_pointer find_dynamic_value(s7_scheme *sc, s7_pointer x, s7_pointer sym, int64_t *id)
 {
   for (; symbol_id(sym) < let_id(x); x = outlet(x));
 
@@ -8026,8 +7964,8 @@ static s7_pointer g_symbol_to_dynamic_value(s7_scheme *sc, s7_pointer args)
   #define Q_symbol_to_dynamic_value s7_make_signature(sc, 2, sc->T, sc->is_symbol_symbol)
 
   s7_pointer sym, val;
-  long long int top_id;
-  int i;
+  int64_t top_id;
+  int32_t i;
 
   sym = car(args);
   if (!is_symbol(sym))
@@ -8090,25 +8028,31 @@ static bool do_symbol_is_safe(s7_scheme *sc, s7_pointer sym, s7_pointer e)
 
 static bool let_symbol_is_safe(s7_scheme *sc, s7_pointer sym, s7_pointer e)
 {
-  return((is_slot(global_slot(sym))) || ((!is_with_let_let(e)) && (is_slot(find_symbol(sc, sym)))));
+  return((is_slot(global_slot(sym))) || 
+	 ((!is_with_let_let(e)) && (is_slot(find_symbol(sc, sym)))));
+}
+
+static bool let_star_symbol_is_safe(s7_scheme *sc, s7_pointer sym, s7_pointer e)
+{
+  return((symbol_is_in_list(sc, sym)) || 
+	 (is_slot(global_slot(sym))) || 
+	 ((is_let(e)) && (!is_with_let_let(e)) && (is_slot(find_symbol(sc, sym)))));
 }
 
 static bool pair_symbol_is_safe(s7_scheme *sc, s7_pointer sym, s7_pointer e)
 {
-  /* fprintf(stderr, "%s: %s %d %s\n", DISPLAY(sym), DISPLAY(global_slot(sym)), direct_memq(sym, e), DISPLAY(e)); */
-  return((is_slot(global_slot(sym))) || (direct_memq(sym, e)));
+  return((is_slot(global_slot(sym))) || 
+	 (direct_memq(sym, e)));
 }
 
 
-static s7_pointer collect_variables(s7_scheme *sc, s7_pointer lst, s7_pointer e)
+static inline s7_pointer collect_variables(s7_scheme *sc, s7_pointer lst, s7_pointer e)
 {
   /* collect local variable names from let/do (pre-error-check) */
   s7_pointer p;
   sc->w = e;
   for (p = lst; is_pair(p); p = cdr(p))
-    if ((is_pair(car(p))) &&
-	(is_symbol(caar(p))))
-      sc->w = cons(sc, add_symbol_to_list(sc, caar(p)), sc->w);
+    sc->w = cons(sc, add_symbol_to_list(sc, caar(p)), sc->w);
   return(sc->w);
 }
 
@@ -8138,7 +8082,7 @@ static s7_pointer collect_parameters(s7_scheme *sc, s7_pointer lst, s7_pointer e
 /* make macros and closures */
 
 typedef enum {OPT_F, OPT_T, OPT_OOPS} opt_t;
-static opt_t optimize(s7_scheme *sc, s7_pointer code, int hop, s7_pointer e);
+static opt_t optimize(s7_scheme *sc, s7_pointer code, int32_t hop, s7_pointer e);
 
 static void clear_all_optimizations(s7_scheme *sc, s7_pointer p)
 {
@@ -8162,7 +8106,7 @@ static void clear_all_optimizations(s7_scheme *sc, s7_pointer p)
 static s7_pointer make_macro(s7_scheme *sc)
 {
   s7_pointer cx, mac;
-  unsigned int typ;
+  uint32_t typ;
 
   if (sc->op == OP_DEFINE_MACRO)
     typ = T_MACRO | T_DONT_EVAL_ARGS | T_COPY_ARGS;
@@ -8217,12 +8161,12 @@ static s7_pointer make_macro(s7_scheme *sc)
 }
 
 
-static s7_pointer make_closure(s7_scheme *sc, s7_pointer args, s7_pointer code, int type)
+static s7_pointer make_closure(s7_scheme *sc, s7_pointer args, s7_pointer code, int32_t type)
 {
   /* this is called every time a lambda form is evaluated, or during letrec, etc */
 
   s7_pointer x;
-  unsigned int typ;
+  uint32_t typ;
 
   if (type == T_CLOSURE)
     typ = T_CLOSURE | T_COPY_ARGS;
@@ -8245,7 +8189,7 @@ static s7_pointer make_closure(s7_scheme *sc, s7_pointer args, s7_pointer code,
 
 #define make_closure_with_let(Sc, X, Args, Code, Env)	\
   do {							\
-    unsigned int _T_;							\
+    uint32_t _T_;							\
     if (is_safe_closure(Code))						\
       _T_ = T_CLOSURE | T_SAFE_CLOSURE | T_COPY_ARGS;	\
     else _T_ = T_CLOSURE | T_COPY_ARGS;			\
@@ -8261,7 +8205,7 @@ static s7_pointer make_closure(s7_scheme *sc, s7_pointer args, s7_pointer code,
 
 #define make_closure_without_capture(Sc, X, Args, Code, Env)	\
   do {								\
-    unsigned int _T_;							\
+    uint32_t _T_;							\
     if (is_safe_closure(Code))						\
       _T_ = T_CLOSURE | T_SAFE_CLOSURE | T_COPY_ARGS;	\
     else _T_ = T_CLOSURE | T_COPY_ARGS;			\
@@ -8274,7 +8218,7 @@ static s7_pointer make_closure(s7_scheme *sc, s7_pointer args, s7_pointer code,
   } while (0)
 
 
-static int closure_length(s7_scheme *sc, s7_pointer e)
+static int32_t closure_length(s7_scheme *sc, s7_pointer e)
 {
   /* we can't use let_length(sc, closure_let(e)) because the closure_let(closure)
    *   changes.  So the open bit is not always on.  Besides, the fallbacks need to be for closures, not environments.
@@ -8565,7 +8509,7 @@ s7_pointer s7_make_keyword(s7_scheme *sc, const char *key)
 {
   s7_pointer sym;
   char *name;
-  unsigned int slen;
+  uint32_t slen;
   slen = safe_strlen(key);
   tmpbuf_malloc(name, slen + 2);
   name[0] = ':';                                     /* prepend ":" */
@@ -8596,12 +8540,17 @@ static s7_pointer g_keyword_to_symbol(s7_scheme *sc, s7_pointer args)
   s7_pointer sym;
   sym = car(args);
   if (!is_keyword(sym))
-    method_or_bust_with_type_one_arg(sc, sym, sc->keyword_to_symbol_symbol, args, make_string_wrapper(sc, "a keyword"));
+    method_or_bust_with_type_one_arg(sc, sym, sc->keyword_to_symbol_symbol, args, s7_make_string_wrapper(sc, "a keyword"));
   return(keyword_symbol(sym));
 }
 
 
 /* -------------------------------- symbol->keyword -------------------------------- */
+static s7_pointer symbol_to_keyword(s7_scheme *sc, s7_pointer sym)
+{
+  return(s7_make_keyword(sc, symbol_name(sym)));
+}
+
 static s7_pointer g_symbol_to_keyword(s7_scheme *sc, s7_pointer args)
 {
   #define H_symbol_to_keyword "(symbol->keyword sym) returns a keyword with the same name as sym, but with a colon prepended"
@@ -8609,7 +8558,7 @@ static s7_pointer g_symbol_to_keyword(s7_scheme *sc, s7_pointer args)
 
   if (!is_symbol(car(args)))
     method_or_bust_one_arg(sc, car(args), sc->symbol_to_keyword_symbol, args, T_SYMBOL);
-  return(s7_make_keyword(sc, symbol_name(car(args))));
+  return(symbol_to_keyword(sc, car(args)));
 }
 
 
@@ -8617,9 +8566,13 @@ static s7_pointer g_symbol_to_keyword(s7_scheme *sc, s7_pointer args)
 
 bool s7_is_c_pointer(s7_pointer arg)
 {
-  return(type(arg) == T_C_POINTER);
+  return(is_c_pointer(arg));
 }
 
+bool s7_is_c_pointer_of_type(s7_pointer arg, s7_pointer type)
+{
+  return((is_c_pointer(arg)) && (raw_pointer_type(arg) == type));
+}
 
 void *s7_c_pointer(s7_pointer p)
 {
@@ -8627,48 +8580,77 @@ void *s7_c_pointer(s7_pointer p)
       (s7_integer(p) == 0))
     return(NULL); /* special case where the null pointer has been cons'd up by hand */
 
-  if (type(p) != T_C_POINTER)
+  if (!is_c_pointer(p))
     return(NULL);
 
   return(raw_pointer(p));
 }
 
+s7_pointer s7_c_pointer_type(s7_pointer p)
+{
+  if (!is_c_pointer(p))
+    return(NULL); /* as above */
+  return(raw_pointer_type(p));
+}
 
-s7_pointer s7_make_c_pointer(s7_scheme *sc, void *ptr)
+s7_pointer s7_make_c_pointer_with_type(s7_scheme *sc, void *ptr, s7_pointer type, s7_pointer info)
 {
   s7_pointer x;
   new_cell(sc, x, T_C_POINTER);
   raw_pointer(x) = ptr;
+  raw_pointer_type(x) = type;
+  raw_pointer_info(x) = info;
   return(x);
 }
 
+s7_pointer s7_make_c_pointer(s7_scheme *sc, void *ptr) {return(s7_make_c_pointer_with_type(sc, ptr, sc->F, sc->F));}
 
 static s7_pointer g_is_c_pointer(s7_scheme *sc, s7_pointer args)
 {
-  #define H_is_c_pointer "(c-pointer? obj) returns #t if obj is a C pointer being held in s7."
-  #define Q_is_c_pointer pl_bt
+  #define H_is_c_pointer "(c-pointer? obj type) returns #t if obj is a C pointer being held in s7.  If type is given, the c_pointer's type is also checked."
+  #define Q_is_c_pointer s7_make_signature(sc, 3, sc->is_boolean_symbol, sc->T, sc->T)
 
-  check_boolean_method(sc, s7_is_c_pointer, sc->is_c_pointer_symbol, args);
+  s7_pointer p;
+  p = car(args);
+  if (!is_c_pointer(p))
+    {
+      if (!has_methods(p)) return(sc->F);
+      return(apply_boolean_method(sc, p, sc->is_c_pointer_symbol));
+    }
+  if (is_pair(cdr(args)))
+    return(make_boolean(sc, raw_pointer_type(p) == cadr(args)));
+  return(sc->T);
 }
 
 static s7_pointer g_c_pointer(s7_scheme *sc, s7_pointer args)
 {
-  #define H_c_pointer "(c-pointer int) returns a c-pointer object."
-  #define Q_c_pointer s7_make_signature(sc, 2, sc->is_c_pointer_symbol, sc->is_integer_symbol)
+  #define H_c_pointer "(c-pointer int type info) returns a c-pointer object. The type and info args are optional, defaulting to #f."
+  #define Q_c_pointer s7_make_signature(sc, 4, sc->is_c_pointer_symbol, sc->is_integer_symbol, sc->T, sc->T)
 
-  s7_pointer arg;
+  s7_pointer arg, type, info;
   ptr_int p;
 
   arg = car(args);
   if (!s7_is_integer(arg))
     method_or_bust(sc, arg, sc->c_pointer_symbol, list_1(sc, arg), T_INTEGER, 1);
   p = (ptr_int)s7_integer(arg);             /* (c-pointer (bignum "1234")) */
-  return(s7_make_c_pointer(sc, (void *)p));
+  info = sc->F;
+  if (is_pair(cdr(args)))
+    {
+      type = cadr(args);
+      if (is_pair(cddr(args)))
+	info = caddr(args);
+    }
+  else type = sc->F;
+  return(s7_make_c_pointer_with_type(sc, (void *)p, type, info));
 }
 
 
 /* -------------------------------- continuations and gotos -------------------------------- */
 
+enum {NO_JUMP, CALL_WITH_EXIT_JUMP, THROW_JUMP, CATCH_JUMP, ERROR_JUMP, ERROR_QUIT_JUMP};
+enum {NO_SET_JUMP, READ_SET_JUMP, LOAD_SET_JUMP, DYNAMIC_WIND_SET_JUMP, S7_CALL_SET_JUMP, EVAL_SET_JUMP};
+
 static s7_pointer g_is_continuation(s7_scheme *sc, s7_pointer args)
 {
   #define H_is_continuation "(continuation? obj) returns #t if obj is a continuation"
@@ -8758,10 +8740,10 @@ static s7_pointer copy_counter(s7_scheme *sc, s7_pointer obj)
 }
 
 
-static s7_pointer copy_stack(s7_scheme *sc, s7_pointer old_v, int top)
+static s7_pointer copy_stack(s7_scheme *sc, s7_pointer old_v, int32_t top)
 {
   #define CC_INITIAL_STACK_SIZE 256 /* 128 is too small here */
-  int i, len;
+  int32_t i, len;
   s7_pointer new_v;
   s7_pointer *nv, *ov;
 
@@ -8779,7 +8761,7 @@ static s7_pointer copy_stack(s7_scheme *sc, s7_pointer old_v, int top)
       if (len < CC_INITIAL_STACK_SIZE)
 	len = CC_INITIAL_STACK_SIZE;
     }
-  if ((int)(sc->free_heap_top - sc->free_heap) < (int)(sc->heap_size / 4)) gc(sc);
+  if ((int64_t)(sc->free_heap_top - sc->free_heap) < (int64_t)(sc->heap_size / 4)) gc(sc);
   /* this gc call is needed if there are lots of call/cc's -- by pure bad luck
    *   we can end up hitting the end of the gc free list time after time while
    *   in successive copy_stack's below, causing s7 to core up until it runs out of memory.
@@ -8827,7 +8809,7 @@ static s7_pointer make_goto(s7_scheme *sc)
 
 static s7_pointer *copy_op_stack(s7_scheme *sc)
 {
-  int len;
+  int32_t len;
   s7_pointer *ops;
   ops = (s7_pointer *)malloc(sc->op_stack_size * sizeof(s7_pointer));
   len = (int)(sc->op_stack_now - sc->op_stack);
@@ -8857,7 +8839,7 @@ static s7_pointer make_baffle(s7_scheme *sc)
 }
 
 
-static bool find_baffle(s7_scheme *sc, int key)
+static bool find_baffle(s7_scheme *sc, int32_t key)
 {
   /* search backwards through sc->envir for sc->baffle_symbol with key as value
    */
@@ -8876,7 +8858,7 @@ static bool find_baffle(s7_scheme *sc, int key)
 }
 
 
-static int find_any_baffle(s7_scheme *sc)
+static int32_t find_any_baffle(s7_scheme *sc)
 {
   /* search backwards through sc->envir for any sc->baffle_symbol
    */
@@ -8899,7 +8881,7 @@ static int find_any_baffle(s7_scheme *sc)
 s7_pointer s7_make_continuation(s7_scheme *sc)
 {
   s7_pointer x, stack;
-  int loc;
+  int32_t loc;
 
   loc = s7_stack_top(sc);
   stack = copy_stack(sc, sc->stack, loc);
@@ -8932,7 +8914,7 @@ static void let_temp_done(s7_scheme *sc, s7_pointer args, s7_pointer code)
 
 static bool check_for_dynamic_winds(s7_scheme *sc, s7_pointer c)
 {
-  int i, s_base = 0, c_base = -1;
+  int32_t i, s_base = 0, c_base = -1;
   opcode_t op;
 
   for (i = s7_stack_top(sc) - 1; i > 0; i -= 4)
@@ -8944,7 +8926,7 @@ static bool check_for_dynamic_winds(s7_scheme *sc, s7_pointer c)
 	case OP_LET_TEMP_DONE:
 	  {
 	    s7_pointer x;
-	    int j;
+	    int32_t j;
 	    x = stack_code(sc->stack, i);
 	    for (j = 3; j < continuation_stack_top(c); j += 4)
 	      if (((stack_op(continuation_stack(c), j) == OP_DYNAMIC_WIND) || 
@@ -9050,7 +9032,7 @@ static bool call_with_current_continuation(s7_scheme *sc)
   sc->stack_resize_trigger = (s7_pointer *)(sc->stack_start + sc->stack_size / 2);
 
   {
-    int i, top;
+    int32_t i, top;
     top = continuation_op_loc(c);
     sc->op_stack_now = (s7_pointer *)(sc->op_stack + top);
     sc->op_stack_size = continuation_op_size(c);
@@ -9073,7 +9055,7 @@ static bool call_with_current_continuation(s7_scheme *sc)
 
 static void call_with_exit(s7_scheme *sc)
 {
-  int i, new_stack_top, quit = 0;
+  int32_t i, new_stack_top, quit = 0;
 
   if (!call_exit_active(sc->code))
     {
@@ -9195,7 +9177,7 @@ static s7_pointer g_call_cc(s7_scheme *sc, s7_pointer args)
       return(simple_wrong_type_argument_with_type(sc, sc->call_cc_symbol, p, a_procedure_string));
     }
   if (!s7_is_aritable(sc, p, 1))
-    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, make_string_wrapper(sc, "call/cc procedure, ~A, should take one argument"), p)));
+    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "call/cc procedure, ~A, should take one argument"), p)));
 
   sc->w = s7_make_continuation(sc);
   push_stack(sc, OP_APPLY, list_1(sc, sc->w), p);
@@ -9262,13 +9244,13 @@ static s7_pointer g_call_with_exit(s7_scheme *sc, s7_pointer args)
 /* -------------------------------- numbers -------------------------------- */
 
 #if WITH_GMP
-  static char *big_number_to_string_with_radix(s7_pointer p, int radix, int width, int *nlen, use_write_t use_write);
+  static char *big_number_to_string_with_radix(s7_pointer p, int32_t radix, int32_t width, int32_t *nlen, use_write_t use_write);
   static bool big_numbers_are_eqv(s7_pointer a, s7_pointer b);
-  static s7_pointer string_to_either_integer(s7_scheme *sc, const char *str, int radix);
-  static s7_pointer string_to_either_ratio(s7_scheme *sc, const char *nstr, const char *dstr, int radix);
-  static s7_pointer string_to_either_real(s7_scheme *sc, const char *str, int radix);
+  static s7_pointer string_to_either_integer(s7_scheme *sc, const char *str, int32_t radix);
+  static s7_pointer string_to_either_ratio(s7_scheme *sc, const char *nstr, const char *dstr, int32_t radix);
+  static s7_pointer string_to_either_real(s7_scheme *sc, const char *str, int32_t radix);
   static s7_pointer string_to_either_complex(s7_scheme *sc, char *q, char *slash1, char *ex1, bool has_dec_point1,
-					     char *plus, char *slash2, char *ex2, bool has_dec_point2, int radix, int has_plus_or_minus);
+					     char *plus, char *slash2, char *ex2, bool has_dec_point2, int32_t radix, int32_t has_plus_or_minus);
   static s7_pointer big_add(s7_scheme *sc, s7_pointer args);
   static s7_pointer big_subtract(s7_scheme *sc, s7_pointer args);
   static s7_pointer big_multiply(s7_scheme *sc, s7_pointer args);
@@ -9277,7 +9259,7 @@ static s7_pointer g_call_with_exit(s7_scheme *sc, s7_pointer args)
   static s7_pointer s7_int_to_big_integer(s7_scheme *sc, s7_int val);
   static s7_pointer s7_ratio_to_big_ratio(s7_scheme *sc, s7_int num, s7_int den);
   static s7_pointer s7_number_to_big_real(s7_scheme *sc, s7_pointer p);
-  static s7_pointer promote_number(s7_scheme *sc, int type, s7_pointer x);
+  static s7_pointer promote_number(s7_scheme *sc, int32_t type, s7_pointer x);
   static s7_pointer big_equal(s7_scheme *sc, s7_pointer args);
   static s7_pointer big_negate(s7_scheme *sc, s7_pointer args);
   static s7_pointer big_invert(s7_scheme *sc, s7_pointer args);
@@ -9291,7 +9273,7 @@ static s7_pointer g_call_with_exit(s7_scheme *sc, s7_pointer args)
   static s7_pointer mpc_to_big_complex(s7_scheme *sc, mpc_t val);
 #endif
 
-#if ((defined(__clang__) && ((__clang_major__ > 3) || (__clang_major__ == 3 && __clang_minor__ >= 4))) || (defined(__GNUC__) && __GNUC__ >= 5))
+#if ((defined(__clang__) && (!POINTER_32) && ((__clang_major__ > 3) || (__clang_major__ == 3 && __clang_minor__ >= 4))) || (defined(__GNUC__) && __GNUC__ >= 5))
   #define HAVE_OVERFLOW_CHECKS 1
 #else
   #define HAVE_OVERFLOW_CHECKS 0
@@ -9300,10 +9282,10 @@ static s7_pointer g_call_with_exit(s7_scheme *sc, s7_pointer args)
   #endif
 #endif
 
-#if (defined(__clang__) && ((__clang_major__ > 3) || (__clang_major__ == 3 && __clang_minor__ >= 4))) 
-  #define subtract_overflow(A, B, C)     __builtin_ssubll_overflow(A, B, C)
-  #define add_overflow(A, B, C)          __builtin_saddll_overflow(A, B, C)
-  #define multiply_overflow(A, B, C)     __builtin_smulll_overflow(A, B, C)
+#if (defined(__clang__) && (!POINTER_32) && ((__clang_major__ > 3) || (__clang_major__ == 3 && __clang_minor__ >= 4))) 
+  #define subtract_overflow(A, B, C)     __builtin_ssubll_overflow((long long)A, (long long)B, (long long *)C)
+  #define add_overflow(A, B, C)          __builtin_saddll_overflow((long long)A, (long long)B, (long long *)C)
+  #define multiply_overflow(A, B, C)     __builtin_smulll_overflow((long long)A, (long long)B, (long long *)C)
   #define int_subtract_overflow(A, B, C) __builtin_ssub_overflow(A, B, C)
   #define int_add_overflow(A, B, C)      __builtin_sadd_overflow(A, B, C)
   #define int_multiply_overflow(A, B, C) __builtin_smul_overflow(A, B, C)
@@ -9320,7 +9302,7 @@ static s7_pointer g_call_with_exit(s7_scheme *sc, s7_pointer args)
 
 
 #define s7_int_abs(x) ((x) >= 0 ? (x) : -(x))
-/* can't use abs even in gcc -- it doesn't work with long long ints! */
+/* can't use abs even in gcc -- it doesn't work with int64_ts! */
 
 #if (!__NetBSD__)
   #define s7_fabsl(X) fabsl(X)
@@ -9593,7 +9575,7 @@ static bool c_rationalize(s7_double ux, s7_double error, s7_int *numer, s7_int *
   double x0, x1;
   s7_int i, i0, i1, p0, q0, p1, q1;
   double e0, e1, e0p, e1p;
-  int tries = 0;
+  int32_t tries = 0;
   /* don't use s7_double here;  if it is "long double", the loop below will hang */
 
   /* #e1e19 is a killer -- it's bigger than most-positive-fixnum, but if we ceil(ux) below
@@ -9780,7 +9762,7 @@ s7_pointer s7_make_mutable_real(s7_scheme *sc, s7_double n)
 static s7_pointer make_permanent_real(s7_double n)
 {
   s7_pointer x;
-  int nlen = 0;
+  int32_t nlen = 0;
   char *str;
 
   x = (s7_pointer)calloc(1, sizeof(s7_cell));
@@ -9818,7 +9800,7 @@ s7_pointer s7_make_ratio(s7_scheme *sc, s7_int a, s7_int b)
   s7_int divisor;
 
   if (b == 0)
-    return(division_by_zero_error(sc, make_string_wrapper(sc, "make-ratio"), set_elist_2(sc, make_integer(sc, a), small_int(0))));
+    return(division_by_zero_error(sc, s7_make_string_wrapper(sc, "make-ratio"), set_elist_2(sc, make_integer(sc, a), small_int(0))));
   if (a == 0)
     return(small_int(0));
   if (b == 1)
@@ -9881,7 +9863,7 @@ s7_pointer s7_make_ratio(s7_scheme *sc, s7_int a, s7_int b)
 #if (!WITH_PURE_S7) && (!WITH_GMP)
 static s7_pointer exact_to_inexact(s7_scheme *sc, s7_pointer x)
 {
-  /* this is tricky because a big int can mess up when turned into a double:
+  /* this is tricky because a big int32_t can mess up when turned into a double:
    *   (truncate (exact->inexact most-positive-fixnum)) -> -9223372036854775808
    */
   switch (type(x))
@@ -10049,8 +10031,8 @@ static s7_pointer s7_from_c_complex(s7_scheme *sc, s7_complex z)
 #endif
 
 
-static int s7_int32_max = 0, s7_int32_min = 0, s7_int_bits = 0, s7_int_digits = 0; /* initialized later */
-static int s7_int_digits_by_radix[17];
+static int32_t s7_int32_max = 0, s7_int32_min = 0, s7_int_bits = 0, s7_int_digits = 0; /* initialized later */
+static int32_t s7_int_digits_by_radix[17];
 
 
 #if (!WITH_GMP)
@@ -10103,7 +10085,7 @@ static s7_pointer subtract_ratios(s7_scheme *sc, s7_pointer x, s7_pointer y)
   d2 = number_to_denominator(y);
   n2 = number_to_numerator(y);
 
-  if (d1 == d2)                                     /* the easy case -- if overflow here, it matches the int case */
+  if (d1 == d2)                                     /* the easy case -- if overflow here, it matches the int32_t case */
     return(s7_make_ratio(sc, n1 - n2, d1));
 
 #if (!WITH_GMP) && HAVE_OVERFLOW_CHECKS
@@ -10182,7 +10164,7 @@ static double pepow[17][MAX_POW], mepow[17][MAX_POW];
 
 static void init_pows(void)
 {
-  int i, j;
+  int32_t i, j;
   for (i = 2; i < 17; i++)        /* radix between 2 and 16 */
     for (j = 0; j < MAX_POW; j++) /* saved exponent between 0 and +/- MAX_POW */
       {
@@ -10191,7 +10173,7 @@ static void init_pows(void)
       }
 }
 
-static double ipow(int x, int y)
+static double ipow(int32_t x, int32_t y)
 {
   if ((y < MAX_POW) && (y > (-MAX_POW)))
     {
@@ -10203,10 +10185,10 @@ static double ipow(int x, int y)
 }
 
 
-static int s7_int_to_string(char *p, s7_int n, int radix, int width)
+static int32_t s7_int_to_string(char *p, s7_int n, int32_t radix, int32_t width)
 {
   static const char dignum[] = "0123456789abcdef";
-  int i, len, start, end;
+  int32_t i, len, start, end;
   bool sign;
   s7_int pown;
 
@@ -10278,9 +10260,9 @@ static int s7_int_to_string(char *p, s7_int n, int radix, int width)
 }
 
 
-static char *integer_to_string_base_10_no_width(s7_pointer obj, int *nlen) /* do not free the returned string */
+static char *integer_to_string_base_10_no_width(s7_pointer obj, int32_t *nlen) /* do not free the returned string */
 {
-  long long int num;
+  int64_t num;
   char *p, *op;
   bool sign;
   static char int_to_str[INT_TO_STR_SIZE];
@@ -10290,10 +10272,10 @@ static char *integer_to_string_base_10_no_width(s7_pointer obj, int *nlen) /* do
       (*nlen) = print_name_length(obj);
       return((char *)print_name(obj));
     }
-  /* (*nlen) = snprintf(int_to_str, INT_TO_STR_SIZE, "%lld", (long long int)integer(obj));
+  /* (*nlen) = snprintf(int_to_str, INT_TO_STR_SIZE, "%" PRId64 "", (int64_t)integer(obj));
    *  but that is very slow -- the following code is 6 times faster
    */
-  num = (long long int)integer(obj);
+  num = (int64_t)integer(obj);
   if (num == s7_int_min)
     {
       (*nlen) = 20;
@@ -10319,17 +10301,17 @@ static char *integer_to_string_base_10_no_width(s7_pointer obj, int *nlen) /* do
 
 
 #define BASE_10 10
-static int num_to_str_size = -1;
+static int32_t num_to_str_size = -1;
 static char *num_to_str = NULL;
 static const char *float_format_g = NULL;
 
-static char *floatify(char *str, int *nlen)
+static char *floatify(char *str, int32_t *nlen)
 {
   if ((!strchr(str, 'e')) &&
       (!strchr(str, '.')))
     {
       /* this assumes there is room in str for 2 more chars */
-      int len;
+      int32_t len;
       len = *nlen;
       str[len]='.';
       str[len + 1]='0';
@@ -10339,13 +10321,13 @@ static char *floatify(char *str, int *nlen)
   return(str);
 }
 
-static char *number_to_string_base_10(s7_pointer obj, int width, int precision, char float_choice, int *nlen, use_write_t choice) /* don't free result */
+static char *number_to_string_base_10(s7_pointer obj, int32_t width, int32_t precision, char float_choice, int32_t *nlen, use_write_t choice) /* don't free result */
 {
   /* the rest of s7 assumes nlen is set to the correct length 
    *   a tricky case: (format #f "~f" 1e308) -- tries to print 308 digits! so 256 as default len is too small.
    *   but then even worse: (format #f "~F" 1e308+1e308i)!
    */
-  int len;
+  int32_t len;
   len = 1024;
   if (width > len) len = 2 * width;
   if (len > num_to_str_size)
@@ -10362,14 +10344,14 @@ static char *number_to_string_base_10(s7_pointer obj, int width, int precision,
     case T_INTEGER:
       if (width == 0)
 	return(integer_to_string_base_10_no_width(obj, nlen));
-      (*nlen) = snprintf(num_to_str, num_to_str_size, "%*" LL_D, width, (long long int)integer(obj));
+      (*nlen) = snprintf(num_to_str, num_to_str_size, "%*" PRId64, width, (int64_t)integer(obj));
       break;
 
     case T_RATIO:
-      len = snprintf(num_to_str, num_to_str_size, "%" LL_D "/%" LL_D, (long long int)numerator(obj), (long long int)denominator(obj));
+      len = snprintf(num_to_str, num_to_str_size, "%" PRId64 "/%" PRId64, (int64_t)numerator(obj), (int64_t)denominator(obj));
       if (width > len)
 	{
-	  int spaces;
+	  int32_t spaces;
 	  if (width >= num_to_str_size)
 	    {
 	      num_to_str_size = width + 1;
@@ -10459,7 +10441,7 @@ static char *number_to_string_base_10(s7_pointer obj, int width, int precision,
 
 	if (width > len)  /* (format #f "~20g" 1+i) */
 	  {
-	    int spaces;
+	    int32_t spaces;
 	    if (width >= num_to_str_size)
 	      {
 		num_to_str_size = width + 1;
@@ -10479,11 +10461,11 @@ static char *number_to_string_base_10(s7_pointer obj, int width, int precision,
 }
 
 
-static char *number_to_string_with_radix(s7_scheme *sc, s7_pointer obj, int radix, int width, int precision, char float_choice, int *nlen)
+static char *number_to_string_with_radix(s7_scheme *sc, s7_pointer obj, int32_t radix, int32_t width, int32_t precision, char float_choice, int32_t *nlen)
 {
   /* the rest of s7 assumes nlen is set to the correct length */
   char *p;
-  int len, str_len;
+  int32_t len, str_len;
 
 #if WITH_GMP
   if (s7_is_bignum(obj))
@@ -10522,7 +10504,7 @@ static char *number_to_string_with_radix(s7_scheme *sc, s7_pointer obj, int radi
 
     case T_REAL:
       {
-	int i;
+	int32_t i;
 	s7_int int_part;
 	s7_double x, frac_part, min_frac, base;
 	bool sign = false;
@@ -10547,7 +10529,7 @@ static char *number_to_string_with_radix(s7_scheme *sc, s7_pointer obj, int radi
 
 	if (x > 1.0e18) /* i.e. close to or greater than most-positive-fixnum (9.22e18), so the code below is unlikely to work, (format #f "~X" 1e19) */
 	  {
-	    int ep;
+	    int32_t ep;
 	    char *p1;
 	    s7_pointer r;
 
@@ -10604,7 +10586,7 @@ static char *number_to_string_with_radix(s7_scheme *sc, s7_pointer obj, int radi
 
   if (width > len)
     {
-      int spaces;
+      int32_t spaces;
       if (width >= str_len)
 	{
 	  str_len = width + 1;
@@ -10621,16 +10603,16 @@ static char *number_to_string_with_radix(s7_scheme *sc, s7_pointer obj, int radi
 }
 
 
-char *s7_number_to_string(s7_scheme *sc, s7_pointer obj, int radix)
+char *s7_number_to_string(s7_scheme *sc, s7_pointer obj, int32_t radix)
 {
-  int nlen = 0;
+  int32_t nlen = 0;
   return(number_to_string_with_radix(sc, obj, radix, 0, 20, 'g', &nlen));
   /* (log top 10) so we get all the digits in base 10 (??) */
 }
 
 static s7_pointer number_to_string_p(s7_pointer p)
 {
-  int nlen = 0;
+  int32_t nlen = 0;
   char *res;
   if (!is_number(p))
     simple_wrong_type_argument_with_type(cur_sc, cur_sc->number_to_string_symbol, p, a_number_string);
@@ -10639,7 +10621,7 @@ static s7_pointer number_to_string_p(s7_pointer p)
 }
 
 
-static void prepare_temporary_string(s7_scheme *sc, int len, int which)
+static void prepare_temporary_string(s7_scheme *sc, int32_t len, int32_t which)
 {
   s7_pointer p;
   p = sc->tmp_strs[which];
@@ -10656,7 +10638,7 @@ static s7_pointer g_number_to_string_1(s7_scheme *sc, s7_pointer args, bool temp
   #define Q_number_to_string s7_make_signature(sc, 3, sc->is_string_symbol, sc->is_number_symbol, sc->is_integer_symbol)
 
   s7_int radix = 10;
-  int size, nlen = 0;
+  int32_t size, nlen = 0;
   char *res;
   s7_pointer x;
 
@@ -10749,11 +10731,11 @@ static s7_pointer g_number_to_string_temp(s7_scheme *sc, s7_pointer args)
 
 #define CTABLE_SIZE 256
 static bool *exponent_table, *slashify_table, *char_ok_in_a_name, *white_space, *number_table, *symbol_slashify_table;
-static int *digits;
+static int32_t *digits;
 
 static void init_ctables(void)
 {
-  int i;
+  int32_t i;
 
   exponent_table = (bool *)calloc(CTABLE_SIZE, sizeof(bool));
   slashify_table = (bool *)calloc(CTABLE_SIZE, sizeof(bool));
@@ -10808,7 +10790,7 @@ static void init_ctables(void)
   for (i = 0; i < CTABLE_SIZE; i++)
     symbol_slashify_table[i] = ((slashify_table[i]) || (!char_ok_in_a_name[i]));
 
-  digits = (int *)calloc(CTABLE_SIZE, sizeof(int));
+  digits = (int32_t *)calloc(CTABLE_SIZE, sizeof(int));
   for (i = 0; i < CTABLE_SIZE; i++)
     digits[i] = 256;
 
@@ -10953,7 +10935,7 @@ static s7_pointer unknown_sharp_constant(s7_scheme *sc, char *name)
   if (hook_has_functions(sc->read_error_hook))
     {
       s7_pointer result;
-      result = s7_call(sc, sc->read_error_hook, list_2(sc, sc->T, make_string_wrapper(sc, name)));
+      result = s7_call(sc, sc->read_error_hook, list_2(sc, sc->T, s7_make_string_wrapper(sc, name)));
       if (result != sc->unspecified)
 	return(result);
     }
@@ -10963,10 +10945,10 @@ static s7_pointer unknown_sharp_constant(s7_scheme *sc, char *name)
 #define SYMBOL_OK true
 #define NO_SYMBOLS false
 
-static s7_pointer make_sharp_constant(s7_scheme *sc, char *name, int radix, bool with_error)
+static s7_pointer make_sharp_constant(s7_scheme *sc, char *name, int32_t radix, bool with_error)
 {
   /* name is the stuff after the '#', return sc->nil if not a recognized #... entity */
-  int len;
+  int32_t len;
   s7_pointer x;
 
   if ((name[0] == 't') &&
@@ -11009,7 +10991,7 @@ static s7_pointer make_sharp_constant(s7_scheme *sc, char *name, int radix, bool
     case 'x':   /* #x (hex) */
     case 'b':   /* #b (binary) */
       {
-	int num_at = 1;
+	int32_t num_at = 1;
 	/* the #b or whatever overrides any radix passed in earlier */
 	x = make_atom(sc, (char *)(name + num_at), (name[0] == 'o') ? 8 : ((name[0] == 'x') ? 16 : ((name[0] == 'b') ? 2 : 10)), NO_SYMBOLS, with_error);
 	if (is_abnormal(x))
@@ -11026,7 +11008,7 @@ static s7_pointer make_sharp_constant(s7_scheme *sc, char *name, int radix, bool
 	sym = make_symbol(sc, (char *)(name + 1));
 	if (is_slot(initial_slot(sym)))
 	  return(slot_value(initial_slot(sym)));
-	return(s7_error(sc, sc->syntax_error_symbol, set_elist_2(sc, make_string_wrapper(sc, "#~A is undefined"), make_string_wrapper(sc, name))));
+	return(s7_error(sc, sc->syntax_error_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "#~A is undefined"), s7_make_string_wrapper(sc, name))));
 	/* return(sc->undefined); */
       }
 
@@ -11035,7 +11017,7 @@ static s7_pointer make_sharp_constant(s7_scheme *sc, char *name, int radix, bool
     case '\\':
       if (name[2] == 0)                             /* the most common case: #\a */
 	return(chars[(unsigned char)(name[1])]);
-      /* not unsigned int here!  (unsigned int)255 (as a char) returns -1!! */
+      /* not uint32_t here!  (uint32_t)255 (as a char) returns -1!! */
       switch (name[1])
 	{
 	case 'n':
@@ -11105,12 +11087,12 @@ static s7_pointer make_sharp_constant(s7_scheme *sc, char *name, int radix, bool
 	     */
 	    bool happy = true;
 	    char *tmp;
-	    int lval = 0;
+	    int32_t lval = 0;
 
 	    tmp = (char *)(name + 2);
 	    while ((*tmp) && (happy) && (lval >= 0))
 	      {
-		int dig;
+		int32_t dig;
 		dig = digits[(int)(*tmp++)];
 		if (dig < 16)
 		  lval = dig + (lval * 16);
@@ -11128,11 +11110,11 @@ static s7_pointer make_sharp_constant(s7_scheme *sc, char *name, int radix, bool
 }
 
 
-static s7_int string_to_integer(const char *str, int radix, bool *overflow)
+static s7_int string_to_integer(const char *str, int32_t radix, bool *overflow)
 {
   bool negative = false;
   s7_int lval = 0;
-  int dig;
+  int32_t dig;
   char *tmp = (char *)str;
   char *tmp1;
 
@@ -11218,7 +11200,7 @@ static s7_int string_to_integer(const char *str, int radix, bool *overflow)
  * 1.0e00000000000000000001           10.0
  */
 
-static s7_double string_to_double_with_radix(const char *ur_str, int radix, bool *overflow)
+static s7_double string_to_double_with_radix(const char *ur_str, int32_t radix, bool *overflow)
 {
   /* strtod follows LANG which is not what we want (only "." is decimal point in Scheme).
    *   To overcome LANG in strtod would require screwing around with setlocale which never works.
@@ -11227,8 +11209,8 @@ static s7_double string_to_double_with_radix(const char *ur_str, int radix, bool
    * comma as decimal point causes ambiguities: `(+ ,1 2) etc
    */
 
-  int i, sign = 1, frac_len, int_len, dig, max_len, exponent = 0;
-  long long int int_part = 0, frac_part = 0;
+  int32_t i, sign = 1, frac_len, int_len, dig, max_len, exponent = 0;
+  int64_t int_part = 0, frac_part = 0;
   char *str;
   char *ipart, *fpart;
   s7_double dval = 0.0;
@@ -11269,7 +11251,7 @@ static s7_double string_to_double_with_radix(const char *ur_str, int radix, bool
 
   if ((*str) && (exponent_table[(unsigned char)(*str)]))
     {
-      int exp_negative = false;
+      int32_t exp_negative = false;
       str++;
       if (*str == '+')
 	str++;
@@ -11389,7 +11371,7 @@ static s7_double string_to_double_with_radix(const char *ur_str, int radix, bool
 
       if (int_len < max_len)
 	{
-	  int k, flen;
+	  int32_t k, flen;
 	  str = fpart;
 
 	  for (k = 0; (frac_len > 0) && (k < exponent); k += max_len)
@@ -11410,7 +11392,7 @@ static s7_double string_to_double_with_radix(const char *ur_str, int radix, bool
 	  /* some of the fraction is in the integer part before the negative exponent shifts it over */
 	  if (int_len > max_len)
 	    {
-	      int ilen;
+	      int32_t ilen;
 	      /* str should be at the last digit we read */
 	      ilen = int_len - max_len;                          /* we read these above */
 	      if (ilen > max_len)
@@ -11430,7 +11412,7 @@ static s7_double string_to_double_with_radix(const char *ur_str, int radix, bool
 
   if (int_len <= max_len)
     {
-      int int_exponent;
+      int32_t int_exponent;
 
       /* a better algorithm (since the inaccuracies are in the radix^exponent portion):
        *   strip off leading zeros and possible sign,
@@ -11457,8 +11439,8 @@ static s7_double string_to_double_with_radix(const char *ur_str, int radix, bool
     }
   else
     {
-      int len, flen;
-      long long int frpart = 0;
+      int32_t len, flen;
+      int64_t frpart = 0;
 
       /* 98765432101234567890987654321.0e-20    987654321.012346
        * 98765432101234567890987654321.0e-29    0.98765432101235
@@ -11498,7 +11480,7 @@ static s7_double string_to_double_with_radix(const char *ur_str, int radix, bool
 	    frac_part = digits[(int)(*str++)] + (frac_part * radix);
 	  dval += frac_part * ipow(radix, exponent - frac_len);
 
-	  /* fprintf(stderr, "frac: %lld, exp: (%d %d) %.20f, val: %.20f\n", frac_part, exponent, frac_len, ipow(radix, exponent - frac_len), dval);
+	  /* fprintf(stderr, "frac: %" PRId64 ", exp: (%d %d) %.20f, val: %.20f\n", frac_part, exponent, frac_len, ipow(radix, exponent - frac_len), dval);
 	   * 0.6:    frac:    6, exp: 0.10000000000000000555, val: 0.60000000000000008882
 	   * 0.60:   frac:   60, exp: 0.01000000000000000021, val: 0.59999999999999997780
 	   * 0.6000: frac: 6000, exp: 0.00010000000000000000, val: 0.59999999999999997780
@@ -11559,7 +11541,7 @@ static s7_double string_to_double_with_radix(const char *ur_str, int radix, bool
 }
 
 
-static s7_pointer make_atom(s7_scheme *sc, char *q, int radix, bool want_symbol, bool with_error)
+static s7_pointer make_atom(s7_scheme *sc, char *q, int32_t radix, bool want_symbol, bool with_error)
 {
   /* make symbol or number from string */
   #define IS_DIGIT(Chr, Rad) (digits[(unsigned char)Chr] < Rad)
@@ -11611,7 +11593,7 @@ static s7_pointer make_atom(s7_scheme *sc, char *q, int radix, bool want_symbol,
   {
     char *slash1 = NULL, *slash2 = NULL, *plus = NULL, *ex1 = NULL, *ex2 = NULL;
     bool has_i = false, has_dec_point2 = false;
-    int has_plus_or_minus = 0, current_radix;
+    int32_t has_plus_or_minus = 0, current_radix;
 
 #if (!WITH_GMP)
     bool overflow = false;
@@ -11762,7 +11744,7 @@ static s7_pointer make_atom(s7_scheme *sc, char *q, int radix, bool want_symbol,
 	char e1 = 0, e2 = 0;
 #endif
 	s7_pointer result;
-	int len;
+	int32_t len;
 	char ql1, pl1;
 
 	len = safe_strlen(q);
@@ -11939,7 +11921,7 @@ static s7_pointer make_atom(s7_scheme *sc, char *q, int radix, bool want_symbol,
 }
 
 
-static s7_pointer s7_string_to_number(s7_scheme *sc, char *str, int radix)
+static s7_pointer s7_string_to_number(s7_scheme *sc, char *str, int32_t radix)
 {
   s7_pointer x;
   x = make_atom(sc, str, radix, NO_SYMBOLS, WITHOUT_OVERFLOW_ERROR);
@@ -11973,7 +11955,7 @@ the optional 'radix' argument is ignored: (string->number \"#x11\" 2) -> 17 not
 	  rad = p;
 	}
       radix = s7_integer(rad);
-      if ((radix < 2) ||              /* what about negative int as base (Knuth), reals such as phi, and some complex like -1+i */
+      if ((radix < 2) ||              /* what about negative int32_t as base (Knuth), reals such as phi, and some complex like -1+i */
 	  (radix > 16))               /* the only problem here is printing the number; perhaps put each digit in "()" in base 10: (123)(0)(34) */
 	return(out_of_range(sc, caller, small_int(2), rad, a_valid_radix_string));
     }
@@ -12601,7 +12583,7 @@ static s7_pointer g_log(s7_scheme *sc, s7_pointer args)
 	  if ((y == small_int(0)) &&
 	      (x == small_int(1)))
 	    return(y);
-	  return(out_of_range(sc, sc->log_symbol, small_int(2), y, make_string_wrapper(sc, "can't be 0")));
+	  return(out_of_range(sc, sc->log_symbol, small_int(2), y, s7_make_string_wrapper(sc, "can't be 0")));
 	}
 
       if (s7_is_one(y))          /* this used to raise an error, but the bignum case is simpler if we return inf */
@@ -13266,12 +13248,12 @@ static s7_int int_to_int(s7_int x, s7_int n)
 }
 
 
-static const long long int nth_roots[63] = {
+static const int64_t nth_roots[63] = {
   S7_LLONG_MAX, S7_LLONG_MAX, 3037000499LL, 2097151, 55108, 6208, 1448, 511, 234, 127, 78, 52, 38, 28, 22,
   18, 15, 13, 11, 9, 8, 7, 7, 6, 6, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2,
   2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
 
-static const long int_nth_roots[31] = {
+static const int64_t int_nth_roots[31] = {
   S7_LONG_MAX, S7_LONG_MAX, 46340, 1290, 215, 73, 35, 21, 14, 10, 8, 7, 5, 5, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
 
 static bool int_pow_ok(s7_int x, s7_int y)
@@ -13418,7 +13400,7 @@ static s7_pointer g_expt(s7_scheme *sc, s7_pointer args)
 	      }
 	  }
 	  break;
-	  /* occasionally int^rat can be int but it happens so infrequently it's probably not worth checking
+	  /* occasionally int^rat can be int32_t but it happens so infrequently it's probably not worth checking
 	   *  one possibly easy case: (expt 1 1/2) -> 1 (-1?) etc
 	   */
 
@@ -13632,7 +13614,7 @@ static s7_pointer s7_truncate(s7_scheme *sc, s7_pointer caller, s7_double xf)
   return(make_integer(sc, (s7_int)ceil(xf)));
 }
 
-static s7_int c_quo_int(s7_scheme *sc, s7_int x, s7_int y)
+static inline s7_int c_quo_int(s7_scheme *sc, s7_int x, s7_int y)
 {
   if (y == 0)
     division_by_zero_error(sc, sc->quotient_symbol, set_elist_2(sc, make_integer(sc, x), make_integer(sc, y)));
@@ -13661,6 +13643,8 @@ static s7_double c_quo_dbl(s7_scheme *sc, s7_double x, s7_double y)
 }
 
 static s7_int quotient_i_ii(s7_int i1, s7_int i2) {return(c_quo_int(cur_sc, i1, i2));}
+static s7_int quotient_i_ii_direct(s7_int i1, s7_int i2) {return(i1 / i2);} /* i2 > 0 */
+
 static s7_double quotient_d_dd(s7_double x1, s7_double x2) 
 {
   if ((is_inf(x1)) || (is_NaN(x1)))
@@ -13788,7 +13772,7 @@ static s7_pointer g_quotient(s7_scheme *sc, s7_pointer args)
 }
 
 
-static s7_int c_rem_int(s7_scheme *sc, s7_int x, s7_int y)
+static inline s7_int c_rem_int(s7_scheme *sc, s7_int x, s7_int y)
 {
   if (y == 0)
     division_by_zero_error(sc, sc->remainder_symbol, set_elist_2(sc, make_integer(sc, x), make_integer(sc, y)));
@@ -13816,6 +13800,8 @@ static s7_double c_rem_dbl(s7_scheme *sc, s7_double x, s7_double y)
 }
 
 static s7_int remainder_i_ii(s7_int i1, s7_int i2) {return(c_rem_int(cur_sc, i1, i2));}
+static s7_int remainder_i_ii_direct(s7_int i1, s7_int i2) {return(i1 % i2);} /* i2 > 1 */
+
 static s7_double remainder_d_dd(s7_double x1, s7_double x2) 
 {
   if ((is_inf(x1)) || (is_NaN(x1)))
@@ -13934,7 +13920,7 @@ static s7_pointer g_remainder(s7_scheme *sc, s7_pointer args)
 
 	  return(s7_make_ratio(sc, n1 * d2 - n2 * d1 * quo, d1 * d2));
 #endif
-	  return(simple_out_of_range(sc, sc->remainder_symbol, args, make_string_wrapper(sc, "intermediate (a/b) is too large")));
+	  return(simple_out_of_range(sc, sc->remainder_symbol, args, s7_make_string_wrapper(sc, "intermediate (a/b) is too large")));
 
 	case T_REAL:
 	  {
@@ -14075,6 +14061,15 @@ static s7_double floor_d_d(s7_double x)
   return(floor(x));
 }
 
+static s7_int floor_i_p(s7_pointer p)
+{
+  if (is_t_integer(p)) return(s7_integer(p));
+  if (is_t_real(p)) return((s7_int)floor(real(p)));
+  if (is_t_ratio(p)) return((s7_int)(floor(fraction(p))));
+  s7_wrong_type_arg_error(cur_sc, "floor", 0, p, "a real number");
+  return(0);
+}
+
 
 /* -------------------------------- ceiling -------------------------------- */
 static s7_pointer g_ceiling(s7_scheme *sc, s7_pointer args)
@@ -14187,10 +14182,7 @@ static s7_double truncate_d_d(s7_double x)
   return(ceil(x));
 }
 
-static s7_int truncate_i_d(s7_double x) 
-{
-  return((s7_int)truncate_d_d(x));
-}
+static s7_int truncate_i_d(s7_double x) {return((s7_int)truncate_d_d(x));}
 
 
 /* -------------------------------- round -------------------------------- */
@@ -14363,7 +14355,7 @@ static s7_pointer g_modulo(s7_scheme *sc, s7_pointer args)
 	  if ((n2 < 0) && (n1 < 0) && (n2 < n1)) return(x);
 
 	  if (n2 == s7_int_min)
-	    return(simple_out_of_range(sc, sc->modulo_symbol, y, make_string_wrapper(sc, "intermediate (a/b) is too large")));
+	    return(simple_out_of_range(sc, sc->modulo_symbol, y, s7_make_string_wrapper(sc, "intermediate (a/b) is too large")));
 	  /* the problem here is that (modulo 3/2 most-negative-fixnum)
 	   * will segfault with signal SIGFPE, Arithmetic exception, so try to trap it.
 	   */
@@ -14436,7 +14428,7 @@ static s7_pointer g_modulo(s7_scheme *sc, s7_pointer args)
 	   *    (modulo 9223372036 1/9223372036) -> error, not 0?
 	   *    (modulo 1 1/9223372036854775807) -> error, not 0?
 	   */
-	  return(simple_out_of_range(sc, sc->modulo_symbol, x, make_string_wrapper(sc, "intermediate (a/b) is too large")));
+	  return(simple_out_of_range(sc, sc->modulo_symbol, x, s7_make_string_wrapper(sc, "intermediate (a/b) is too large")));
 
 	case T_REAL:
 	  b = real(y);
@@ -14524,7 +14516,7 @@ static s7_pointer g_mod_si(s7_scheme *sc, s7_pointer args)
 /* !WITH_GMP */
 
 
-static int reduce_fraction(s7_scheme *sc, s7_int *numer, s7_int *denom)
+static int32_t reduce_fraction(s7_scheme *sc, s7_int *numer, s7_int *denom)
 {
   /* we're assuming in several places that we have a normal s7 rational after returning,
    *    so the denominator needs to be positive.
@@ -14749,7 +14741,7 @@ static s7_pointer g_add(s7_scheme *sc, s7_pointer args)
 	    n1 = num_a;
 	    d2 = denominator(x);
 	    n2 = numerator(x);
-	    if (d1 == d2)                                     /* the easy case -- if overflow here, it matches the int case */
+	    if (d1 == d2)                                     /* the easy case -- if overflow here, it matches the int32_t case */
 	      {
 		if (is_null(p))
 		  return(s7_make_ratio(sc, n1 + n2, d1));
@@ -14893,7 +14885,7 @@ static s7_pointer add_ratios(s7_scheme *sc, s7_pointer x, s7_pointer y)
   d2 = number_to_denominator(y);
   n2 = number_to_numerator(y);
 
-  if (d1 == d2)                                     /* the easy case -- if overflow here, it matches the int case */
+  if (d1 == d2)                                     /* the easy case -- if overflow here, it matches the int32_t case */
     return(s7_make_ratio(sc, n1 + n2, d1));
 
 #if HAVE_OVERFLOW_CHECKS
@@ -15179,7 +15171,12 @@ static s7_double add_d_dddd(s7_double x1, s7_double x2, s7_double x3, s7_double
 
 static s7_int add_i_ii(s7_int i1, s7_int i2) {return(i1 + i2);}
 static s7_int add_i_iii(s7_int i1, s7_int i2, s7_int i3) {return(i1 + i2 + i3);}
+static s7_double add_d_id(s7_int x1, s7_double x2) {return((s7_double)x1 + x2);}
 
+#if (!WITH_GMP)
+static s7_pointer add_p_dd(s7_double x1, s7_double x2) {return(make_real(cur_sc, x1 + x2));}
+static s7_pointer add_p_ii(s7_int x1, s7_int x2) {return(make_integer(cur_sc, x1 + x2));}
+#endif
 static s7_pointer add_p_pp(s7_pointer p1, s7_pointer p2) {return(g_add_2(cur_sc, set_plist_2(cur_sc, p1, p2)));}
 
 
@@ -15341,7 +15338,7 @@ static s7_pointer g_subtract(s7_scheme *sc, s7_pointer args)
 	    n1 = num_a;
 	    d2 = denominator(x);
 	    n2 = numerator(x);
-	    if (d1 == d2)                                     /* the easy case -- if overflow here, it matches the int case */
+	    if (d1 == d2)                                     /* the easy case -- if overflow here, it matches the int32_t case */
 	      {
 		if (is_null(p))
 		  return(s7_make_ratio(sc, n1 - n2, d1));
@@ -15759,10 +15756,14 @@ static s7_double subtract_d_dd(s7_double x1, s7_double x2) {return(x1 - x2);}
 static s7_double subtract_d_ddd(s7_double x1, s7_double x2, s7_double x3) {return(x1 - x2 - x3);}
 static s7_double subtract_d_dddd(s7_double x1, s7_double x2, s7_double x3, s7_double x4) {return(x1 - x2 - x3 - x4);}
 
+static s7_double sub_d_id(s7_int x1, s7_double x2) {return((s7_double)x1 - x2);}
+#if (!WITH_GMP)
+static s7_pointer sub_p_dd(s7_double x1, s7_double x2) {return(make_real(cur_sc, x1 - x2));}
+static s7_pointer sub_p_ii(s7_int x1, s7_int x2) {return(make_integer(cur_sc, x1 - x2));}
+#endif
 static s7_pointer subtract_p_pp(s7_pointer p1, s7_pointer p2) {return(g_subtract_2(cur_sc, set_plist_2(cur_sc, p1, p2)));}
 
 
-
 /* ---------------------------------------- multiply ---------------------------------------- */
 
 static s7_pointer g_multiply(s7_scheme *sc, s7_pointer args)
@@ -16326,35 +16327,6 @@ static s7_pointer g_sqr_ss(s7_scheme *sc, s7_pointer args)
     }
   return(x);
 }
-
-static s7_pointer mul_s_sin_s, mul_s_cos_s;
-static s7_pointer g_mul_s_sin_s(s7_scheme *sc, s7_pointer args)
-{
-  /* (* s (sin s)) */
-  s7_pointer x, y;
-
-  x = find_symbol_unchecked(sc, car(args));
-  y = find_symbol_unchecked(sc, cadadr(args));
-
-  if ((is_real(x)) && (is_real(y)))
-    return(make_real(sc, real_to_double(sc, x, "*") * sin(real_to_double(sc, y, "sin"))));
-
-  return(g_multiply(sc, set_plist_2(sc, x, g_sin(sc, set_plist_1(sc, y)))));
-}
-
-static s7_pointer g_mul_s_cos_s(s7_scheme *sc, s7_pointer args)
-{
-  /* (* s (cos s)) */
-  s7_pointer x, y;
-
-  x = find_symbol_unchecked(sc, car(args));
-  y = find_symbol_unchecked(sc, cadadr(args));
-
-  if ((is_real(x)) && (is_real(y)))
-    return(make_real(sc, real_to_double(sc, x, "*") * cos(real_to_double(sc, y, "cos"))));
-
-  return(g_multiply(sc, set_plist_2(sc, x, g_cos(sc, set_plist_1(sc, y)))));
-}
 #endif /* with-gmp */
 
 static s7_int multiply_i_ii(s7_int i1, s7_int i2) {return(i1 * i2);}
@@ -16364,8 +16336,11 @@ static s7_double multiply_d_d(s7_double x) {return(x);}
 static s7_double multiply_d_dd(s7_double x1, s7_double x2) {return(x1 * x2);}
 static s7_double multiply_d_ddd(s7_double x1, s7_double x2, s7_double x3) {return(x1 * x2 * x3);}
 static s7_double multiply_d_dddd(s7_double x1, s7_double x2, s7_double x3, s7_double x4) {return(x1 * x2 * x3 * x4);}
-
+static s7_double multiply_d_id(s7_int x1, s7_double x2) {return((s7_double)x1 * x2);}
 #if (!WITH_GMP)
+static s7_pointer mul_p_dd(s7_double x1, s7_double x2) {return(make_real(cur_sc, x1 * x2));}
+static s7_pointer mul_p_ii(s7_int x1, s7_int x2) {return(make_integer(cur_sc, x1 * x2));}
+
 static s7_pointer multiply_p_pp(s7_pointer x1, s7_pointer x2) {return(g_multiply_2(cur_sc, set_plist_2(cur_sc, x1, x2)));}
 #endif
 
@@ -16849,6 +16824,7 @@ static s7_double divide_d_dddd(s7_double x1, s7_double x2, s7_double x3, s7_doub
 static s7_pointer divide_p_ii(s7_int x, s7_int y) {return(s7_make_ratio(cur_sc, x, y));} /* make-ratio checks for y==0 */
 
 
+
 /* ---------------------------------------- max/min ---------------------------------------- */
 
 static bool is_real_via_method_1(s7_scheme *sc, s7_pointer p)
@@ -16988,7 +16964,7 @@ static s7_pointer g_max(s7_scheme *sc, s7_pointer args)
 			    {
 			      if ((valb > vala) ||
 				  ((vala == valb) && (is_t_integer(x))) ||
-				  /* sigh -- both are ratios and the int parts are equal */
+				  /* sigh -- both are ratios and the int32_t parts are equal */
 				  (((long double)(num_a % den_a) / (long double)den_a) <= ((long double)(num_b % den_b) / (long double)den_b)))
 				x = y;
 			    }
@@ -17077,21 +17053,6 @@ static s7_pointer g_max(s7_scheme *sc, s7_pointer args)
 static s7_int max_i_ii(s7_int i1, s7_int i2) {return((i1 > i2) ? i1 : i2);}
 static s7_double max_d_dd(s7_double x1, s7_double x2) {return((x1 > x2) ? x1 : x2);}
 
-#if (!WITH_GMP)
-static s7_pointer max_f2;
-static s7_pointer g_max_f2(s7_scheme *sc, s7_pointer args)
-{
-  s7_pointer x, y;
-  x = car(args);
-  y = cadr(args);
-  if (is_t_real(y))
-    return((real(x) >= real(y)) ? x : y);
-  if (is_real(y))
-    return((real(x) >= real_to_double(sc, y, "max")) ? x : y);
-  method_or_bust(sc, y, sc->max_symbol, args, T_REAL, 2);
-}
-#endif
-
 static s7_pointer g_min(s7_scheme *sc, s7_pointer args)
 {
   #define H_min "(min ...) returns the minimum of its arguments"
@@ -17285,22 +17246,6 @@ static s7_pointer g_min(s7_scheme *sc, s7_pointer args)
 static s7_int min_i_ii(s7_int i1, s7_int i2) {return((i1 < i2) ? i1 : i2);}
 static s7_double min_d_dd(s7_double x1, s7_double x2) {return((x1 < x2) ? x1 : x2);}
 
-#if (!WITH_GMP)
-static s7_pointer min_f2;
-static s7_pointer g_min_f2(s7_scheme *sc, s7_pointer args)
-{
-  s7_pointer x, y;
-  x = car(args);
-  y = cadr(args);
-  if (is_t_real(y))
-    return((real(x) <= real(y)) ? x : y);
-  if (is_real(y))
-    return((real(x) <= real_to_double(sc, y, "min")) ? x : y);
-  method_or_bust(sc, y, sc->min_symbol, args, T_REAL, 2);
-}
-#endif
-
-
 
 /* ---------------------------------------- = > < >= <= ---------------------------------------- */
 
@@ -17448,6 +17393,7 @@ static s7_pointer g_equal(s7_scheme *sc, s7_pointer args)
   return(sc->F);
 }
 
+
 static s7_int object_length_to_int(s7_scheme *sc, s7_pointer obj);
 
 #if (!WITH_GMP)
@@ -17617,6 +17563,17 @@ static s7_pointer equal_p_pi(s7_pointer p1, s7_int p2)
 }
 /* TODO: all the rest of the 2-arg cases */
 
+static s7_pointer equal_p_dd(s7_double x1, s7_double x2) {return(make_boolean(cur_sc, x1 == x2));}
+static s7_pointer gt_p_dd(s7_double x1, s7_double x2) {return(make_boolean(cur_sc, x1 > x2));}
+static s7_pointer geq_p_dd(s7_double x1, s7_double x2) {return(make_boolean(cur_sc, x1 >= x2));}
+static s7_pointer lt_p_dd(s7_double x1, s7_double x2) {return(make_boolean(cur_sc, x1 < x2));}
+static s7_pointer leq_p_dd(s7_double x1, s7_double x2) {return(make_boolean(cur_sc, x1 <= x2));}
+static s7_pointer equal_p_ii(s7_int x1, s7_int x2) {return(make_boolean(cur_sc, x1 == x2));}
+static s7_pointer gt_p_ii(s7_int x1, s7_int x2) {return(make_boolean(cur_sc, x1 > x2));}
+static s7_pointer geq_p_ii(s7_int x1, s7_int x2) {return(make_boolean(cur_sc, x1 >= x2));}
+static s7_pointer lt_p_ii(s7_int x1, s7_int x2) {return(make_boolean(cur_sc, x1 < x2));}
+static s7_pointer leq_p_ii(s7_int x1, s7_int x2) {return(make_boolean(cur_sc, x1 <= x2));}
+
 static s7_pointer equal_2;
 #endif
 
@@ -18460,7 +18417,7 @@ static s7_pointer c_less_2(s7_scheme *sc, s7_pointer x, s7_pointer y)
   return(sc->T);
 }
 
-static s7_pointer less_p_pp(s7_pointer p1, s7_pointer p2) {return(c_less_2(cur_sc, p1, p2));}
+static s7_pointer lt_p_pp(s7_pointer p1, s7_pointer p2) {return(c_less_2(cur_sc, p1, p2));}
 
 static s7_pointer less_2;
 static s7_pointer g_less_2(s7_scheme *sc, s7_pointer args) {return(c_less_2(sc, car(args), cadr(args)));}
@@ -18679,7 +18636,7 @@ static s7_pointer c_greater_2(s7_scheme *sc, s7_pointer x, s7_pointer y)
   return(sc->T);
 }
 
-static s7_pointer greater_p_pp(s7_pointer p1, s7_pointer p2) {return(c_greater_2(cur_sc, p1, p2));}
+static s7_pointer gt_p_pp(s7_pointer p1, s7_pointer p2) {return(c_greater_2(cur_sc, p1, p2));}
 
 static s7_pointer greater_2;
 static s7_pointer g_greater_2(s7_scheme *sc, s7_pointer args) {return(c_greater_2(sc, car(args), cadr(args)));}
@@ -19254,7 +19211,7 @@ static s7_pointer g_is_rational(s7_scheme *sc, s7_pointer args)
 
 static s7_pointer g_is_even(s7_scheme *sc, s7_pointer args)
 {
-  #define H_is_even "(even? int) returns #t if the integer int is even"
+  #define H_is_even "(even? int) returns #t if the integer int32_t is even"
   #define Q_is_even s7_make_signature(sc, 2, sc->is_boolean_symbol, sc->is_integer_symbol)
 
   s7_pointer p;
@@ -19281,7 +19238,7 @@ static bool is_even_i(s7_int i1) {return((i1 & 1) == 0);}
 
 static s7_pointer g_is_odd(s7_scheme *sc, s7_pointer args)
 {
-  #define H_is_odd "(odd? int) returns #t if the integer int is odd"
+  #define H_is_odd "(odd? int) returns #t if the integer int32_t is odd"
   #define Q_is_odd s7_make_signature(sc, 2, sc->is_boolean_symbol, sc->is_integer_symbol)
 
   s7_pointer p;
@@ -19423,18 +19380,8 @@ static bool is_negative_i(s7_int p) {return(p < 0);}
 static bool is_negative_d(s7_double p) {return(p < 0.0);}
 
 
-
-bool s7_is_ulong(s7_pointer arg)
-{
-  return(is_integer(arg));
-}
-
-
-unsigned long s7_ulong(s7_pointer p)
-{
-  return((_NFre(p))->object.number.ul_value);
-}
-
+bool s7_is_ulong(s7_pointer arg) {return(is_integer(arg));}
+unsigned long s7_ulong(s7_pointer p)  {return((_NFre(p))->object.number.ul_value);}
 
 s7_pointer s7_make_ulong(s7_scheme *sc, unsigned long n)
 {
@@ -19444,20 +19391,10 @@ s7_pointer s7_make_ulong(s7_scheme *sc, unsigned long n)
   return(x);
 }
 
+bool s7_is_ulong_long(s7_pointer arg) {return(is_integer(arg));}
+uint64_t s7_ulong_long(s7_pointer p)  {return((_NFre(p))->object.number.ull_value);}
 
-bool s7_is_ulong_long(s7_pointer arg)
-{
-  return(is_integer(arg));
-}
-
-
-unsigned long long s7_ulong_long(s7_pointer p)
-{
-  return((_NFre(p))->object.number.ull_value);
-}
-
-
-s7_pointer s7_make_ulong_long(s7_scheme *sc, unsigned long long n)
+s7_pointer s7_make_ulong_long(s7_scheme *sc, uint64_t n)
 {
   s7_pointer x;
   new_cell(sc, x, T_INTEGER);
@@ -19553,9 +19490,9 @@ static bool is_inexact_b(s7_pointer p)
 
 /* ---------------------------------------- integer-length, integer-decode-float ---------------------------------------- */
 
-static int integer_length(s7_int a)
+static int32_t integer_length(s7_int a)
 {
-  static const int bits[256] =
+  static const int32_t bits[256] =
     {0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
      6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
      7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
@@ -19628,7 +19565,7 @@ sign of 'x' (1 = positive, -1 = negative).  (integer-decode-float 0.0): (0 0 1)"
 
   typedef struct decode_float_t {
     union {
-      long long int ix;
+      int64_t ix;
       double fx;
     } value;
   } decode_float_t;
@@ -19650,7 +19587,7 @@ sign of 'x' (1 = positive, -1 = negative).  (integer-decode-float 0.0): (0 0 1)"
 #endif
 
     default:
-      method_or_bust_with_type_one_arg(sc, x, sc->integer_decode_float_symbol, args, make_string_wrapper(sc, "a non-rational real"));
+      method_or_bust_with_type_one_arg(sc, x, sc->integer_decode_float_symbol, args, s7_make_string_wrapper(sc, "a non-rational real"));
     }
 
   if (num.value.fx == 0.0)
@@ -19666,7 +19603,7 @@ sign of 'x' (1 = positive, -1 = negative).  (integer-decode-float 0.0): (0 0 1)"
 /* -------------------------------- logior -------------------------------- */
 static s7_pointer g_logior(s7_scheme *sc, s7_pointer args)
 {
-  #define H_logior "(logior int ...) returns the bitwise OR of its integer arguments (the bits that are on in any of the arguments)"
+  #define H_logior "(logior int32_t ...) returns the bitwise OR of its integer arguments (the bits that are on in any of the arguments)"
   #define Q_logior pcl_i
   s7_int result = 0;
   s7_pointer x;
@@ -19686,7 +19623,7 @@ static s7_int logior_i_ii(s7_int i1, s7_int i2) {return(i1 | i2);}
 /* -------------------------------- logxor -------------------------------- */
 static s7_pointer g_logxor(s7_scheme *sc, s7_pointer args)
 {
-  #define H_logxor "(logxor int ...) returns the bitwise XOR of its integer arguments (the bits that are on in an odd number of the arguments)"
+  #define H_logxor "(logxor int32_t ...) returns the bitwise XOR of its integer arguments (the bits that are on in an odd number of the arguments)"
   #define Q_logxor pcl_i
   s7_int result = 0;
   s7_pointer x;
@@ -19706,7 +19643,7 @@ static s7_int logxor_i_ii(s7_int i1, s7_int i2) {return(i1 ^ i2);}
 /* -------------------------------- logand -------------------------------- */
 static s7_pointer g_logand(s7_scheme *sc, s7_pointer args)
 {
-  #define H_logand "(logand int ...) returns the bitwise AND of its integer arguments (the bits that are on in every argument)"
+  #define H_logand "(logand int32_t ...) returns the bitwise AND of its integer arguments (the bits that are on in every argument)"
   #define Q_logand pcl_i
   s7_int result = -1;
   s7_pointer x;
@@ -19744,12 +19681,12 @@ static s7_int lognot_i_i(s7_int i1) {return(~i1);}
 
 static s7_pointer g_logbit(s7_scheme *sc, s7_pointer args)
 {
-  #define H_logbit "(logbit? int index) returns #t if the index-th bit is on in int, otherwise #f. The argument \
-order here follows gmp, and is the opposite of the CL convention.  (logbit? int bit) is the same as (not (zero? (logand int (ash 1 bit))))."
+  #define H_logbit "(logbit? int32_t index) returns #t if the index-th bit is on in int, otherwise #f. The argument \
+order here follows gmp, and is the opposite of the CL convention.  (logbit? int32_t bit) is the same as (not (zero? (logand int32_t (ash 1 bit))))."
   #define Q_logbit s7_make_circular_signature(sc, 1, 2, sc->is_boolean_symbol, sc->is_integer_symbol)
 
   s7_pointer x, y;
-  s7_int index;      /* index in gmp is mp_bitcnt which is an unsigned long int */
+  s7_int index;      /* index in gmp is mp_bitcnt which is an unsigned long int32_t */
 
   x = car(args);
   y = cadr(args);
@@ -19776,18 +19713,32 @@ order here follows gmp, and is the opposite of the CL convention.  (logbit? int
    *   so logbit? has a wider range than the logand/ash shuffle above.
    */
 
-  /* all these long long ints are necessary, else C turns it into an int, gets confused about signs etc */
-  return(make_boolean(sc, ((((long long int)(1LL << (long long int)index)) & (long long int)integer(x)) != 0)));
+  /* all these int64_ts are necessary, else C turns it into an int, gets confused about signs etc */
+  return(make_boolean(sc, ((((int64_t)(1LL << (int64_t)index)) & (int64_t)integer(x)) != 0)));
 }
 
 static bool logbit_b_ii(s7_int i1, s7_int i2) 
 {
   if (i2 < 0)
     simple_out_of_range(cur_sc, cur_sc->logbit_symbol, make_integer(cur_sc, i2), its_negative_string);
-  if (i1 >= s7_int_bits)
+  if (i2 >= s7_int_bits)
     return(i1 < 0);
-  return((((long long int)(1LL << i2)) & i1) != 0);
+  return((((int64_t)(1LL << (int64_t)i2)) & (int64_t)i1) != 0);
+}
+
+#if (!WITH_GMP)
+static bool logbit_b_pp(s7_pointer p1, s7_pointer p2)
+{
+  if (is_integer(p1))
+    {
+      if (is_integer(p2))
+	return(logbit_b_ii(integer(p1), integer(p2)));
+      simple_wrong_type_argument(cur_sc, cur_sc->logbit_symbol, p2, T_INTEGER);
+    }
+  simple_wrong_type_argument(cur_sc, cur_sc->logbit_symbol, p1, T_INTEGER);
+  return(false);
 }
+#endif
 
 
 /* -------------------------------- ash -------------------------------- */
@@ -19810,8 +19761,8 @@ static s7_int c_ash(s7_scheme *sc, s7_int arg1, s7_int arg2)
     {
       if (arg1 < 0)
 	{
-	  unsigned long long int z;
-	  z = (unsigned long long int)arg1;
+	  uint64_t z;
+	  z = (uint64_t)arg1;
 	  return((s7_int)(z << arg2));
 	}
       return(arg1 << arg2);
@@ -19837,6 +19788,11 @@ static s7_pointer g_ash(s7_scheme *sc, s7_pointer args)
 }
 
 static s7_int ash_i_ii(s7_int i1, s7_int i2) {return(c_ash(cur_sc, i1, i2));}
+#if (!WITH_GMP)
+static s7_int rsh_i_ii_direct(s7_int i1, s7_int i2) {return(i1 >> (-i2));}
+static s7_int lsh_i_ii_direct(s7_int i1, s7_int i2) {return(i1 << i2);}
+static s7_int rsh_i_i2_direct(s7_int i1, s7_int i2) {return(i1 >> 1);}
+#endif
 
 
 /* ---------------------------------------- random ---------------------------------------- */
@@ -19872,7 +19828,7 @@ Pass this as the second argument to 'random' to get a repeatable random number s
   if (is_null(cdr(args)))
     {
       new_cell(sc, p, T_RANDOM_STATE);
-      random_seed(p) = (unsigned long long int)i1;
+      random_seed(p) = (uint64_t)i1;
       random_carry(p) = 1675393560;                          /* should this be dependent on the seed? */
       return(p);
     }
@@ -19885,8 +19841,8 @@ Pass this as the second argument to 'random' to get a repeatable random number s
     return(out_of_range(sc, sc->random_state_symbol, small_int(2), r2, its_negative_string));
 
   new_cell(sc, p, T_RANDOM_STATE);
-  random_seed(p) = (unsigned long long int)i1;
-  random_carry(p) = (unsigned long long int)i2;
+  random_seed(p) = (uint64_t)i1;
+  random_carry(p) = (uint64_t)i2;
   return(p);
 }
 
@@ -19954,8 +19910,8 @@ void s7_set_default_random_state(s7_scheme *sc, s7_int seed, s7_int carry)
 #if (!WITH_GMP)
   s7_pointer p;
   new_cell(sc, p, T_RANDOM_STATE);
-  random_seed(p) = (unsigned long long int)seed;
-  random_carry(p) = (unsigned long long int)carry;
+  random_seed(p) = (uint64_t)seed;
+  random_carry(p) = (uint64_t)carry;
   sc->default_rng = p;
 #endif
 }
@@ -19975,13 +19931,13 @@ static double next_random(s7_pointer r)
    * ( or any 'a' for which both a*2^32-1 and a*2^31-1 are prime)
    */
   double result;
-  unsigned long long int temp;
+  uint64_t temp;
   #define RAN_MULT 2131995753UL
 
   temp = random_seed(r) * RAN_MULT + random_carry(r);
   random_seed(r) = (temp & 0xffffffffUL);
   random_carry(r) = (temp >> 32);
-  result = (double)((unsigned int)(random_seed(r))) / 4294967295.5;
+  result = (double)((uint32_t)(random_seed(r))) / 4294967295.5;
   /* divisor was 2^32-1 = 4294967295.0, but somehow this can round up once in a billion tries?
    *   do we want the double just less than 2^32?
    */
@@ -20051,7 +20007,7 @@ static s7_pointer g_random(s7_scheme *sc, s7_pointer args)
 		  numer = (s7_int)floor(numerator(num) * next_random(r));
 		else
 		  {
-		    long long int diff;
+		    int64_t diff;
 		    numer = numerator(num);
 		    diff = s7_int_max - denominator(num);
 		    if (diff < 100)
@@ -20105,7 +20061,7 @@ static s7_pointer g_random_rc(s7_scheme *sc, s7_pointer args)
   return(make_real(sc, real(car(args)) * next_random(sc->default_rng)));
 }
 
-static s7_pointer random_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer random_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (!ops) return(f);
   if (args == 1)
@@ -20164,7 +20120,7 @@ static s7_pointer g_integer_to_char(s7_scheme *sc, s7_pointer args)
     method_or_bust_one_arg(sc, x, sc->integer_to_char_symbol, list_1(sc, x), T_INTEGER);
   ind = s7_integer(x);
   if ((ind < 0) || (ind >= NUM_CHARS))
-    return(simple_wrong_type_argument_with_type(sc, sc->integer_to_char_symbol, x, make_string_wrapper(sc, "an integer that can represent a character")));
+    return(simple_wrong_type_argument_with_type(sc, sc->integer_to_char_symbol, x, s7_make_string_wrapper(sc, "an integer that can represent a character")));
   return(s7_make_character(sc, (unsigned char)ind));
 }
 
@@ -20175,7 +20131,7 @@ static s7_pointer integer_to_char_p_p(s7_pointer x)
     simple_wrong_type_argument(cur_sc, cur_sc->integer_to_char_symbol, x, T_INTEGER);
   ind = s7_integer(x);
   if ((ind < 0) || (ind >= NUM_CHARS))
-    return(simple_wrong_type_argument_with_type(cur_sc, cur_sc->integer_to_char_symbol, x, make_string_wrapper(cur_sc, "an integer that can represent a character")));
+    return(simple_wrong_type_argument_with_type(cur_sc, cur_sc->integer_to_char_symbol, x, s7_make_string_wrapper(cur_sc, "an integer that can represent a character")));
   return(s7_make_character(cur_sc, (unsigned char)ind));
 }
 
@@ -20183,7 +20139,7 @@ static s7_pointer integer_to_char_p_p(s7_pointer x)
 static unsigned char uppers[256], lowers[256];
 static void init_uppers(void)
 {
-  int i;
+  int32_t i;
   for (i = 0; i < 256; i++)
     {
       uppers[i] = (unsigned char)toupper(i);
@@ -20301,7 +20257,7 @@ static s7_pointer g_is_char(s7_scheme *sc, s7_pointer args)
 }
 
 
-s7_pointer s7_make_character(s7_scheme *sc, unsigned int c)
+s7_pointer s7_make_character(s7_scheme *sc, uint32_t c)
 {
   return(chars[c]);
 }
@@ -20319,7 +20275,7 @@ char s7_character(s7_pointer p)
 }
 
 
-static int charcmp(unsigned char c1, unsigned char c2)
+static int32_t charcmp(unsigned char c1, unsigned char c2)
 {
   return((c1 == c2) ? 0 : (c1 < c2) ? -1 : 1);
   /* not tolower here -- the single case is apparently supposed to be upper case
@@ -20344,7 +20300,7 @@ static bool is_character_via_method(s7_scheme *sc, s7_pointer p)
 }
 
 
-static s7_pointer g_char_cmp(s7_scheme *sc, s7_pointer args, int val, s7_pointer sym)
+static s7_pointer g_char_cmp(s7_scheme *sc, s7_pointer args, int32_t val, s7_pointer sym)
 {
   s7_pointer x, y;
 
@@ -20370,7 +20326,7 @@ static s7_pointer g_char_cmp(s7_scheme *sc, s7_pointer args, int val, s7_pointer
 }
 
 
-static s7_pointer g_char_cmp_not(s7_scheme *sc, s7_pointer args, int val, s7_pointer sym)
+static s7_pointer g_char_cmp_not(s7_scheme *sc, s7_pointer args, int32_t val, s7_pointer sym)
 {
   s7_pointer x, y;
 
@@ -20555,7 +20511,7 @@ static s7_pointer g_char_greater_2(s7_scheme *sc, s7_pointer args)
 }
 
 #if (!WITH_PURE_S7)
-static s7_pointer g_char_cmp_ci(s7_scheme *sc, s7_pointer args, int val, s7_pointer sym)
+static s7_pointer g_char_cmp_ci(s7_scheme *sc, s7_pointer args, int32_t val, s7_pointer sym)
 {
   s7_pointer x, y;
 
@@ -20579,7 +20535,7 @@ static s7_pointer g_char_cmp_ci(s7_scheme *sc, s7_pointer args, int val, s7_poin
   return(sc->T);
 }
 
-static s7_pointer g_char_cmp_ci_not(s7_scheme *sc, s7_pointer args, int val, s7_pointer sym)
+static s7_pointer g_char_cmp_ci_not(s7_scheme *sc, s7_pointer args, int32_t val, s7_pointer sym)
 {
   s7_pointer x, y;
 
@@ -20754,7 +20710,7 @@ static s7_pointer g_char_position(s7_scheme *sc, s7_pointer args)
 
 static s7_pointer char_position_p_ppi(s7_pointer p1, s7_pointer p2, s7_int start)
 {
-  /* p1 is char, p2 is string, p3 is int */
+  /* p1 is char, p2 is string, p3 is int32_t */
   const char *porig, *p;
   char c;
   s7_int len;
@@ -20856,14 +20812,7 @@ static s7_pointer g_string_position(s7_scheme *sc, s7_pointer args)
 
 /* -------------------------------- strings -------------------------------- */
 
-static void resize_strings(s7_scheme *sc)
-{
-  sc->strings_size *= 2;
-  sc->strings = (s7_pointer *)realloc(sc->strings, sc->strings_size * sizeof(s7_pointer));
-}
-
-
-s7_pointer s7_make_string_with_length(s7_scheme *sc, const char *str, int len)
+s7_pointer s7_make_string_with_length(s7_scheme *sc, const char *str, int32_t len)
 {
   s7_pointer x;
   new_cell(sc, x, T_STRING | T_SAFE_PROCEDURE);
@@ -20874,13 +20823,12 @@ s7_pointer s7_make_string_with_length(s7_scheme *sc, const char *str, int len)
   string_length(x) = len;
   string_hash(x) = 0;
   string_needs_free(x) = true;
-  if (sc->strings_loc == sc->strings_size) resize_strings(sc); 
-  sc->strings[sc->strings_loc++] = x;
+  add_string(sc, x);
   return(x);
 }
 
 
-static s7_pointer make_string_uncopied_with_length(s7_scheme *sc, char *str, int len)
+static s7_pointer make_string_uncopied_with_length(s7_scheme *sc, char *str, int32_t len)
 {
   s7_pointer x;
   new_cell(sc, x, T_STRING | T_SAFE_PROCEDURE);
@@ -20888,17 +20836,12 @@ static s7_pointer make_string_uncopied_with_length(s7_scheme *sc, char *str, int
   string_length(x) = len;
   string_hash(x) = 0;
   string_needs_free(x) = true;
-  if (sc->strings1_loc == sc->strings1_size)
-    {
-      sc->strings1_size *= 2;
-      sc->strings1 = (s7_pointer *)realloc(sc->strings1, sc->strings1_size * sizeof(s7_pointer));
-    }
-  sc->strings1[sc->strings1_loc++] = x;
+  add_string1(sc, x);
   return(x);
 }
 
 
-static s7_pointer make_string_wrapper_with_length(s7_scheme *sc, const char *str, int len)
+static s7_pointer make_string_wrapper_with_length(s7_scheme *sc, const char *str, int32_t len)
 {
   s7_pointer x;
   new_cell(sc, x, T_STRING | T_IMMUTABLE | T_SAFE_PROCEDURE);
@@ -20910,13 +20853,13 @@ static s7_pointer make_string_wrapper_with_length(s7_scheme *sc, const char *str
 }
 
 
-static s7_pointer make_string_wrapper(s7_scheme *sc, const char *str)
+s7_pointer s7_make_string_wrapper(s7_scheme *sc, const char *str)
 {
   return(make_string_wrapper_with_length(sc, str, safe_strlen(str)));
 }
 
 
-static s7_pointer make_empty_string(s7_scheme *sc, int len, char fill)
+static s7_pointer make_empty_string(s7_scheme *sc, int32_t len, char fill)
 {
   s7_pointer x;
   new_cell(sc, x, T_STRING);
@@ -20927,8 +20870,7 @@ static s7_pointer make_empty_string(s7_scheme *sc, int len, char fill)
   string_hash(x) = 0;
   string_length(x) = len;
   string_needs_free(x) = true;
-  if (sc->strings_loc == sc->strings_size) resize_strings(sc); 
-  sc->strings[sc->strings_loc++] = x;
+  add_string(sc, x);
   return(x);
 }
 
@@ -20944,7 +20886,7 @@ s7_pointer s7_make_string(s7_scheme *sc, const char *str)
 static char *make_permanent_c_string(const char *str)
 {
   char *x;
-  int len;
+  int32_t len;
   len = safe_strlen(str);
   x = (char *)malloc((len + 1) * sizeof(char));
   memcpy((void *)x, (void *)str, len);
@@ -20962,7 +20904,7 @@ s7_pointer s7_make_permanent_string(const char *str)
   set_type(x, T_STRING | T_IMMUTABLE);
   if (str)
     {
-      unsigned int len;
+      uint32_t len;
       len = safe_strlen(str);
       string_length(x) = len;
       string_value(x) = (char *)malloc((len + 1) * sizeof(char));
@@ -20993,7 +20935,7 @@ static s7_pointer make_permanent_string_wrapper(void)
 }
 
 
-static s7_pointer make_temporary_string(s7_scheme *sc, const char *str, int len)
+static s7_pointer make_temporary_string(s7_scheme *sc, const char *str, int32_t len)
 {
   s7_pointer p;
   p = sc->tmp_strs[0];
@@ -21089,7 +21031,7 @@ static s7_pointer g_string_downcase(s7_scheme *sc, s7_pointer args)
   #define Q_string_downcase pcl_s
 
   s7_pointer p, newstr;
-  int i, len;
+  int32_t i, len;
   unsigned char *nstr, *ostr;
 
   p = car(args);
@@ -21114,7 +21056,7 @@ static s7_pointer g_string_upcase(s7_scheme *sc, s7_pointer args)
   #define Q_string_upcase pcl_s
 
   s7_pointer p, newstr;
-  int i, len;
+  int32_t i, len;
   unsigned char *nstr, *ostr;
 
   p = car(args);
@@ -21133,7 +21075,7 @@ static s7_pointer g_string_upcase(s7_scheme *sc, s7_pointer args)
   return(newstr);
 }
 
-unsigned int s7_string_length(s7_pointer str)
+uint32_t s7_string_length(s7_pointer str)
 {
   return(string_length(str));
 }
@@ -21246,7 +21188,7 @@ static s7_pointer g_string_set_2(s7_scheme *sc, s7_pointer x, s7_pointer args, s
     }
   else
     {
-      s7_int ic;  /* not int here! */
+      s7_int ic;  /* not int32_t here! */
       if (!(s7_is_integer(c)))
 	method_or_bust(sc, c, caller, list_3(sc, x, index, c), T_INTEGER, 3);
       ic = s7_integer(c);
@@ -21384,7 +21326,7 @@ static s7_pointer g_string_append_1(s7_scheme *sc, s7_pointer args, bool use_tem
 
   if (len > sc->max_string_length)
     return(s7_error(sc, sc->out_of_range_symbol, 
-		    set_elist_3(sc, make_string_wrapper(sc, "string-append new string length, ~D, is larger than (*s7* 'max-string-length): ~D"),
+		    set_elist_3(sc, s7_make_string_wrapper(sc, "string-append new string length, ~D, is larger than (*s7* 'max-string-length): ~D"),
 				make_integer(sc, len), 
 				make_integer(sc, sc->max_string_length))));
   if (use_temp)
@@ -21438,7 +21380,7 @@ static s7_pointer g_string_copy(s7_scheme *sc, s7_pointer args)
 
 /* -------------------------------- substring -------------------------------- */
 static s7_pointer start_and_end(s7_scheme *sc, s7_pointer caller, s7_pointer fallback,
-				s7_pointer start_and_end_args, s7_pointer args, int position, s7_int *start, s7_int *end)
+				s7_pointer start_and_end_args, s7_pointer args, int32_t position, s7_int *start, s7_int *end)
 {
   /* we assume that *start=0 and *end=length, that end is "exclusive"
    *   return true if the start/end points are not changed.
@@ -21502,7 +21444,7 @@ end: (substring \"01234\" 1 2) -> \"1\""
 
   s7_pointer x, str;
   s7_int start = 0, end;
-  int len;
+  int32_t len;
   char *s;
 
   str = car(args);
@@ -21555,7 +21497,7 @@ static use_write_t write_choice(s7_scheme *sc, s7_pointer arg)
 
 #define DONT_USE_DISPLAY(Choice) ((Choice == USE_DISPLAY) ? USE_WRITE : Choice)
 
-static char *s7_object_to_c_string_1(s7_scheme *sc, s7_pointer obj, use_write_t use_write, int *nlen);
+static char *s7_object_to_c_string_1(s7_scheme *sc, s7_pointer obj, use_write_t use_write, int32_t *nlen);
 
 static s7_pointer g_object_to_string(s7_scheme *sc, s7_pointer args)
 {
@@ -21565,7 +21507,7 @@ static s7_pointer g_object_to_string(s7_scheme *sc, s7_pointer args)
   use_write_t choice;
   char *str;
   s7_pointer obj;
-  int out_len = 0;
+  int32_t out_len = 0;
   sc->objstr_max_len = s7_int_max;
 
   if (is_not_null(cdr(args)))
@@ -21595,14 +21537,14 @@ static s7_pointer g_object_to_string(s7_scheme *sc, s7_pointer args)
 
 
 /* -------------------------------- string comparisons -------------------------------- */
-static int scheme_strcmp(s7_pointer s1, s7_pointer s2)
+static int32_t scheme_strcmp(s7_pointer s1, s7_pointer s2)
 {
   /* tricky here because str[i] must be treated as unsigned
    *   (string<? (string (integer->char #xf0)) (string (integer->char #x70)))
    * also null or lack thereof does not say anything about the string end
    *   so we have to go by its length.
    */
-  int i, len, len1, len2;
+  int32_t i, len, len1, len2;
   char *str1, *str2;
 
   len1 = string_length(s1);
@@ -21645,7 +21587,7 @@ static bool is_string_via_method(s7_scheme *sc, s7_pointer p)
   return(false);
 }
 
-static s7_pointer g_string_cmp(s7_scheme *sc, s7_pointer args, int val, s7_pointer sym)
+static s7_pointer g_string_cmp(s7_scheme *sc, s7_pointer args, int32_t val, s7_pointer sym)
 {
   s7_pointer x, y;
 
@@ -21670,7 +21612,7 @@ static s7_pointer g_string_cmp(s7_scheme *sc, s7_pointer args, int val, s7_point
 }
 
 
-static s7_pointer g_string_cmp_not(s7_scheme *sc, s7_pointer args, int val, s7_pointer sym)
+static s7_pointer g_string_cmp_not(s7_scheme *sc, s7_pointer args, int32_t val, s7_pointer sym)
 {
   s7_pointer x, y;
 
@@ -21802,7 +21744,7 @@ static s7_pointer g_string_greater_2(s7_scheme *sc, s7_pointer args)
   return(make_boolean(sc, scheme_strcmp(car(args), cadr(args)) == 1));
 }
 
-static void check_string2_args(s7_scheme *sc, s7_pointer caller, s7_pointer p1, s7_pointer p2)
+static inline void check_string2_args(s7_scheme *sc, s7_pointer caller, s7_pointer p1, s7_pointer p2)
 {
   if (!is_string(p1))
     simple_wrong_type_argument(sc, caller, p1, T_STRING);
@@ -21848,11 +21790,11 @@ static bool string_eq_b(s7_pointer p1, s7_pointer p2)
 
 #if (!WITH_PURE_S7)
 
-static int scheme_strcasecmp(s7_pointer s1, s7_pointer s2)
+static int32_t scheme_strcasecmp(s7_pointer s1, s7_pointer s2)
 {
   /* same as scheme_strcmp -- watch out for unwanted sign! and lack of trailing null (length sets string end).
    */
-  int i, len, len1, len2;
+  int32_t i, len, len1, len2;
   unsigned char *str1, *str2;
 
   len1 = string_length(s1);
@@ -21884,7 +21826,7 @@ static int scheme_strcasecmp(s7_pointer s1, s7_pointer s2)
 static bool scheme_strequal_ci(s7_pointer s1, s7_pointer s2)
 {
   /* same as scheme_strcmp -- watch out for unwanted sign! */
-  int i, len, len2;
+  int32_t i, len, len2;
   unsigned char *str1, *str2;
 
   len = string_length(s1);
@@ -21902,7 +21844,7 @@ static bool scheme_strequal_ci(s7_pointer s1, s7_pointer s2)
 }
 
 
-static s7_pointer g_string_ci_cmp(s7_scheme *sc, s7_pointer args, int val, s7_pointer sym)
+static s7_pointer g_string_ci_cmp(s7_scheme *sc, s7_pointer args, int32_t val, s7_pointer sym)
 {
   s7_pointer x, y;
 
@@ -21940,7 +21882,7 @@ static s7_pointer g_string_ci_cmp(s7_scheme *sc, s7_pointer args, int val, s7_po
 }
 
 
-static s7_pointer g_string_ci_cmp_not(s7_scheme *sc, s7_pointer args, int val, s7_pointer sym)
+static s7_pointer g_string_ci_cmp_not(s7_scheme *sc, s7_pointer args, int32_t val, s7_pointer sym)
 {
   s7_pointer x, y;
 
@@ -22057,7 +21999,7 @@ static s7_pointer g_string_fill(s7_scheme *sc, s7_pointer args)
 
   if ((sc->safety > NO_SAFETY) &&
       (is_immutable_string(x)))
-    return(s7_error(sc, sc->error_symbol, set_elist_2(sc, make_string_wrapper(sc, "can't fill! ~S (it is immutable)"), x)));
+    return(s7_error(sc, sc->error_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "can't fill! ~S (it is immutable)"), x)));
 
   chr = cadr(args);
   if (!is_byte_vector(x))
@@ -22100,7 +22042,7 @@ static s7_pointer g_string_fill(s7_scheme *sc, s7_pointer args)
 
 static s7_pointer g_string_1(s7_scheme *sc, s7_pointer args, s7_pointer sym)
 {
-  int i, len;
+  int32_t i, len;
   s7_pointer x, newstr;
   char *str;
 
@@ -22159,15 +22101,15 @@ static s7_pointer g_list_to_string(s7_scheme *sc, s7_pointer args)
   if (is_null(car(args)))
     return(s7_make_string_with_length(sc, "", 0));
 
-  if (!is_proper_list(sc, car(args)))
-    method_or_bust_with_type_one_arg(sc, car(args), sc->list_to_string_symbol, args, make_string_wrapper(sc, "a (proper, non-circular) list of characters"));
+  if (!s7_is_proper_list(sc, car(args)))
+    method_or_bust_with_type_one_arg(sc, car(args), sc->list_to_string_symbol, args, s7_make_string_wrapper(sc, "a (proper, non-circular) list of characters"));
   return(g_string_1(sc, car(args), sc->list_to_string_symbol));
 }
 #endif
 
-static s7_pointer s7_string_to_list(s7_scheme *sc, const char *str, int len)
+static s7_pointer s7_string_to_list(s7_scheme *sc, const char *str, int32_t len)
 {
-  int i;
+  int32_t i;
   s7_pointer result;
 
   if (len == 0) 
@@ -22338,14 +22280,14 @@ static s7_pointer g_byte_vector(s7_scheme *sc, s7_pointer args)
   return(vec);
 }
 
-static s7_pointer byte_vector_to_list(s7_scheme *sc, const char *str, int len)
+static s7_pointer byte_vector_to_list(s7_scheme *sc, const char *str, int32_t len)
 {
-  int i;
+  int32_t i;
   s7_pointer p;
   if (len == 0) return(sc->nil);
   sc->w = sc->nil;
   for (i = len - 1; i >= 0; i--)
-    sc->w = cons(sc, small_int((unsigned int)((unsigned char)(str[i]))), sc->w); /* extra cast is not redundant! */
+    sc->w = cons(sc, small_int((uint32_t)((unsigned char)(str[i]))), sc->w); /* extra cast is not redundant! */
   p = sc->w;
   sc->w = sc->nil;
   return(p);
@@ -22372,13 +22314,13 @@ static s7_pointer g_is_port_closed(s7_scheme *sc, s7_pointer args)
   if ((is_input_port(x)) || (is_output_port(x)))
     return(make_boolean(sc, port_is_closed(x)));
 
-  method_or_bust_with_type_one_arg(sc, x, sc->is_port_closed_symbol, args, make_string_wrapper(sc, "a port"));
+  method_or_bust_with_type_one_arg(sc, x, sc->is_port_closed_symbol, args, s7_make_string_wrapper(sc, "a port"));
 }
 
 static bool is_port_closed_b(s7_pointer x)
 {
   if ((!is_input_port(x)) && (!is_output_port(x)))
-    simple_wrong_type_argument_with_type(cur_sc, cur_sc->is_port_closed_symbol, x, make_string_wrapper(cur_sc, "a port"));
+    simple_wrong_type_argument_with_type(cur_sc, cur_sc->is_port_closed_symbol, x, s7_make_string_wrapper(cur_sc, "a port"));
   return(port_is_closed(x));
 }
 
@@ -22401,7 +22343,7 @@ static s7_pointer g_port_line_number(s7_scheme *sc, s7_pointer args)
   return(c_port_line_number(sc, car(args)));
 }
 
-int s7_port_line_number(s7_pointer p)
+int32_t s7_port_line_number(s7_pointer p)
 {
   if (!(is_input_port(p)))
     simple_wrong_type_argument(cur_sc, cur_sc->port_line_number_symbol, p, T_INPUT_PORT);
@@ -22667,10 +22609,10 @@ static s7_pointer g_is_eof_object(s7_scheme *sc, s7_pointer args)
 static bool s7_is_eof_object(s7_pointer p) {return(p == cur_sc->eof_object);}
 
 
-static int closed_port_read_char(s7_scheme *sc, s7_pointer port);
+static int32_t closed_port_read_char(s7_scheme *sc, s7_pointer port);
 static s7_pointer closed_port_read_line(s7_scheme *sc, s7_pointer port, bool with_eol, bool copied);
-static void closed_port_write_char(s7_scheme *sc, int c, s7_pointer port);
-static void closed_port_write_string(s7_scheme *sc, const char *str, int len, s7_pointer port);
+static void closed_port_write_char(s7_scheme *sc, int32_t c, s7_pointer port);
+static void closed_port_write_string(s7_scheme *sc, const char *str, int32_t len, s7_pointer port);
 static void closed_port_display(s7_scheme *sc, const char *s, s7_pointer port);
 
 void s7_close_input_port(s7_scheme *sc, s7_pointer p)
@@ -22852,19 +22794,19 @@ static s7_pointer g_close_output_port(s7_scheme *sc, s7_pointer args)
 
 /* -------- read character functions -------- */
 
-static int file_read_char(s7_scheme *sc, s7_pointer port)
+static int32_t file_read_char(s7_scheme *sc, s7_pointer port)
 {
   return(fgetc(port_file(port)));
 }
 
 
-static int function_read_char(s7_scheme *sc, s7_pointer port)
+static int32_t function_read_char(s7_scheme *sc, s7_pointer port)
 {
   return(character((*(port_input_function(port)))(sc, S7_READ_CHAR, port)));
 }
 
 
-static int string_read_char(s7_scheme *sc, s7_pointer port)
+static int32_t string_read_char(s7_scheme *sc, s7_pointer port)
 {
   if (port_data_size(port) <= port_position(port)) /* port_string_length is 0 if no port string */
     return(EOF);
@@ -22872,14 +22814,14 @@ static int string_read_char(s7_scheme *sc, s7_pointer port)
 }
 
 
-static int output_read_char(s7_scheme *sc, s7_pointer port)
+static int32_t output_read_char(s7_scheme *sc, s7_pointer port)
 {
   simple_wrong_type_argument_with_type(sc, sc->read_char_symbol, port, an_input_port_string);
   return(0);
 }
 
 
-static int closed_port_read_char(s7_scheme *sc, s7_pointer port)
+static int32_t closed_port_read_char(s7_scheme *sc, s7_pointer port)
 {
   simple_wrong_type_argument_with_type(sc, sc->read_char_symbol, port, an_open_port_string);
   return(0);
@@ -22924,7 +22866,7 @@ static s7_pointer stdin_read_line(s7_scheme *sc, s7_pointer port, bool with_eol,
 static s7_pointer file_read_line(s7_scheme *sc, s7_pointer port, bool with_eol, bool copied)
 {
   char *buf;
-  int read_size, previous_size = 0;
+  int32_t read_size, previous_size = 0;
 
   if (!sc->read_line_buf)
     {
@@ -22969,7 +22911,7 @@ static s7_pointer file_read_line(s7_scheme *sc, s7_pointer port, bool with_eol,
 
 static s7_pointer string_read_line(s7_scheme *sc, s7_pointer port, bool with_eol, bool copied)
 {
-  unsigned int i, port_start;
+  uint32_t i, port_start;
   unsigned char *port_str, *cur, *start;
 
   port_start = port_position(port);
@@ -22999,9 +22941,9 @@ static s7_pointer string_read_line(s7_scheme *sc, s7_pointer port, bool with_eol
 
 /* -------- write character functions -------- */
 
-static void resize_port_data(s7_pointer pt, unsigned int new_size)
+static void resize_port_data(s7_pointer pt, uint32_t new_size)
 {
-  unsigned int loc;
+  uint32_t loc;
   loc = port_data_size(pt);
   if (new_size < loc) 
     {
@@ -23015,31 +22957,31 @@ static void resize_port_data(s7_pointer pt, unsigned int new_size)
   memclr((void *)(port_data(pt) + loc), new_size - loc);
 }
 
-static void string_write_char(s7_scheme *sc, int c, s7_pointer pt)
+static void string_write_char(s7_scheme *sc, int32_t c, s7_pointer pt)
 {
   if (port_position(pt) >= port_data_size(pt))
     resize_port_data(pt, port_data_size(pt) * 2);
   port_data(pt)[port_position(pt)++] = c;
 }
 
-static void stdout_write_char(s7_scheme *sc, int c, s7_pointer port)
+static void stdout_write_char(s7_scheme *sc, int32_t c, s7_pointer port)
 {
   fputc(c, stdout);
 }
 
-static void stderr_write_char(s7_scheme *sc, int c, s7_pointer port)
+static void stderr_write_char(s7_scheme *sc, int32_t c, s7_pointer port)
 {
   fputc(c, stderr);
 }
 
-static void function_write_char(s7_scheme *sc, int c, s7_pointer port)
+static void function_write_char(s7_scheme *sc, int32_t c, s7_pointer port)
 {
   (*(port_output_function(port)))(sc, c, port);
 }
 
 
 #define PORT_DATA_SIZE 256
-static void file_write_char(s7_scheme *sc, int c, s7_pointer port)
+static void file_write_char(s7_scheme *sc, int32_t c, s7_pointer port)
 {
   if (port_position(port) == PORT_DATA_SIZE)
     {
@@ -23051,13 +22993,13 @@ static void file_write_char(s7_scheme *sc, int c, s7_pointer port)
 }
 
 
-static void input_write_char(s7_scheme *sc, int c, s7_pointer port)
+static void input_write_char(s7_scheme *sc, int32_t c, s7_pointer port)
 {
   simple_wrong_type_argument_with_type(sc, sc->write_char_symbol, port, an_output_port_string);
 }
 
 
-static void closed_port_write_char(s7_scheme *sc, int c, s7_pointer port)
+static void closed_port_write_char(s7_scheme *sc, int32_t c, s7_pointer port)
 {
   simple_wrong_type_argument_with_type(sc, sc->write_char_symbol, port, an_open_port_string);
 }
@@ -23066,13 +23008,13 @@ static void closed_port_write_char(s7_scheme *sc, int c, s7_pointer port)
 
 /* -------- write string functions -------- */
 
-static void input_write_string(s7_scheme *sc, const char *str, int len, s7_pointer port)
+static void input_write_string(s7_scheme *sc, const char *str, int32_t len, s7_pointer port)
 {
   simple_wrong_type_argument_with_type(sc, sc->write_symbol, port, an_output_port_string);
 }
 
 
-static void closed_port_write_string(s7_scheme *sc, const char *str, int len, s7_pointer port)
+static void closed_port_write_string(s7_scheme *sc, const char *str, int32_t len, s7_pointer port)
 {
   simple_wrong_type_argument_with_type(sc, sc->write_symbol, port, an_open_port_string);
 }
@@ -23088,35 +23030,34 @@ static void closed_port_display(s7_scheme *sc, const char *s, s7_pointer port)
   simple_wrong_type_argument_with_type(sc, sc->write_symbol, port, an_open_port_string);
 }
 
-static void stdout_write_string(s7_scheme *sc, const char *str, int len, s7_pointer port)
+static void stdout_write_string(s7_scheme *sc, const char *str, int32_t len, s7_pointer port)
 {
   if (str[len] == '\0')
     fputs(str, stdout);
   else
     {
-      int i;
+      int32_t i;
       for (i = 0; i < len; i++)
 	fputc(str[i], stdout);
     }
 }
 
-static void stderr_write_string(s7_scheme *sc, const char *str, int len, s7_pointer port)
+static void stderr_write_string(s7_scheme *sc, const char *str, int32_t len, s7_pointer port)
 {
   if (str[len] == '\0')
     fputs(str, stderr);
   else
     {
-      int i;
+      int32_t i;
       for (i = 0; i < len; i++)
 	fputc(str[i], stderr);
     }
 }
 
-static void string_write_string(s7_scheme *sc, const char *str, int len, s7_pointer pt)
+static void string_write_string(s7_scheme *sc, const char *str, int32_t len, s7_pointer pt)
 {
-  unsigned int new_len;  /* len is known to be non-zero */
-
-  new_len = port_position(pt) + (unsigned int)len;
+  uint32_t new_len;  /* len is known to be non-zero, str may not be 0-terminated */
+  new_len = port_position(pt) + (uint32_t)len;
   if (new_len >= port_data_size(pt))
     resize_port_data(pt, new_len * 2);
   memcpy((void *)(port_data(pt) + port_position(pt)), (void *)str, len);
@@ -23125,7 +23066,7 @@ static void string_write_string(s7_scheme *sc, const char *str, int len, s7_poin
 }
 
 
-static s7_pointer write_string_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer write_string_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   check_for_substring_temp(sc, expr);
   return(f);
@@ -23147,9 +23088,9 @@ static void file_display(s7_scheme *sc, const char *s, s7_pointer port)
     }
 }
 
-static void file_write_string(s7_scheme *sc, const char *str, int len, s7_pointer pt)
+static void file_write_string(s7_scheme *sc, const char *str, int32_t len, s7_pointer pt)
 {
-  int new_len;
+  int32_t new_len;
   new_len = port_position(pt) + len;
   if (new_len >= PORT_DATA_SIZE)
     {
@@ -23185,9 +23126,9 @@ static void function_display(s7_scheme *sc, const char *s, s7_pointer port)
     }
 }
 
-static void function_write_string(s7_scheme *sc, const char *str, int len, s7_pointer pt)
+static void function_write_string(s7_scheme *sc, const char *str, int32_t len, s7_pointer pt)
 {
-  int i;
+  int32_t i;
   for (i = 0; i < len; i++)
     (*(port_output_function(pt)))(sc, str[i], pt);
 }
@@ -23234,7 +23175,7 @@ static s7_pointer g_write_string(s7_scheme *sc, s7_pointer args)
       if (port == sc->F)
 	{
 	  s7_pointer x;
-	  int len;
+	  int32_t len;
 	  if ((start == 0) && (end == string_length(str)))
 	    return(str);
 	  len = (int)(end - start);
@@ -23256,7 +23197,7 @@ static s7_pointer g_write_string(s7_scheme *sc, s7_pointer args)
 
 static token_t file_read_semicolon(s7_scheme *sc, s7_pointer pt)
 {
-  int c;
+  int32_t c;
   do (c = fgetc(port_file(pt))); while ((c != '\n') && (c != EOF));
   port_line_number(pt)++;
   if (c == EOF)
@@ -23283,9 +23224,9 @@ static token_t string_read_semicolon(s7_scheme *sc, s7_pointer pt)
 
 /* -------- white space readers -------- */
 
-static int file_read_white_space(s7_scheme *sc, s7_pointer port)
+static int32_t file_read_white_space(s7_scheme *sc, s7_pointer port)
 {
-  int c;
+  int32_t c;
   while (is_white_space(c = fgetc(port_file(port))))
     if (c == '\n')
       port_line_number(port)++;
@@ -23293,7 +23234,7 @@ static int file_read_white_space(s7_scheme *sc, s7_pointer port)
 }
 
 
-static int terminated_string_read_white_space(s7_scheme *sc, s7_pointer pt)
+static int32_t terminated_string_read_white_space(s7_scheme *sc, s7_pointer pt)
 {
   const unsigned char *str;
   unsigned char c;
@@ -23313,9 +23254,9 @@ static int terminated_string_read_white_space(s7_scheme *sc, s7_pointer pt)
 
 /* name (alphanumeric token) readers */
 
-static void resize_strbuf(s7_scheme *sc, unsigned int needed_size)
+static void resize_strbuf(s7_scheme *sc, uint32_t needed_size)
 {
-  unsigned int i, old_size;
+  uint32_t i, old_size;
   old_size = sc->strbuf_size;
   while (sc->strbuf_size <= needed_size) sc->strbuf_size *= 2;
   sc->strbuf = (char *)realloc(sc->strbuf, sc->strbuf_size * sizeof(char));
@@ -23325,8 +23266,8 @@ static void resize_strbuf(s7_scheme *sc, unsigned int needed_size)
 
 static s7_pointer file_read_name_or_sharp(s7_scheme *sc, s7_pointer pt, bool atom_case)
 {
-  int c;
-  unsigned int i = 1;
+  int32_t c;
+  uint32_t i = 1;
   /* sc->strbuf[0] has the first char of the string we're reading */
 
   do {
@@ -23373,7 +23314,7 @@ static s7_pointer file_read_sharp(s7_scheme *sc, s7_pointer pt)
 static s7_pointer string_read_name_no_free(s7_scheme *sc, s7_pointer pt)
 {
   /* sc->strbuf[0] has the first char of the string we're reading */
-  unsigned int k;
+  uint32_t k;
   char *str, *orig_str;
 
   str = (char *)(port_data(pt) + port_position(pt));
@@ -23428,7 +23369,7 @@ static s7_pointer string_read_sharp(s7_scheme *sc, s7_pointer pt)
   /* sc->strbuf[0] has the first char of the string we're reading.
    *   since a *#readers* function might want to get further input, we can't mess with the input even when it is otherwise safe
    */
-  unsigned int k;
+  uint32_t k;
   char *orig_str, *str;
 
   str = (char *)(port_data(pt) + port_position(pt));
@@ -23471,7 +23412,7 @@ static s7_pointer string_read_name(s7_scheme *sc, s7_pointer pt)
 {
   /* port_string was allocated (and read from a file) so we can mess with it directly */
   s7_pointer result;
-  unsigned int k;
+  uint32_t k;
   char *orig_str, *str;
   char endc;
 
@@ -23508,13 +23449,13 @@ static s7_pointer string_read_name(s7_scheme *sc, s7_pointer pt)
 }
 
 
-static s7_pointer read_file(s7_scheme *sc, FILE *fp, const char *name, long max_size, const char *caller)
+static s7_pointer read_file(s7_scheme *sc, FILE *fp, const char *name, int64_t max_size, const char *caller)
 {
   s7_pointer port;
 #if (!MS_WINDOWS)
-  long size;
+  int64_t size;
 #endif
-  unsigned int port_loc;
+  uint32_t port_loc;
 
   new_cell(sc, port, T_INPUT_PORT);
   port_loc = s7_gc_protect(sc, port);
@@ -23552,8 +23493,8 @@ static s7_pointer read_file(s7_scheme *sc, FILE *fp, const char *name, long max_
       if (bytes != (size_t)size)
 	{
 	  char tmp[256];
-	  int len;
-	  len = snprintf(tmp, 256, "(%s \"%s\") read %ld bytes of an expected %ld?", caller, name, (long)bytes, size);
+	  int32_t len;
+	  len = snprintf(tmp, 256, "(%s \"%s\") read %ld bytes of an expected %" PRId64 "?", caller, name, (long)bytes, size);
 	  port_write_string(sc->output_port)(sc, tmp, len, sc->output_port);
 	  size = bytes;
 	}
@@ -23658,7 +23599,7 @@ static s7_pointer open_input_file_1(s7_scheme *sc, const char *name, const char
 	  if (home)
 	    {
 	      char *filename;
-	      int len;
+	      int32_t len;
 	      len = safe_strlen(name) + safe_strlen(home) + 1;
 	      tmpbuf_malloc(filename, len);
 	      snprintf(filename, len, "%s%s", home, (char *)(name + 1));
@@ -23698,7 +23639,7 @@ static s7_pointer g_open_input_file(s7_scheme *sc, s7_pointer args)
       s7_pointer mode;
       mode = cadr(args);
       if (!is_string(mode))
-	method_or_bust_with_type(sc, mode, sc->open_input_file_symbol, args, make_string_wrapper(sc, "a string (a mode such as \"r\")"), 2);
+	method_or_bust_with_type(sc, mode, sc->open_input_file_symbol, args, s7_make_string_wrapper(sc, "a string (a mode such as \"r\")"), 2);
       /* since scheme allows embedded nulls, dumb stuff is accepted here: (open-input-file file "a\x00b") -- should this be an error? */
       return(open_input_file_1(sc, string_value(name), string_value(mode), "open-input-file"));
     }
@@ -23839,13 +23780,13 @@ static s7_pointer g_open_output_file(s7_scheme *sc, s7_pointer args)
   if (is_pair(cdr(args)))
     {
       if (!is_string(cadr(args)))
-	method_or_bust_with_type(sc, cadr(args), sc->open_output_file_symbol, args, make_string_wrapper(sc, "a string (a mode such as \"w\")"), 2);
+	method_or_bust_with_type(sc, cadr(args), sc->open_output_file_symbol, args, s7_make_string_wrapper(sc, "a string (a mode such as \"w\")"), 2);
       return(s7_open_output_file(sc, string_value(name), string_value(cadr(args))));
     }
   return(s7_open_output_file(sc, string_value(name), "w"));
 }
 
-static s7_pointer open_input_string(s7_scheme *sc, const char *input_string, int len)
+static s7_pointer open_input_string(s7_scheme *sc, const char *input_string, int32_t len)
 {
   s7_pointer x;
   new_cell(sc, x, T_INPUT_PORT);
@@ -23858,7 +23799,7 @@ static s7_pointer open_input_string(s7_scheme *sc, const char *input_string, int
   port_position(x) = 0;
   port_filename_length(x) = 0;
   port_filename(x) = NULL;
-  port_file_number(x) = 0; /* unsigned int */
+  port_file_number(x) = 0; /* uint32_t */
   port_line_number(x) = 0;
   port_needs_free(x) = false;
   port_gc_loc(x) = -1;
@@ -23914,7 +23855,7 @@ static s7_pointer g_open_input_string(s7_scheme *sc, s7_pointer args)
  *   64 is much slower (realloc dominates)
  */
 
-static s7_pointer open_output_string(s7_scheme *sc, int len)
+static s7_pointer open_output_string(s7_scheme *sc, int32_t len)
 {
   s7_pointer x;
   new_cell(sc, x, T_OUTPUT_PORT);
@@ -23975,10 +23916,10 @@ If the optional 'clear-port' is #t, the current string is flushed."
       (!is_string_port(p)))
     {
       if (p == sc->F) return(make_empty_string(sc, 0, 0));
-      method_or_bust_with_type_one_arg(sc, p, sc->get_output_string_symbol, args, make_string_wrapper(sc, "an output string port"));
+      method_or_bust_with_type_one_arg(sc, p, sc->get_output_string_symbol, args, s7_make_string_wrapper(sc, "an output string port"));
     }
   if (port_is_closed(p))
-    return(simple_wrong_type_argument_with_type(sc, sc->get_output_string_symbol, p, make_string_wrapper(sc, "an active (open) string port")));
+    return(simple_wrong_type_argument_with_type(sc, sc->get_output_string_symbol, p, s7_make_string_wrapper(sc, "an active (open) string port")));
 
   result = s7_make_string_with_length(sc, (const char *)port_data(p), port_position(p));
   if (clear_port)
@@ -24065,9 +24006,9 @@ static void print_input_stack(s7_scheme *sc)
 #endif
 
 
-static int inchar(s7_pointer pt)
+static int32_t inchar(s7_pointer pt)
 {
-  int c;
+  int32_t c;
   if (is_file_port(pt))
     c = fgetc(port_file(pt)); /* not unsigned char! -- could be EOF */
   else
@@ -24101,14 +24042,14 @@ static void backchar(char c, s7_pointer pt)
 
 int s7_read_char(s7_scheme *sc, s7_pointer port)
 {
-  /* needs to be int return value so EOF=-1, but not 255 */
+  /* needs to be int32_t return value so EOF=-1, but not 255 */
   return(port_read_character(port)(sc, port));
 }
 
 
 int s7_peek_char(s7_scheme *sc, s7_pointer port)
 {
-  int c;              /* needs to be an int so EOF=-1, but not 255 */
+  int32_t c;              /* needs to be an int32_t so EOF=-1, but not 255 */
   c = port_read_character(port)(sc, port);
   if (c != EOF)
     backchar(c, port);
@@ -24116,7 +24057,7 @@ int s7_peek_char(s7_scheme *sc, s7_pointer port)
 }
 
 
-void s7_write_char(s7_scheme *sc, int c, s7_pointer pt)
+void s7_write_char(s7_scheme *sc, int32_t c, s7_pointer pt)
 {
   if (pt != sc->F)
     port_write_character(pt)(sc, c, pt);
@@ -24129,7 +24070,7 @@ static s7_pointer input_port_if_not_loading(s7_scheme *sc)
   port = sc->input_port;
   if (is_loader_port(port)) /* this flag is turned off by the reader macros, so we aren't in that context */
     {
-      int c;
+      int32_t c;
       c = port_read_white_space(port)(sc, port);
       if (c > 0)            /* we can get either EOF or NULL at the end */
 	{
@@ -24234,7 +24175,7 @@ static s7_pointer g_read_byte(s7_scheme *sc, s7_pointer args)
   #define H_read_byte "(read-byte (port (current-input-port))): reads a byte from the input port"
   #define Q_read_byte s7_make_signature(sc, 2, s7_make_signature(sc, 2, sc->is_integer_symbol, sc->is_eof_object_symbol), sc->is_input_port_symbol)
   s7_pointer port;
-  int c;
+  int32_t c;
 
   if (is_not_null(args))
     port = car(args);
@@ -24360,7 +24301,7 @@ static s7_pointer g_read_string(s7_scheme *sc, s7_pointer args)
   str = (unsigned char *)string_value(s);
   for (i = 0; i < chars; i++)
     {
-      int c;
+      int32_t c;
       c = port_read_character(port)(sc, port);
       if (c == EOF)
 	{
@@ -24375,7 +24316,7 @@ static s7_pointer g_read_string(s7_scheme *sc, s7_pointer args)
 }
 
 
-#define declare_jump_info() bool old_longjmp; int old_jump_loc, jump_loc; jmp_buf old_goto_start
+#define declare_jump_info() bool old_longjmp; int32_t old_jump_loc, jump_loc; jmp_buf old_goto_start
 
 #define store_jump_info(Sc)						\
   do {									\
@@ -24490,7 +24431,7 @@ static s7_pointer g_read(s7_scheme *sc, s7_pointer args)
 #if WITH_MULTITHREAD_CHECKS
 typedef struct {
   s7_scheme* sc;
-  const int lock_count; /* Remember lock count in case we have skipped calls to leave_track_scope by longjmp-ing. */
+  const int32_t lock_count; /* Remember lock count in case we have skipped calls to leave_track_scope by longjmp-ing. */
 } lock_scope_t;
 
 static lock_scope_t enter_lock_scope(s7_scheme *sc) 
@@ -24519,7 +24460,7 @@ static void leave_lock_scope(lock_scope_t *st)
 
 static FILE *search_load_path(s7_scheme *sc, const char *name)
 {
-  int i, len;
+  int32_t i, len;
   s7_pointer lst;
 
   lst = s7_load_path(sc);
@@ -24606,7 +24547,7 @@ s7_pointer s7_load(s7_scheme *sc, const char *filename)
 
 static char *full_filename(const char *filename)
 {
-  int len;
+  int32_t len;
   char *pwd, *rtn;
   pwd = getcwd(NULL, 0); /* docs say this means it will return a new string of the right size */
   len = safe_strlen(pwd) + safe_strlen(filename) + 8;
@@ -24650,17 +24591,17 @@ defaults to the rootlet.  To load into the current environment instead, pass (cu
 
   fname = string_value(name);
   if ((!fname) || (!(*fname)))                 /* fopen("", "r") returns a file pointer?? */
-    return(s7_error(sc, sc->out_of_range_symbol, set_elist_2(sc, make_string_wrapper(sc, "load's first argument, ~S, should be a filename"), name)));
+    return(s7_error(sc, sc->out_of_range_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "load's first argument, ~S, should be a filename"), name)));
 
   if (is_directory(fname))
-    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, make_string_wrapper(sc, "load argument, ~S, is a directory"), name)));
+    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "load argument, ~S, is a directory"), name)));
 
 #if WITH_C_LOADER
   /* if fname ends in .so, try loading it as a c shared object
    *   (load "/home/bil/cl/m_j0.so" (inlet (cons 'init_func 'init_m_j0)))
    */
   {
-    int fname_len;
+    int32_t fname_len;
 
     fname_len = safe_strlen(fname);
     if ((fname_len > 3) &&
@@ -24721,7 +24662,7 @@ defaults to the rootlet.  To load into the current environment instead, pass (cu
 	  if (home)
 	    {
 	      char *filename;
-	      int len;
+	      int32_t len;
 	      len = safe_strlen(fname) + safe_strlen(home) + 1;
 	      tmpbuf_malloc(filename, len);
 	      snprintf(filename, len, "%s%s", home, (char *)(fname + 1));
@@ -24808,7 +24749,7 @@ static s7_pointer g_cload_directory_set(s7_scheme *sc, s7_pointer args)
 
 /* ---------------- autoload ---------------- */
 
-void s7_autoload_set_names(s7_scheme *sc, const char **names, int size)
+void s7_autoload_set_names(s7_scheme *sc, const char **names, int32_t size)
 {
   /* the idea here is that by sticking to string constants we can handle 90% of the work at compile-time,
    *   with less start-up memory.  Then eventually we'll add C libraries a la xg (gtk) as environments
@@ -24843,7 +24784,7 @@ void s7_autoload_set_names(s7_scheme *sc, const char **names, int size)
   if (!sc->autoload_names)
     {
       sc->autoload_names = (const char ***)calloc(INITIAL_AUTOLOAD_NAMES_SIZE, sizeof(const char **));
-      sc->autoload_names_sizes = (int *)calloc(INITIAL_AUTOLOAD_NAMES_SIZE, sizeof(int));
+      sc->autoload_names_sizes = (int32_t *)calloc(INITIAL_AUTOLOAD_NAMES_SIZE, sizeof(int));
       sc->autoloaded_already = (bool **)calloc(INITIAL_AUTOLOAD_NAMES_SIZE, sizeof(bool *));
       sc->autoload_names_top = INITIAL_AUTOLOAD_NAMES_SIZE;
       sc->autoload_names_loc = 0;
@@ -24852,10 +24793,10 @@ void s7_autoload_set_names(s7_scheme *sc, const char **names, int size)
     {
       if (sc->autoload_names_loc >= sc->autoload_names_top)
 	{
-	  int i;
+	  int32_t i;
 	  sc->autoload_names_top *= 2;
 	  sc->autoload_names = (const char ***)realloc(sc->autoload_names, sc->autoload_names_top * sizeof(const char **));
-	  sc->autoload_names_sizes = (int *)realloc(sc->autoload_names_sizes, sc->autoload_names_top * sizeof(int));
+	  sc->autoload_names_sizes = (int32_t *)realloc(sc->autoload_names_sizes, sc->autoload_names_top * sizeof(int));
 	  sc->autoloaded_already = (bool **)realloc(sc->autoloaded_already, sc->autoload_names_top * sizeof(bool *));
 	  for (i = sc->autoload_names_loc; i < sc->autoload_names_top; i++)
 	    {
@@ -24875,7 +24816,7 @@ void s7_autoload_set_names(s7_scheme *sc, const char **names, int size)
 
 static const char *find_autoload_name(s7_scheme *sc, s7_pointer symbol, bool *already_loaded, bool loading)
 {
-  int l = 0, pos = -1, lib, libs;
+  int32_t l = 0, pos = -1, lib, libs;
   const char *name, *this_name;
 
   name = symbol_name(symbol);
@@ -24884,13 +24825,13 @@ static const char *find_autoload_name(s7_scheme *sc, s7_pointer symbol, bool *al
   for (lib = 0; lib < libs; lib++)
     {
       const char **names;
-      int u;
+      int32_t u;
       u = sc->autoload_names_sizes[lib] - 1;
       names = sc->autoload_names[lib];
 
       while (true)
 	{
-	  int comp;
+	  int32_t comp;
 	  if (u < l) break;
 	  pos = (l + u) / 2;
 	  this_name = names[pos * 2];
@@ -25001,7 +24942,7 @@ The symbols refer to the argument to \"provide\"."
 	  if ((is_proper_quote(sc, car(p))) && 
 	      (is_symbol(cadar(p))))
 	    sym = cadar(p);
-	  else return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, make_string_wrapper(sc, "require: ~S is not a symbol"), car(p))));
+	  else return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "require: ~S is not a symbol"), car(p))));
 	}
       if ((!is_slot(find_symbol(sc, sym))) &&
 	  (sc->is_autoloading))
@@ -25014,7 +24955,7 @@ The symbols refer to the argument to \"provide\"."
 	    {
 	      sc->temp5 = sc->nil; 
 	      return(s7_error(sc, make_symbol(sc, "autoload-error"), 
-			      set_elist_2(sc, make_string_wrapper(sc, "require: no autoload info for ~S"), sym)));
+			      set_elist_2(sc, s7_make_string_wrapper(sc, "require: no autoload info for ~S"), sym)));
 	    }
 	}
     }
@@ -25072,7 +25013,7 @@ static s7_pointer g_eval_string(s7_scheme *sc, s7_pointer args)
   return(sc->F);
 }
 
-static s7_pointer eval_string_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer eval_string_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   check_for_substring_temp(sc, expr);
   return(f);
@@ -25109,7 +25050,7 @@ static s7_pointer g_call_with_input_string(s7_scheme *sc, s7_pointer args)
 
   if (!s7_is_aritable(sc, proc, 1))
     return(wrong_type_argument_with_type(sc, sc->call_with_input_string_symbol, 2, proc,
-					 make_string_wrapper(sc, "a procedure of one argument (the port)")));
+					 s7_make_string_wrapper(sc, "a procedure of one argument (the port)")));
 
   if ((is_continuation(proc)) || (is_goto(proc)))
     return(wrong_type_argument_with_type(sc, sc->call_with_input_string_symbol, 2, proc, a_normal_procedure_string));
@@ -25134,7 +25075,7 @@ static s7_pointer g_call_with_input_file(s7_scheme *sc, s7_pointer args)
   proc = cadr(args);
   if (!s7_is_aritable(sc, proc, 1))
     return(wrong_type_argument_with_type(sc, sc->call_with_input_file_symbol, 2, proc,
-					 make_string_wrapper(sc, "a procedure of one argument (the port)")));
+					 s7_make_string_wrapper(sc, "a procedure of one argument (the port)")));
   if ((is_continuation(proc)) || (is_goto(proc)))
     return(wrong_type_argument_with_type(sc, sc->call_with_input_file_symbol, 2, proc, a_normal_procedure_string));
 
@@ -25275,7 +25216,7 @@ static s7_pointer rootlet_iterate(s7_scheme *sc, s7_pointer iterator)
 static s7_pointer hash_table_iterate(s7_scheme *sc, s7_pointer iterator)
 {
   s7_pointer table;
-  int loc, len;
+  int32_t loc, len;
   hash_entry_t **elements;
   hash_entry_t *lst;
 
@@ -25458,7 +25399,7 @@ static s7_pointer iterator_method(s7_scheme *sc, s7_pointer e)
       s7_pointer it;
       it = s7_apply_function(sc, func, list_1(sc, e));
       if (!is_iterator(it))
-	return(s7_error(sc, sc->error_symbol, set_elist_2(sc, make_string_wrapper(sc, "make-iterator method must return an interator: ~S"), it)));
+	return(s7_error(sc, sc->error_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "make-iterator method must return an interator: ~S"), it)));
       return(it);
     }
   return(NULL);
@@ -25547,7 +25488,7 @@ s7_pointer s7_make_iterator(s7_scheme *sc, s7_pointer e)
 	else 
 	  {
 	    free_cell(sc, iter);
-	    return(simple_wrong_type_argument_with_type(sc, sc->make_iterator_symbol, e, make_string_wrapper(sc, "a closure/macro with an 'iterator local that is not #f")));
+	    return(simple_wrong_type_argument_with_type(sc, sc->make_iterator_symbol, e, s7_make_string_wrapper(sc, "a closure/macro with an 'iterator local that is not #f")));
 	  }
       }
       break;
@@ -25684,10 +25625,10 @@ static s7_pointer g_iterator_is_at_end(s7_scheme *sc, s7_pointer args)
 
 #define INITIAL_SHARED_INFO_SIZE 8
 
-static int shared_ref(shared_info *ci, s7_pointer p)
+static int32_t shared_ref(shared_info *ci, s7_pointer p)
 {
   /* from print after collecting refs, not called by equality check */
-  int i;
+  int32_t i;
   s7_pointer *objs;
 
   if (!is_collected(p)) return(0);
@@ -25696,7 +25637,7 @@ static int shared_ref(shared_info *ci, s7_pointer p)
   for (i = 0; i < ci->top; i++)
     if (objs[i] == p)
       {
-	int val;
+	int32_t val;
 	val = ci->refs[i];
 	if (val > 0)
 	  ci->refs[i] = -ci->refs[i];
@@ -25706,10 +25647,10 @@ static int shared_ref(shared_info *ci, s7_pointer p)
 }
 
 
-static int peek_shared_ref(shared_info *ci, s7_pointer p)
+static int32_t peek_shared_ref(shared_info *ci, s7_pointer p)
 {
   /* returns 0 if not found, otherwise the ref value for p */
-  int i;
+  int32_t i;
   s7_pointer *objs;
 
   objs = ci->objs;
@@ -25722,10 +25663,10 @@ static int peek_shared_ref(shared_info *ci, s7_pointer p)
 
 static void enlarge_shared_info(shared_info *ci)
 {
-  int i;
+  int32_t i;
   ci->size *= 2;
   ci->objs = (s7_pointer *)realloc(ci->objs, ci->size * sizeof(s7_pointer));
-  ci->refs = (int *)realloc(ci->refs, ci->size * sizeof(int));
+  ci->refs = (int32_t *)realloc(ci->refs, ci->size * sizeof(int));
   for (i = ci->top; i < ci->size; i++)
     {
       ci->refs[i] = 0;
@@ -25734,7 +25675,7 @@ static void enlarge_shared_info(shared_info *ci)
 }
 
 
-static void add_shared_ref(shared_info *ci, s7_pointer x, int ref_x)
+static void add_shared_ref(shared_info *ci, s7_pointer x, int32_t ref_x)
 {
   /* called only in equality check, not printer */
 
@@ -25783,7 +25724,7 @@ static bool collect_shared_info(s7_scheme *sc, shared_info *ci, s7_pointer top,
   if (is_collected_or_shared(top))
     {
       s7_pointer *p, *objs_end;
-      int i;
+      int32_t i;
       if (is_shared(top))
 	return(false);
 
@@ -25834,7 +25775,7 @@ static bool collect_shared_info(s7_scheme *sc, shared_info *ci, s7_pointer top,
     case T_HASH_TABLE:
       if (hash_table_entries(top) > 0)
 	{
-	  unsigned int i, len;
+	  uint32_t i, len;
 	  hash_entry_t **entries;
 	  bool keys_safe;
 	  
@@ -25895,12 +25836,12 @@ static shared_info *new_shared_info(s7_scheme *sc)
       ci = (shared_info *)calloc(1, sizeof(shared_info));
       ci->size = INITIAL_SHARED_INFO_SIZE;
       ci->objs = (s7_pointer *)malloc(ci->size * sizeof(s7_pointer));
-      ci->refs = (int *)calloc(ci->size, sizeof(int));   /* finder expects 0 = unseen previously */
+      ci->refs = (int32_t *)calloc(ci->size, sizeof(int));   /* finder expects 0 = unseen previously */
       sc->circle_info = ci;
     }
   else
     {
-      int i;
+      int32_t i;
       ci = sc->circle_info;
       memclr((void *)(ci->refs), ci->top * sizeof(int));
       for (i = 0; i < ci->top; i++)
@@ -25917,9 +25858,9 @@ static shared_info *make_shared_info(s7_scheme *sc, s7_pointer top, bool stop_at
 {
   /* for the printer */
   shared_info *ci;
-  int i, refs;
+  int32_t i, refs;
   s7_pointer *ci_objs;
-  int *ci_refs;
+  int32_t *ci_refs;
   bool no_problem = true, cyclic = false;
   s7_int k, stop_len;
 
@@ -26060,7 +26001,7 @@ static s7_pointer cyclic_sequences(s7_scheme *sc, s7_pointer obj, bool return_li
 	{
 	  if (return_list)
 	    {
-	      int i;
+	      int32_t i;
 	      s7_pointer lst;
 	      sc->w = sc->nil;
 	      for (i = 0; i < ci->top; i++)
@@ -26082,13 +26023,13 @@ static s7_pointer g_cyclic_sequences(s7_scheme *sc, s7_pointer args)
   return(cyclic_sequences(sc, car(args), true));
 }
 
-static int circular_list_entries(s7_pointer lst)
+static int32_t circular_list_entries(s7_pointer lst)
 {
-  int i;
+  int32_t i;
   s7_pointer x;
   for (i = 1, x = cdr(lst); ; i++, x = cdr(x))
     {
-      int j;
+      int32_t j;
       s7_pointer y;
       for (y = lst, j = 0; j < i; y = cdr(y), j++)
 	if (x == y)
@@ -26104,7 +26045,7 @@ static void (*display_functions[256])(s7_scheme *sc, s7_pointer obj, s7_pointer
 
 static s7_pointer object_out(s7_scheme *sc, s7_pointer obj, s7_pointer strport, use_write_t choice);
 
-static bool string_needs_slashification(const char *str, int len)
+static bool string_needs_slashification(const char *str, int32_t len)
 {
   /* we have to go by len (str len) not *s==0 because s7 strings can have embedded nulls */
   unsigned char *p, *pend;
@@ -26118,9 +26059,9 @@ static bool string_needs_slashification(const char *str, int len)
 #define IN_QUOTES true
 #define NOT_IN_QUOTES false
 
-static char *slashify_string(s7_scheme *sc, const char *p, int len, bool quoted, int *nlen) /* do not free result */
+static char *slashify_string(s7_scheme *sc, const char *p, int32_t len, bool quoted, int32_t *nlen) /* do not free result */
 {
-  int j = 0, cur_size, size;
+  int32_t j = 0, cur_size, size;
   char *s;
   unsigned char *pcur, *pend;
 
@@ -26171,10 +26112,10 @@ static char *slashify_string(s7_scheme *sc, const char *p, int len, bool quoted,
 
 	    default:               /* this is the "\x01" stuff */
 	      {
-		unsigned int n;
+		uint32_t n;
 		static char dignum[] = "0123456789abcdef";
 		s[j++] = 'x';
-		n = (unsigned int)(*pcur);
+		n = (uint32_t)(*pcur);
 		if (n < 16)
 		  s[j++] = '0';
 		else s[j++] = dignum[(n / 16) % 16];
@@ -26186,7 +26127,7 @@ static char *slashify_string(s7_scheme *sc, const char *p, int len, bool quoted,
       else s[j++] = *pcur;
       if (j >= cur_size) /* even with 256 extra, we can overflow (for example, inordinately many tabs in ALSA output) */
 	{
-	  /* int k; */
+	  /* int32_t k; */
 	  size *= 2;
 	  sc->slash_str = (char *)realloc(sc->slash_str, size * sizeof(char));    
 	  sc->slash_str_size = size;
@@ -26208,7 +26149,7 @@ static void output_port_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port,
     port_write_string(port)(sc, port_filename(obj), port_filename_length(obj), port);
   else
     {
-      int nlen;
+      int32_t nlen;
       if (use_write == USE_READABLE_WRITE)
 	{
 	  if (port_is_closed(obj))
@@ -26260,7 +26201,7 @@ static void input_port_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, u
     port_write_string(port)(sc, port_filename(obj), port_filename_length(obj), port);
   else
     {
-      int nlen = 0;
+      int32_t nlen = 0;
       if (use_write == USE_READABLE_WRITE)
 	{
 	  if (port_is_closed(obj))
@@ -26286,7 +26227,7 @@ static void input_port_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, u
 		       *   readable version could be: open file, read-char to the current port_position.
 		       *   s7_port_filename(port) has the char* name if any.
 		       */
-		      int data_len;
+		      int32_t data_len;
 		      data_len = port_data_size(obj) - port_position(obj);
 		      if (data_len > 100)
 			{
@@ -26296,7 +26237,7 @@ static void input_port_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, u
 			    {
 			      #define DO_STR_LEN 1024
 			      char *do_str;
-			      int len;
+			      int32_t len;
 			      do_str = (char *)malloc(DO_STR_LEN * sizeof(char));
 			      if (port_position(obj) > 0)
 				{
@@ -26341,7 +26282,7 @@ static bool symbol_needs_slashification(s7_pointer obj)
 {
   unsigned char *p, *pend;
   const char *str;
-  int len;
+  int32_t len;
   str = symbol_name(obj);
   if (str[0] == '#')
     return(true);
@@ -26362,7 +26303,7 @@ static void symbol_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_w
   if ((!is_clean_symbol(obj)) &&
       (symbol_needs_slashification(obj)))
     {
-      int nlen = 0;
+      int32_t nlen = 0;
       char *str, *symstr;
       str = slashify_string(sc, symbol_name(obj), symbol_name_length(obj), NOT_IN_QUOTES, &nlen);
       nlen += 16;
@@ -26378,7 +26319,7 @@ static void symbol_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_w
 	port_write_character(port)(sc, '\'', port);
       if (is_string_port(port))
 	{
-	  unsigned int new_len;
+	  uint32_t new_len;
 	  new_len = port_position(port) + symbol_name_length(obj);
 	  if (new_len >= port_data_size(port))
 	    resize_port_data(port, new_len * 2);
@@ -26403,7 +26344,7 @@ static void string_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_w
 	  size = strspn((const char *)(string_value(obj) + 1), buf); /* if all #\null, this won't work */
 	  if (size == string_length(obj) - 1)
 	    {
-	      int nlen;
+	      int32_t nlen;
 	      s7_pointer c;
 	      c = chars[(int)buf[0]];
 	      nlen = snprintf(buf, 128, "(make-string %u ", string_length(obj));
@@ -26426,7 +26367,7 @@ static void string_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_w
 	  else
 	    {
 	      char *str;
-	      int nlen = 0;
+	      int32_t nlen = 0;
 	      str = slashify_string(sc, string_value(obj), string_length(obj), IN_QUOTES, &nlen);
 	      port_write_string(port)(sc, str, nlen, port);
 	    }
@@ -26440,7 +26381,7 @@ static void string_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_w
 }
 
 
-static char *multivector_indices_to_string(s7_scheme *sc, s7_int index, s7_pointer vect, char *str, int cur_dim)
+static char *multivector_indices_to_string(s7_scheme *sc, s7_int index, s7_pointer vect, char *str, int32_t cur_dim)
 {
   s7_int size, ind;
   char buf[64];
@@ -26450,7 +26391,7 @@ static char *multivector_indices_to_string(s7_scheme *sc, s7_int index, s7_point
   if (cur_dim > 0)
     multivector_indices_to_string(sc, (index - ind) / size, vect, str, cur_dim - 1);
 
-  snprintf(buf, 64, " %" LL_D, ind);
+  snprintf(buf, 64, " %" PRId64, ind);
 #ifdef __OpenBSD__
   strlcat(str, buf, 128); /* 128=length of str */
 #else
@@ -26460,11 +26401,11 @@ static char *multivector_indices_to_string(s7_scheme *sc, s7_int index, s7_point
 }
 
 
-static int multivector_to_port(s7_scheme *sc, s7_pointer vec, s7_pointer port,
-			       int out_len, int flat_ref, int dimension, int dimensions, bool *last,
+static int32_t multivector_to_port(s7_scheme *sc, s7_pointer vec, s7_pointer port,
+			       int32_t out_len, int32_t flat_ref, int32_t dimension, int32_t dimensions, bool *last,
 			       use_write_t use_write, shared_info *ci)
 {
-  int i;
+  int32_t i;
 
   if (use_write != USE_READABLE_WRITE)
     {
@@ -26482,7 +26423,7 @@ static int multivector_to_port(s7_scheme *sc, s7_pointer vec, s7_pointer port,
 	    {
 	      if (use_write == USE_READABLE_WRITE)
 		{
-		  int plen;
+		  int32_t plen;
 		  char buf[128];
 		  char *indices;
 		  /* need to translate flat_ref into a set of indices
@@ -26528,7 +26469,7 @@ static int multivector_to_port(s7_scheme *sc, s7_pointer vec, s7_pointer port,
 static void make_vector_to_port(s7_scheme *sc, s7_pointer vect, s7_pointer port)
 {
   s7_int vlen;
-  int plen;
+  int32_t plen;
   char buf[128];
   const char* vtyp = "";
 
@@ -26543,20 +26484,20 @@ static void make_vector_to_port(s7_scheme *sc, s7_pointer vect, s7_pointer port)
   vlen = vector_length(vect);
   if (vector_rank(vect) == 1)
     {
-      plen = snprintf(buf, 128, "(make-%svector %" LL_D " ", vtyp, vlen);
+      plen = snprintf(buf, 128, "(make-%svector %" PRId64 " ", vtyp, vlen);
       port_write_string(port)(sc, buf, plen, port);
     }
   else
     {
-      unsigned int dim;
+      uint32_t dim;
       plen = snprintf(buf, 128, "(make-%svector '(", vtyp);
       port_write_string(port)(sc, buf, plen, port);
       for (dim = 0; dim < vector_ndims(vect) - 1; dim++)
 	{
-	  plen = snprintf(buf, 128, "%" LL_D " ", vector_dimension(vect, dim));
+	  plen = snprintf(buf, 128, "%" PRId64 " ", vector_dimension(vect, dim));
 	  port_write_string(port)(sc, buf, plen, port);
 	}
-      plen = snprintf(buf, 128, "%" LL_D ") ", vector_dimension(vect, dim));
+      plen = snprintf(buf, 128, "%" PRId64 ") ", vector_dimension(vect, dim));
       port_write_string(port)(sc, buf, plen, port);
     }
 }
@@ -26564,7 +26505,7 @@ static void make_vector_to_port(s7_scheme *sc, s7_pointer vect, s7_pointer port)
 static void vector_to_port(s7_scheme *sc, s7_pointer vect, s7_pointer port, use_write_t use_write, shared_info *ci)
 {
   s7_int i, len;
-  int plen;
+  int32_t plen;
   bool too_long = false;
   char buf[128];
 
@@ -26629,18 +26570,18 @@ static void vector_to_port(s7_scheme *sc, s7_pointer vect, s7_pointer port, use_
 	  port_write_string(port)(sc, "(let (({v} (make-vector ", 24, port);
 	  if (vector_rank(vect) > 1)
 	    {
-	      unsigned int dim;
+	      uint32_t dim;
 	      port_write_string(port)(sc, "'(", 2, port);
 	      for (dim = 0; dim < vector_ndims(vect); dim++)
 		{
-		  plen = snprintf(buf, 128, "%" LL_D " ", vector_dimension(vect, dim));
+		  plen = snprintf(buf, 128, "%" PRId64 " ", vector_dimension(vect, dim));
 		  port_write_string(port)(sc, buf, plen, port);
 		}
 	      port_write_string(port)(sc, ")))) ", 5, port);
 	    }
 	  else 
 	    {
-	      plen = snprintf(buf, 128, "%" LL_D"))) ", vector_length(vect));
+	      plen = snprintf(buf, 128, "%" PRId64 "))) ", vector_length(vect));
 	      port_write_string(port)(sc, buf, plen, port);
 	    }
 	  if (shared_ref(ci, vect) < 0)
@@ -26659,7 +26600,7 @@ static void vector_to_port(s7_scheme *sc, s7_pointer vect, s7_pointer port, use_
 	      for (i = 0; i < len; i++)
 		{
 		  port_write_string(port)(sc, "(set! ({v} ", 11, port);
-		  plen = snprintf(buf, 128, "%" LL_D ") ", i);
+		  plen = snprintf(buf, 128, "%" PRId64 ") ", i);
 		  port_write_string(port)(sc, buf, plen, port);
 		  object_to_port_with_circle_check(sc, vector_element(vect, i), port, use_write, ci);
 		  port_write_string(port)(sc, ") ", 2, port);
@@ -26682,14 +26623,14 @@ static void vector_to_port(s7_scheme *sc, s7_pointer vect, s7_pointer port, use_
 
 	  if (vector_rank(vect) > 1)
 	    {
-	      unsigned int dim;
+	      uint32_t dim;
 	      port_write_string(port)(sc, " '(", 3, port);
 	      for (dim = 0; dim < vector_ndims(vect) - 1; dim++)
 		{
-		  plen = snprintf(buf, 128, "%" LL_D " ", vector_dimension(vect, dim));
+		  plen = snprintf(buf, 128, "%" PRId64 " ", vector_dimension(vect, dim));
 		  port_write_string(port)(sc, buf, plen, port);
 		}
-	      plen = snprintf(buf, 128, "%" LL_D, vector_dimension(vect, dim));
+	      plen = snprintf(buf, 128, "%" PRId64, vector_dimension(vect, dim));
 	      port_write_string(port)(sc, buf, plen, port);
 	      port_write_string(port)(sc, "))", 2, port);
 	    }
@@ -26729,7 +26670,7 @@ static void vector_to_port(s7_scheme *sc, s7_pointer vect, s7_pointer port, use_
 static void int_or_float_vector_to_port(s7_scheme *sc, s7_pointer vect, s7_pointer port, use_write_t use_write, shared_info *ignored)
 {
   s7_int i, len;
-  int plen;
+  int32_t plen;
   bool too_long = false;
   char buf[128];
 
@@ -26800,7 +26741,7 @@ static void int_or_float_vector_to_port(s7_scheme *sc, s7_pointer vect, s7_point
 	  make_vector_to_port(sc, vect, port);
 	  if (is_float_vector(vect))
 	    plen = snprintf(buf, 128, float_format_g, float_format_precision, float_vector_element(vect, 0));
-	  else plen = snprintf(buf, 128, "%" LL_D, int_vector_element(vect, 0));
+	  else plen = snprintf(buf, 128, "%" PRId64, int_vector_element(vect, 0));
 	  port_write_string(port)(sc, buf, plen, port);
 	  port_write_character(port)(sc, ')', port);
 	}
@@ -26814,18 +26755,18 @@ static void int_or_float_vector_to_port(s7_scheme *sc, s7_pointer vect, s7_point
 	  port_write_string(port)(sc, "#i(", 3, port);
 	  if (!is_string_port(port))
 	    {
-	      plen = snprintf(buf, 128, "%" LL_D, int_vector_element(vect, 0));
+	      plen = snprintf(buf, 128, "%" PRId64, int_vector_element(vect, 0));
 	      port_write_string(port)(sc, buf, plen, port);
 	      for (i = 1; i < len; i++)
 		{
-		  plen = snprintf(buf, 128, " %" LL_D, int_vector_element(vect, i));
+		  plen = snprintf(buf, 128, " %" PRId64, int_vector_element(vect, i));
 		  port_write_string(port)(sc, buf, plen, port);
 		}
 	    }
 	  else
 	    {
 	      /* an experiment */
-	      unsigned int new_len, next_len;
+	      uint32_t new_len, next_len;
 	      unsigned char *dbuf;
 	      new_len = port_position(port);
 	      next_len = port_data_size(port) - 128;
@@ -26837,7 +26778,7 @@ static void int_or_float_vector_to_port(s7_scheme *sc, s7_pointer vect, s7_point
 		  next_len = port_data_size(port) - 128;
 		  dbuf = port_data(port);
 		}
-	      plen = snprintf((char *)(dbuf + new_len), 128, "%" LL_D, int_vector_element(vect, 0));
+	      plen = snprintf((char *)(dbuf + new_len), 128, "%" PRId64, int_vector_element(vect, 0));
 	      new_len += plen;
 	      for (i = 1; i < len; i++)
 		{
@@ -26847,7 +26788,7 @@ static void int_or_float_vector_to_port(s7_scheme *sc, s7_pointer vect, s7_point
 		      next_len = port_data_size(port) - 128;
 		      dbuf = port_data(port);
 		    }
-		  plen = snprintf((char *)(dbuf + new_len), 128, " %" LL_D, int_vector_element(vect, i));
+		  plen = snprintf((char *)(dbuf + new_len), 128, " %" PRId64, int_vector_element(vect, i));
 		  new_len += plen;
 		}
 	      port_position(port) = new_len;
@@ -26887,7 +26828,7 @@ static void int_or_float_vector_to_port(s7_scheme *sc, s7_pointer vect, s7_point
 static void byte_vector_to_port(s7_scheme *sc, s7_pointer vect, s7_pointer port, use_write_t use_write)
 {
   s7_int i, len;
-  int plen;
+  int32_t plen;
   bool too_long = false;
 
   len = string_length(vect);
@@ -26903,7 +26844,7 @@ static void byte_vector_to_port(s7_scheme *sc, s7_pointer vect, s7_pointer port,
 	port_write_string(port)(sc, "#u8(...)", 8, port);
       else
 	{
-	  unsigned int nlen;
+	  uint32_t nlen;
 	  char *p;
 	  if (len > plen)
 	    {
@@ -26913,7 +26854,7 @@ static void byte_vector_to_port(s7_scheme *sc, s7_pointer vect, s7_pointer port,
 
 	  if (len > 1000)
 	    {
-	      unsigned int vlen;
+	      uint32_t vlen;
 	      char c;
 	      char *data;
 	      vlen = string_length(vect);
@@ -26927,7 +26868,7 @@ static void byte_vector_to_port(s7_scheme *sc, s7_pointer vect, s7_pointer port,
 		  char buf[128];
 		  plen = snprintf(buf, 128, "(make-byte-vector %u ", vlen);
 		  port_write_string(port)(sc, buf, plen, port);
-		  plen = snprintf(buf, 128, "%u)", (unsigned int)c);
+		  plen = snprintf(buf, 128, "%u)", (uint32_t)c);
 		  port_write_string(port)(sc, buf, plen, port);
 		  return;
 		}
@@ -26994,11 +26935,11 @@ static void pair_to_port(s7_scheme *sc, s7_pointer lst, s7_pointer port, use_wri
     {
       if (ci)
 	{
-	  int plen;
+	  int32_t plen;
 	  char buf[128];
 
 	  port_write_string(port)(sc, "let (({lst} (make-list ", 23, port);
-	  plen = snprintf(buf, 128, "%" LL_D "))) ", len);
+	  plen = snprintf(buf, 128, "%" PRId64 "))) ", len);
 	  port_write_string(port)(sc, buf, plen, port);
 
 	  if ((shared_ref(ci, lst) < 0))
@@ -27116,8 +27057,8 @@ static void pair_to_port(s7_scheme *sc, s7_pointer lst, s7_pointer port, use_wri
 
 static void hash_table_to_port(s7_scheme *sc, s7_pointer hash, s7_pointer port, use_write_t use_write, shared_info *ci)
 {
-  int i, len;
-  unsigned int gc_iter;
+  int32_t i, len;
+  uint32_t gc_iter;
   bool too_long = false;
   s7_pointer iterator, p;
 
@@ -27163,7 +27104,7 @@ static void hash_table_to_port(s7_scheme *sc, s7_pointer hash, s7_pointer port,
       port_write_string(port)(sc, "(let (({ht} (make-hash-table)))", 31, port);
       if (shared_ref(ci, hash) < 0)
 	{
-	  int plen;
+	  int32_t plen;
 	  char buf[64];
 	  plen = snprintf(buf, 64, "(set! {%d} {ht}) ", -shared_ref(ci, hash));
 	  port_write_string(port)(sc, buf, plen, port);
@@ -27213,7 +27154,7 @@ static void hash_table_to_port(s7_scheme *sc, s7_pointer hash, s7_pointer port,
 }
 
 
-static int slot_to_port_1(s7_scheme *sc, s7_pointer x, s7_pointer port, use_write_t use_write, shared_info *ci, int n)
+static int32_t slot_to_port_1(s7_scheme *sc, s7_pointer x, s7_pointer port, use_write_t use_write, shared_info *ci, int32_t n)
 {
   if (is_slot(x))
     {
@@ -27277,7 +27218,7 @@ static void let_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_writ
 	      if ((ci) &&
 		  (shared_ref(ci, obj) < 0))
 		{
-		  int plen;
+		  int32_t plen;
 		  char buf[64];
 		  plen = snprintf(buf, 64, "(set! {%d} {e}) ", -shared_ref(ci, obj));
 		  port_write_string(port)(sc, buf, plen, port);
@@ -27376,7 +27317,7 @@ static bool arg_memq(s7_pointer symbol, s7_pointer args)
 }
 
 
-static void collect_locals(s7_scheme *sc, s7_pointer body, s7_pointer e, s7_pointer args, unsigned int gc_loc)
+static void collect_locals(s7_scheme *sc, s7_pointer body, s7_pointer e, s7_pointer args, uint32_t gc_loc)
 {
   if (is_pair(body))
     {
@@ -27564,7 +27505,7 @@ static void write_closure_readably_1(s7_scheme *sc, s7_pointer obj, s7_pointer a
 static void write_closure_readably(s7_scheme *sc, s7_pointer obj, s7_pointer port)
 {
   s7_pointer body, arglist, pe, local_slots, setter = NULL;
-  unsigned int gc_loc;
+  uint32_t gc_loc;
   
   body = closure_body(obj);
   arglist = closure_args(obj);
@@ -27624,7 +27565,7 @@ static void write_closure_readably(s7_scheme *sc, s7_pointer obj, s7_pointer por
 #include <signal.h>
 static sigjmp_buf senv; /* global here is not a problem -- it is used only to protect s7_is_valid */
 static volatile sig_atomic_t can_jump = 0;
-static void segv(int ignored) {if (can_jump) siglongjmp(senv, 1);}
+static void segv(int32_t ignored) {if (can_jump) siglongjmp(senv, 1);}
 #endif
 
 bool s7_is_valid(s7_scheme *sc, s7_pointer arg)
@@ -27635,7 +27576,7 @@ bool s7_is_valid(s7_scheme *sc, s7_pointer arg)
 #if TRAP_SEGFAULT
   if (sigsetjmp(senv, 1) == 0)
     {
-      void (*old_segv)(int sig);
+      void (*old_segv)(int32_t sig);
       can_jump = 1;
       old_segv = signal(SIGSEGV, segv);
 #endif
@@ -27643,7 +27584,7 @@ bool s7_is_valid(s7_scheme *sc, s7_pointer arg)
 		(type(arg) < NUM_TYPES) &&
 		(arg->hloc >= not_heap) &&
 		((arg->hloc < 0) ||
-		 ((arg->hloc < (int)sc->heap_size) && (sc->heap[arg->hloc] == arg))));
+		 ((arg->hloc < sc->heap_size) && (sc->heap[arg->hloc] == arg))));
 
 #if TRAP_SEGFAULT
       signal(SIGSEGV, old_segv);
@@ -27659,8 +27600,8 @@ enum {NO_ARTICLE, INDEFINITE_ARTICLE};
 
 static char *describe_type_bits(s7_scheme *sc, s7_pointer obj)
 {
-  unsigned int full_typ;
-  unsigned char typ;
+  uint64_t full_typ;
+  uint8_t typ;
   char *buf;
 
   buf = (char *)malloc(512 * sizeof(char));
@@ -27668,7 +27609,7 @@ static char *describe_type_bits(s7_scheme *sc, s7_pointer obj)
   full_typ = typeflag(obj);
 
   /* if debugging all of these bits are being watched, so we need to access them directly */
-  snprintf(buf, 512, "type: %d (%s), flags: #x%x%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
+  snprintf(buf, 512, "type: %d (%s), flags: #x%" PRIx64 "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
 	   typ,
 	   type_name(sc, obj, NO_ARTICLE),
 	   full_typ,
@@ -27676,9 +27617,9 @@ static char *describe_type_bits(s7_scheme *sc, s7_pointer obj)
 	   ((full_typ & T_KEYWORD) != 0) ?        " keyword" : "",
 	   /* bit 1 */
 	   ((full_typ & T_SYNTACTIC) != 0) ?      " syntactic" : "",
-	   /* bit 2 -- currently unused */
-	   /* ((full_typ & T_LOCAL_SYMBOL) != 0) ?   " local-symbol" : "", */
-	   "",
+	   /* bit 2 */
+	   ((full_typ & T_SIMPLE_ARG_DEFAULTS) != 0) ? ((is_pair(obj)) ? " simple-args|in-use" : " ?2?") : "",
+
 	   /* bit 3 */
 	   ((full_typ & T_OPTIMIZED) != 0) ?      ((is_c_function(obj)) ? " scope-safe" : 
 						   ((is_pair(obj)) ? " optimized" :
@@ -27688,9 +27629,12 @@ static char *describe_type_bits(s7_scheme *sc, s7_pointer obj)
 	   /* bit 5 */
 	   ((full_typ & T_DONT_EVAL_ARGS) != 0) ? " dont-eval-args" : "",
 	   /* bit 6 */
-	   ((full_typ & T_EXPANSION) != 0) ?      " expansion" : "",
+	   ((full_typ & T_EXPANSION) != 0) ?      (((is_symbol(obj)) || (is_macro(obj))) ? " expansion" : 
+						   " ?6?") : "",
 	   /* bit 7 */
-	   ((full_typ & T_MULTIPLE_VALUE) != 0) ? " values-or-matched" : "",
+	   ((full_typ & T_MULTIPLE_VALUE) != 0) ? ((is_symbol(obj)) ? " matched" :
+						   ((is_pair(obj)) ? " values|matched" : 
+						    " ?7?")) : "",
 	   /* bit 8 */
 	   ((full_typ & T_GLOBAL) != 0) ?         ((is_pair(obj)) ? " unsafe-do" : 
 						   ((is_symbol(obj)) ? " global" :
@@ -27717,13 +27661,13 @@ static char *describe_type_bits(s7_scheme *sc, s7_pointer obj)
 	   /* bit 15 */
 	   ((full_typ & T_UNSAFE) != 0) ?         ((is_symbol(obj)) ? " clean-symbol" : 
 						   ((is_slot(obj)) ? " has-stepper" : 
-						    ((is_pair(obj)) ? " unsafe-or-no-float-opt" :
+						    ((is_pair(obj)) ? " unsafe|no-float-opt" :
 						     " ?15?"))) : "",
 	   /* bit 16 */
 	   ((full_typ & T_IMMUTABLE) != 0) ?      " immutable" : "",
 	   /* bit 17 */
 	   ((full_typ & T_SETTER) != 0) ?         ((is_symbol(obj)) ? " setter" :
-						   ((is_pair(obj)) ? " allow-other-keys-or-has-all-x-or-no-int-opt" :
+						   ((is_pair(obj)) ? " allow-other-keys|has-all-x|no-int-opt" :
 						    ((is_closure(obj)) ? " has-optlist" :
 						     (((is_hash_table(obj)) || (is_let(obj))) ? " removed" :
 						      " ?17?")))) : "",
@@ -27749,14 +27693,13 @@ static char *describe_type_bits(s7_scheme *sc, s7_pointer obj)
 						    "?20?")) : "",
 	   /* bit 21 */
 	   ((full_typ & T_GENSYM) != 0) ?         ((is_let(obj)) ? " funclet" : 
-						   ((is_pair(obj)) ? " list-in-use-or-simple-arg-defaults" :
-						    ((is_symbol(obj)) ? " gensym" :
-						     ((is_string(obj)) ? " documented-symbol" :
-						      " ?21?")))) : "",
+						   ((is_symbol(obj)) ? " gensym" :
+						    ((is_string(obj)) ? " documented-symbol" :
+						     " ?21?"))) : "",
 	   /* bit 22 */
 	   ((full_typ & T_HAS_METHODS) != 0) ?    " has-methods" : "",
 	   /* bit 23 */
-	   ((full_typ & T_GC_MARK) != 0) ?        " gc-marked" : "");
+	   (((full_typ & T_GC_MARK) != 0) && (in_heap(obj))) ? " gc-marked" : "");
   return(buf);
 }
 
@@ -27783,7 +27726,7 @@ void s7_show_let(s7_scheme *sc) /* debugging convenience */
 }
 
 #if DEBUGGING
-static const char *check_name(int typ)
+static const char *check_name(int32_t typ)
 {
   if ((typ >= 0) && (typ < NUM_TYPES))
     {
@@ -27801,7 +27744,7 @@ static const char *check_name(int typ)
   return("unknown type!");
 }
 
-static s7_pointer check_seti(s7_scheme *sc, s7_pointer x, const char *func, int line)
+static s7_pointer check_seti(s7_scheme *sc, s7_pointer x, const char *func, int32_t line)
 {
   if (is_immutable(x)) /* can be vector|pair|string -- incomplete constant arg check I think, TODO: handle immutable vectors */
     {
@@ -27813,7 +27756,7 @@ static s7_pointer check_seti(s7_scheme *sc, s7_pointer x, const char *func, int
 
 static char *safe_object_to_string(s7_pointer p)
 {
-  int typ;
+  int32_t typ;
   char *buf;
   typ = unchecked_type(p);
   if ((typ > T_FREE) && (typ < NUM_TYPES))
@@ -27823,13 +27766,13 @@ static char *safe_object_to_string(s7_pointer p)
   return(buf);
 }
 
-static s7_pointer check_ref(s7_pointer p, int expected_type, const char *func, int line, const char *func1, const char *func2)
+static s7_pointer check_ref(s7_pointer p, int32_t expected_type, const char *func, int32_t line, const char *func1, const char *func2)
 {
   if (!p)
     fprintf(stderr, "%s[%d]: null pointer passed to check_ref\n", func, line);
   else
     {
-      int typ;
+      int32_t typ;
       typ = unchecked_type(p);
       if (typ != expected_type)
 	{
@@ -27855,13 +27798,13 @@ static s7_pointer check_ref(s7_pointer p, int expected_type, const char *func, i
   return(p);
 }
 
-static s7_pointer check_ref2(s7_pointer p, int expected_type, int other_type, const char *func, int line, const char *func1, const char *func2)
+static s7_pointer check_ref2(s7_pointer p, int32_t expected_type, int32_t other_type, const char *func, int32_t line, const char *func1, const char *func2)
 {
   if (!p)
     fprintf(stderr, "%s[%d]: null pointer passed to check_ref2\n", func, line);
   else
     {
-      int typ;
+      int32_t typ;
       typ = unchecked_type(p);
       if ((typ != expected_type) && (typ != other_type))
 	return(check_ref(p, expected_type, func, line, func1, func2));
@@ -27869,9 +27812,9 @@ static s7_pointer check_ref2(s7_pointer p, int expected_type, int other_type, co
   return(p);
 }
 
-static s7_pointer check_ref3(s7_pointer p, const char *func, int line)
+static s7_pointer check_ref3(s7_pointer p, const char *func, int32_t line)
 {
-  int typ;
+  int32_t typ;
   typ = unchecked_type(p);
   if ((typ != T_INPUT_PORT) && (typ != T_OUTPUT_PORT) && (typ != T_FREE))
     {
@@ -27884,9 +27827,9 @@ static s7_pointer check_ref3(s7_pointer p, const char *func, int line)
   return(p);
 }
 
-static s7_pointer check_ref4(s7_pointer p, const char *func, int line)
+static s7_pointer check_ref4(s7_pointer p, const char *func, int32_t line)
 {
-  int typ;
+  int32_t typ;
   typ = unchecked_type(p);
   if ((typ != T_VECTOR) && (typ != T_FLOAT_VECTOR) && (typ != T_INT_VECTOR) && (typ != T_FREE))
     {
@@ -27899,9 +27842,9 @@ static s7_pointer check_ref4(s7_pointer p, const char *func, int line)
   return(p);
 }
 
-static s7_pointer check_ref5(s7_pointer p, const char *func, int line)
+static s7_pointer check_ref5(s7_pointer p, const char *func, int32_t line)
 {
-  int typ;
+  int32_t typ;
   typ = unchecked_type(p);
   if (!t_has_closure_let[typ])
     {
@@ -27914,9 +27857,9 @@ static s7_pointer check_ref5(s7_pointer p, const char *func, int line)
   return(p);
 }
 
-static s7_pointer check_ref6(s7_pointer p, const char *func, int line)
+static s7_pointer check_ref6(s7_pointer p, const char *func, int32_t line)
 {
-  int typ;
+  int32_t typ;
   typ = unchecked_type(p);
   if ((typ < T_C_FUNCTION_STAR) && (typ != T_C_MACRO))
     {
@@ -27929,11 +27872,11 @@ static s7_pointer check_ref6(s7_pointer p, const char *func, int line)
   return(p);
 }
 
-static s7_pointer check_ref7(s7_pointer p, const char *func, int line)
+static s7_pointer check_ref7(s7_pointer p, const char *func, int32_t line)
 {
   if ((!func) || (strcmp(func, "decribe_type_bits") != 0))
     {
-      int typ;
+      int32_t typ;
       typ = unchecked_type(p);
       if ((typ < T_INTEGER) || (typ > T_COMPLEX))
 	{
@@ -27947,9 +27890,9 @@ static s7_pointer check_ref7(s7_pointer p, const char *func, int line)
   return(p);
 }
 
-static s7_pointer check_ref8(s7_pointer p, const char *func, int line)
+static s7_pointer check_ref8(s7_pointer p, const char *func, int32_t line)
 {
-  int typ;
+  int32_t typ;
   typ = unchecked_type(p);
   if ((!t_sequence_p[typ]) && (!t_structure_p[typ]) && (!is_any_closure(p))) /* closure calling itself an iterator?? */
     {
@@ -27962,9 +27905,9 @@ static s7_pointer check_ref8(s7_pointer p, const char *func, int line)
   return(p);
 }
 
-static s7_pointer check_ref9(s7_pointer p, const char *func, int line)
+static s7_pointer check_ref9(s7_pointer p, const char *func, int32_t line)
 {
-  int typ;
+  int32_t typ;
   typ = unchecked_type(p);
   if ((typ != T_LET) && (typ != T_C_OBJECT) && (!is_any_closure(p)) && (!is_any_macro(p)))
     {
@@ -27977,9 +27920,9 @@ static s7_pointer check_ref9(s7_pointer p, const char *func, int line)
   return(p);
 }
 
-static s7_pointer check_ref10(s7_pointer p, const char *func, int line)
+static s7_pointer check_ref10(s7_pointer p, const char *func, int32_t line)
 {
-  int typ;
+  int32_t typ;
   typ = unchecked_type(p);
   if ((typ != T_PAIR) && (typ != T_NIL) && (typ != T_SYMBOL))
     {
@@ -27992,9 +27935,9 @@ static s7_pointer check_ref10(s7_pointer p, const char *func, int line)
   return(p);
 }
 
-static s7_pointer check_ref11(s7_pointer p, const char *func, int line)
+static s7_pointer check_ref11(s7_pointer p, const char *func, int32_t line)
 {
-  int typ;
+  int32_t typ;
   typ = unchecked_type(p);
   if ((typ < T_CLOSURE) && (typ != T_BOOLEAN)) /* actually #t is an error here */
     {
@@ -28028,9 +27971,9 @@ static s7_pointer check_sym(s7_scheme *sc, s7_pointer sym)
   return(sc->nil);
 }
 
-static s7_pointer check_cell(s7_pointer p, const char *func, int line)
+static s7_pointer check_cell(s7_pointer p, const char *func, int32_t line)
 {
-  int typ;
+  int32_t typ;
   if (!p)
     {
       fprintf(stderr, "%s%s[%d]: null pointer!%s\n", BOLD_TEXT, func, line, UNBOLD_TEXT);
@@ -28045,9 +27988,9 @@ static s7_pointer check_cell(s7_pointer p, const char *func, int line)
   return(p);
 }
 
-static s7_pointer check_nref(s7_pointer p, const char *func, int line)
+static s7_pointer check_nref(s7_pointer p, const char *func, int32_t line)
 {
-  int typ;
+  int32_t typ;
   check_cell(p, func, line);
   typ = unchecked_type(p);
   if (typ == T_FREE)
@@ -28058,7 +28001,7 @@ static s7_pointer check_nref(s7_pointer p, const char *func, int line)
   return(p);
 }
 
-static void print_gc_info(s7_pointer obj, int line)
+static void print_gc_info(s7_pointer obj, int32_t line)
 {
   if (!obj)
     fprintf(stderr, "[%d]: obj is %p\n", line, obj);
@@ -28080,7 +28023,7 @@ static void print_gc_info(s7_pointer obj, int line)
   abort();
 }
 
-static const char *opt1_role_name(int role)
+static const char *opt1_role_name(int32_t role)
 {
   if (role == E_FAST) return("opt_fast");
   if (role == E_BACK) return("opt_back");
@@ -28096,7 +28039,7 @@ static const char *opt1_role_name(int role)
   return("unknown");
 }
 
-static const char *opt2_role_name(int role)
+static const char *opt2_role_name(int32_t role)
 {
   if (role == F_CALL) return("c_call(ee)");
   if (role == F_KEY) return("opt_key");
@@ -28108,12 +28051,12 @@ static const char *opt2_role_name(int role)
   return("unknown");
 }
 
-static const char *opt3_role_name(int role)
+static const char *opt3_role_name(int32_t role)
 {
   if (role == G_ARGLEN) return("arglist_length");
   if (role == G_SYM) return("opt_sym3");
   if (role == G_AND) return("opt_and_2_test or opt_else");
-  if (role == G_CTR) return("oops: unused bit!");
+  if (role == G_DIRECT) return("direct_opt3");
   if (role == S_OP) return("s_op");
   if (role == S_SYNOP) return("s_synop");
   if (role == S_LEN) return("s_len");
@@ -28122,7 +28065,7 @@ static const char *opt3_role_name(int role)
   return("unknown");
 }
 
-static char* show_debugger_bits(unsigned int bits)
+static char* show_debugger_bits(uint32_t bits)
 {
   char *bits_str;
   bits_str = (char *)calloc(512, sizeof(char));
@@ -28151,7 +28094,7 @@ static char* show_debugger_bits(unsigned int bits)
 	  ((bits & G_ARGLEN) != 0) ? " arglist_length" : "",
 	  ((bits & G_SYM) != 0) ? " opt_sym3" : "",
 	  ((bits & G_AND) != 0) ? " opt_and_2_test or opt_else " : "",
-	  ((bits & G_CTR) != 0) ? " ???" : "",
+	  ((bits & G_DIRECT) != 0) ? " opt_direct_x3" : "",
 	  ((bits & S_NAME) != 0) ? " raw-name" : "",
 	  ((bits & S_HASH) != 0) ? " raw-hash" : "",	
 	  ((bits & S_LINE) != 0) ? " line" : "",
@@ -28161,11 +28104,11 @@ static char* show_debugger_bits(unsigned int bits)
   return(bits_str);
 }
 
-static void show_opt1_bits(s7_scheme *sc, s7_pointer p, const char *func, int line, unsigned int role)
+static void show_opt1_bits(s7_scheme *sc, s7_pointer p, const char *func, int32_t line, uint32_t role)
 {
   char *bits;
   bits = show_debugger_bits(p->debugger_bits);
-  fprintf(stderr, "%s%s[%d]: opt1: %p->%p wants %s, debugger bits are %x%s but expects %x%s\n", 
+  fprintf(stderr, "%s%s[%d]: opt1: %p->%p wants %s, debugger bits are %" PRIx64 "%s but expects %x%s\n", 
 	  BOLD_TEXT, 
 	  func, line, p, p->object.cons.opt1, 
 	  opt1_role_name(role),
@@ -28174,7 +28117,7 @@ static void show_opt1_bits(s7_scheme *sc, s7_pointer p, const char *func, int li
   free(bits);
 }
 
-static s7_pointer opt1_1(s7_scheme *sc, s7_pointer p, unsigned int role, const char *func, int line)
+static s7_pointer opt1_1(s7_scheme *sc, s7_pointer p, uint32_t role, const char *func, int32_t line)
 {
   if ((!opt1_is_set(p)) ||
       ((!opt1_role_matches(p, role)) &&
@@ -28186,7 +28129,7 @@ static s7_pointer opt1_1(s7_scheme *sc, s7_pointer p, unsigned int role, const c
   return(p->object.cons.opt1);
 }
 
-static s7_pointer set_opt1_1(s7_scheme *sc, s7_pointer p, s7_pointer x, unsigned int role, const char *func, int line)
+static s7_pointer set_opt1_1(s7_scheme *sc, s7_pointer p, s7_pointer x, uint32_t role, const char *func, int32_t line)
 {
   /* fprintf(stderr, "%s[%d]:%d set %p %p\n", func, line, role, p, x); */
   p->object.cons.opt1 = x;
@@ -28195,29 +28138,29 @@ static s7_pointer set_opt1_1(s7_scheme *sc, s7_pointer p, s7_pointer x, unsigned
   return(x);
 }
 
-static unsigned long long int s_hash_1(s7_scheme *sc, s7_pointer p, const char *func, int line)
+static uint64_t s_hash_1(s7_scheme *sc, s7_pointer p, const char *func, int32_t line)
 {
   if ((!opt1_is_set(p)) ||
       (!opt1_role_matches(p, S_HASH)))
     {
-      show_opt1_bits(sc, p, func, line, (unsigned int)S_HASH);
+      show_opt1_bits(sc, p, func, line, (uint32_t)S_HASH);
       if (stop_at_error) abort();
     }
   return(p->object.sym_cons.hash);
 }
 
-static void set_s_hash_1(s7_scheme *sc, s7_pointer p, unsigned long long int x, const char *func, int line)
+static void set_s_hash_1(s7_scheme *sc, s7_pointer p, uint64_t x, const char *func, int32_t line)
 {
   p->object.sym_cons.hash = x;
   set_opt1_role(p, S_HASH);
   set_opt1_is_set(p);
 }
 
-static void show_opt2_bits(s7_scheme *sc, s7_pointer p, const char *func, int line, unsigned int role)
+static void show_opt2_bits(s7_scheme *sc, s7_pointer p, const char *func, int32_t line, uint32_t role)
 {
   char *bits;
   bits = show_debugger_bits(p->debugger_bits);
-  fprintf(stderr, "%s%s[%d]: opt2: %p->%p wants %s, debugger bits are %x%s but expects %x%s%s%s%s%s%s%s%s%s%s\n", 
+  fprintf(stderr, "%s%s[%d]: opt2: %p->%p wants %s, debugger bits are %" PRIx64 "%s but expects %x%s%s%s%s%s%s%s%s%s%s\n", 
 	  BOLD_TEXT, 
 	  func, line, p, p->object.cons.opt2, 
 	  opt2_role_name(role),
@@ -28235,7 +28178,7 @@ static void show_opt2_bits(s7_scheme *sc, s7_pointer p, const char *func, int li
   free(bits);
 }
 
-static s7_pointer opt2_1(s7_scheme *sc, s7_pointer p, unsigned int role, const char *func, int line)
+static s7_pointer opt2_1(s7_scheme *sc, s7_pointer p, uint32_t role, const char *func, int32_t line)
 {
   if ((!opt2_is_set(p)) ||
       (!opt2_role_matches(p, role)))
@@ -28247,7 +28190,7 @@ static s7_pointer opt2_1(s7_scheme *sc, s7_pointer p, unsigned int role, const c
   return(p->object.cons.opt2);
 }
 
-static void set_opt2_1(s7_scheme *sc, s7_pointer p, s7_pointer x, unsigned int role, const char *func, int line)
+static void set_opt2_1(s7_scheme *sc, s7_pointer p, s7_pointer x, uint32_t role, const char *func, int32_t line)
 {
   if ((role == F_CALL) &&
       (x == NULL))  /* this happens apparently innocuously in check_and|or */
@@ -28261,36 +28204,36 @@ static void set_opt2_1(s7_scheme *sc, s7_pointer p, s7_pointer x, unsigned int r
   set_opt2_is_set(p);
 }
 
-static const char *s_name_1(s7_scheme *sc, s7_pointer p, const char *func, int line)
+static const char *s_name_1(s7_scheme *sc, s7_pointer p, const char *func, int32_t line)
 {
   if ((!opt2_is_set(p)) ||
       (!opt2_role_matches(p, S_NAME)))
     {
-      show_opt2_bits(sc, p, func, line, (unsigned int)S_NAME);
+      show_opt2_bits(sc, p, func, line, (uint32_t)S_NAME);
       if (stop_at_error) abort();
     }
   return(p->object.sym_cons.fstr);
 }
 
-static void set_s_name_1(s7_scheme *sc, s7_pointer p, const char *str, const char *func, int line)
+static void set_s_name_1(s7_scheme *sc, s7_pointer p, const char *str, const char *func, int32_t line)
 {
   p->object.sym_cons.fstr = str;
   set_opt2_role(p, S_NAME);
   set_opt2_is_set(p);
 }
 
-static void show_opt3_bits(s7_scheme *sc, s7_pointer p, const char *func, int line, int role)
+static void show_opt3_bits(s7_scheme *sc, s7_pointer p, const char *func, int32_t line, int32_t role)
 {
   char *bits;
   bits = show_debugger_bits(p->debugger_bits);
-  fprintf(stderr, "%s%s[%d]: opt3: %s %x%s%s\n", 
+  fprintf(stderr, "%s%s[%d]: opt3: %s %" PRIx64 "%s%s\n", 
 	  BOLD_TEXT,
 	  func, line, opt3_role_name(role), p->debugger_bits, bits, 
 	  UNBOLD_TEXT);
   free(bits);
 }
 
-static s7_pointer opt3_1(s7_scheme *sc, s7_pointer p, unsigned int role, const char *func, int line)
+static s7_pointer opt3_1(s7_scheme *sc, s7_pointer p, uint32_t role, const char *func, int32_t line)
 {
   if ((!opt3_is_set(p)) || 
       (!opt3_role_matches(p, role)))
@@ -28301,7 +28244,7 @@ static s7_pointer opt3_1(s7_scheme *sc, s7_pointer p, unsigned int role, const c
   return(p->object.cons.opt3);
 }
 
-static void set_opt3_1(s7_scheme *sc, s7_pointer p, s7_pointer x, unsigned int role, const char *func, int line)
+static void set_opt3_1(s7_scheme *sc, s7_pointer p, s7_pointer x, uint32_t role, const char *func, int32_t line)
 {
   typeflag(p) &= ~(T_OPTIMIZED | T_LINE_NUMBER);
   p->object.cons.opt3 = x;
@@ -28310,19 +28253,19 @@ static void set_opt3_1(s7_scheme *sc, s7_pointer p, s7_pointer x, unsigned int r
 }
 
 /* S_LINE */
-static unsigned int s_line_1(s7_scheme *sc, s7_pointer p, const char *func, int line)
+static uint32_t s_line_1(s7_scheme *sc, s7_pointer p, const char *func, int32_t line)
 {
   if ((!opt3_is_set(p)) || 
       ((p->debugger_bits & S_LINE) == 0) ||
       (!has_line_number(p)))
     {
-      show_opt3_bits(sc, p, func, line, (unsigned int)S_LINE);
+      show_opt3_bits(sc, p, func, line, (uint32_t)S_LINE);
       if (stop_at_error) abort();
     }
   return(p->object.sym_cons.line);
 }
 
-static void set_s_line_1(s7_scheme *sc, s7_pointer p, unsigned int x, const char *func, int line)
+static void set_s_line_1(s7_scheme *sc, s7_pointer p, uint32_t x, const char *func, int32_t line)
 {
   p->object.sym_cons.line = x;
   (p)->debugger_bits = (S_LINE | (p->debugger_bits & ~S_LEN)); /* turn on line, cancel len */
@@ -28330,19 +28273,19 @@ static void set_s_line_1(s7_scheme *sc, s7_pointer p, unsigned int x, const char
 }
 
 /* S_LEN (collides with S_LINE) */
-static unsigned int s_len_1(s7_scheme *sc, s7_pointer p, const char *func, int line)
+static uint32_t s_len_1(s7_scheme *sc, s7_pointer p, const char *func, int32_t line)
 {
   if ((!opt3_is_set(p)) || 
       ((p->debugger_bits & S_LEN) == 0) ||
       (has_line_number(p)))
     {
-      show_opt3_bits(sc, p, func, line, (unsigned int)S_LEN);
+      show_opt3_bits(sc, p, func, line, (uint32_t)S_LEN);
       if (stop_at_error) abort();
     }
   return(p->object.sym_cons.line);
 }
 
-static void set_s_len_1(s7_scheme *sc, s7_pointer p, unsigned int x, const char *func, int line)
+static void set_s_len_1(s7_scheme *sc, s7_pointer p, uint32_t x, const char *func, int32_t line)
 {
   typeflag(p) &= ~(T_LINE_NUMBER);
   p->object.sym_cons.line = x;
@@ -28351,18 +28294,18 @@ static void set_s_len_1(s7_scheme *sc, s7_pointer p, unsigned int x, const char
 }
 
 /* S_OP */
-static unsigned int s_op_1(s7_scheme *sc, s7_pointer p, const char *func, int line)
+static uint32_t s_op_1(s7_scheme *sc, s7_pointer p, const char *func, int32_t line)
 {
   if ((!opt3_is_set(p)) || 
       ((p->debugger_bits & (S_OP | S_SYNOP)) == 0))
     {
-      show_opt3_bits(sc, p, func, line, (unsigned int)S_SYNOP);
+      show_opt3_bits(sc, p, func, line, (uint32_t)S_SYNOP);
       if (stop_at_error) abort();
     }
   return(p->object.sym_cons.op);
 }
 
-static void set_s_op_1(s7_scheme *sc, s7_pointer p, unsigned int x, const char *func, int line)
+static void set_s_op_1(s7_scheme *sc, s7_pointer p, uint32_t x, const char *func, int32_t line)
 {
   p->object.sym_cons.op = x;
   (p)->debugger_bits = (S_OP | (p->debugger_bits & ~(S_SYNOP)));
@@ -28370,18 +28313,18 @@ static void set_s_op_1(s7_scheme *sc, s7_pointer p, unsigned int x, const char *
 }
 
 /* S_SYNOP (collides with S_OP, but the optimize bit needs to stay on) */
-static unsigned int s_syn_op_1(s7_scheme *sc, s7_pointer p, const char *func, int line)
+static uint32_t s_syn_op_1(s7_scheme *sc, s7_pointer p, const char *func, int32_t line)
 {
   if ((!opt3_is_set(p)) || 
       ((p->debugger_bits & (S_SYNOP | S_OP)) == 0))
     {
-      show_opt3_bits(sc, p, func, line, (unsigned int)S_OP);
+      show_opt3_bits(sc, p, func, line, (uint32_t)S_OP);
       if (stop_at_error) abort();
     }
   return(p->object.sym_cons.op);
 }
 
-static void set_s_syn_op_1(s7_scheme *sc, s7_pointer p, unsigned int x, const char *func, int line)
+static void set_s_syn_op_1(s7_scheme *sc, s7_pointer p, uint32_t x, const char *func, int32_t line)
 {
   p->object.sym_cons.op = x;
   (p)->debugger_bits = (S_SYNOP | (p->debugger_bits & ~(S_OP)));
@@ -28393,7 +28336,8 @@ static void print_debugging_state(s7_scheme *sc, s7_pointer obj, s7_pointer port
   /* show current state, current allocated state, and previous allocated state.
    */
   char *current_bits, *allocated_bits, *previous_bits, *str;
-  int save_typeflag, len, nlen;
+  int64_t save_typeflag;
+  int32_t len, nlen;
   const char *excl_name;
 
   if (is_free(obj))
@@ -28414,7 +28358,7 @@ static void print_debugging_state(s7_scheme *sc, s7_pointer obj, s7_pointer port
   tmpbuf_malloc(str, len);
 
   nlen = snprintf(str, len,
-		  "\n<%s %s,\n  current: %s[%d] %s,\n  previous: %s[%d] %s\n  hloc: %d (%d uses), free: %s[%d], alloc: %s[%d]>",
+		  "\n<%s %s,\n  current: %s[%d] %s,\n  previous: %s[%d] %s\n  hloc: %" PRId64 " (%d uses), free: %s[%d], alloc: %s[%d]>",
 		  excl_name, current_bits,
 		  obj->current_alloc_func, obj->current_alloc_line, allocated_bits,
 		  obj->previous_alloc_func, obj->previous_alloc_line, previous_bits,
@@ -28434,7 +28378,7 @@ static void print_debugging_state(s7_scheme *sc, s7_pointer obj, s7_pointer port
 static s7_pointer g_is_local_symbol(s7_scheme *sc, s7_pointer p) {return(make_boolean(sc, is_local_symbol(car(p))));}
 #endif
 
-static s7_pointer check_null_sym(s7_scheme *sc, s7_pointer p, s7_pointer sym, int line, const char *func)
+static s7_pointer check_null_sym(s7_scheme *sc, s7_pointer p, s7_pointer sym, int32_t line, const char *func)
 {
   if (!p)
     {
@@ -28487,10 +28431,10 @@ static void iterator_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use
 	      object_to_port_with_circle_check(sc, iterator_sequence(obj), port, use_write, ci);
 	      if (iterator_position(obj) > 0)
 		{
-		  int nlen;
+		  int32_t nlen;
 		  char *str;
 		  str = (char *)malloc(128 * sizeof(char));
-		  nlen = snprintf(str, 128, "))) (do ((i 0 (+ i 1))) ((= i %" LL_D ") iter) (iterate iter)))", iterator_position(obj));
+		  nlen = snprintf(str, 128, "))) (do ((i 0 (+ i 1))) ((= i %" PRId64 ") iter) (iterate iter)))", iterator_position(obj));
 		  port_write_string(port)(sc, str, nlen, port);
 		  free(str);
 		}
@@ -28510,7 +28454,7 @@ static void iterator_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use
 
 static void baffle_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_write_t use_write, shared_info *ci)
 {
-  int nlen;
+  int32_t nlen;
   char buf[64];
   nlen = snprintf(buf, 64, "#<baffle: %d>", baffle_key(obj));
   port_write_string(port)(sc, buf, nlen, port);
@@ -28518,18 +28462,35 @@ static void baffle_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_w
 
 static void c_pointer_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_write_t use_write, shared_info *ci)
 {
-  int nlen;
-  char buf[64];
+  int32_t nlen;
+  char buf[128];
 
   if (use_write == USE_READABLE_WRITE)
-    nlen = snprintf(buf, 64, "(c-pointer " INT_FORMAT ")", (ptr_int)raw_pointer(obj));
-  else nlen = snprintf(buf, 64, "#<c_pointer %p>", raw_pointer(obj));
-  port_write_string(port)(sc, buf, nlen, port);
+    {
+      nlen = snprintf(buf, 128, "(c-pointer " INT_FORMAT, (ptr_int)raw_pointer(obj));
+      port_write_string(port)(sc, buf, nlen, port);
+      if ((raw_pointer_type(obj) != sc->F) ||
+	  (raw_pointer_info(obj) != sc->F))
+	{
+	  port_write_character(port)(sc, ' ', port);
+	  object_to_port_with_circle_check(sc, raw_pointer_type(obj), port, use_write, ci);
+	  port_write_character(port)(sc, ' ', port);
+	  object_to_port_with_circle_check(sc, raw_pointer_info(obj), port, use_write, ci);
+	}
+      port_write_character(port)(sc, ')', port);
+    }
+  else 
+    {
+      if (is_symbol(raw_pointer_type(obj)))
+	nlen = snprintf(buf, 128, "#<%s %p>", symbol_name(raw_pointer_type(obj)), raw_pointer(obj));
+      else nlen = snprintf(buf, 128, "#<c_pointer %p>", raw_pointer(obj));
+      port_write_string(port)(sc, buf, nlen, port);
+    }
 }
 
 static void rng_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_write_t use_write, shared_info *ci)
 {
-  int nlen;
+  int32_t nlen;
   char buf[128];
 #if WITH_GMP
   if (use_write == USE_READABLE_WRITE)
@@ -28537,8 +28498,8 @@ static void rng_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_writ
   else nlen = snprintf(buf, 128, "#<rng %p>", obj);
 #else
   if (use_write == USE_READABLE_WRITE)
-    nlen = snprintf(buf, 128, "(random-state %" LL_U " %" LL_U ")", random_seed(obj), random_carry(obj));
-  else nlen = snprintf(buf, 128, "#<rng %" LL_U " %" LL_U ">", random_seed(obj), random_carry(obj));
+    nlen = snprintf(buf, 128, "(random-state %" PRIu64 " %" PRIu64 ")", random_seed(obj), random_carry(obj));
+  else nlen = snprintf(buf, 128, "#<rng %" PRIu64 " %" PRIu64 ">", random_seed(obj), random_carry(obj));
 #endif
   port_write_string(port)(sc, buf, nlen, port);
 }
@@ -28550,7 +28511,7 @@ static void display_any(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_writ
 #else
   {
     char *str, *tmp;
-    int nlen, len;
+    int32_t nlen, len;
     tmp = describe_type_bits(sc, obj);
     len = 32 + safe_strlen(tmp);
     tmpbuf_malloc(str, len);
@@ -28596,7 +28557,7 @@ static void integer_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_
     port_write_string(port)(sc, print_name(obj), print_name_length(obj), port);
   else
     {
-      int nlen;
+      int32_t nlen;
       char *str;
       nlen = 0;
       str = integer_to_string_base_10_no_width(obj, &nlen);
@@ -28615,7 +28576,7 @@ static void number_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_w
     port_write_string(port)(sc, print_name(obj), print_name_length(obj), port);
   else
     {
-      int nlen;
+      int32_t nlen;
       char *str;
       nlen = 0;
       str = number_to_string_base_10(obj, 0, float_format_precision, 'g', &nlen, use_write); /* was 14 */
@@ -28627,7 +28588,7 @@ static void number_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_w
 #if WITH_GMP
 static void big_number_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_write_t use_write, shared_info *ci)
 {
-  int nlen;
+  int32_t nlen;
   char *str;
   nlen = 0;
   str = big_number_to_string_with_radix(obj, BASE_10, 0, &nlen, use_write);
@@ -28742,7 +28703,7 @@ static void slot_to_port(s7_scheme *sc, s7_pointer obj, s7_pointer port, use_wri
 
 static void init_display_functions(void)
 {
-  int i;
+  int32_t i;
   for (i = 0; i < 256; i++) display_functions[i] = display_any;
   display_functions[T_FLOAT_VECTOR] = int_or_float_vector_to_port;
   display_functions[T_INT_VECTOR] =   int_or_float_vector_to_port;
@@ -28802,14 +28763,14 @@ static void object_to_port_with_circle_check(s7_scheme *sc, s7_pointer vr, s7_po
   if ((ci) &&
       (has_structure(vr)))
     {
-      int ref;
+      int32_t ref;
       ref = shared_ref(ci, vr);
       if (ref != 0)
 	{
 	  char buf[32];
-	  int nlen;
+	  int32_t nlen;
 	  char *p;
-	  unsigned int len;
+	  uint32_t len;
 	  if (ref > 0)
 	    {
 	      if (use_write == USE_READABLE_WRITE)
@@ -28850,13 +28811,13 @@ static void object_to_port_with_circle_check(s7_scheme *sc, s7_pointer vr, s7_po
 
 static void setup_shared_reads(s7_scheme *sc, s7_pointer port, shared_info *ci)
 {
-  int i;
+  int32_t i;
   char buf[64];
 
   port_write_string(port)(sc, "(let (", 6, port);
   for (i = 1; i <= ci->top; i++)
     {
-      int len;
+      int32_t len;
       len = snprintf(buf, 64, "({%d} #f)", i);
       port_write_string(port)(sc, buf, len, port);
     }
@@ -28897,7 +28858,7 @@ static s7_pointer format_ports = NULL;
 static s7_pointer open_format_port(s7_scheme *sc)
 {
   s7_pointer x;
-  int len;
+  int32_t len;
 
   if (format_ports)
     {
@@ -28934,7 +28895,7 @@ static void close_format_port(s7_scheme *sc, s7_pointer port)
 }
 
 
-static char *s7_object_to_c_string_1(s7_scheme *sc, s7_pointer obj, use_write_t use_write, int *nlen)
+static char *s7_object_to_c_string_1(s7_scheme *sc, s7_pointer obj, use_write_t use_write, int32_t *nlen)
 {
   char *str;
   s7_pointer strport;
@@ -28966,7 +28927,7 @@ char *s7_object_to_c_string(s7_scheme *sc, s7_pointer obj)
 s7_pointer s7_object_to_string(s7_scheme *sc, s7_pointer obj, bool use_write) /* unavoidable backwards compatibility rigidity here */
 {
   char *str;
-  int len = 0;
+  int32_t len = 0;
 
   if ((sc->safety > NO_SAFETY) &&
       (!s7_is_valid(sc, obj)))
@@ -29097,7 +29058,7 @@ static s7_pointer g_call_with_output_string(s7_scheme *sc, s7_pointer args)
   if (is_let(proc))
     check_method(sc, proc, sc->call_with_output_string_symbol, args);
   if (!s7_is_aritable(sc, proc, 1))
-    method_or_bust_with_type(sc, proc, sc->call_with_output_string_symbol, args, make_string_wrapper(sc, "a procedure of one argument (the port)"), 1);
+    method_or_bust_with_type(sc, proc, sc->call_with_output_string_symbol, args, s7_make_string_wrapper(sc, "a procedure of one argument (the port)"), 1);
 
   if ((is_continuation(proc)) || (is_goto(proc)))
     return(wrong_type_argument_with_type(sc, sc->call_with_output_string_symbol, 1, proc, a_normal_procedure_string));
@@ -29123,7 +29084,7 @@ static s7_pointer g_call_with_output_file(s7_scheme *sc, s7_pointer args)
 
   proc = cadr(args);
   if (!s7_is_aritable(sc, proc, 1))
-    method_or_bust_with_type(sc, proc, sc->call_with_output_file_symbol, args, make_string_wrapper(sc, "a procedure of one argument (the port)"), 2);
+    method_or_bust_with_type(sc, proc, sc->call_with_output_file_symbol, args, s7_make_string_wrapper(sc, "a procedure of one argument (the port)"), 2);
 
   if ((is_continuation(proc)) || is_goto(proc))
     return(wrong_type_argument_with_type(sc, sc->call_with_output_file_symbol, 2, proc, a_normal_procedure_string));
@@ -29202,7 +29163,7 @@ static s7_pointer format_error_1(s7_scheme *sc, s7_pointer msg, const char *str,
 
   if (fdat->orig_str)
     ctrl_str = fdat->orig_str;
-  else ctrl_str = make_string_wrapper(sc, str);
+  else ctrl_str = s7_make_string_wrapper(sc, str);
 
   if (fdat->loc == 0)
     {
@@ -29254,20 +29215,20 @@ static void format_append_newline(s7_scheme *sc, format_data *fdat, s7_pointer p
 }
 
 
-static void format_append_string(s7_scheme *sc, format_data *fdat, const char *str, int len, s7_pointer port)
+static void format_append_string(s7_scheme *sc, format_data *fdat, const char *str, int32_t len, s7_pointer port)
 {
   port_write_string(port)(sc, str, len, port);
   fdat->loc += len;
   sc->format_column += len;
 }
 
-static void format_append_chars(s7_scheme *sc, format_data *fdat, char pad, int chars, s7_pointer port)
+static void format_append_chars(s7_scheme *sc, format_data *fdat, char pad, int32_t chars, s7_pointer port)
 {
   if (chars > 0)
     {
       if (chars < TMPBUF_SIZE)
 	{
-	  int j;
+	  int32_t j;
 	  for (j = 0; j < chars; j++)
 	    sc->tmpbuf[j] = pad;
 	  sc->tmpbuf[chars] = '\0';
@@ -29275,7 +29236,7 @@ static void format_append_chars(s7_scheme *sc, format_data *fdat, char pad, int
 	}
       else
 	{
-	  int j;
+	  int32_t j;
 	  for (j = 0; j < chars; j++)
 	    format_append_char(sc, fdat, pad, port);
 	}
@@ -29283,13 +29244,13 @@ static void format_append_chars(s7_scheme *sc, format_data *fdat, char pad, int
 }
 
 
-static int format_read_integer(s7_scheme *sc, int *cur_i, int str_len, const char *str, s7_pointer args, format_data *fdat)
+static int32_t format_read_integer(s7_scheme *sc, int32_t *cur_i, int32_t str_len, const char *str, s7_pointer args, format_data *fdat)
 {
   /* we know that str[*cur_i] is a digit */
-  int i, lval = 0;
+  int32_t i, lval = 0;
   for (i = *cur_i; i < str_len - 1; i++)
     {
-      int dig;
+      int32_t dig;
       dig = digits[(unsigned char)str[i]];
       if (dig < 10)
 	{
@@ -29311,10 +29272,10 @@ static int format_read_integer(s7_scheme *sc, int *cur_i, int str_len, const cha
 }
 
 
-static void format_number(s7_scheme *sc, format_data *fdat, int radix, int width, int precision, char float_choice, char pad, s7_pointer port)
+static void format_number(s7_scheme *sc, format_data *fdat, int32_t radix, int32_t width, int32_t precision, char float_choice, char pad, s7_pointer port)
 {
   char *tmp;
-  int nlen = 0;
+  int32_t nlen = 0;
   if (width < 0) width = 0;
 
   /* precision choice depends on float_choice if it's -1 */
@@ -29357,9 +29318,9 @@ static void format_number(s7_scheme *sc, format_data *fdat, int radix, int width
 }
 
 
-static int format_nesting(const char *str, char opener, char closer, int start, int end) /* start=i, end=str_len-1 */
+static int32_t format_nesting(const char *str, char opener, char closer, int32_t start, int32_t end) /* start=i, end=str_len-1 */
 {
-  int k, nesting = 1;
+  int32_t k, nesting = 1;
   for (k = start + 2; k < end; k++)
     if (str[k] == '~')
       {
@@ -29389,7 +29350,7 @@ static bool format_method(s7_scheme *sc, const char *str, format_data *fdat, s7_
       s7_pointer ctrl_str;
       if (fdat->orig_str)
 	ctrl_str = fdat->orig_str;
-      else ctrl_str = make_string_wrapper(sc, str);
+      else ctrl_str = s7_make_string_wrapper(sc, str);
 
       obj = s7_apply_function(sc, func, cons(sc, ctrl_str, fdat->args));
       if (is_string(obj))
@@ -29405,9 +29366,9 @@ static bool format_method(s7_scheme *sc, const char *str, format_data *fdat, s7_
 
 
 #define MAX_FORMAT_NUMERIC_ARG 10000
-static int format_n_arg(s7_scheme *sc, const char *str, int str_len, format_data *fdat, s7_pointer args)
+static int32_t format_n_arg(s7_scheme *sc, const char *str, int32_t str_len, format_data *fdat, s7_pointer args)
 {
-  int n;
+  int32_t n;
 
   if (is_null(fdat->args))          /* (format #f "~nT") */
     just_format_error(sc, "~~N: missing argument", str, args, fdat);
@@ -29428,9 +29389,9 @@ static int format_n_arg(s7_scheme *sc, const char *str, int str_len, format_data
 }
 
 
-static int format_numeric_arg(s7_scheme *sc, const char *str, int str_len, format_data *fdat, s7_pointer args, int *i)
+static int32_t format_numeric_arg(s7_scheme *sc, const char *str, int32_t str_len, format_data *fdat, s7_pointer args, int32_t *i)
 {
-  int width;
+  int32_t width;
   width = format_read_integer(sc, i, str_len, str, args, fdat);
   if (width < 0)
     just_format_error(sc, "width value is negative?", str, fdat->args, fdat);
@@ -29452,9 +29413,9 @@ static bool s7_is_one_or_big_one(s7_pointer p);
 static s7_pointer object_to_list(s7_scheme *sc, s7_pointer obj);
 
 static s7_pointer format_to_port_1(s7_scheme *sc, s7_pointer port, const char *str, s7_pointer args,
-				   s7_pointer *next_arg, bool with_result, bool columnized, int len, s7_pointer orig_str)
+				   s7_pointer *next_arg, bool with_result, bool columnized, int32_t len, s7_pointer orig_str)
 {
-  int i, str_len;
+  int32_t i, str_len;
   format_data *fdat;
   s7_pointer deferred_port;
 
@@ -29484,7 +29445,7 @@ static s7_pointer format_to_port_1(s7_scheme *sc, s7_pointer port, const char *s
   sc->format_depth++;
   if (sc->format_depth >= sc->num_fdats)
     {
-      int k, new_num_fdats;
+      int32_t k, new_num_fdats;
       new_num_fdats = sc->format_depth * 2;
       sc->fdats = (format_data **)realloc(sc->fdats, sizeof(format_data *) * new_num_fdats);
       for (k = sc->num_fdats; k < new_num_fdats; k++) sc->fdats[k] = NULL;
@@ -29623,7 +29584,7 @@ static s7_pointer format_to_port_1(s7_scheme *sc, s7_pointer port, const char *s
 
 	    case '{':                           /* -------- iteration -------- */
 	      {
-		int curly_len;
+		int32_t curly_len;
 
 		if (is_null(fdat->args))
 		  format_error(sc, "missing argument", str, args, fdat);
@@ -29648,7 +29609,7 @@ static s7_pointer format_to_port_1(s7_scheme *sc, s7_pointer port, const char *s
 			char *curly_str = NULL;                /* this is the local (nested) format control string */
 			s7_pointer orig_arg;
 
-			if (!is_proper_list(sc, curly_arg))
+			if (!s7_is_proper_list(sc, curly_arg))
 			  format_error(sc, "'{' directive argument should be a proper list or something we can turn into a list", str, args, fdat);
 			
 			fdat->curly_arg = curly_arg;
@@ -29766,7 +29727,7 @@ static s7_pointer format_to_port_1(s7_scheme *sc, s7_pointer port, const char *s
 	    case 'T': case 't':
 	    case 'C': case 'c':
 	      {
-		int width = -1, precision = -1;
+		int32_t width = -1, precision = -1;
 		char pad = ' ';
 		i++;                                      /* str[i] == '~' */
 
@@ -29823,7 +29784,7 @@ static s7_pointer format_to_port_1(s7_scheme *sc, s7_pointer port, const char *s
 			 */
 			if (precision > 0)
 			  {
-			    int mult;
+			    int32_t mult;
 			    mult = (int)(ceil((s7_double)(sc->format_column + 1 - width) / (s7_double)precision)); /* CLtL2 ("least positive int") */
 			    if (mult < 1) mult = 1;
 			    width += (precision * mult);
@@ -29963,7 +29924,7 @@ static s7_pointer format_to_port_1(s7_scheme *sc, s7_pointer port, const char *s
 	}
       else /* str[i] is not #\~ */
 	{
-	  int j, new_len;
+	  int32_t j, new_len;
 	  const char *p;
 
 	  p = (char *)strchr((const char *)(str + i + 1), (int)'~');
@@ -30051,7 +30012,7 @@ static bool is_columnizing(const char *str)
 }
 
 
-static s7_pointer format_to_port(s7_scheme *sc, s7_pointer port, const char *str, s7_pointer args, s7_pointer *next_arg, bool with_result, int len)
+static s7_pointer format_to_port(s7_scheme *sc, s7_pointer port, const char *str, s7_pointer args, s7_pointer *next_arg, bool with_result, int32_t len)
 {
   return(format_to_port_1(sc, port, str, args, next_arg, with_result, true /* is_columnizing(str) */, len, NULL));
   /* is_columnizing on every call is much slower than ignoring the issue */
@@ -30148,7 +30109,7 @@ static bool file_probe(const char *arg)
 #if (!MS_WINDOWS)
   return(access(arg, F_OK) == 0);
 #else
-  int fd;
+  int32_t fd;
   fd = open(arg, O_RDONLY, 0);
   if (fd == -1) return(false);
   close(fd);
@@ -30224,14 +30185,14 @@ system captures the output as a string and returns it."
       #define BUF_SIZE 256
       char buf[BUF_SIZE];
       char *str = NULL;
-      int cur_len = 0, full_len = 0;
+      int32_t cur_len = 0, full_len = 0;
       FILE *fd;
       s7_pointer res;
 
       fd = popen(string_value(name), "r");
       while (fgets(buf, BUF_SIZE, fd))
 	{
-	  int buf_len;
+	  int32_t buf_len;
 	  buf_len = safe_strlen(buf);
 	  if (cur_len + buf_len >= full_len)
 	    {
@@ -30289,7 +30250,7 @@ static s7_pointer g_file_mtime(s7_scheme *sc, s7_pointer args)
   #define Q_file_mtime s7_make_signature(sc, 2, sc->is_integer_symbol, sc->is_string_symbol)
 
   struct stat statbuf;
-  int err;
+  int32_t err;
   s7_pointer name;
 
   name = car(args);
@@ -30330,7 +30291,7 @@ static s7_pointer cons_unchecked(s7_scheme *sc, s7_pointer a, s7_pointer b)
 }
 
 
-static s7_pointer permanent_cons(s7_pointer a, s7_pointer b, unsigned int type)
+static s7_pointer permanent_cons(s7_pointer a, s7_pointer b, uint32_t type)
 {
   /* for the symbol table which is never GC'd (and its contents aren't marked) */
   s7_pointer x;
@@ -30342,9 +30303,9 @@ static s7_pointer permanent_cons(s7_pointer a, s7_pointer b, unsigned int type)
   return(x);
 }
 
-static s7_pointer permanent_list(s7_scheme *sc, int len)
+static s7_pointer permanent_list(s7_scheme *sc, int32_t len)
 {
-  int j;
+  int32_t j;
   s7_pointer p;
   p = sc->nil;
   for (j = 0; j < len; j++)
@@ -30360,7 +30321,7 @@ static void check_sig_entry(s7_scheme *sc, s7_pointer p, s7_pointer res, bool ci
       (!is_pair(car(p))))
     {
       s7_pointer np;
-      int i;
+      int32_t i;
       for (np = res, i = 0; np != p; np = cdr(np), i++);
       fprintf(stderr, "s7_make_%ssignature got an invalid entry at position %d: (", (circle) ? "circular_" : "", i);
       for (np = res; np != p; np = cdr(np))
@@ -30370,7 +30331,7 @@ static void check_sig_entry(s7_scheme *sc, s7_pointer p, s7_pointer res, bool ci
     }
 }
 
-s7_pointer s7_make_signature(s7_scheme *sc, int len, ...)
+s7_pointer s7_make_signature(s7_scheme *sc, int32_t len, ...)
 {
   va_list ap;
   s7_pointer p, res;
@@ -30387,10 +30348,10 @@ s7_pointer s7_make_signature(s7_scheme *sc, int len, ...)
   return((s7_pointer)res);
 }
 
-s7_pointer s7_make_circular_signature(s7_scheme *sc, int cycle_point, int len, ...)
+s7_pointer s7_make_circular_signature(s7_scheme *sc, int32_t cycle_point, int32_t len, ...)
 {
   va_list ap;
-  int i;
+  int32_t i;
   s7_pointer p, res, back = NULL, end = NULL;
 
   res = permanent_list(sc, len);
@@ -30759,9 +30720,9 @@ s7_pointer s7_apply_n_9(s7_scheme *sc, s7_pointer args,
 
 
 
-s7_pointer s7_list_ref(s7_scheme *sc, s7_pointer lst, int num)
+s7_pointer s7_list_ref(s7_scheme *sc, s7_pointer lst, int32_t num)
 {
-  int i;
+  int32_t i;
   s7_pointer x;
   for (x = lst, i = 0; (i < num) && (is_pair(x)); i++, x = cdr(x)) {}
   if ((i == num) && (is_pair(x)))
@@ -30770,9 +30731,9 @@ s7_pointer s7_list_ref(s7_scheme *sc, s7_pointer lst, int num)
 }
 
 
-s7_pointer s7_list_set(s7_scheme *sc, s7_pointer lst, int num, s7_pointer val)
+s7_pointer s7_list_set(s7_scheme *sc, s7_pointer lst, int32_t num, s7_pointer val)
 {
-  int i;
+  int32_t i;
   s7_pointer x;
   for (x = lst, i = 0; (i < num) && (is_pair(x)); i++, x = cdr(x)) {}
   if ((i == num) &&
@@ -30830,6 +30791,8 @@ static s7_int tree_leaves_i(s7_pointer p)
 
 static s7_pointer g_tree_leaves(s7_scheme *sc, s7_pointer args)
 {
+  #define H_tree_leaves "(tree-leaves tree) returns the number of leaves in the tree"
+  #define Q_tree_leaves s7_make_signature(sc, 2, sc->is_integer_symbol, sc->is_list_symbol)
   return(s7_make_integer(sc, tree_len(sc, car(args))));
 }
 
@@ -30840,7 +30803,7 @@ bool s7_tree_memq(s7_scheme *sc, s7_pointer sym, s7_pointer tree)
   if (!is_pair(tree)) return(false);
   if (car(tree) == sc->quote_symbol)
     {
-      if ((is_symbol(sym)) || (is_pair(sym)))
+      if ((is_symbol(sym)) || (is_pair(sym)) || (!is_pair(cdr(tree))))
 	return(false);
       return(sym == cadr(tree));
     }
@@ -30856,6 +30819,8 @@ bool s7_tree_memq(s7_scheme *sc, s7_pointer sym, s7_pointer tree)
 
 static s7_pointer g_tree_memq(s7_scheme *sc, s7_pointer args)
 {
+  #define H_tree_memq "(tree-memq obj tree) is a tree-oriented version of memq, but returning #t if the object is in the tree."
+  #define Q_tree_memq s7_make_signature(sc, 3, sc->is_boolean_symbol, sc->T, sc->is_list_symbol)
   return(make_boolean(sc, s7_tree_memq(sc, car(args), cadr(args))));
 }
 
@@ -30882,6 +30847,8 @@ static bool tree_set_memq(s7_scheme *sc, s7_pointer tree)
 
 static s7_pointer g_tree_set_memq(s7_scheme *sc, s7_pointer args)
 {
+  #define H_tree_set_memq "(tree-set-memq symbols tree) returns #t if any of the list of symbols is in the tree"
+  #define Q_tree_set_memq s7_make_signature(sc, 3, sc->is_boolean_symbol, sc->is_list_symbol, sc->is_list_symbol)
   s7_pointer syms, p, tree;
   syms = car(args);
   if (!is_pair(syms)) return(sc->F);
@@ -30904,7 +30871,7 @@ static s7_int tree_count(s7_scheme *sc, s7_pointer x, s7_pointer p, s7_int count
   return(tree_count(sc, x, cdr(p), tree_count(sc, x, car(p), count)));
 }
 
-static s7_int tree_count_at_least(s7_scheme *sc, s7_pointer x, s7_pointer p, s7_int count, s7_int top)
+static inline s7_int tree_count_at_least(s7_scheme *sc, s7_pointer x, s7_pointer p, s7_int count, s7_int top)
 {
   if (p == x)
     return(count + 1);
@@ -30915,9 +30882,20 @@ static s7_int tree_count_at_least(s7_scheme *sc, s7_pointer x, s7_pointer p, s7_
 
 static s7_pointer g_tree_count(s7_scheme *sc, s7_pointer args)
 {
+  #define H_tree_count "(tree-count obj tree max-count) returns how many times obj is in tree, stopping at max-count (if specified)"
+  #define Q_tree_count s7_make_signature(sc, 4, sc->is_integer_symbol, sc->T, sc->is_list_symbol, sc->is_integer_symbol)
+  s7_pointer obj, tree, count;
+
+  obj = car(args);
+  tree = cadr(args);
+  if (!is_pair(tree))
+    return((obj == tree) ? small_int(1) : small_int(0));
   if (is_null(cddr(args)))
-    return(s7_make_integer(sc, tree_count(sc, car(args), cadr(args), 0)));
-  return(s7_make_integer(sc, tree_count_at_least(sc, car(args), cadr(args), 0, s7_integer(caddr(args)))));
+    return(s7_make_integer(sc, tree_count(sc, obj, tree, 0)));
+  count = caddr(args);
+  if (!s7_is_integer(count))
+    return(simple_wrong_type_argument(sc, sc->tree_count_symbol, count, T_INTEGER));
+  return(s7_make_integer(sc, tree_count_at_least(sc, obj, tree, 0, s7_integer(count))));
 }
 
 
@@ -31111,14 +31089,14 @@ static s7_pointer copy_list_with_arglist_error(s7_scheme *sc, s7_pointer lst)
   s7_pointer p, tp, np;
   if (is_null(lst)) return(sc->nil);
   if (!is_pair(lst))
-    s7_error(sc, sc->syntax_error_symbol, set_elist_2(sc, make_string_wrapper(sc, "stray dot?: ~S"), lst));
+    s7_error(sc, sc->syntax_error_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "stray dot?: ~S"), lst));
   tp = cons(sc, car(lst), sc->nil);
   sc->y = tp;
   for (p = cdr(lst), np = tp; is_pair(p); p = cdr(p), np = cdr(np))
     set_cdr(np, cons(sc, car(p), sc->nil));
   sc->y = sc->nil;
   if (!is_null(p))
-    s7_error(sc, sc->syntax_error_symbol, set_elist_2(sc, make_string_wrapper(sc, "improper list of arguments: ~S"), lst));
+    s7_error(sc, sc->syntax_error_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "improper list of arguments: ~S"), lst));
   return(tp);
 }
 
@@ -31144,10 +31122,10 @@ static s7_pointer revappend(s7_scheme *sc, s7_pointer a, s7_pointer b)
   return(p);
 }
 
-static int safe_list_length(s7_scheme *sc, s7_pointer a)
+static int32_t safe_list_length(s7_scheme *sc, s7_pointer a)
 {
   /* assume that "a" is a proper list */
-  int i = 0;
+  int32_t i = 0;
   s7_pointer b;
   for (b = a; is_pair(b); i++, b = cdr(b)) {};
   return(i);
@@ -31157,7 +31135,7 @@ static int safe_list_length(s7_scheme *sc, s7_pointer a)
 int s7_list_length(s7_scheme *sc, s7_pointer a)
 {
   /* returns -len if list is dotted, 0 if it's (directly) circular */
-  int i;
+  int32_t i;
   s7_pointer slow, fast;
 
   slow = fast = a;
@@ -31215,7 +31193,7 @@ bool s7_is_list(s7_scheme *sc, s7_pointer p)
 static bool is_list_b(s7_pointer p) {return((is_pair(p)) || (type(p) == T_NIL));}
 
 
-static bool is_proper_list(s7_scheme *sc, s7_pointer lst)
+bool s7_is_proper_list(s7_scheme *sc, s7_pointer lst)
 {
   /* #t if () or undotted/non-circular pair */
   s7_pointer slow, fast;
@@ -31234,6 +31212,9 @@ static bool is_proper_list(s7_scheme *sc, s7_pointer lst)
       if (!is_pair(fast)) return(is_null(fast));
 
       fast = cdr(fast);
+      if (!is_pair(fast)) return(is_null(fast));
+
+      fast = cdr(fast);
       slow = cdr(slow);
       if (fast == slow) return(false);
     }
@@ -31251,7 +31232,7 @@ static s7_pointer g_is_list(s7_scheme *sc, s7_pointer args)
 
 
 /* -------------------------------- make-list -------------------------------- */
-static s7_pointer make_list(s7_scheme *sc, int len, s7_pointer init)
+static s7_pointer make_list(s7_scheme *sc, int32_t len, s7_pointer init)
 {
   switch (len)
     {
@@ -31269,7 +31250,7 @@ static s7_pointer make_list(s7_scheme *sc, int len, s7_pointer init)
     default:
       {
 	s7_pointer result;
-	int i;
+	int32_t i;
 
 	if (len >= (sc->free_heap_top - sc->free_heap))
 	  {
@@ -31377,12 +31358,12 @@ static s7_pointer g_list_ref(s7_scheme *sc, s7_pointer args)
 
 
 /* -------------------------------- list-set! -------------------------------- */
-static s7_pointer g_list_set_1(s7_scheme *sc, s7_pointer lst, s7_pointer args, int arg_num)
+static s7_pointer g_list_set_1(s7_scheme *sc, s7_pointer lst, s7_pointer args, int32_t arg_num)
 {
   #define H_list_set "(list-set! lst i ... val) sets the i-th element (0-based) of the list to val"
   #define Q_list_set s7_make_circular_signature(sc, 3, 4, sc->T, sc->is_pair_symbol, sc->is_integer_symbol, sc->is_integer_or_any_at_end_symbol)
 
-  int i;
+  int32_t i;
   s7_int index;
   s7_pointer p, ind;
 
@@ -31616,6 +31597,7 @@ static void init_car_a_list(void)
   its_infinite_string =           s7_make_permanent_string("it is infinite");
   too_many_indices_string =       s7_make_permanent_string("too many indices");
   value_is_missing_string =       s7_make_permanent_string("~A argument '~A's value is missing");
+  parameter_set_twice_string =    s7_make_permanent_string("parameter set twice, ~S in ~S");
 #if (!HAVE_COMPLEX_NUMBERS)
   no_complex_numbers_string =     s7_make_permanent_string("this version of s7 does not support complex numbers");
 #endif
@@ -32608,12 +32590,12 @@ static s7_pointer g_memq_car(s7_scheme *sc, s7_pointer args)
   return(sc->F);
 }
 
-static s7_pointer memq_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer memq_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if ((is_proper_quote(sc, caddr(expr))) &&
       (is_pair(cadr(caddr(expr)))))
     {
-      int len;
+      int32_t len;
 
       if ((ops) && (is_h_safe_c_s(cadr(expr))) &&
 	  (c_callee(cadr(expr)) == g_car))
@@ -32947,14 +32929,14 @@ static s7_pointer g_member_ss(s7_scheme *sc, s7_pointer args)
 
 static s7_pointer member_p_pp(s7_pointer p1, s7_pointer p2) {return(g_member(cur_sc, set_plist_2(cur_sc, p1, p2)));}
 
-static s7_pointer member_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer member_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (!ops) return(f);
   if (args == 2)
     {
       if (is_symbol(caddr(expr)))
 	{
-	  if ((optimize_op(expr) == HOP_SAFE_C_SS) ||
+	  if ((optimize_op(expr) == HOP_SAFE_C_SS) || (optimize_op(expr) == HOP_SAFE_C_LL) ||
 	      ((is_h_safe_c_c(expr)) &&
 	       (is_symbol(cadr(expr)))))
 	    {
@@ -33065,8 +33047,13 @@ static s7_pointer c_provide(s7_scheme *sc, s7_pointer sym)
 	slot_set_value(p, cons(sc, sym, lst));
     }
 
+  /* require looks up its symbol argument to see if the associated code (dsp.scm etc) has been autoloaded,
+   *   so here we're defining the provided symbol for that possibility.  Perhaps better would be to forgo
+   *   the definition here, and in require check *features* -- it is local to the current env.
+   */
   if (!is_slot(find_symbol(sc, sym))) /* *features* name might be the same as an existing function */
     s7_define(sc, sc->envir, sym, sym);
+
   return(sym);
 }
 
@@ -33099,15 +33086,15 @@ static s7_pointer g_list(s7_scheme *sc, s7_pointer args)
 static void check_list_validity(s7_scheme *sc, const char *caller, s7_pointer lst)
 {
   s7_pointer p;
-  int i;
+  int32_t i;
   for (i = 1, p = lst; is_pair(p); p = cdr(p), i++)
     if (!s7_is_valid(sc, car(p)))
       fprintf(stderr, "bad arg (#%d) to %s: %p\n", i, caller, car(p));
 }
 
-s7_pointer s7_list(s7_scheme *sc, int num_values, ...)
+s7_pointer s7_list(s7_scheme *sc, int32_t num_values, ...)
 {
-  int i;
+  int32_t i;
   va_list ap;
   s7_pointer p;
 
@@ -33180,7 +33167,7 @@ static s7_pointer g_list_append(s7_scheme *sc, s7_pointer args)
 	{
 	  if (is_pair(p))
 	    {
-	      if (!is_proper_list(sc, p))
+	      if (!s7_is_proper_list(sc, p))
 		{
 		  sc->y = sc->nil;
 		  return(wrong_type_argument_with_type(sc, sc->append_symbol, position_of(y, args), p, a_proper_list_string));
@@ -33297,8 +33284,37 @@ static s7_pointer float_vector_getter(s7_scheme *sc, s7_pointer vec, s7_int loc)
   return(make_real(sc, float_vector_element(vec, loc)));
 }
 
+static s7_pointer make_simple_vector(s7_scheme *sc, s7_int len) /* len >= 0 and < max */
+{
+  s7_pointer x;
+  new_cell(sc, x, T_VECTOR | T_SAFE_PROCEDURE);
+  vector_length(x) = len;
+  if (len > 0)
+    vector_elements(x) = (s7_pointer *)malloc(len * sizeof(s7_pointer));
+  else vector_elements(x) = NULL;
+  vector_dimension_info(x) = NULL;
+  vector_getter(x) = default_vector_getter;
+  vector_setter(x) = default_vector_setter;
+  add_vector(sc, x);
+  return(x);
+}
 
-static s7_pointer make_vector_1(s7_scheme *sc, s7_int len, bool filled, unsigned int typ)
+static s7_pointer make_simple_float_vector(s7_scheme *sc, s7_int len) /* len >= 0 and < max */
+{
+  s7_pointer x;
+  new_cell(sc, x, T_FLOAT_VECTOR | T_SAFE_PROCEDURE);
+  vector_length(x) = len;
+  if (len > 0)
+    float_vector_elements(x) = (s7_double *)malloc(len * sizeof(s7_double));
+  else float_vector_elements(x) = NULL;
+  vector_dimension_info(x) = NULL;
+  vector_getter(x) = float_vector_getter;
+  vector_setter(x) = float_vector_setter;
+  add_vector(sc, x);
+  return(x);
+}
+
+static s7_pointer make_vector_1(s7_scheme *sc, s7_int len, bool filled, uint32_t typ)
 {
   s7_pointer x;
   if (len < 0)
@@ -33319,7 +33335,7 @@ static s7_pointer make_vector_1(s7_scheme *sc, s7_int len, bool filled, unsigned
 	{
 	  vector_elements(x) = (s7_pointer *)malloc(len * sizeof(s7_pointer));
 	  if (!vector_elements(x))
-	    return(s7_error(sc, make_symbol(sc, "out-of-memory"), set_elist_1(sc, make_string_wrapper(sc, "make-vector allocation failed!"))));
+	    return(s7_error(sc, make_symbol(sc, "out-of-memory"), set_elist_1(sc, s7_make_string_wrapper(sc, "make-vector allocation failed!"))));
 	  vector_getter(x) = default_vector_getter;
 	  vector_setter(x) = default_vector_setter;
 	  if (filled) s7_vector_fill(sc, x, sc->nil);  /* make_hash_table assumes nil as the default value */
@@ -33332,7 +33348,7 @@ static s7_pointer make_vector_1(s7_scheme *sc, s7_int len, bool filled, unsigned
 		float_vector_elements(x) = (s7_double *)calloc(len, sizeof(s7_double));
 	      else float_vector_elements(x) = (s7_double *)malloc(len * sizeof(s7_double));
 	      if (!float_vector_elements(x))
-		return(s7_error(sc, make_symbol(sc, "out-of-memory"), set_elist_1(sc, make_string_wrapper(sc, "make-float-vector allocation failed!"))));
+		return(s7_error(sc, make_symbol(sc, "out-of-memory"), set_elist_1(sc, s7_make_string_wrapper(sc, "make-float-vector allocation failed!"))));
 	      vector_getter(x) = float_vector_getter;
 	      vector_setter(x) = float_vector_setter;
 	    }
@@ -33342,14 +33358,14 @@ static s7_pointer make_vector_1(s7_scheme *sc, s7_int len, bool filled, unsigned
 		int_vector_elements(x) = (s7_int *)calloc(len, sizeof(s7_int));
 	      else int_vector_elements(x) = (s7_int *)malloc(len * sizeof(s7_int));
 	      if (!int_vector_elements(x))
-		return(s7_error(sc, make_symbol(sc, "out-of-memory"), set_elist_1(sc, make_string_wrapper(sc, "make-int-vector allocation failed!"))));
+		return(s7_error(sc, make_symbol(sc, "out-of-memory"), set_elist_1(sc, s7_make_string_wrapper(sc, "make-int-vector allocation failed!"))));
 	      vector_getter(x) = int_vector_getter;
 	      vector_setter(x) = int_vector_setter;
 	    }
 	}
     }
 
-  Add_Vector(x);
+  add_vector(sc, x);
   return(x);
 }
 
@@ -33374,7 +33390,7 @@ static vdims_t *make_wrap_only(s7_scheme *sc)
 
 #define make_vdims(Sc, Alloc, Dims, Info) ((((Dims) == 1) && (!(Alloc))) ? sc->wrap_only : make_vdims_1(Sc, Alloc, Dims, Info))
 
-static vdims_t *make_vdims_1(s7_scheme *sc, bool elements_allocated, int dims, s7_int *dim_info)
+static vdims_t *make_vdims_1(s7_scheme *sc, bool elements_allocated, int32_t dims, s7_int *dim_info)
 {
   vdims_t *v;
 
@@ -33384,7 +33400,7 @@ static vdims_t *make_vdims_1(s7_scheme *sc, bool elements_allocated, int dims, s
   v->ndims = dims;
   if (dims > 1)
     {
-      int i;
+      int32_t i;
       s7_int offset = 1;
       v->dimensions_allocated = true;
       v->dims = (s7_int *)malloc(v->ndims * sizeof(s7_int));
@@ -33408,7 +33424,7 @@ static vdims_t *make_vdims_1(s7_scheme *sc, bool elements_allocated, int dims, s
 }
 
 
-s7_pointer s7_make_int_vector(s7_scheme *sc, s7_int len, int dims, s7_int *dim_info)
+s7_pointer s7_make_int_vector(s7_scheme *sc, s7_int len, int32_t dims, s7_int *dim_info)
 {
   s7_pointer p;
   p = make_vector_1(sc, len, FILLED, T_INT_VECTOR);
@@ -33418,7 +33434,7 @@ s7_pointer s7_make_int_vector(s7_scheme *sc, s7_int len, int dims, s7_int *dim_i
 }
 
 
-s7_pointer s7_make_float_vector(s7_scheme *sc, s7_int len, int dims, s7_int *dim_info)
+s7_pointer s7_make_float_vector(s7_scheme *sc, s7_int len, int32_t dims, s7_int *dim_info)
 {
   s7_pointer p;
   p = make_vector_1(sc, len, FILLED, T_FLOAT_VECTOR);
@@ -33428,7 +33444,7 @@ s7_pointer s7_make_float_vector(s7_scheme *sc, s7_int len, int dims, s7_int *dim
 }
 
 
-s7_pointer s7_make_float_vector_wrapper(s7_scheme *sc, s7_int len, s7_double *data, int dims, s7_int *dim_info, bool free_data)
+s7_pointer s7_make_float_vector_wrapper(s7_scheme *sc, s7_int len, s7_double *data, int32_t dims, s7_int *dim_info, bool free_data)
 {
   /* this wraps up a C-allocated/freed double array as an s7 vector.
    */
@@ -33450,7 +33466,7 @@ s7_pointer s7_make_float_vector_wrapper(s7_scheme *sc, s7_int len, s7_double *da
       else vector_dimension_info(x) = NULL;
     }
   else vector_dimension_info(x) = make_vdims(sc, free_data, dims, dim_info);
-  Add_Vector(x);
+  add_vector(sc, x);
   return(x);
 }
 
@@ -33464,12 +33480,18 @@ s7_int s7_set_print_length(s7_scheme *sc, s7_int new_len)
  return(old_len);
 }
 
-
-#if (!WITH_GMP)
-void s7_vector_fill(s7_scheme *sc, s7_pointer vec, s7_pointer obj)
+#if (defined(__GNUC__) && __GNUC__ >= 5)
+  #define WITH_VECTORIZE 1
 #else
-static void vector_fill(s7_scheme *sc, s7_pointer vec, s7_pointer obj)
+  #define WITH_VECTORIZE 0
+#endif
+
+
+#if WITH_VECTORIZE
+static void vector_fill(s7_scheme *sc, s7_pointer vec, s7_pointer obj) __attribute__((optimize("tree-vectorize")));
 #endif
+
+static void vector_fill(s7_scheme *sc, s7_pointer vec, s7_pointer obj)
 {
   s7_int len, i, left;
 
@@ -33561,6 +33583,9 @@ static void vector_fill(s7_scheme *sc, s7_pointer vec, s7_pointer obj)
     }
 }
 
+#if (!WITH_GMP)
+void s7_vector_fill(s7_scheme *sc, s7_pointer vec, s7_pointer obj) {vector_fill(sc, vec, obj);}
+#endif
 
 static s7_pointer g_vector_fill(s7_scheme *sc, s7_pointer args)
 {
@@ -33582,7 +33607,7 @@ static s7_pointer g_vector_fill(s7_scheme *sc, s7_pointer args)
 
   if ((sc->safety > NO_SAFETY) &&
       (is_immutable_vector(x)))
-    return(s7_error(sc, sc->error_symbol, set_elist_2(sc, make_string_wrapper(sc, "can't fill! ~S (it is immutable)"), x)));
+    return(s7_error(sc, sc->error_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "can't fill! ~S (it is immutable)"), x)));
 
   fill = cadr(args);
   if (is_float_vector(x))
@@ -33723,7 +33748,7 @@ s7_int *s7_vector_offsets(s7_pointer vec)
 
 
 #if (!WITH_PURE_S7)
-static s7_pointer vector_append(s7_scheme *sc, s7_pointer args, int typ);
+static s7_pointer vector_append(s7_scheme *sc, s7_pointer args, int32_t typ);
 
 static s7_pointer g_vector_append(s7_scheme *sc, s7_pointer args)
 {
@@ -33735,7 +33760,7 @@ static s7_pointer g_vector_append(s7_scheme *sc, s7_pointer args)
   #define Q_vector_append pcl_v
 
   s7_pointer p;
-  int i;
+  int32_t i;
 
   if (is_null(args))
     return(make_vector_1(sc, 0, NOT_FILLED, T_VECTOR));
@@ -33748,14 +33773,14 @@ static s7_pointer g_vector_append(s7_scheme *sc, s7_pointer args)
 	{
 	  if (is_byte_vector(x))
 	    return(wrong_type_argument_with_type(sc, sc->vector_append_symbol, i + 1, x,
-						 make_string_wrapper(sc, "a byte-vector is actually a string: use append or string-append")));
+						 s7_make_string_wrapper(sc, "a byte-vector is actually a string: use append or string-append")));
 	  if (has_methods(x))
 	    {
 	      s7_pointer func;
 	      func = find_method(sc, find_let(sc, x), sc->vector_append_symbol);
 	      if (func != sc->undefined)
 		{
-		  int k;
+		  int32_t k;
 		  s7_pointer v, y;
 		  if (i == 0)
 		    return(s7_apply_function(sc, func, args));
@@ -33794,10 +33819,10 @@ static s7_pointer vector_append_p_ppp(s7_pointer p1, s7_pointer p2, s7_pointer p
 }
 #endif
 
-s7_pointer s7_vector_ref_n(s7_scheme *sc, s7_pointer vector, int indices, ...)
+s7_pointer s7_vector_ref_n(s7_scheme *sc, s7_pointer vector, int32_t indices, ...)
 {
   /* from s7.html */
-  int ndims;
+  int32_t ndims;
 
   ndims = s7_vector_rank(vector);
   if (ndims == indices)
@@ -33814,7 +33839,7 @@ s7_pointer s7_vector_ref_n(s7_scheme *sc, s7_pointer vector, int indices, ...)
 	}
       else
 	{
-	  int i;
+	  int32_t i;
 	  s7_int *offsets, *dimensions;
 
 	  dimensions = s7_vector_dimensions(vector);
@@ -33822,7 +33847,7 @@ s7_pointer s7_vector_ref_n(s7_scheme *sc, s7_pointer vector, int indices, ...)
 
 	  for (i = 0; i < indices; i++)
 	    {
-	      int ind;
+	      int32_t ind;
 	      ind = va_arg(ap, int);
 	      if ((ind < 0) ||
 		  (ind >= dimensions[i]))
@@ -33840,9 +33865,9 @@ s7_pointer s7_vector_ref_n(s7_scheme *sc, s7_pointer vector, int indices, ...)
 }
 
 
-s7_pointer s7_vector_set_n(s7_scheme *sc, s7_pointer vector, s7_pointer value, int indices, ...)
+s7_pointer s7_vector_set_n(s7_scheme *sc, s7_pointer vector, s7_pointer value, int32_t indices, ...)
 {
-  int ndims;
+  int32_t ndims;
 
   ndims = s7_vector_rank(vector);
   if (ndims == indices)
@@ -33860,7 +33885,7 @@ s7_pointer s7_vector_set_n(s7_scheme *sc, s7_pointer vector, s7_pointer value, i
 	}
       else
 	{
-	  int i;
+	  int32_t i;
 	  s7_int *offsets, *dimensions;
 
 	  dimensions = s7_vector_dimensions(vector);
@@ -33868,7 +33893,7 @@ s7_pointer s7_vector_set_n(s7_scheme *sc, s7_pointer vector, s7_pointer value, i
 
 	  for (i = 0; i < indices; i++)
 	    {
-	      int ind;
+	      int32_t ind;
 	      ind = va_arg(ap, int);
 	      if ((ind < 0) ||
 		  (ind >= dimensions[i]))
@@ -33969,7 +33994,7 @@ static s7_pointer g_vector(s7_scheme *sc, s7_pointer args)
   s7_pointer vec;
 
   len = safe_list_length(sc, args); /* was s7_list_length but don't we ensure that arglists are proper? */
-  vec = make_vector_1(sc, len, NOT_FILLED, T_VECTOR);
+  vec = make_simple_vector(sc, len);
   if (len > 0)
     {
       s7_int i;
@@ -33996,7 +34021,7 @@ static s7_pointer g_float_vector(s7_scheme *sc, s7_pointer args)
   s7_pointer vec;
 
   len = safe_list_length(sc, args);
-  vec = make_vector_1(sc, len, NOT_FILLED, T_FLOAT_VECTOR);
+  vec = make_simple_float_vector(sc, len);
   sc->w = vec;
   if (len > 0)
     {
@@ -34015,14 +34040,14 @@ static s7_pointer g_float_vector(s7_scheme *sc, s7_pointer args)
 
 static s7_pointer g_is_int_vector(s7_scheme *sc, s7_pointer args)
 {
-  #define H_is_int_vector "(int-vector? obj) returns #t if obj is an homogeneous int vector"
+  #define H_is_int_vector "(int-vector? obj) returns #t if obj is an homogeneous int32_t vector"
   #define Q_is_int_vector pl_bt
   check_boolean_method(sc, is_int_vector, sc->is_int_vector_symbol, args);
 }
 
 static s7_pointer g_int_vector(s7_scheme *sc, s7_pointer args)
 {
-  #define H_int_vector "(int-vector ...) returns an homogeneous int vector whose elements are the arguments"
+  #define H_int_vector "(int-vector ...) returns an homogeneous int32_t vector whose elements are the arguments"
   #define Q_int_vector s7_make_circular_signature(sc, 1, 2, sc->is_int_vector_symbol, sc->is_integer_symbol)
 
   s7_int len;
@@ -34057,7 +34082,7 @@ static s7_pointer g_list_to_vector(s7_scheme *sc, s7_pointer args)
   if (is_null(p))
     return(s7_make_vector(sc, 0));
 
-  if (!is_proper_list(sc, p))
+  if (!s7_is_proper_list(sc, p))
     method_or_bust_with_type_one_arg(sc, p, sc->list_to_vector_symbol, list_1(sc, p), a_proper_list_string);
 
   return(g_vector(sc, p));  
@@ -34085,7 +34110,7 @@ static s7_int vector_length_i(s7_pointer p)
 #endif
 
 
-static s7_pointer make_shared_vector(s7_scheme *sc, s7_pointer vect, int skip_dims, s7_int index)
+static s7_pointer make_shared_vector(s7_scheme *sc, s7_pointer vect, int32_t skip_dims, s7_int index)
 {
   s7_pointer x;
   vdims_t *v;
@@ -34142,7 +34167,7 @@ a vector that points to the same elements as the original-vector but with differ
    */
   s7_pointer orig, dims, y, x;
   vdims_t *v;
-  int i;
+  int32_t i;
   s7_int new_len = 1, orig_len, offset = 0;
 
   orig = car(args);
@@ -34176,14 +34201,14 @@ a vector that points to the same elements as the original-vector but with differ
   else
     {
       if ((is_null(dims)) ||
-	  (!is_proper_list(sc, dims)))
+	  (!s7_is_proper_list(sc, dims)))
 	method_or_bust(sc, dims, sc->make_shared_vector_symbol, args, T_PAIR, 2);
 
       for (y = dims; is_pair(y); y = cdr(y))
 	if ((!s7_is_integer(car(y)))        ||       /* (make-shared-vector v '((1 2) (3 4))) */
 	    (s7_integer(car(y)) > orig_len) ||
 	    (s7_integer(car(y)) < 0))
-	  return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_1(sc, make_string_wrapper(sc, "a list of integers that fits the original vector"))));
+	  return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_1(sc, s7_make_string_wrapper(sc, "a list of integers that fits the original vector"))));
     }
 
   v = (vdims_t *)malloc(sizeof(vdims_t));
@@ -34211,7 +34236,7 @@ a vector that points to the same elements as the original-vector but with differ
       free(v->dims);
       free(v->offsets);
       free(v);
-      return(out_of_range(sc, sc->make_shared_vector_symbol, small_int(2), dims, make_string_wrapper(sc, "a shared vector has to fit in the original vector")));
+      return(out_of_range(sc, sc->make_shared_vector_symbol, small_int(2), dims, s7_make_string_wrapper(sc, "a shared vector has to fit in the original vector")));
     }
 
   new_cell(sc, x, typeflag(orig) | T_SAFE_PROCEDURE);
@@ -34275,7 +34300,7 @@ static s7_pointer vector_ref_1(s7_scheme *sc, s7_pointer vect, s7_pointer indice
 
   if (vector_rank(vect) > 1)
     {
-      unsigned int i;
+      uint32_t i;
       s7_pointer x;
       for (x = indices, i = 0; (is_not_null(x)) && (i < vector_ndims(vect)); x = cdr(x), i++)
 	{
@@ -34484,7 +34509,7 @@ static s7_pointer g_vector_set(s7_scheme *sc, s7_pointer args)
 
   if (vector_rank(vec) > 1)
     {
-      unsigned int i;
+      uint32_t i;
       s7_pointer x;
       index = 0;
       for (x = cdr(args), i = 0; (is_not_null(cdr(x))) && (i < vector_ndims(vec)); x = cdr(x), i++)
@@ -34636,7 +34661,7 @@ static s7_pointer g_make_vector_1(s7_scheme *sc, s7_pointer args, s7_pointer err
 {
   s7_int len;
   s7_pointer x, fill, vec;
-  int result_type = T_VECTOR;
+  int32_t result_type = T_VECTOR;
 
   fill = sc->unspecified;
   x = car(args);
@@ -34649,16 +34674,16 @@ static s7_pointer g_make_vector_1(s7_scheme *sc, s7_pointer args, s7_pointer err
   else
     {
       if (!(is_pair(x)))
-	method_or_bust_with_type(sc, x, err_sym, args, make_string_wrapper(sc, "an integer or a list of integers"), 1);
+	method_or_bust_with_type(sc, x, err_sym, args, s7_make_string_wrapper(sc, "an integer or a list of integers"), 1);
 
       if (!s7_is_integer(car(x)))
 	return(wrong_type_argument_with_type(sc, err_sym, 1, car(x),
-					     make_string_wrapper(sc, "each dimension should be an integer")));
+					     s7_make_string_wrapper(sc, "each dimension should be an integer")));
       if (is_null(cdr(x)))
 	len = s7_integer(car(x));
       else
 	{
-	  int dims;
+	  int32_t dims;
 	  s7_pointer y;
 
 	  dims = s7_list_length(sc, x);
@@ -34692,7 +34717,7 @@ static s7_pointer g_make_vector_1(s7_scheme *sc, s7_pointer args, s7_pointer err
 		{
 		  if (s7_is_real(fill)) /* might be gmp with big_real by accident (? see above) */
 		    result_type = T_FLOAT_VECTOR;
-		  else method_or_bust_with_type(sc, fill, err_sym, args, make_string_wrapper(sc, "an integer or a real since 'homogeneous' is #t"), 2);
+		  else method_or_bust_with_type(sc, fill, err_sym, args, s7_make_string_wrapper(sc, "an integer or a real since 'homogeneous' is #t"), 2);
 		}
 	    }
 	  else
@@ -34709,7 +34734,7 @@ static s7_pointer g_make_vector_1(s7_scheme *sc, s7_pointer args, s7_pointer err
   if ((is_pair(x)) &&
       (is_pair(cdr(x))))
     {
-      int i;
+      int32_t i;
       s7_int offset = 1;
       s7_pointer y;
       vdims_t *v;
@@ -34869,7 +34894,7 @@ static s7_pointer g_vector_dimensions(s7_scheme *sc, s7_pointer args)
 
   if (vector_rank(x) > 1)
     {
-      int i;
+      int32_t i;
       sc->w = sc->nil;
       for (i = vector_ndims(x) - 1; i >= 0; i--)
 	sc->w = cons(sc, make_integer(sc, vector_dimension(x, i)), sc->w);
@@ -34884,13 +34909,13 @@ static s7_pointer g_vector_dimensions(s7_scheme *sc, s7_pointer args)
 #define MULTIVECTOR_TOO_MANY_ELEMENTS -1
 #define MULTIVECTOR_NOT_ENOUGH_ELEMENTS -2
 
-static int traverse_vector_data(s7_scheme *sc, s7_pointer vec, int flat_ref, int dimension, int dimensions, int *sizes, s7_pointer lst)
+static int32_t traverse_vector_data(s7_scheme *sc, s7_pointer vec, int32_t flat_ref, int32_t dimension, int32_t dimensions, int32_t *sizes, s7_pointer lst)
 {
   /* we're filling vec, we're currently looking for element (flat-wise) flat_ref,
    *   we're at ref in dimension of dimensions, where sizes gives the bounds, and lst is our data
    *   #3D(((1 2 3) (4 5 6)) ((7 8 9) (10 11 12)))
    */
-  int i;
+  int32_t i;
   s7_pointer x;
 
   for (i = 0, x = lst; i < sizes[dimension]; i++, x = cdr(x))
@@ -34915,7 +34940,7 @@ static int traverse_vector_data(s7_scheme *sc, s7_pointer vec, int flat_ref, int
 static s7_pointer s7_multivector_error(s7_scheme *sc, const char *message, s7_pointer data)
 {
   return(s7_error(sc, sc->read_error_symbol, 
-		  set_elist_3(sc, make_string_wrapper(sc, "reading constant vector, ~A: ~A"), make_string_wrapper(sc, message), data)));
+		  set_elist_3(sc, s7_make_string_wrapper(sc, "reading constant vector, ~A: ~A"), s7_make_string_wrapper(sc, message), data)));
 }
 
 
@@ -34927,9 +34952,9 @@ static s7_pointer g_multivector(s7_scheme *sc, s7_int dims, s7_pointer data)
    * also should we let an empty vector have any number of dimensions? currently ndims is an int.
    */
   s7_pointer vec, x;
-  int i, err;
-  unsigned int vec_loc;
-  int *sizes;
+  int32_t i, err;
+  uint32_t vec_loc;
+  int32_t *sizes;
 
   /* (#2d((1 2 3) (4 5 6)) 0 0) -> 1
    * (#2d((1 2 3) (4 5 6)) 0 1) -> 2
@@ -34941,7 +34966,7 @@ static s7_pointer g_multivector(s7_scheme *sc, s7_int dims, s7_pointer data)
    * but a special case: #nD() is an n-dimensional empty vector
    */
 
-  if (dims <= 0)      /* #0d(...) #2147483649D() [if dims is int this is negative] */
+  if (dims <= 0)      /* #0d(...) #2147483649D() [if dims is int32_t this is negative] */
     return(s7_out_of_range_error(sc, "#nD(...) dimensions", 1, make_integer(sc, dims), "must be 1 or more"));
   if (dims > sc->max_vector_dimensions)
     return(s7_out_of_range_error(sc, "#nD(...) dimensions", 1, make_integer(sc, dims), "must be < 512")); /* sc->max_vector_dimensions=512 currently */
@@ -34950,7 +34975,7 @@ static s7_pointer g_multivector(s7_scheme *sc, s7_int dims, s7_pointer data)
   if (is_null(data))  /* dims are already 0 (calloc above) */
     return(g_make_vector(sc, set_plist_1(sc, make_list(sc, dims, small_int(0)))));
 
-  sizes = (int *)calloc(dims, sizeof(int));
+  sizes = (int32_t *)calloc(dims, sizeof(int));
   for (x = data, i = 0; i < dims; i++)
     {
       sizes[i] = safe_list_length(sc, x);
@@ -35009,8 +35034,12 @@ static s7_pointer g_float_multivector(s7_scheme *sc, s7_int dims, s7_pointer dat
   return(s7_copy(sc, set_plist_2(sc, sc->value, sc->args)));
 }
 
-
+#if WITH_VECTORIZE
+static s7_pointer s7_vector_copy_1(s7_scheme *sc, s7_pointer old_vect) __attribute__((optimize("tree-vectorize")));
+static s7_pointer s7_vector_copy_1(s7_scheme *sc, s7_pointer old_vect)
+#else
 s7_pointer s7_vector_copy(s7_scheme *sc, s7_pointer old_vect)
+#endif
 {
   s7_int i, len;
   s7_pointer new_vect;
@@ -35057,12 +35086,15 @@ s7_pointer s7_vector_copy(s7_scheme *sc, s7_pointer old_vect)
   return(new_vect);
 }
 
+#if WITH_VECTORIZE
+s7_pointer s7_vector_copy(s7_scheme *sc, s7_pointer old_vect) {return(s7_vector_copy_1(sc, old_vect));}
+#endif
 
 static s7_pointer univect_ref(s7_scheme *sc, s7_pointer args, bool flt)
 {
   s7_pointer v, caller;
   s7_int ind;
-  int typ;
+  int32_t typ;
 
   caller = (flt) ? sc->float_vector_ref_symbol : sc->int_vector_ref_symbol;
   typ = (flt) ? T_FLOAT_VECTOR : T_INT_VECTOR;
@@ -35090,7 +35122,7 @@ static s7_pointer univect_ref(s7_scheme *sc, s7_pointer args, bool flt)
     }
   else
     {
-      unsigned int i;
+      uint32_t i;
       s7_pointer x;
       ind = 0;
       for (x = cdr(args), i = 0; (is_not_null(x)) && (i < vector_ndims(v)); x = cdr(x), i++)
@@ -35127,7 +35159,7 @@ static s7_pointer univect_set(s7_scheme *sc, s7_pointer args, bool flt)
 {
   s7_pointer vec, val, caller;
   s7_int index;
-  int typ;
+  int32_t typ;
 
   caller = (flt) ? sc->float_vector_set_symbol : sc->int_vector_set_symbol;
   typ = (flt) ? T_FLOAT_VECTOR : T_INT_VECTOR;
@@ -35138,7 +35170,7 @@ static s7_pointer univect_set(s7_scheme *sc, s7_pointer args, bool flt)
 
   if (vector_rank(vec) > 1)
     {
-      unsigned int i;
+      uint32_t i;
       s7_pointer x;
       index = 0;
       for (x = cdr(args), i = 0; (is_not_null(cdr(x))) && (i < vector_ndims(vec)); x = cdr(x), i++)
@@ -35205,16 +35237,6 @@ static s7_pointer g_float_vector_ref(s7_scheme *sc, s7_pointer args)
 {
   #define H_float_vector_ref "(float-vector-ref v ...) returns an element of the float-vector v."
   #define Q_float_vector_ref s7_make_circular_signature(sc, 2, 3, s7_make_signature(sc, 2, sc->is_float_symbol, sc->is_float_vector_symbol), sc->is_float_vector_symbol, sc->is_integer_symbol)
-  /* fprintf(stderr, "%s\n", DISPLAY_80(current_code(sc))); */
-  /* (lambda (y) (> (magnitude (- y (* 0.5 (float-vector-ref vals (floor (-..
-     (do ((sum 0.0) (len (min (length v1) (length v2))) (mx (float-vector-peak...
-     (* (env e1) (oscil osc (float-vector-ref x 0)))
-     (= (float-vector-ref (cadr qr) 0) 0.0)
-     (let ((wkm-k (float-vector-ref wkm k)) (old-wk1 (copy wk1))) (do ((j 0 (+ j
-     (set! unclipped-max (max unclipped-max (float-vector-ref data i)))
-     (set! tj (if (zero? (float-vector-ref radii j)) 1e-10 (* (float-vector-ref...
-     */
-  /* we need opt_let */
   return(univect_ref(sc, args, true));
 }
 
@@ -35322,33 +35344,33 @@ static bool arglist_has_rest(s7_scheme *sc, s7_pointer args)
 /* -------- sort! -------- */
 
 #if (!WITH_GMP)
-static int dbl_less(const void *f1, const void *f2)
+static int32_t dbl_less(const void *f1, const void *f2)
 {
   if ((*((s7_double *)f1)) < (*((s7_double *)f2))) return(-1);
   if ((*((s7_double *)f1)) > (*((s7_double *)f2))) return(1);
   return(0);
 }
 
-static int int_less(const void *f1, const void *f2)
+static int32_t int_less(const void *f1, const void *f2)
 {
   if ((*((s7_int *)f1)) < (*((s7_int *)f2))) return(-1);
   if ((*((s7_int *)f1)) > (*((s7_int *)f2))) return(1);
   return(0);
 }
 
-static int dbl_greater(const void *f1, const void *f2) {return(-dbl_less(f1, f2));}
-static int int_greater(const void *f1, const void *f2) {return(-int_less(f1, f2));}
+static int32_t dbl_greater(const void *f1, const void *f2) {return(-dbl_less(f1, f2));}
+static int32_t int_greater(const void *f1, const void *f2) {return(-int_less(f1, f2));}
 
-static int byte_less(const void *f1, const void *f2)
+static int32_t byte_less(const void *f1, const void *f2)
 {
   if ((*((unsigned char *)f1)) < (*((unsigned char *)f2))) return(-1);
   if ((*((unsigned char *)f1)) > (*((unsigned char *)f2))) return(1);
   return(0);
 }
 
-static int byte_greater(const void *f1, const void *f2) {return(-byte_less(f1, f2));}
+static int32_t byte_greater(const void *f1, const void *f2) {return(-byte_less(f1, f2));}
 
-static int dbl_less_2(const void *f1, const void *f2)
+static int32_t dbl_less_2(const void *f1, const void *f2)
 {
   s7_pointer p1, p2;
   p1 = (*((s7_pointer *)f1));
@@ -35358,7 +35380,7 @@ static int dbl_less_2(const void *f1, const void *f2)
   return(0);
 }
 
-static int int_less_2(const void *f1, const void *f2)
+static int32_t int_less_2(const void *f1, const void *f2)
 {
   s7_pointer p1, p2;
   p1 = (*((s7_pointer *)f1));
@@ -35368,10 +35390,10 @@ static int int_less_2(const void *f1, const void *f2)
   return(0);
 }
 
-static int dbl_greater_2(const void *f1, const void *f2) {return(-dbl_less_2(f1, f2));}
-static int int_greater_2(const void *f1, const void *f2) {return(-int_less_2(f1, f2));}
+static int32_t dbl_greater_2(const void *f1, const void *f2) {return(-dbl_less_2(f1, f2));}
+static int32_t int_greater_2(const void *f1, const void *f2) {return(-int_less_2(f1, f2));}
 
-static int str_less_2(const void *f1, const void *f2)
+static int32_t str_less_2(const void *f1, const void *f2)
 {
   s7_pointer p1, p2;
   p1 = (*((s7_pointer *)f1));
@@ -35379,9 +35401,9 @@ static int str_less_2(const void *f1, const void *f2)
   return(scheme_strcmp(p1, p2));
 }
 
-static int str_greater_2(const void *f1, const void *f2) {return(-str_less_2(f1, f2));}
+static int32_t str_greater_2(const void *f1, const void *f2) {return(-str_less_2(f1, f2));}
 
-static int chr_less_2(const void *f1, const void *f2)
+static int32_t chr_less_2(const void *f1, const void *f2)
 {
   s7_pointer p1, p2;
   p1 = (*((s7_pointer *)f1));
@@ -35391,23 +35413,23 @@ static int chr_less_2(const void *f1, const void *f2)
   return(0);
 }
 
-static int chr_greater_2(const void *f1, const void *f2) {return(-chr_less_2(f1, f2));}
+static int32_t chr_greater_2(const void *f1, const void *f2) {return(-chr_less_2(f1, f2));}
 #endif
 
 static s7_scheme *compare_sc;
 static s7_function compare_func;
 static s7_pointer compare_args, compare_begin, compare_v1, compare_v2;
 static opcode_t compare_op;
-static int compare_body_len = 0;
+static int32_t compare_body_len = 0;
 static bool p_to_b(void *p);
-static int vector_compare(const void *v1, const void *v2)
+static int32_t vector_compare(const void *v1, const void *v2)
 {
   set_car(compare_args, (*(s7_pointer *)v1));
   set_cadr(compare_args, (*(s7_pointer *)v2));
   return(((*(compare_func))(compare_sc, compare_args) != compare_sc->F) ? -1 : 1);
 }
 
-static int vector_car_compare(const void *v1, const void *v2)
+static int32_t vector_car_compare(const void *v1, const void *v2)
 {
   s7_pointer a, b;
   a = (*(s7_pointer *)v1);
@@ -35417,7 +35439,7 @@ static int vector_car_compare(const void *v1, const void *v2)
   return(((*(compare_func))(compare_sc, compare_args) != compare_sc->F) ? -1 : 1);
 }
 
-static int vector_cdr_compare(const void *v1, const void *v2)
+static int32_t vector_cdr_compare(const void *v1, const void *v2)
 {
   s7_pointer a, b;
   a = (*(s7_pointer *)v1);
@@ -35427,14 +35449,14 @@ static int vector_cdr_compare(const void *v1, const void *v2)
   return(((*(compare_func))(compare_sc, compare_args) != compare_sc->F) ? -1 : 1);
 }
 
-static int all_x_compare(const void *v1, const void *v2)
+static int32_t all_x_compare(const void *v1, const void *v2)
 {
   slot_set_value(compare_v1, (*(s7_pointer *)v1));
   slot_set_value(compare_v2, (*(s7_pointer *)v2));
   return((compare_func(compare_sc, compare_args) != compare_sc->F) ? -1 : 1);
 }
 
-static int opt_bool_compare(const void *v1, const void *v2)
+static int32_t opt_bool_compare(const void *v1, const void *v2)
 {
   slot_set_value(compare_v1, (*(s7_pointer *)v1));
   slot_set_value(compare_v2, (*(s7_pointer *)v2));
@@ -35442,7 +35464,7 @@ static int opt_bool_compare(const void *v1, const void *v2)
   return((compare_sc->opts[0]->v7.fb(compare_sc->opts[0])) ? -1 : 1);
 }
 
-static int opt_bool_compare_p(const void *v1, const void *v2)
+static int32_t opt_bool_compare_p(const void *v1, const void *v2)
 {
   slot_set_value(compare_v1, (*(s7_pointer *)v1));
   slot_set_value(compare_v2, (*(s7_pointer *)v2));
@@ -35450,9 +35472,9 @@ static int opt_bool_compare_p(const void *v1, const void *v2)
   return((compare_sc->opts[0]->v8.fp(compare_sc->opts[0]) == compare_sc->F) ? 1 : -1);
 }
 
-static int opt_begin_bool_compare_b(const void *v1, const void *v2)
+static int32_t opt_begin_bool_compare_b(const void *v1, const void *v2)
 {
-  int i;
+  int32_t i;
   opt_info *o;
   slot_set_value(compare_v1, (*(s7_pointer *)v1));
   slot_set_value(compare_v2, (*(s7_pointer *)v2));
@@ -35466,9 +35488,9 @@ static int opt_begin_bool_compare_b(const void *v1, const void *v2)
   return((o->v7.fb(o)) ? -1 : 1);
 }
 
-static int opt_begin_bool_compare_p(const void *v1, const void *v2)
+static int32_t opt_begin_bool_compare_p(const void *v1, const void *v2)
 {
-  int i;
+  int32_t i;
   opt_info *o;
   s7_pointer val;
   slot_set_value(compare_v1, (*(s7_pointer *)v1));
@@ -35484,7 +35506,7 @@ static int opt_begin_bool_compare_p(const void *v1, const void *v2)
   return((val != compare_sc->F) ? -1 : 1);
 }
 
-static int closure_compare(const void *v1, const void *v2)
+static int32_t closure_compare(const void *v1, const void *v2)
 {
   slot_set_value(compare_v1, (*(s7_pointer *)v1));
   slot_set_value(compare_v2, (*(s7_pointer *)v2));
@@ -35494,7 +35516,7 @@ static int closure_compare(const void *v1, const void *v2)
   return((compare_sc->value != compare_sc->F) ? -1 : 1);
 }
 
-static int closure_compare_begin(const void *v1, const void *v2)
+static int32_t closure_compare_begin(const void *v1, const void *v2)
 {
   slot_set_value(compare_v1, (*(s7_pointer *)v1));
   slot_set_value(compare_v2, (*(s7_pointer *)v2));
@@ -35512,9 +35534,9 @@ static s7_pointer g_sort(s7_scheme *sc, s7_pointer args)
 
   s7_pointer data, lessp, lx;
   s7_int len = 0, n, k;
-  int (*sort_func)(const void *v1, const void *v2);
+  int32_t (*sort_func)(const void *v1, const void *v2);
   s7_pointer *elements;
-  unsigned int gc_loc = 0;
+  uint32_t gc_loc = 0;
 
   /* both the intermediate vector (if any) and the current args pointer need GC protection,
    *   but it is a real bother to unprotect args at every return statement, so I'll use temp3
@@ -35534,7 +35556,7 @@ static s7_pointer g_sort(s7_scheme *sc, s7_pointer args)
 
   if ((sc->safety > NO_SAFETY) &&
       (is_immutable(data)))
-    return(s7_error(sc, sc->error_symbol, set_elist_2(sc, make_string_wrapper(sc, "can't sort! ~S (it is immutable)"), data)));
+    return(s7_error(sc, sc->error_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "can't sort! ~S (it is immutable)"), data)));
 
   lessp = cadr(args);
   if (type(lessp) < T_GOTO)
@@ -35558,7 +35580,7 @@ static s7_pointer g_sort(s7_scheme *sc, s7_pointer args)
       if ((sig) &&
 	  (is_pair(sig)) &&
 	  (car(sig) != sc->is_boolean_symbol))
-	return(wrong_type_argument_with_type(sc, sc->sort_symbol, 2, lessp, make_string_wrapper(sc, "sort! function should return a boolean")));
+	return(wrong_type_argument_with_type(sc, sc->sort_symbol, 2, lessp, s7_make_string_wrapper(sc, "sort! function should return a boolean")));
       compare_func = c_function_call(lessp);
     }
   else
@@ -35582,11 +35604,11 @@ static s7_pointer g_sort(s7_scheme *sc, s7_pointer args)
 		      (((optimize_op(expr) & 1) != 0) ||
 		       (c_function_is_ok(sc, expr))))
 		    {
-		      int orig_data;
+		      int32_t orig_data;
 		      orig_data = optimize_op(expr);
 		      set_optimize_op(expr, optimize_op(expr) | 1);
 		      /* fprintf(stderr, "%s\n", opt_names[orig_data]); */
-		      if ((optimize_op(expr) == HOP_SAFE_C_SS) &&
+		      if (((optimize_op(expr) == HOP_SAFE_C_SS) || (optimize_op(expr) == HOP_SAFE_C_LL)) &&
 			  (car(largs) == cadr(expr)) &&
 			  (cadr(largs) == caddr(expr)))
 			{
@@ -35652,7 +35674,7 @@ static s7_pointer g_sort(s7_scheme *sc, s7_pointer args)
 			      break;
 			  if (is_null(cdr(p)))
 			    {
-			      int start;
+			      int32_t start;
 			      start = sc->pc;
 			      if (bool_optimize_nw(sc, p))
 				{
@@ -35730,7 +35752,7 @@ static s7_pointer g_sort(s7_scheme *sc, s7_pointer args)
     case T_PAIR:
       len = s7_list_length(sc, data);            /* 0 here == infinite */
       if (len <= 0)
-	return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, make_string_wrapper(sc, "sort! argument 1 should be a proper list: ~S"), data)));
+	return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "sort! argument 1 should be a proper list: ~S"), data)));
       if (len < 2)
 	return(data);
       if (compare_func)
@@ -35902,7 +35924,7 @@ static s7_pointer g_sort(s7_scheme *sc, s7_pointer args)
 	      (compare_func == g_string_less_2) || (compare_func == g_string_greater_2) ||
 	      (compare_func == g_char_less_2) || (compare_func == g_char_greater_2))
 	    {
-	      int typ;
+	      int32_t typ;
 	      s7_pointer *els;
 	      els = s7_vector_elements(data);
 	      typ = type(els[0]);
@@ -35983,7 +36005,7 @@ static s7_pointer vector_into_list(s7_pointer vect, s7_pointer lst)
 {
   s7_pointer p;
   s7_pointer *elements;
-  int i, len;
+  int32_t i, len;
 
   elements = s7_vector_elements(vect);
   len = vector_length(vect);
@@ -35995,7 +36017,7 @@ static s7_pointer vector_into_list(s7_pointer vect, s7_pointer lst)
 static s7_pointer vector_into_fi_vector(s7_pointer source, s7_pointer dest)
 {
   s7_pointer *elements;
-  int i, len;
+  int32_t i, len;
 
   elements = s7_vector_elements(source);
   len = vector_length(source);
@@ -36020,7 +36042,7 @@ static s7_pointer vector_into_fi_vector(s7_pointer source, s7_pointer dest)
 static s7_pointer vector_into_string(s7_pointer vect, s7_pointer dest)
 {
   s7_pointer *elements;
-  int i, len;
+  int32_t i, len;
   unsigned char *str;
 
   elements = s7_vector_elements(vect);
@@ -36053,7 +36075,7 @@ static void free_hash_table(s7_pointer table)
 
   if (hash_table_entries(table) > 0)
     {
-      unsigned int i, len;
+      uint32_t i, len;
       len = hash_table_mask(table) + 1;
       for (i = 0; i < len; i++)
 	{
@@ -36075,7 +36097,7 @@ static void free_hash_table(s7_pointer table)
   free(entries);
 }
 
-static hash_entry_t *make_hash_entry(s7_pointer key, s7_pointer value, unsigned int raw_hash)
+static hash_entry_t *make_hash_entry(s7_pointer key, s7_pointer value, uint32_t raw_hash)
 {
   hash_entry_t *p;
   if (hash_free_list)
@@ -36125,9 +36147,9 @@ static s7_int hash_table_entries_i(s7_pointer p)
 
 
 /* ---------------- mappers ---------------- */
-static unsigned int hash_float_location(s7_double x)
+static uint32_t hash_float_location(s7_double x)
 {
-  int loc;
+  int32_t loc;
 #if defined(__clang__)
   if ((is_inf(x)) || (is_NaN(x))) return(0);
 #endif
@@ -36151,37 +36173,37 @@ static hash_map_t *morally_equal_hash_map, *c_function_hash_map;
 static hash_map_t *string_ci_eq_hash_map, *char_ci_eq_hash_map;
 #endif
 
-static unsigned int hash_map_nil(s7_scheme *sc, s7_pointer table, s7_pointer key)     {return(type(key));}
-static unsigned int hash_map_int(s7_scheme *sc, s7_pointer table, s7_pointer key)     {return((unsigned int)(s7_int_abs(integer(key))));}
-static unsigned int hash_map_char(s7_scheme *sc, s7_pointer table, s7_pointer key)    {return(character(key));}
-static unsigned int hash_map_ratio(s7_scheme *sc, s7_pointer table, s7_pointer key)   {return((unsigned int)denominator(key));} /* overflow possible as elsewhere */
-static unsigned int hash_map_complex(s7_scheme *sc, s7_pointer table, s7_pointer key) {return(hash_float_location(real_part(key)));}
-static unsigned int hash_map_symbol(s7_scheme *sc, s7_pointer table, s7_pointer key)  {return(symbol_hmap(key));}
-static unsigned int hash_map_syntax(s7_scheme *sc, s7_pointer table, s7_pointer key)  {return(symbol_hmap(syntax_symbol(key)));}
+static uint32_t hash_map_nil(s7_scheme *sc, s7_pointer table, s7_pointer key)     {return(type(key));}
+static uint32_t hash_map_int(s7_scheme *sc, s7_pointer table, s7_pointer key)     {return((uint32_t)(s7_int_abs(integer(key))));}
+static uint32_t hash_map_char(s7_scheme *sc, s7_pointer table, s7_pointer key)    {return(character(key));}
+static uint32_t hash_map_ratio(s7_scheme *sc, s7_pointer table, s7_pointer key)   {return((uint32_t)denominator(key));} /* overflow possible as elsewhere */
+static uint32_t hash_map_complex(s7_scheme *sc, s7_pointer table, s7_pointer key) {return(hash_float_location(real_part(key)));}
+static uint32_t hash_map_symbol(s7_scheme *sc, s7_pointer table, s7_pointer key)  {return(symbol_hmap(key));}
+static uint32_t hash_map_syntax(s7_scheme *sc, s7_pointer table, s7_pointer key)  {return(symbol_hmap(syntax_symbol(key)));}
 
 #if WITH_GMP
-static unsigned int hash_map_big_int(s7_scheme *sc, s7_pointer table, s7_pointer key)     
+static uint32_t hash_map_big_int(s7_scheme *sc, s7_pointer table, s7_pointer key)     
 {
-  return((unsigned int)(big_integer_to_s7_int(big_integer(key))));
+  return((uint32_t)(big_integer_to_s7_int(big_integer(key))));
 }
 
-static unsigned int hash_map_big_ratio(s7_scheme *sc, s7_pointer table, s7_pointer key)   
+static uint32_t hash_map_big_ratio(s7_scheme *sc, s7_pointer table, s7_pointer key)   
 {
-  return((unsigned int)(big_integer_to_s7_int(mpq_denref(big_ratio(key)))));
+  return((uint32_t)(big_integer_to_s7_int(mpq_denref(big_ratio(key)))));
 }
 
-static unsigned int hash_map_big_real(s7_scheme *sc, s7_pointer table, s7_pointer key)    
+static uint32_t hash_map_big_real(s7_scheme *sc, s7_pointer table, s7_pointer key)    
 {
-  return((unsigned int)mpfr_get_d(big_real(key), GMP_RNDN));
+  return((uint32_t)mpfr_get_d(big_real(key), GMP_RNDN));
 }
 
-static unsigned int hash_map_big_complex(s7_scheme *sc, s7_pointer table, s7_pointer key) 
+static uint32_t hash_map_big_complex(s7_scheme *sc, s7_pointer table, s7_pointer key) 
 {
-  return((unsigned int)mpfr_get_d(mpc_realref(big_complex(key)), GMP_RNDN));
+  return((uint32_t)mpfr_get_d(mpc_realref(big_complex(key)), GMP_RNDN));
 }
 #endif
 
-static unsigned int hash_map_string(s7_scheme *sc, s7_pointer table, s7_pointer key)
+static uint32_t hash_map_string(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   if (string_hash(key) == 0)
     string_hash(key) = raw_string_hash((const unsigned char *)string_value(key), string_length(key));
@@ -36189,18 +36211,18 @@ static unsigned int hash_map_string(s7_scheme *sc, s7_pointer table, s7_pointer
 }
 
 #if (!WITH_PURE_S7)
-static unsigned int hash_map_ci_char(s7_scheme *sc, s7_pointer table, s7_pointer key) {return(upper_character(key));}
+static uint32_t hash_map_ci_char(s7_scheme *sc, s7_pointer table, s7_pointer key) {return(upper_character(key));}
 
-static unsigned int hash_map_ci_string(s7_scheme *sc, s7_pointer table, s7_pointer key)
+static uint32_t hash_map_ci_string(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
-  int len;
+  int32_t len;
   len = string_length(key);
   if (len == 0) return(0);
   return(len + (uppers[(int)(string_value(key)[0])] << 4));
 }
 #endif
 
-static unsigned int hash_map_real(s7_scheme *sc, s7_pointer table, s7_pointer key)
+static uint32_t hash_map_real(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   return(hash_float_location(real(key)));
   /* currently 1e300 goes to most-negative-fixnum! -> 0 after logand size, I hope
@@ -36212,23 +36234,23 @@ static unsigned int hash_map_real(s7_scheme *sc, s7_pointer table, s7_pointer ke
    */
 }
 
-static unsigned int hash_map_real_eq(s7_scheme *sc, s7_pointer table, s7_pointer x)
+static uint32_t hash_map_real_eq(s7_scheme *sc, s7_pointer table, s7_pointer x)
 {
   if (real(x) < 0.0)
-    return((unsigned int)(s7_round(-real(x))));
-  return((unsigned int)s7_round(real(x)));
+    return((uint32_t)(s7_round(-real(x))));
+  return((uint32_t)s7_round(real(x)));
 }
 
-static unsigned int hash_map_ratio_eq(s7_scheme *sc, s7_pointer table, s7_pointer y)
+static uint32_t hash_map_ratio_eq(s7_scheme *sc, s7_pointer table, s7_pointer y)
 {
   s7_double x;
   x = fraction(y);
   if (x < 0.0)
-    return((unsigned int)s7_round(-x));
-  return((unsigned int)s7_round(x));
+    return((uint32_t)s7_round(-x));
+  return((uint32_t)s7_round(x));
 }
 
-static unsigned int hash_map_hash_table(s7_scheme *sc, s7_pointer table, s7_pointer key)
+static uint32_t hash_map_hash_table(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   /* hash-tables are equal if key/values match independent of table size and entry order.
    * if not using morally-equal?, hash_table_checker|mapper must also be the same.
@@ -36237,25 +36259,25 @@ static unsigned int hash_map_hash_table(s7_scheme *sc, s7_pointer table, s7_poin
   return(hash_table_entries(key));
 }
 
-static unsigned int hash_map_int_vector(s7_scheme *sc, s7_pointer table, s7_pointer key)
+static uint32_t hash_map_int_vector(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   if (vector_length(key) == 0)
     return(0);
   if (vector_length(key) == 1)
-    return((unsigned int)(s7_int_abs(int_vector_element(key, 0))));
-  return((unsigned int)(vector_length(key) + s7_int_abs(int_vector_element(key, 0)) + s7_int_abs(int_vector_element(key, 1))));
+    return((uint32_t)(s7_int_abs(int_vector_element(key, 0))));
+  return((uint32_t)(vector_length(key) + s7_int_abs(int_vector_element(key, 0)) + s7_int_abs(int_vector_element(key, 1))));
 }
 
-static unsigned int hash_map_float_vector(s7_scheme *sc, s7_pointer table, s7_pointer key)
+static uint32_t hash_map_float_vector(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   if (vector_length(key) == 0)
     return(0);
   if (vector_length(key) == 1)
     return(hash_float_location(float_vector_element(key, 0)));
-  return((unsigned int)(vector_length(key) + hash_float_location(float_vector_element(key, 0)) + hash_float_location(float_vector_element(key, 1))));
+  return((uint32_t)(vector_length(key) + hash_float_location(float_vector_element(key, 0)) + hash_float_location(float_vector_element(key, 1))));
 }
 
-static unsigned int hash_map_vector(s7_scheme *sc, s7_pointer table, s7_pointer key)
+static uint32_t hash_map_vector(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   if ((vector_length(key) == 0) ||
       (is_sequence(vector_element(key, 0))))
@@ -36266,15 +36288,15 @@ static unsigned int hash_map_vector(s7_scheme *sc, s7_pointer table, s7_pointer
   return(vector_length(key) + hash_loc(sc, table, vector_element(key, 0)) + hash_loc(sc, table, vector_element(key, 1)));
 }
 
-static unsigned int hash_map_eq(s7_scheme *sc, s7_pointer table, s7_pointer key)
+static uint32_t hash_map_eq(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
-  int x;
+  int32_t x;
   x = heap_location(key);
   if (x < 0) return(-x);
   return(x);
 }
 
-static unsigned int hash_map_closure(s7_scheme *sc, s7_pointer table, s7_pointer key)
+static uint32_t hash_map_closure(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   s7_pointer f, old_e, args, body;
 
@@ -36292,7 +36314,7 @@ static unsigned int hash_map_closure(s7_scheme *sc, s7_pointer table, s7_pointer
   return(integer(sc->value));
 }
 
-static unsigned int hash_map_c_function(s7_scheme *sc, s7_pointer table, s7_pointer key)
+static uint32_t hash_map_c_function(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   s7_function f;
   f = c_function_call(hash_table_procedures_mapper(table));
@@ -36300,7 +36322,7 @@ static unsigned int hash_map_c_function(s7_scheme *sc, s7_pointer table, s7_poin
   return(integer(f(sc, sc->t1_1)));
 }
 
-static unsigned int hash_map_let(s7_scheme *sc, s7_pointer table, s7_pointer key)
+static uint32_t hash_map_let(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   /* lets are equal if same symbol/value pairs, independent of order, taking into account shadowing
    *   (length (inlet 'a 1 'a 2)) = 2
@@ -36310,7 +36332,7 @@ static unsigned int hash_map_let(s7_scheme *sc, s7_pointer table, s7_pointer key
    *   is not the same as equal?  Surely anyone using lets as keys wants eq?
    */
   s7_pointer slot;
-  int slots;
+  int32_t slots;
 
   if ((key == sc->rootlet) ||
       (!is_slot(let_slots(key))))
@@ -36343,14 +36365,14 @@ static unsigned int hash_map_let(s7_scheme *sc, s7_pointer table, s7_pointer key
   return(slots);
 }
 
-static unsigned int hash_map_pair(s7_scheme *sc, s7_pointer table, s7_pointer key)
+static uint32_t hash_map_pair(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   /* len+loc(car) is not horrible, but it means (for example) every list '(set! ...) is hashed to the same location,
    *   so at least we need to take cadr into account if possible.  Better would combine the list_length(max 5 == safe_strlen5?) call
    *   with stats like symbols/pairs/constants at top level, then use those to spread it out over all the locs.
    */
   s7_pointer p1;
-  unsigned int loc = 0;
+  uint32_t loc = 0;
 
   if (!is_sequence(car(key)))
     loc = hash_loc(sc, table, car(key)) + 1;
@@ -36389,13 +36411,13 @@ static hash_entry_t *hash_int(s7_scheme *sc, s7_pointer table, s7_pointer key)
     {
       s7_int keyval;
       hash_entry_t *x;
-      unsigned int loc, hash_len;
+      uint32_t loc, hash_len;
 
       hash_len = hash_table_mask(table);
       keyval = integer(key);
       if (keyval < 0)
-	loc = (unsigned int)((-keyval) & hash_len);
-      else loc = (unsigned int)(keyval & hash_len); 
+	loc = (uint32_t)((-keyval) & hash_len);
+      else loc = (uint32_t)(keyval & hash_len); 
       /* I think this assumes hash_map_int is using s7_int_abs (and high order bits are ignored) */
 
       for (x = hash_table_element(table, loc); x; x = x->next)
@@ -36411,8 +36433,8 @@ static hash_entry_t *hash_string(s7_scheme *sc, s7_pointer table, s7_pointer key
   if (is_string(key))
     {
       hash_entry_t *x;
-      unsigned int hash_len, key_len;
-      unsigned long long int hash;
+      uint32_t hash_len, key_len;
+      uint64_t hash;
       const char *key_str;
 
       key_len = string_length(key);
@@ -36448,7 +36470,7 @@ static hash_entry_t *hash_ci_string(s7_scheme *sc, s7_pointer table, s7_pointer
   if (is_string(key))
     {
       hash_entry_t *x;
-      unsigned int hash, hash_len;
+      uint32_t hash, hash_len;
 
       hash_len = hash_table_mask(table);
       hash = hash_map_ci_string(sc, table, key);
@@ -36465,7 +36487,7 @@ static hash_entry_t *hash_ci_char(s7_scheme *sc, s7_pointer table, s7_pointer ke
   if (s7_is_character(key))
     {
       hash_entry_t *x;
-      unsigned int hash_len, loc;
+      uint32_t hash_len, loc;
 
       hash_len = hash_table_mask(table);
       loc = hash_loc(sc, table, key) & hash_len;
@@ -36478,7 +36500,7 @@ static hash_entry_t *hash_ci_char(s7_scheme *sc, s7_pointer table, s7_pointer ke
 }
 #endif
 
-static hash_entry_t *hash_float_1(s7_scheme *sc, s7_pointer table, unsigned int loc, s7_double keyval)
+static hash_entry_t *hash_float_1(s7_scheme *sc, s7_pointer table, uint32_t loc, s7_double keyval)
 {
   hash_entry_t *x;
   bool look_for_nan;
@@ -36514,7 +36536,7 @@ static hash_entry_t *hash_float(s7_scheme *sc, s7_pointer table, s7_pointer key)
   if (type(key) == T_REAL)
     {
       s7_double keyval;
-      unsigned int hash_len, loc;
+      uint32_t hash_len, loc;
       
       hash_len = hash_table_mask(table);
       keyval = real(key);
@@ -36526,7 +36548,7 @@ static hash_entry_t *hash_float(s7_scheme *sc, s7_pointer table, s7_pointer key)
 }
 
 
-static hash_entry_t *hash_complex_1(s7_scheme *sc, s7_pointer table, unsigned int loc, s7_pointer key)
+static hash_entry_t *hash_complex_1(s7_scheme *sc, s7_pointer table, uint32_t loc, s7_pointer key)
 {
   hash_entry_t *x;
   for (x = hash_table_element(table, loc); x; x = x->next)
@@ -36552,7 +36574,7 @@ static hash_entry_t *hash_equal_complex(s7_scheme *sc, s7_pointer table, s7_poin
 static hash_entry_t *hash_equal_syntax(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   hash_entry_t *x;
-  unsigned int loc;
+  uint32_t loc;
   loc = hash_loc(sc, table, key) & hash_table_mask(table);
   for (x = hash_table_element(table, loc); x; x = x->next)
     if ((is_syntax(x->key)) &&
@@ -36565,7 +36587,7 @@ static hash_entry_t *hash_equal_syntax(s7_scheme *sc, s7_pointer table, s7_point
 static hash_entry_t *hash_equal_eq(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   hash_entry_t *x;
-  unsigned int loc;
+  uint32_t loc;
   loc = hash_loc(sc, table, key) & hash_table_mask(table);
   for (x = hash_table_element(table, loc); x; x = x->next)
     if (x->key == key)
@@ -36577,7 +36599,7 @@ static hash_entry_t *hash_equal_eq(s7_scheme *sc, s7_pointer table, s7_pointer k
 static hash_entry_t *hash_equal_any(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   hash_entry_t *x;
-  unsigned int loc;
+  uint32_t loc;
   loc = hash_loc(sc, table, key) & hash_table_mask(table);
 
   /* we can get into an infinite loop here, but it requires 2 hash tables that are members of each other
@@ -36608,7 +36630,7 @@ static hash_entry_t *hash_equal(s7_scheme *sc, s7_pointer table, s7_pointer key)
 static hash_entry_t *hash_morally_equal(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   hash_entry_t *x;
-  unsigned int loc;
+  uint32_t loc;
   loc = hash_loc(sc, table, key) & hash_table_mask(table);
 
   for (x = hash_table_element(table, loc); x; x = x->next)
@@ -36624,7 +36646,7 @@ static hash_entry_t *hash_morally_equal(s7_scheme *sc, s7_pointer table, s7_poin
 static hash_entry_t *hash_c_function(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   hash_entry_t *x;
-  unsigned int hash_len, loc;
+  uint32_t hash_len, loc;
   s7_function f;
 
   f = c_function_call(hash_table_procedures_checker(table));
@@ -36646,7 +36668,7 @@ static hash_entry_t *hash_eq(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   /* explicit eq? as hash equality func or (for example) symbols as keys */
   hash_entry_t *x;
-  unsigned int hash_len, loc;
+  uint32_t hash_len, loc;
 
   hash_len = hash_table_mask(table);
   loc = hash_loc(sc, table, key) & hash_len;
@@ -36661,7 +36683,7 @@ static hash_entry_t *hash_eq(s7_scheme *sc, s7_pointer table, s7_pointer key)
 static hash_entry_t *hash_eqv(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   hash_entry_t *x;
-  unsigned int hash_len, loc;
+  uint32_t hash_len, loc;
 
   hash_len = hash_table_mask(table);
   loc = hash_loc(sc, table, key) & hash_len;
@@ -36679,7 +36701,7 @@ static hash_entry_t *hash_number(s7_scheme *sc, s7_pointer table, s7_pointer key
   if (is_number(key))
     {
       hash_entry_t *x;
-      unsigned int hash_len, loc;
+      uint32_t hash_len, loc;
 
       hash_len = hash_table_mask(table);
       loc = hash_loc(sc, table, key) & hash_len;
@@ -36722,7 +36744,7 @@ static hash_entry_t *hash_char(s7_scheme *sc, s7_pointer table, s7_pointer key)
 static hash_entry_t *hash_closure(s7_scheme *sc, s7_pointer table, s7_pointer key)
 {
   hash_entry_t *x;
-  unsigned int hash_len, loc;
+  uint32_t hash_len, loc;
   s7_pointer f, args, body, old_e;
 
   f = hash_table_procedures_checker(table);
@@ -36758,7 +36780,7 @@ static hash_entry_t *hash_closure(s7_scheme *sc, s7_pointer table, s7_pointer ke
 static s7_pointer remove_from_hash_table(s7_scheme *sc, s7_pointer table, s7_pointer key, hash_entry_t *p)
 {
   hash_entry_t *x;
-  unsigned int hash_len, loc;
+  uint32_t hash_len, loc;
 
   hash_len = hash_table_mask(table);
 #if DEBUGGING
@@ -36820,7 +36842,7 @@ s7_pointer s7_make_hash_table(s7_scheme *sc, s7_int size)
     }
 
   els = (hash_entry_t **)calloc(size, sizeof(hash_entry_t *));
-  if (!els) return(s7_error(sc, make_symbol(sc, "out-of-memory"), set_elist_1(sc, make_string_wrapper(sc, "make-hash-table allocation failed!"))));
+  if (!els) return(s7_error(sc, make_symbol(sc, "out-of-memory"), set_elist_1(sc, s7_make_string_wrapper(sc, "make-hash-table allocation failed!"))));
 
   new_cell(sc, table, T_HASH_TABLE | T_SAFE_PROCEDURE);
   hash_table_mask(table) = size - 1;
@@ -36858,7 +36880,7 @@ static s7_pointer g_make_hash_table(s7_scheme *sc, s7_pointer args)
 	}
       size = s7_integer(p);
       if (size <= 0)                      /* we need s7_int here to catch (make-hash-table most-negative-fixnum) etc */
-	return(simple_out_of_range(sc, sc->make_hash_table_symbol, p, make_string_wrapper(sc, "should be a positive integer")));
+	return(simple_out_of_range(sc, sc->make_hash_table_symbol, p, s7_make_string_wrapper(sc, "should be a positive integer")));
       if (size > sc->max_vector_length)
 	return(simple_out_of_range(sc, sc->make_hash_table_symbol, p, its_too_large_string));
 
@@ -36930,7 +36952,7 @@ static s7_pointer g_make_hash_table(s7_scheme *sc, s7_pointer args)
 		  hash_table_mapper(ht) = morally_equal_hash_map;
 		  return(ht);
 		}
-	      return(wrong_type_argument_with_type(sc, sc->make_hash_table_symbol, 3, proc, make_string_wrapper(sc, "a hash function")));
+	      return(wrong_type_argument_with_type(sc, sc->make_hash_table_symbol, 3, proc, s7_make_string_wrapper(sc, "a hash function")));
 	    }
 	  /* proc not c_function */
 	  else
@@ -36955,7 +36977,7 @@ static s7_pointer g_make_hash_table(s7_scheme *sc, s7_pointer args)
 			      (is_pair(sig)) &&
 			      (car(sig) != sc->is_boolean_symbol))
 			    return(wrong_type_argument_with_type(sc, sc->make_hash_table_symbol, 3, proc, 
-								 make_string_wrapper(sc, "equality function should return a boolean")));
+								 s7_make_string_wrapper(sc, "equality function should return a boolean")));
 			  hash_table_checker(ht) = hash_c_function;
 			}
 		      else hash_table_checker(ht) = hash_closure;
@@ -36966,7 +36988,7 @@ static s7_pointer g_make_hash_table(s7_scheme *sc, s7_pointer args)
 			      (is_pair(sig)) &&
 			      (car(sig) != sc->is_integer_symbol))
 			    return(wrong_type_argument_with_type(sc, sc->make_hash_table_symbol, 3, proc, 
-								 make_string_wrapper(sc, "mapping function should return an integer")));
+								 s7_make_string_wrapper(sc, "mapping function should return an integer")));
 			  hash_table_mapper(ht) = c_function_hash_map;
 			}
 		      else hash_table_mapper(ht) = closure_hash_map;
@@ -36975,7 +36997,7 @@ static s7_pointer g_make_hash_table(s7_scheme *sc, s7_pointer args)
 		    }
 		}
 	      return(wrong_type_argument_with_type(sc, sc->make_hash_table_symbol, 3, proc, 
-						   make_string_wrapper(sc, "a cons of two functions")));
+						   s7_make_string_wrapper(sc, "a cons of two functions")));
 	    }
 	}
     }
@@ -36985,7 +37007,7 @@ static s7_pointer g_make_hash_table(s7_scheme *sc, s7_pointer args)
 
 void init_hash_maps(void)
 {
-  int i;
+  int32_t i;
   
   default_hash_map = (hash_map_t *)malloc(NUM_TYPES * sizeof(hash_map_t));
   eq_hash_map = (hash_map_t *)malloc(NUM_TYPES * sizeof(hash_map_t));
@@ -37085,11 +37107,11 @@ void init_hash_maps(void)
 }
 
 
-static unsigned int resize_hash_table(s7_scheme *sc, s7_pointer table)
+static uint32_t resize_hash_table(s7_scheme *sc, s7_pointer table)
 {
   /* resize the table */
-  unsigned int hash_len, loc;
-  int i, old_size, new_size;
+  uint32_t hash_len, loc;
+  int32_t i, old_size, new_size;
   hash_entry_t **new_els, **old_els;
   
   old_size = hash_table_mask(table) + 1;
@@ -37213,7 +37235,7 @@ static s7_pointer hash_table_ref_p_pp_direct(s7_pointer p1, s7_pointer p2)
 
 /* -------------------------------- hash-table-set! -------------------------------- */
 
-static void hash_table_set_function(s7_pointer table, int typ)
+static void hash_table_set_function(s7_pointer table, int32_t typ)
 {
   if ((hash_table_checker(table) != hash_equal) &&
       (hash_table_checker(table) != default_hash_checks[typ]))
@@ -37224,6 +37246,14 @@ static void hash_table_set_function(s7_pointer table, int typ)
     }
 }
 
+static void extend_hash_free_list(void)
+{
+  int32_t i;
+  hash_entry_t *p;
+  hash_free_list = (hash_entry_t *)malloc(16 * sizeof(hash_entry_t));
+  for (p = hash_free_list, i = 0; i < 15; i++) {p->next = p + 1; p++;}
+  p->next = NULL;
+}
 
 s7_pointer s7_hash_table_set(s7_scheme *sc, s7_pointer table, s7_pointer key, s7_pointer value)
 {
@@ -37238,7 +37268,7 @@ s7_pointer s7_hash_table_set(s7_scheme *sc, s7_pointer table, s7_pointer key, s7
     }
   else 
     {
-      unsigned int hash_len, raw_hash, loc;
+      uint32_t hash_len, raw_hash, loc;
       hash_entry_t *p;
       if (value == sc->F) return(sc->F);
       
@@ -37251,12 +37281,7 @@ s7_pointer s7_hash_table_set(s7_scheme *sc, s7_pointer table, s7_pointer key, s7
       raw_hash = hash_loc(sc, table, key);
 
       if (!hash_free_list)
-	{
-	  int i;
-	  hash_free_list = (hash_entry_t *)malloc(16 * sizeof(hash_entry_t));
-	  for (p = hash_free_list, i = 0; i < 15; i++) {p->next = p + 1; p++;}
-	  p->next = NULL;
-	}
+	extend_hash_free_list();
 
       p = hash_free_list;
       hash_free_list = p->next;
@@ -37305,7 +37330,7 @@ static s7_pointer g_hash_table(s7_scheme *sc, s7_pointer args)
 That is, (hash-table '(\"hi\" . 3) (\"ho\" . 32)) returns a new hash-table with the two key/value pairs preinstalled."
   #define Q_hash_table s7_make_circular_signature(sc, 1, 2, sc->is_hash_table_symbol, sc->is_list_symbol)
 
-  int len;
+  int32_t len;
   s7_pointer x, ht;
 
   /* this accepts repeated keys: (hash-table '(a . 1) '(a . 1)) */
@@ -37317,7 +37342,7 @@ That is, (hash-table '(\"hi\" . 3) (\"ho\" . 32)) returns a new hash-table with
   ht = s7_make_hash_table(sc, (len > sc->default_hash_table_length) ? len : sc->default_hash_table_length);
   if (len > 0)
     {
-      unsigned int ht_loc;
+      uint32_t ht_loc;
       ht_loc = s7_gc_protect(sc, ht); /* hash_table_set can cons, so we need to protect this */
       for (x = args; is_pair(x); x = cdr(x))
 	if (is_pair(car(x)))
@@ -37335,18 +37360,18 @@ static s7_pointer g_hash_table_star(s7_scheme *sc, s7_pointer args)
 That is, (hash-table* 'a 1 'b 2) returns a new hash-table with the two key/value pairs preinstalled."
   #define Q_hash_table_star s7_make_circular_signature(sc, 1, 2, sc->is_hash_table_symbol, sc->T)
 
-  int len;
+  int32_t len;
   s7_pointer ht;
 
   len = safe_list_length(sc, args);
   if (len & 1) 
-    return(s7_error(sc, sc->wrong_number_of_args_symbol, set_elist_2(sc, make_string_wrapper(sc, "hash-table* got an odd number of arguments: ~S"), args)));
+    return(s7_error(sc, sc->wrong_number_of_args_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "hash-table* got an odd number of arguments: ~S"), args)));
   len /= 2;
 
   ht = s7_make_hash_table(sc, (len > sc->default_hash_table_length) ? len : sc->default_hash_table_length);
   if (len > 0)
     {
-      unsigned int ht_loc;
+      uint32_t ht_loc;
       s7_pointer x, y;
       ht_loc = s7_gc_protect(sc, ht); /* hash_table_set can cons, so we need to protect this */
 
@@ -37358,9 +37383,9 @@ That is, (hash-table* 'a 1 'b 2) returns a new hash-table with the two key/value
   return(ht);
 }
 
-static s7_pointer hash_table_copy(s7_scheme *sc, s7_pointer old_hash, s7_pointer new_hash, unsigned int start, unsigned int end)
+static s7_pointer hash_table_copy(s7_scheme *sc, s7_pointer old_hash, s7_pointer new_hash, uint32_t start, uint32_t end)
 {
-  unsigned int i, old_len, new_len, count = 0;
+  uint32_t i, old_len, new_len, count = 0;
   hash_entry_t **old_lists, **new_lists;
   hash_entry_t *x, *p;
 
@@ -37378,7 +37403,7 @@ static s7_pointer hash_table_copy(s7_scheme *sc, s7_pointer old_hash, s7_pointer
 	  for (i = 0; i < old_len; i++)
 	    for (x = old_lists[i]; x; x = x->next)
 	      {
-		unsigned int loc;
+		uint32_t loc;
 		loc = x->raw_hash & new_len;
 		p = make_hash_entry(x->key, x->value, x->raw_hash);
 		p->next = new_lists[loc];
@@ -37397,7 +37422,7 @@ static s7_pointer hash_table_copy(s7_scheme *sc, s7_pointer old_hash, s7_pointer
 	      }
 	    if (count >= start)
 	      {
-		unsigned int loc;
+		uint32_t loc;
 		loc = x->raw_hash & new_len;
 		p = make_hash_entry(x->key, x->value, x->raw_hash);
 		p->next = new_lists[loc];
@@ -37423,7 +37448,7 @@ static s7_pointer hash_table_copy(s7_scheme *sc, s7_pointer old_hash, s7_pointer
 	      y->value = x->value;
 	    else
 	      {
-		unsigned int loc;
+		uint32_t loc;
 		loc = x->raw_hash & new_len;
 		p = make_hash_entry(x->key, x->value, x->raw_hash);
 		p->next = new_lists[loc];
@@ -37445,7 +37470,7 @@ static s7_pointer hash_table_fill(s7_scheme *sc, s7_pointer args)
   val = cadr(args);
   if (hash_table_entries(table) > 0)
     {
-      int len;
+      int32_t len;
       hash_entry_t **entries;
       entries = hash_table_elements(table);
       len = hash_table_mask(table) + 1;
@@ -37496,7 +37521,7 @@ static s7_pointer hash_table_fill(s7_scheme *sc, s7_pointer args)
 	}
       else
 	{
-	  int i;
+	  int32_t i;
 	  hash_entry_t *x;
 	  for (i = 0; i < len; i++)
 	    for (x = entries[i]; x; x = x->next)
@@ -37510,10 +37535,10 @@ static s7_pointer hash_table_fill(s7_scheme *sc, s7_pointer args)
 
 static s7_pointer hash_table_reverse(s7_scheme *sc, s7_pointer old_hash)
 {
-  int i, len;
+  int32_t i, len;
   s7_pointer new_hash;
   hash_entry_t **old_lists;
-  unsigned int gc_loc;
+  uint32_t gc_loc;
 
   len = hash_table_mask(old_hash) + 1;
   new_hash = s7_make_hash_table(sc, len);
@@ -37541,7 +37566,7 @@ bool s7_is_function(s7_pointer p)
 }
 
 
-static s7_pointer fallback_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer fallback_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   return(f);
 }
@@ -37552,12 +37577,12 @@ static void s7_function_set_class(s7_pointer f, s7_pointer base_f)
   c_function_set_base(f, base_f);
 }
 
-static int c_functions = 0;
+static int32_t c_functions = 0;
 
-s7_pointer s7_make_function(s7_scheme *sc, const char *name, s7_function f, int required_args, int optional_args, bool rest_arg, const char *doc)
+s7_pointer s7_make_function(s7_scheme *sc, const char *name, s7_function f, int32_t required_args, int32_t optional_args, bool rest_arg, const char *doc)
 {
   c_proc_t *ptr;
-  unsigned int ftype = T_C_FUNCTION;
+  uint32_t ftype = T_C_FUNCTION;
   s7_pointer x;
 
   x = alloc_pointer();
@@ -37611,7 +37636,7 @@ s7_pointer s7_make_function(s7_scheme *sc, const char *name, s7_function f, int
 }
 
 s7_pointer s7_make_safe_function(s7_scheme *sc, const char *name, s7_function f, 
-				 int required_args, int optional_args, bool rest_arg, const char *doc)
+				 int32_t required_args, int32_t optional_args, bool rest_arg, const char *doc)
 {
   s7_pointer p;
   p = s7_make_function(sc, name, f, required_args, optional_args, rest_arg, doc);
@@ -37621,7 +37646,7 @@ s7_pointer s7_make_safe_function(s7_scheme *sc, const char *name, s7_function f,
 
 
 s7_pointer s7_make_typed_function(s7_scheme *sc, const char *name, s7_function f, 
-				  int required_args, int optional_args, bool rest_arg, const char *doc, s7_pointer signature)
+				  int32_t required_args, int32_t optional_args, bool rest_arg, const char *doc, s7_pointer signature)
 {
   s7_pointer func;
   func = s7_make_function(sc, name, f, required_args, optional_args, rest_arg, doc);
@@ -37689,7 +37714,7 @@ static s7_pointer g_procedure_source(s7_scheme *sc, s7_pointer args)
     {
       p = s7_symbol_value(sc, p);
       if (p == sc->undefined)
-	return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, make_string_wrapper(sc, "procedure-source arg, '~S, is unbound"), p)));
+	return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "procedure-source arg, '~S, is unbound"), p)));
     }
 
   if ((is_c_function(p)) || (is_c_macro(p)))
@@ -37709,7 +37734,7 @@ static s7_pointer g_procedure_source(s7_scheme *sc, s7_pointer args)
     }
 
   if (!is_procedure(p))
-    return(simple_wrong_type_argument_with_type(sc, sc->procedure_source_symbol, p, make_string_wrapper(sc, "a procedure or a macro")));
+    return(simple_wrong_type_argument_with_type(sc, sc->procedure_source_symbol, p, s7_make_string_wrapper(sc, "a procedure or a macro")));
   return(sc->nil);
 }
 
@@ -37737,12 +37762,12 @@ static s7_pointer g_funclet(s7_scheme *sc, s7_pointer args)
     {
       p = s7_symbol_value(sc, p);
       if (p == sc->undefined)
-	return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, make_string_wrapper(sc, "funclet arg, '~S, is unbound"), car(args)))); /* not p here */
+	return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "funclet arg, '~S, is unbound"), car(args)))); /* not p here */
     }
   check_method(sc, p, sc->funclet_symbol, args);
 
   if (!((is_procedure_or_macro(p)) || (is_c_object(p))))
-    return(simple_wrong_type_argument_with_type(sc, sc->funclet_symbol, p, make_string_wrapper(sc, "a procedure or a macro")));
+    return(simple_wrong_type_argument_with_type(sc, sc->funclet_symbol, p, s7_make_string_wrapper(sc, "a procedure or a macro")));
 
   e = find_let(sc, p);
   if ((is_null(e)) &&
@@ -37754,7 +37779,7 @@ static s7_pointer g_funclet(s7_scheme *sc, s7_pointer args)
 
 
 s7_pointer s7_define_function(s7_scheme *sc, const char *name, s7_function fnc,
-			      int required_args, int optional_args, bool rest_arg, const char *doc)
+			      int32_t required_args, int32_t optional_args, bool rest_arg, const char *doc)
 {
   s7_pointer func, sym;
   func = s7_make_function(sc, name, fnc, required_args, optional_args, rest_arg, doc);
@@ -37765,7 +37790,7 @@ s7_pointer s7_define_function(s7_scheme *sc, const char *name, s7_function fnc,
 
 
 s7_pointer s7_define_safe_function(s7_scheme *sc, const char *name, s7_function fnc,
-				   int required_args, int optional_args, bool rest_arg, const char *doc)
+				   int32_t required_args, int32_t optional_args, bool rest_arg, const char *doc)
 {
   /* returns (string->symbol name), not the c_proc_t func */
   s7_pointer func, sym;
@@ -37777,7 +37802,7 @@ s7_pointer s7_define_safe_function(s7_scheme *sc, const char *name, s7_function
 
 
 s7_pointer s7_define_typed_function(s7_scheme *sc, const char *name, s7_function fnc,
-				    int required_args, int optional_args, bool rest_arg, 
+				    int32_t required_args, int32_t optional_args, bool rest_arg, 
 				    const char *doc, s7_pointer signature)
 {
   /* returns (string->symbol name), not the c_proc_t func */
@@ -37790,7 +37815,7 @@ s7_pointer s7_define_typed_function(s7_scheme *sc, const char *name, s7_function
 
 
 s7_pointer s7_define_unsafe_typed_function(s7_scheme *sc, const char *name, s7_function fnc,
-					   int required_args, int optional_args, bool rest_arg, 
+					   int32_t required_args, int32_t optional_args, bool rest_arg, 
 					   const char *doc, s7_pointer signature)
 {
   /* returns (string->symbol name), not the c_proc_t func */
@@ -37804,7 +37829,7 @@ s7_pointer s7_define_unsafe_typed_function(s7_scheme *sc, const char *name, s7_f
 
 
 s7_pointer s7_define_macro(s7_scheme *sc, const char *name, s7_function fnc,
-			   int required_args, int optional_args, bool rest_arg, const char *doc)
+			   int32_t required_args, int32_t optional_args, bool rest_arg, const char *doc)
 {
   s7_pointer func, sym;
   func = s7_make_function(sc, name, fnc, required_args, optional_args, rest_arg, doc);
@@ -37843,12 +37868,12 @@ static s7_pointer s7_macroexpand(s7_scheme *sc, s7_pointer mac, s7_pointer args)
 }
 
 
-static void define_function_star_1(s7_scheme *sc, const char *name, s7_function fnc, const char *arglist, const char *doc, bool safe)
+s7_pointer s7_make_function_star(s7_scheme *sc, const char *name, s7_function fnc, const char *arglist, const char *doc)
 {
-  s7_pointer func, sym, local_args, p;
+  s7_pointer func, local_args, p;
   char *internal_arglist;
-  int i, len, n_args;
-  unsigned int gc_loc;
+  int32_t i, len, n_args;
+  uint32_t gc_loc;
   s7_pointer *names, *defaults;
 
   len = safe_strlen(arglist) + 8;
@@ -37860,15 +37885,8 @@ static void define_function_star_1(s7_scheme *sc, const char *name, s7_function
   n_args = safe_list_length(sc, local_args);  /* currently rest arg not supported, and we don't notice :allow-other-keys etc */
 
   func = s7_make_function(sc, name, fnc, 0, n_args, false, doc);
-  if (safe)
-    set_type(func, T_C_FUNCTION_STAR | T_SAFE_PROCEDURE);
-  else set_type(func, T_C_FUNCTION_STAR);
-
-  c_function_call_args(func) = make_list(sc, n_args, sc->F);
-  s7_remove_from_heap(sc, c_function_call_args(func));
-
-  sym = make_symbol(sc, name);
-  s7_define(sc, sc->nil, sym, func);
+  set_type(func, T_C_FUNCTION_STAR);
+  c_function_call_args(func) = NULL;
 
   names = (s7_pointer *)malloc(n_args * sizeof(s7_pointer));
   c_function_arg_names(func) = names;
@@ -37882,7 +37900,7 @@ static void define_function_star_1(s7_scheme *sc, const char *name, s7_function
       arg = car(p);
       if (is_pair(arg))
 	{
-	  names[i] = s7_make_keyword(sc, symbol_name(car(arg)));
+	  names[i] = symbol_to_keyword(sc, car(arg));
 	  defaults[i] = cadr(arg);
 	  s7_remove_from_heap(sc, cadr(arg));
 	  if ((is_symbol(defaults[i])) ||
@@ -37894,83 +37912,48 @@ static void define_function_star_1(s7_scheme *sc, const char *name, s7_function
 	}
       else
 	{
-	  names[i] = s7_make_keyword(sc, symbol_name(arg));
+	  names[i] = symbol_to_keyword(sc, arg);
 	  defaults[i] = sc->F;
 	}
     }
   s7_gc_unprotect_at(sc, gc_loc);
+  return(func);
 }
 
-void s7_define_function_star(s7_scheme *sc, const char *name, s7_function fnc, const char *arglist, const char *doc)
+s7_pointer s7_make_safe_function_star(s7_scheme *sc, const char *name, s7_function fnc, const char *arglist, const char *doc)
 {
-  define_function_star_1(sc, name, fnc, arglist, doc, false);
+  s7_pointer func;
+  func = s7_make_function_star(sc, name, fnc, arglist, doc);
+  set_type(func, T_C_FUNCTION_STAR | T_SAFE_PROCEDURE);
+  c_function_call_args(func) = make_list(sc, c_function_optional_args(func), sc->F);
+  s7_remove_from_heap(sc, c_function_call_args(func));
+  return(func);
 }
 
-void s7_define_safe_function_star(s7_scheme *sc, const char *name, s7_function fnc, const char *arglist, const char *doc)
+static void define_function_star_1(s7_scheme *sc, const char *name, s7_function fnc, const char *arglist, const char *doc, bool safe, s7_pointer signature)
 {
-  define_function_star_1(sc, name, fnc, arglist, doc, true);
+  s7_pointer func, sym;
+  if (safe)
+    func = s7_make_safe_function_star(sc, name, fnc, arglist, doc);
+  else func = s7_make_function_star(sc, name, fnc, arglist, doc);
+  sym = make_symbol(sc, name);
+  s7_define(sc, sc->nil, sym, func);
+  if (signature) c_function_signature(func) = signature;
 }
 
-
-static s7_pointer set_c_function_call_args(s7_scheme *sc)
+void s7_define_function_star(s7_scheme *sc, const char *name, s7_function fnc, const char *arglist, const char *doc)
 {
-  int i, j, n_args;
-  s7_pointer arg, par, call_args, func;
-  s7_pointer *df;
-
-  func = sc->code;
-  n_args = c_function_all_args(func);
-  call_args = c_function_call_args(func);
-
-  df = c_function_arg_defaults(func);
-  for (i = 0, par = call_args; is_pair(par); i++, par = cdr(par))
-    {
-      clear_checked(par);
-      set_car(par, df[i]);
-    }
-
-  df = c_function_arg_names(func);
-  for (i = 0, arg = sc->args, par = call_args; (i < n_args) && (is_pair(arg)); i++, arg = cdr(arg), par = cdr(par))
-    {
-      if (!is_keyword(car(arg)))
-	{
-	  if (is_checked(par))
-	    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_3(sc, make_string_wrapper(sc, "parameter set twice, ~S in ~S"), car(par), sc->args)));
-	  set_checked(par);
-	  set_car(par, car(arg));
-	}
-      else
-	{
-	  s7_pointer p;
-	  for (j = 0, p = call_args; j < n_args; j++, p = cdr(p))
-	    if (df[j] == car(arg))
-	      break;
-	  if (j == n_args)
-	    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, make_string_wrapper(sc, "~A: not a parameter name?"), car(arg))));
-	  if (is_checked(p))
-	    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_3(sc, make_string_wrapper(sc, "parameter set twice, ~S in ~S"), car(p), sc->args)));
-	  set_checked(p);
-	  arg = cdr(arg);
-	  set_car(p, car(arg));
-	}
-    }
+  define_function_star_1(sc, name, fnc, arglist, doc, false, NULL);
+}
 
-  if (!is_null(arg))
-    return(s7_error(sc, sc->wrong_number_of_args_symbol, set_elist_3(sc, sc->too_many_arguments_string, func, sc->args)));
+void s7_define_safe_function_star(s7_scheme *sc, const char *name, s7_function fnc, const char *arglist, const char *doc)
+{
+  define_function_star_1(sc, name, fnc, arglist, doc, true, NULL);
+}
 
-  if (!has_simple_defaults(func))
-    for (i = 0, par = call_args; i < n_args; i++, par = cdr(par))
-      if (!is_checked(par))
-	{
-	  if (is_symbol(car(par)))
-	    set_car(par, find_symbol_checked(sc, car(par)));
-	  else
-	    {
-	      if (is_pair(car(par)))
-		set_car(par, s7_eval(sc, car(par), sc->nil));
-	    }
-	}
-  return(call_args);
+void s7_define_typed_function_star(s7_scheme *sc, const char *name, s7_function fnc, const char *arglist, const char *doc, s7_pointer signature)
+{
+  define_function_star_1(sc, name, fnc, arglist, doc, true, signature);
 }
 
 
@@ -38167,7 +38150,7 @@ int s7_new_type(const char *name,
                 s7_pointer (*ref)(s7_scheme *sc, s7_pointer obj, s7_pointer args),
                 s7_pointer (*set)(s7_scheme *sc, s7_pointer obj, s7_pointer args))
 {
-  int tag;
+  int32_t tag;
   tag = num_object_types++;
   if (tag >= object_types_size)
     {
@@ -38221,7 +38204,7 @@ int s7_new_type_x(s7_scheme *sc,
 		  s7_pointer (*reverse)(s7_scheme *sc, s7_pointer args),
 		  s7_pointer (*fill)(s7_scheme *sc, s7_pointer args))
 {
-  int tag;
+  int32_t tag;
   tag = s7_new_type(name, print, free, equal, gc_mark, apply, set);
   if (length)
     object_types[tag]->length = length;
@@ -38252,7 +38235,7 @@ void *s7_object_value(s7_pointer obj)
 }
 
 
-void *s7_object_value_checked(s7_pointer obj, int type)
+void *s7_object_value_checked(s7_pointer obj, int32_t type)
 {
   if ((is_c_object(obj)) &&
       (c_object_type(obj) == type))
@@ -38261,7 +38244,7 @@ void *s7_object_value_checked(s7_pointer obj, int type)
 }
 
 
-void s7_set_object_print_readably(int type, char *(*printer)(s7_scheme *sc, void *val))
+void s7_set_object_print_readably(int32_t type, char *(*printer)(s7_scheme *sc, void *val))
 {
   object_types[type]->print_readably = printer;
 }
@@ -38275,7 +38258,7 @@ int s7_object_type(s7_pointer obj)
 }
 
 
-s7_pointer s7_make_object(s7_scheme *sc, int type, void *value)
+s7_pointer s7_make_object_with_let(s7_scheme *sc, int32_t type, void *value, s7_pointer let)
 {
   s7_pointer x;
   new_cell(sc, x, object_types[type]->outer_type);
@@ -38286,11 +38269,16 @@ s7_pointer s7_make_object(s7_scheme *sc, int type, void *value)
    */
   c_object_type(x) = type;
   c_object_value(x) = value;
-  c_object_set_let(x, sc->nil);
+  c_object_set_let(x, let);
   add_c_object(sc, x);
   return(x);
 }
 
+s7_pointer s7_make_object(s7_scheme *sc, int32_t type, void *value) 
+{
+  return(s7_make_object_with_let(sc, type, value, sc->nil));
+}
+
 
 s7_pointer s7_object_let(s7_pointer obj)
 {
@@ -38305,7 +38293,7 @@ s7_pointer s7_object_set_let(s7_pointer obj, s7_pointer e)
 }
 
 
-void s7_object_type_set_direct(int tag, 
+void s7_object_type_set_direct(int32_t tag, 
 			       s7_pointer (*dref)(s7_scheme *sc, s7_pointer obj, s7_int index), 
 			       s7_pointer (*dset)(s7_scheme *sc, s7_pointer obj, s7_int index, s7_pointer val))
 {
@@ -38354,14 +38342,14 @@ static s7_pointer object_copy(s7_scheme *sc, s7_pointer args)
 s7_pointer s7_dilambda(s7_scheme *sc,
 		       const char *name,
 		       s7_pointer (*getter)(s7_scheme *sc, s7_pointer args),
-		       int get_req_args, int get_opt_args,
+		       int32_t get_req_args, int32_t get_opt_args,
 		       s7_pointer (*setter)(s7_scheme *sc, s7_pointer args),
-		       int set_req_args, int set_opt_args,
+		       int32_t set_req_args, int32_t set_opt_args,
 		       const char *documentation)
 {
   s7_pointer get_func, set_func;
   char *internal_set_name;
-  int len;
+  int32_t len;
 
   len = 16 + safe_strlen(name);
   internal_set_name = (char *)malloc(len * sizeof(char));
@@ -38378,9 +38366,9 @@ s7_pointer s7_dilambda(s7_scheme *sc,
 s7_pointer s7_typed_dilambda(s7_scheme *sc,
 			     const char *name,
 			     s7_pointer (*getter)(s7_scheme *sc, s7_pointer args),
-			     int get_req_args, int get_opt_args,
+			     int32_t get_req_args, int32_t get_opt_args,
 			     s7_pointer (*setter)(s7_scheme *sc, s7_pointer args),
-			     int set_req_args, int set_opt_args,
+			     int32_t set_req_args, int32_t set_opt_args,
 			     const char *documentation,
 			     s7_pointer get_sig, s7_pointer set_sig)
 {
@@ -38422,12 +38410,6 @@ static s7_pointer c_set_setter(s7_scheme *sc, s7_pointer p, s7_pointer setter)
     case T_C_ANY_ARGS_FUNCTION:
     case T_C_OPT_ARGS_FUNCTION:
     case T_C_RST_ARGS_FUNCTION:
-      c_function_set_setter(p, setter);
-      if ((is_any_closure(setter)) ||
-	  (is_any_macro(setter)))
-	add_setter(sc, p, setter);
-      break;
-
     case T_C_FUNCTION_STAR:
       c_function_set_setter(p, setter);
       if ((is_any_closure(setter)) ||
@@ -38453,11 +38435,11 @@ static s7_pointer g_dilambda(s7_scheme *sc, s7_pointer args)
 
   getter = car(args);
   if (!is_any_procedure(getter))
-    return(wrong_type_argument_with_type(sc, sc->dilambda_symbol, 1, getter, make_string_wrapper(sc, "a procedure or macro")));
+    return(wrong_type_argument_with_type(sc, sc->dilambda_symbol, 1, getter, s7_make_string_wrapper(sc, "a procedure or macro")));
 
   setter = cadr(args);
   if (!is_any_procedure(setter))
-    return(wrong_type_argument_with_type(sc, sc->dilambda_symbol, 2, setter, make_string_wrapper(sc, "a procedure or macro")));
+    return(wrong_type_argument_with_type(sc, sc->dilambda_symbol, 2, setter, s7_make_string_wrapper(sc, "a procedure or macro")));
   
   c_set_setter(sc, getter, setter);
   return(getter);
@@ -38539,7 +38521,7 @@ static s7_pointer g_procedure_set_setter(s7_scheme *sc, s7_pointer args)
 }
 
 
-void s7_define_function_with_setter(s7_scheme *sc, const char *name, s7_function get_fnc, s7_function set_fnc, int req_args, int opt_args, const char *doc)
+void s7_define_function_with_setter(s7_scheme *sc, const char *name, s7_function get_fnc, s7_function set_fnc, int32_t req_args, int32_t opt_args, const char *doc)
 {
   s7_dilambda(sc, name, get_fnc, req_args, opt_args, set_fnc, req_args + 1, opt_args, doc);
 }
@@ -38551,7 +38533,7 @@ static s7_pointer closure_arity_to_cons(s7_scheme *sc, s7_pointer x, s7_pointer
 {
   /* x_args is unprocessed -- it is exactly the list as used in the closure[*] definition
    */
-  int len;
+  int32_t len;
 
   if (is_symbol(x_args))                    /* any number of args is ok */
     return(s7_cons(sc, small_int(0), max_arity));
@@ -38577,7 +38559,7 @@ static void closure_star_arity_1(s7_scheme *sc, s7_pointer x, s7_pointer args)
 	  else
 	    {
 	      s7_pointer p;
-	      int i;
+	      int32_t i;
 	      for (i = 0, p = args; is_pair(p); p = cdr(p))
 		{
 		  s7_pointer arg;
@@ -38607,12 +38589,12 @@ static s7_pointer closure_star_arity_to_cons(s7_scheme *sc, s7_pointer x, s7_poi
 }
 
 
-static int closure_arity_to_int(s7_scheme *sc, s7_pointer x)
+static int32_t closure_arity_to_int(s7_scheme *sc, s7_pointer x)
 {
   /* not lambda* here */
   if (closure_arity_unknown(x))
     {
-      int i;
+      int32_t i;
       s7_pointer b;
       for (i = 0, b = closure_args(x); is_pair(b); i++, b = cdr(b)) {};
       if (is_null(b))
@@ -38628,7 +38610,7 @@ static int closure_arity_to_int(s7_scheme *sc, s7_pointer x)
 }
 
 
-static int closure_star_arity_to_int(s7_scheme *sc, s7_pointer x)
+static int32_t closure_star_arity_to_int(s7_scheme *sc, s7_pointer x)
 {
   /* not lambda here */
   closure_star_arity_1(sc, x, closure_args(x));
@@ -38709,11 +38691,11 @@ static s7_pointer g_arity(s7_scheme *sc, s7_pointer args)
 }
 
 
-static bool closure_is_aritable(s7_scheme *sc, s7_pointer x, s7_pointer x_args, int args)
+static bool closure_is_aritable(s7_scheme *sc, s7_pointer x, s7_pointer x_args, int32_t args)
 {
   /* x_args is unprocessed -- it is exactly the list as used in the closure definition
    */
-  int len;
+  int32_t len;
 
   if (args == 0)
     return(!is_pair(x_args));
@@ -38733,7 +38715,7 @@ static bool closure_is_aritable(s7_scheme *sc, s7_pointer x, s7_pointer x_args,
 }
 
 
-static bool closure_star_is_aritable(s7_scheme *sc, s7_pointer x, s7_pointer x_args, int args)
+static bool closure_star_is_aritable(s7_scheme *sc, s7_pointer x, s7_pointer x_args, int32_t args)
 {
   if (is_symbol(x_args))
     return(true);
@@ -38744,7 +38726,7 @@ static bool closure_star_is_aritable(s7_scheme *sc, s7_pointer x, s7_pointer x_a
 }
 
 
-bool s7_is_aritable(s7_scheme *sc, s7_pointer x, int args)
+bool s7_is_aritable(s7_scheme *sc, s7_pointer x, int32_t args)
 {
   switch (type(x))
     {
@@ -38789,7 +38771,7 @@ bool s7_is_aritable(s7_scheme *sc, s7_pointer x, int args)
     case T_VECTOR:
       return((args > 0) &&
 	     (vector_length(x) > 0) &&   /* (#() 0) -> error */
-	     ((unsigned int)args <= vector_rank(x)));
+	     ((uint32_t)args <= vector_rank(x)));
 
     case T_LET:
       /* check_method(sc, x, sc->is_aritable_symbol, list_2(sc, x, s7_make_integer(sc, args))); */
@@ -38844,12 +38826,12 @@ static bool is_sequence_b(s7_pointer p) {return(is_simple_sequence(p));}
 
 /* -------------------------------- symbol-access ------------------------------------------------ */
 
-static unsigned int protect_accessor(s7_scheme *sc, s7_pointer acc)
+static uint32_t protect_accessor(s7_scheme *sc, s7_pointer acc)
 {
-  unsigned int loc;
+  uint32_t loc;
   if (sc->protected_accessors_size == sc->protected_accessors_loc)
     {
-      int i, new_size, size;
+      int32_t i, new_size, size;
       size = sc->protected_accessors_size;
       new_size = 2 * size;
       vector_elements(sc->protected_accessors) = (s7_pointer *)realloc(vector_elements(sc->protected_accessors), new_size * sizeof(s7_pointer));
@@ -38876,7 +38858,7 @@ s7_pointer s7_symbol_set_access(s7_scheme *sc, s7_pointer symbol, s7_pointer fun
 {
   if (slot_has_accessor(global_slot(symbol)))
     {
-      unsigned int index;
+      uint32_t index;
       index = symbol_global_accessor_index(symbol);
       if (index < sc->protected_accessors_size)
 	{
@@ -39016,7 +38998,7 @@ static s7_pointer bind_accessed_symbol(s7_scheme *sc, opcode_t op, s7_pointer sy
 	  set_car(sc->t2_2, new_value);
 	  new_value = c_function_call(func)(sc, sc->t2_1);
 	  if (new_value == sc->error_symbol)
- 	    return(s7_error(sc, sc->error_symbol, set_elist_3(sc, make_string_wrapper(sc, "can't bind ~S to ~S"), symbol, old_value)));
+ 	    return(s7_error(sc, sc->error_symbol, set_elist_3(sc, s7_make_string_wrapper(sc, "can't bind ~S to ~S"), symbol, old_value)));
 	}
       else
 	{
@@ -39136,7 +39118,10 @@ static bool unspecified_equal(s7_scheme *sc, s7_pointer x, s7_pointer y, shared_
 
 static bool c_pointer_equal(s7_scheme *sc, s7_pointer x, s7_pointer y, shared_info *ci, bool morally)
 {
-  return((s7_is_c_pointer(y)) && (raw_pointer(x) == raw_pointer(y)));
+  return((s7_is_c_pointer(y)) && 
+	 (raw_pointer(x) == raw_pointer(y)) &&
+	 (raw_pointer_type(x) == raw_pointer_type(y)) &&
+	 (raw_pointer_info(x) == raw_pointer_info(y)));    /* should these use s7_is_equal? */
 }
 
 static bool string_equal(s7_scheme *sc, s7_pointer x, s7_pointer y, shared_info *ci, bool morally)
@@ -39168,7 +39153,7 @@ static bool port_equal(s7_scheme *sc, s7_pointer x, s7_pointer y, shared_info *c
 #define equal_ref(Sc, X, Y, Ci) \
   do {   \
     /* here we know x and y are pointers to the same type of structure */ \
-    int ref_x, ref_y;							\
+    int32_t ref_x, ref_y;							\
     ref_x = (is_collected(X)) ? peek_shared_ref(Ci, X) : 0;		\
     ref_y = (is_collected(Y)) ? peek_shared_ref(Ci, Y) : 0;		\
     if ((ref_x != 0) && (ref_y != 0))					\
@@ -39204,7 +39189,7 @@ static bool s7_is_equal_1(s7_scheme *sc, s7_pointer x, s7_pointer y, shared_info
 static bool hash_table_equal(s7_scheme *sc, s7_pointer x, s7_pointer y, shared_info *ci, bool morally)
 {
   hash_entry_t **lists;
-  int i, len;
+  int32_t i, len;
   shared_info *nci = ci;
 
   if (x == y)
@@ -39278,7 +39263,7 @@ static bool let_equal(s7_scheme *sc, s7_pointer x, s7_pointer y, shared_info *ci
 
   s7_pointer ex, ey, px, py;
   shared_info *nci = ci;
-  int x_len, y_len;
+  int32_t x_len, y_len;
 
   if (x == y)
     return(true);
@@ -39400,7 +39385,7 @@ static bool pair_equal(s7_scheme *sc, s7_pointer x, s7_pointer y, shared_info *c
 
 static bool vector_rank_match(s7_scheme *sc, s7_pointer x, s7_pointer y)
 {
-  int x_dims, y_dims;
+  int32_t x_dims, y_dims;
 
   if (vector_has_dimensional_info(x))
     x_dims = vector_ndims(x);
@@ -39414,7 +39399,7 @@ static bool vector_rank_match(s7_scheme *sc, s7_pointer x, s7_pointer y)
 
   if (x_dims > 1)
     {
-      int j;
+      int32_t j;
       for (j = 0; j < x_dims; j++)
 	if (vector_dimension(x, j) != vector_dimension(y, j))
 	  return(false);
@@ -39756,7 +39741,7 @@ static bool (*equals[NUM_TYPES])(s7_scheme *sc, s7_pointer x, s7_pointer y, shar
 
 static void init_equals(void)
 {
-  int i;
+  int32_t i;
   for (i = 0; i < NUM_TYPES; i++) equals[i] = eq_equal;
   equals[T_SYMBOL] =       symbol_equal;
   equals[T_C_POINTER] =    c_pointer_equal;
@@ -39835,7 +39820,7 @@ static s7_pointer s7_length(s7_scheme *sc, s7_pointer lst)
     {
     case T_PAIR:
       {
-	int len;
+	int32_t len;
 	len = s7_list_length(sc, lst);
 	/* len < 0 -> dotted and (abs len) is length not counting the final cdr
 	 * len == 0, circular so length is infinite
@@ -40051,7 +40036,7 @@ s7_pointer s7_copy(s7_scheme *sc, s7_pointer args)
 	  
 	case T_HASH_TABLE:              /* this has to copy nearly everything */
 	  {
-	    unsigned int gc_loc;
+	    uint32_t gc_loc;
 	    s7_pointer new_hash;
 	    new_hash = s7_make_hash_table(sc, hash_table_mask(source) + 1);
 	    gc_loc = s7_gc_protect(sc, new_hash);
@@ -40114,7 +40099,7 @@ s7_pointer s7_copy(s7_scheme *sc, s7_pointer args)
 #endif
 	  
 	case T_C_POINTER:
-	  return(s7_make_c_pointer(sc, s7_c_pointer(source)));
+	  return(s7_make_c_pointer_with_type(sc, raw_pointer(source), raw_pointer_type(source), raw_pointer_info(source)));
 	}
       return(source);
     }
@@ -40174,7 +40159,7 @@ s7_pointer s7_copy(s7_scheme *sc, s7_pointer args)
     case T_LET:
       check_method(sc, source, sc->copy_symbol, args);
       if (source == sc->rootlet)
-	return(wrong_type_argument_with_type(sc, sc->copy_symbol, 1, source, make_string_wrapper(sc, "a sequence other than the rootlet")));
+	return(wrong_type_argument_with_type(sc, sc->copy_symbol, 1, source, s7_make_string_wrapper(sc, "a sequence other than the rootlet")));
       end = let_length(sc, source);
       break;
 
@@ -40238,7 +40223,7 @@ s7_pointer s7_copy(s7_scheme *sc, s7_pointer args)
 
     case T_LET:
       if (dest == sc->rootlet)
-	return(wrong_type_argument_with_type(sc, sc->copy_symbol, 2, dest, make_string_wrapper(sc, "a sequence other than the rootlet")));
+	return(wrong_type_argument_with_type(sc, sc->copy_symbol, 2, dest, s7_make_string_wrapper(sc, "a sequence other than the rootlet")));
       set = let_setter;
       dest_len = source_len;                     /* grows via set, so dest_len isn't relevant */
       break;
@@ -40296,7 +40281,7 @@ s7_pointer s7_copy(s7_scheme *sc, s7_pointer args)
 	case T_C_OBJECT:
 	  {
 	    s7_pointer mi, mj;
-	    unsigned int gc_loc1, gc_loc2;
+	    uint32_t gc_loc1, gc_loc2;
 	    s7_pointer (*ref)(s7_scheme *sc, s7_pointer obj, s7_pointer args);
 	    s7_pointer (*set)(s7_scheme *sc, s7_pointer obj, s7_pointer args);
 
@@ -40403,7 +40388,7 @@ s7_pointer s7_copy(s7_scheme *sc, s7_pointer args)
 
     case T_HASH_TABLE:
       {
-	int loc, skip;
+	int32_t loc, skip;
 	hash_entry_t **elements;
 	hash_entry_t *x = NULL;
 	elements = hash_table_elements(source);
@@ -40586,7 +40571,7 @@ also accepts a string or vector argument."
     case T_STRING:
       {
 	char *source, *dest, *end;
-	int len;
+	int32_t len;
 	len = string_length(p);
 	source = string_value(p);
 	end = (char *)(source + len);
@@ -40670,7 +40655,7 @@ static s7_pointer g_reverse_in_place(s7_scheme *sc, s7_pointer args)
 
   if ((sc->safety > NO_SAFETY) &&
       (is_immutable(p)))
-    return(s7_error(sc, sc->error_symbol, set_elist_2(sc, make_string_wrapper(sc, "can't reverse! ~S (it is immutable)"), p)));
+    return(s7_error(sc, sc->error_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "can't reverse! ~S (it is immutable)"), p)));
 
   switch (type(p))
     {
@@ -40696,7 +40681,7 @@ static s7_pointer g_reverse_in_place(s7_scheme *sc, s7_pointer args)
 
     case T_STRING:
       {
-	int len;
+	int32_t len;
 	char *s1, *s2;
 	len = string_length(p);
 	if (len < 2) return(p);
@@ -40745,7 +40730,7 @@ static s7_pointer g_reverse_in_place(s7_scheme *sc, s7_pointer args)
     default:
       if ((is_simple_sequence(p)) &&
 	  (!has_methods(p)))
-	return(simple_wrong_type_argument_with_type(sc, sc->reverseb_symbol, p, make_string_wrapper(sc, "a vector, string, or list")));
+	return(simple_wrong_type_argument_with_type(sc, sc->reverseb_symbol, p, s7_make_string_wrapper(sc, "a vector, string, or list")));
       method_or_bust_with_type_one_arg(sc, p, sc->reverseb_symbol, list_1(sc, p), a_sequence_string);
     }
   return(p);
@@ -40763,7 +40748,7 @@ static s7_pointer pair_fill(s7_scheme *sc, s7_pointer args)
   obj = car(args);
   if ((sc->safety > NO_SAFETY) &&
       (is_immutable_pair(obj)))
-    return(s7_error(sc, sc->error_symbol, set_elist_2(sc, make_string_wrapper(sc, "can't fill! ~S (it is immutable)"), obj)));
+    return(s7_error(sc, sc->error_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "can't fill! ~S (it is immutable)"), obj)));
 
   val = cadr(args);
   len = s7_list_length(sc, obj);
@@ -40860,7 +40845,7 @@ static s7_int sequence_length(s7_scheme *sc, s7_pointer lst)
     {
     case T_PAIR:
       {
-	int len;
+	int32_t len;
 	len = s7_list_length(sc, lst);
 	if (len == 0) return(-1);
 	return(len);
@@ -40883,10 +40868,10 @@ static s7_int sequence_length(s7_scheme *sc, s7_pointer lst)
   return(-1);
 }
 
-static s7_int total_sequence_length(s7_scheme *sc, s7_pointer args, s7_pointer caller, int typ)
+static s7_int total_sequence_length(s7_scheme *sc, s7_pointer args, s7_pointer caller, int32_t typ)
 {
   s7_pointer p;
-  int i;
+  int32_t i;
   s7_int len = 0;
 
   for (i = 1, p = args; is_pair(p); p = cdr(p), i++)
@@ -40914,7 +40899,7 @@ static s7_int total_sequence_length(s7_scheme *sc, s7_pointer args, s7_pointer c
   return(len);
 }
 
-static s7_pointer vector_append(s7_scheme *sc, s7_pointer args, int typ)
+static s7_pointer vector_append(s7_scheme *sc, s7_pointer args, int32_t typ)
 {
   s7_pointer new_vec;
   s7_int len;
@@ -40925,7 +40910,7 @@ static s7_pointer vector_append(s7_scheme *sc, s7_pointer args, int typ)
   if (len > 0)
     {
       s7_pointer p, sv;
-      int i;
+      int32_t i;
 
       sc->temp9 = new_vec; /* s7_copy below can call s7_error so s7_gc_protect here is tricky -- use a preset position perhaps? */
       sv = make_subvector(sc, new_vec);
@@ -40974,7 +40959,7 @@ static s7_pointer string_append(s7_scheme *sc, s7_pointer args)
   if (len > 0)
     {
       s7_pointer p, sv;
-      int i;
+      int32_t i;
 
       sc->temp9 = new_str;
       sv = make_string_wrapper_with_length(sc, (const char *)string_value(new_str), len);
@@ -41008,7 +40993,7 @@ static s7_pointer string_append(s7_scheme *sc, s7_pointer args)
 static s7_pointer hash_table_append(s7_scheme *sc, s7_pointer args)
 {
   s7_pointer new_hash, p;
-  unsigned int gc_loc;
+  uint32_t gc_loc;
   new_hash = s7_make_hash_table(sc, sc->default_hash_table_length);
   gc_loc = s7_gc_protect(sc, new_hash);
   for (p = args; is_pair(p); p = cdr(p))
@@ -41037,6 +41022,9 @@ static s7_pointer g_append(s7_scheme *sc, s7_pointer args)
   #define Q_append s7_make_circular_signature(sc, 0, 1, sc->T)
   s7_pointer a1;
 
+  /* it's possible to see brand-new lists at optimization time and set them to be uncopied here,
+   *   but the various overheads swamp the gain.
+   */
   if (is_null(args)) return(sc->nil);  /* (append) -> () */
   a1 = car(args);                      /* first arg determines result type unless all args but last are empty (sigh) */
   if (is_null(cdr(args))) return(a1);  /* (append <anything>) -> <anything> */
@@ -41130,7 +41118,7 @@ static s7_pointer object_to_list(s7_scheme *sc, s7_pointer obj)
     case T_ITERATOR:
       {
 	s7_pointer result, p = NULL;
-	int results = 0;
+	int32_t results = 0;
 	result = sc->nil;
 	while (true)
 	  {
@@ -41188,9 +41176,9 @@ static s7_pointer object_to_list(s7_scheme *sc, s7_pointer obj)
 
     case T_C_OBJECT:
       {
-	long int i, len; /* the "long" matters on 64-bit machines */
+	int64_t i, len;
 	s7_pointer x, z, result;
-	unsigned int gc_z;
+	uint32_t gc_z;
 
 	x = object_length(sc, obj);
 	if (s7_is_integer(x))
@@ -41229,7 +41217,7 @@ static s7_pointer object_to_list(s7_scheme *sc, s7_pointer obj)
 /* -------------------------------- object->let -------------------------------- */
 
 static bool is_decodable(s7_scheme *sc, s7_pointer p);
-static s7_pointer stack_entries(s7_scheme *sc, s7_pointer stack, int top);
+static s7_pointer stack_entries(s7_scheme *sc, s7_pointer stack, int32_t top);
 
 static s7_pointer g_object_to_let(s7_scheme *sc, s7_pointer args)
 {
@@ -41318,16 +41306,16 @@ static s7_pointer g_object_to_let(s7_scheme *sc, s7_pointer args)
 				    ((vector_has_dimensional_info(obj)) && (is_normal_vector(shared_vector(obj)))) ? shared_vector(obj) : sc->F)));
 
     case T_C_POINTER:
-      return(s7_inlet(sc, s7_list(sc, 6, sc->value_symbol, obj, 
+      return(s7_inlet(sc, s7_list(sc, 10, sc->value_symbol, obj, 
 				  sc->type_symbol, sc->is_c_pointer_symbol,
-				  s7_make_symbol(sc, "s7-value"),
-				    ((is_decodable(sc, (s7_pointer)raw_pointer(obj))) && 
-				     (!is_free(obj))) ? g_object_to_let(sc, cons(sc, (s7_pointer)raw_pointer(obj), sc->nil)) : sc->F)));
+				  s7_make_symbol(sc, "c-pointer"), s7_make_integer(sc, (s7_int)raw_pointer(obj)),
+				  s7_make_symbol(sc, "c-type"), raw_pointer_type(obj),
+				  s7_make_symbol(sc, "info"), raw_pointer_info(obj))));
 
     case T_CONTINUATION:
       {
 	s7_pointer let;
-	unsigned int gc_loc;
+	uint32_t gc_loc;
 	let = s7_inlet(sc, s7_list(sc, 4, sc->value_symbol, obj, sc->type_symbol, sc->is_continuation_symbol));
 	gc_loc = s7_gc_protect(sc, let);
 	s7_varlet(sc, let, s7_make_symbol(sc, "stack"), stack_entries(sc, continuation_stack(obj), continuation_stack_top(obj)));
@@ -41462,7 +41450,7 @@ static s7_pointer g_object_to_let(s7_scheme *sc, s7_pointer args)
 	    func = find_method(sc, obj, sc->object_to_let_symbol);
 	    if (func != sc->undefined)
 	      {
-		unsigned int gc_loc;
+		uint32_t gc_loc;
 		gc_loc = s7_gc_protect(sc, let);
 		s7_apply_function(sc, func, list_2(sc, obj, let));
 		s7_gc_unprotect_at(sc, gc_loc);
@@ -41475,12 +41463,13 @@ static s7_pointer g_object_to_let(s7_scheme *sc, s7_pointer args)
       {
 	s7_pointer let, clet;
 	clet = c_object_let(obj);
-	let = s7_inlet(sc, s7_list(sc, 12, sc->value_symbol, obj,
+	let = s7_inlet(sc, s7_list(sc, 10,
+				   sc->value_symbol, obj,
 				   sc->type_symbol, sc->is_c_object_symbol,
-				   sc->length_symbol, s7_length(sc, obj),
-				   s7_make_symbol(sc, "c-type"), s7_make_integer(sc, c_object_type(obj)),
-				   sc->let_symbol, clet,
+				   s7_make_symbol(sc, "c-object-type"), s7_make_integer(sc, c_object_type(obj)),
+				   s7_make_symbol(sc, "c-object-let"), clet,
 				   s7_make_symbol(sc, "class"), c_object_scheme_name(obj)));
+	/* TODO: local 'let entry causes trouble -- it's an error now in s7_varlet */
 	if ((is_let(clet)) &&
 	    ((has_methods(clet)) || (has_methods(obj))))
 	  {
@@ -41488,7 +41477,7 @@ static s7_pointer g_object_to_let(s7_scheme *sc, s7_pointer args)
 	    func = find_method(sc, clet, sc->object_to_let_symbol);
 	    if (func != sc->undefined)
 	      {
-		unsigned int gc_loc;
+		uint32_t gc_loc;
 		gc_loc = s7_gc_protect(sc, let);
 		s7_apply_function(sc, func, list_2(sc, obj, let));
 		s7_gc_unprotect_at(sc, gc_loc);
@@ -41501,7 +41490,7 @@ static s7_pointer g_object_to_let(s7_scheme *sc, s7_pointer args)
     case T_OUTPUT_PORT:
       {
 	s7_pointer let;
-	unsigned int gc_loc;
+	uint32_t gc_loc;
 	let = s7_inlet(sc, s7_list(sc, 8, sc->value_symbol, obj,
 				   sc->type_symbol, (is_input_port(obj)) ? sc->is_input_port_symbol : sc->is_output_port_symbol,
 				   s7_make_symbol(sc, "port-type"), 
@@ -41537,7 +41526,7 @@ static s7_pointer g_object_to_let(s7_scheme *sc, s7_pointer args)
       {
 	s7_pointer let, sig;
 	const char* doc;
-	unsigned int gc_loc;
+	uint32_t gc_loc;
 	let = s7_inlet(sc, s7_list(sc, 6, sc->value_symbol, obj,
 				   sc->type_symbol, (is_procedure(obj)) ? sc->is_procedure_symbol : sc->is_macro_symbol,
 				   s7_make_symbol(sc, "arity"), s7_arity(sc, obj)));
@@ -41626,23 +41615,23 @@ static s7_pointer stacktrace_find_caller(s7_scheme *sc, s7_pointer e)
   return(sc->F);
 }
 
-static bool stacktrace_find_let(s7_scheme *sc, int loc, s7_pointer e)
+static bool stacktrace_find_let(s7_scheme *sc, int32_t loc, s7_pointer e)
 {
   return((loc > 0) &&
 	 ((stack_let(sc->stack, loc) == e) ||
 	  (stacktrace_find_let(sc, loc - 4, e))));
 }
 
-static int stacktrace_find_error_hook_quit(s7_scheme *sc)
+static int32_t stacktrace_find_error_hook_quit(s7_scheme *sc)
 {
-  int i;
+  int32_t i;
   for (i = s7_stack_top(sc) - 1; i >= 3; i -= 4)
     if (stack_op(sc->stack, i) == OP_ERROR_HOOK_QUIT)
       return(i);
   return(-1);
 }
 
-static bool stacktrace_in_error_handler(s7_scheme *sc, int loc)
+static bool stacktrace_in_error_handler(s7_scheme *sc, int32_t loc)
 {
   return((outlet(sc->owlet) == sc->envir) ||
 	 (stacktrace_find_let(sc, loc * 4, outlet(sc->owlet))) ||
@@ -41665,8 +41654,8 @@ static bool stacktrace_error_hook_function(s7_scheme *sc, s7_pointer sym)
 }
 
 static char *stacktrace_walker(s7_scheme *sc, s7_pointer code, s7_pointer e,
-			       char *notes, unsigned int gc_syms,
-			       int code_cols, int total_cols, int notes_start_col,
+			       char *notes, uint32_t gc_syms,
+			       int32_t code_cols, int32_t total_cols, int32_t notes_start_col,
 			       bool as_comment)
 {
   s7_pointer syms;
@@ -41686,14 +41675,14 @@ static char *stacktrace_walker(s7_scheme *sc, s7_pointer code, s7_pointer e,
 	  if ((val) && (val != sc->undefined) &&
 	      (!is_any_macro(val)))
 	    {
-	      int typ;
+	      int32_t typ;
 
 	      typ = type(val);
 	      if (typ < T_GOTO)
 		{
 		  char *objstr, *str;
 		  const char *spaces;
-		  int objlen, new_note_len, notes_max, cur_line_len = 0, spaces_len;
+		  int32_t objlen, new_note_len, notes_max, cur_line_len = 0, spaces_len;
 		  bool new_notes_line = false, old_short_print;
 		  s7_int old_len;
 
@@ -41777,9 +41766,9 @@ static char *stacktrace_walker(s7_scheme *sc, s7_pointer code, s7_pointer e,
   return(notes);
 }
 
-static char *stacktrace_add_func(s7_scheme *sc, s7_pointer f, s7_pointer code, char *errstr, char *notes, int code_max, bool as_comment)
+static char *stacktrace_add_func(s7_scheme *sc, s7_pointer f, s7_pointer code, char *errstr, char *notes, int32_t code_max, bool as_comment)
 {
-  int newlen, errlen;
+  int32_t newlen, errlen;
   char *newstr, *str;
 
   errlen = strlen(errstr);
@@ -41813,11 +41802,11 @@ static char *stacktrace_add_func(s7_scheme *sc, s7_pointer f, s7_pointer code, c
   else
     {
       /* send out newstr, pad with spaces to code_max, then notes */
-      int len;
+      int32_t len;
       len = snprintf(str, newlen, "%s%s", (as_comment) ? "; " : "", newstr);
       if (notes)
 	{
-	  int i;
+	  int32_t i;
 	  for (i = len; i < code_max - 1; i++)
 	    str[i] = ' ';
 	  str[i] = '\0';
@@ -41835,11 +41824,11 @@ static char *stacktrace_add_func(s7_scheme *sc, s7_pointer f, s7_pointer code, c
 }
 
 
-static char *stacktrace_1(s7_scheme *sc, int frames_max, int code_cols, int total_cols, int notes_start_col, bool as_comment)
+static char *stacktrace_1(s7_scheme *sc, int32_t frames_max, int32_t code_cols, int32_t total_cols, int32_t notes_start_col, bool as_comment)
 {
   char *str;
-  int loc, top, frames = 0;
-  unsigned int gc_syms;
+  int32_t loc, top, frames = 0;
+  uint32_t gc_syms;
 
   gc_syms = s7_gc_protect(sc, sc->nil);
   str = NULL;
@@ -41873,7 +41862,7 @@ static char *stacktrace_1(s7_scheme *sc, int frames_max, int code_cols, int tota
   for (loc = top - 1; loc > 0; loc--)
     {
       s7_pointer code;
-      int true_loc;
+      int32_t true_loc;
 
       true_loc = (int)(loc + 1) * 4 - 1;
       code = stack_code(sc->stack, true_loc); /* can code be free here? [hit this once, could not repeat it] */
@@ -41896,7 +41885,7 @@ static char *stacktrace_1(s7_scheme *sc, int frames_max, int code_cols, int tota
 		  if (!stacktrace_error_hook_function(sc, f))
 		    {
 		      char *notes = NULL, *newstr;
-		      int newlen;
+		      int32_t newlen;
 
 		      frames++;
 		      if (frames > frames_max)
@@ -42027,9 +42016,9 @@ s7_pointer s7_history(s7_scheme *sc)
 
 /* -------- error handlers -------- */
 
-static const char *make_type_name(s7_scheme *sc, const char *name, int article)
+static const char *make_type_name(s7_scheme *sc, const char *name, int32_t article)
 {
-  int i, slen, len;
+  int32_t i, slen, len;
 
   slen = safe_strlen(name);
   len = slen + 8;
@@ -42054,11 +42043,13 @@ static const char *make_type_name(s7_scheme *sc, const char *name, int article)
 }
 
 
-static const char *type_name_from_type(s7_scheme *sc, int typ, int article)
+static const char *type_name_from_type(s7_scheme *sc, int32_t typ, int32_t article)
 {
   static const char *frees[2] =          {"free cell",          "a free cell"};
   static const char *nils[2] =           {"nil",                "nil"};
-  static const char *uniques[2] =        {"untyped",            "untyped"};
+  static const char *eofs[2] =           {"eof",                "eof"};
+  static const char *unspecs[2] =        {"unspecified",        "unspecified"};
+  static const char *undefs[2] =         {"undefined",          "undefined"};
   static const char *booleans[2] =       {"boolean",            "boolean"};
   static const char *strings[2] =        {"string",             "a string"};
   static const char *symbols[2] =        {"symbol",             "a symbol"};
@@ -42067,6 +42058,7 @@ static const char *type_name_from_type(s7_scheme *sc, int typ, int article)
   static const char *gotos[2] =          {"goto",               "a goto (from call-with-exit)"};
   static const char *continuations[2] =  {"continuation",       "a continuation"};
   static const char *c_functions[2] =    {"c-function",         "a c-function"};
+  static const char *c_function_s[2] =   {"c-function*",        "a c-function*"};
   static const char *macros[2] =         {"macro",              "a macro"};
   static const char *c_macros[2] =       {"c-macro",            "a c-macro"};
   static const char *bacros[2] =         {"bacro",              "a bacro"};
@@ -42095,14 +42087,17 @@ static const char *type_name_from_type(s7_scheme *sc, int typ, int article)
   static const char *functions[2] =      {"function",           "a function"};
   static const char *function_stars[2] = {"function*",          "a function*"};
   static const char *rngs[2] =           {"random-state",       "a random-state"};
+  static const char *inputs[2] =         {"input port",         "an input port"};
+  static const char *outputs[2] =        {"output port",        "an output port"};
+  static const char *c_objects[2] =      {"c_object",           "a c_object"};
 
   switch (typ)
     {
     case T_FREE:            return(frees[article]);
     case T_NIL:             return(nils[article]);
-    case T_EOF_OBJECT:      return(uniques[article]);
-    case T_UNSPECIFIED:     return(uniques[article]);
-    case T_UNDEFINED:       return(uniques[article]);
+    case T_EOF_OBJECT:      return(eofs[article]);
+    case T_UNSPECIFIED:     return(unspecs[article]);
+    case T_UNDEFINED:       return(undefs[article]);
     case T_BOOLEAN:         return(booleans[article]);
     case T_STRING:          return(strings[article]);
     case T_SYMBOL:          return(symbols[article]);
@@ -42113,8 +42108,8 @@ static const char *type_name_from_type(s7_scheme *sc, int typ, int article)
     case T_C_OPT_ARGS_FUNCTION:
     case T_C_RST_ARGS_FUNCTION:
     case T_C_ANY_ARGS_FUNCTION:
-    case T_C_FUNCTION_STAR:
     case T_C_FUNCTION:      return(c_functions[article]);
+    case T_C_FUNCTION_STAR: return(c_function_s[article]);
     case T_CLOSURE:         return(functions[article]);
     case T_CLOSURE_STAR:    return(function_stars[article]);
     case T_C_MACRO:         return(c_macros[article]);
@@ -42145,12 +42140,15 @@ static const char *type_name_from_type(s7_scheme *sc, int typ, int article)
     case T_BIG_RATIO:       return(big_ratios[article]);
     case T_BIG_REAL:        return(big_reals[article]);
     case T_BIG_COMPLEX:     return(big_complexes[article]);
+    case T_INPUT_PORT:      return(inputs[article]);
+    case T_OUTPUT_PORT:     return(outputs[article]);
+    case T_C_OBJECT:        return(c_objects[article]);
     }
   return(NULL);
 }
 
 
-static const char *type_name(s7_scheme *sc, s7_pointer arg, int article)
+static const char *type_name(s7_scheme *sc, s7_pointer arg, int32_t article)
 {
   switch (unchecked_type(arg))
     {
@@ -42203,7 +42201,7 @@ static s7_pointer prepackaged_type_name(s7_scheme *sc, s7_pointer x)
     case T_INPUT_PORT:  return((is_file_port(x)) ? an_input_file_port_string : ((is_string_port(x)) ? an_input_string_port_string : an_input_port_string));
     case T_OUTPUT_PORT: return((is_file_port(x)) ? an_output_file_port_string : ((is_string_port(x)) ? an_output_string_port_string : an_output_port_string));
     }
-  return(make_string_wrapper(sc, "unknown type!"));
+  return(s7_make_string_wrapper(sc, "unknown type!"));
 }
 
 static s7_pointer type_name_string(s7_scheme *sc, s7_pointer arg)
@@ -42214,12 +42212,13 @@ static s7_pointer type_name_string(s7_scheme *sc, s7_pointer arg)
       p = prepackaged_type_names[type(arg)]; /* these use INDEFINITE_ARTICLE */
       if (is_string(p)) return(p);
     }
-  return(make_string_wrapper(sc, type_name(sc, arg, INDEFINITE_ARTICLE)));
+  return(s7_make_string_wrapper(sc, type_name(sc, arg, INDEFINITE_ARTICLE)));
 }
 
 
 static s7_pointer wrong_type_arg_error_prepackaged(s7_scheme *sc, s7_pointer caller, s7_pointer arg_n, s7_pointer arg, s7_pointer typnam, s7_pointer descr)
 {
+  /* info list is '(format_string caller arg_n arg type_name descr) */
   s7_pointer p;
   p = cdr(sc->wrong_type_arg_info);  /* info list is '(format_string caller arg_n arg type_name descr) */
   set_car(p, caller);  p = cdr(p);
@@ -42239,7 +42238,7 @@ static s7_pointer simple_wrong_type_arg_error_prepackaged(s7_scheme *sc, s7_poin
 }
 
 
-s7_pointer s7_wrong_type_arg_error(s7_scheme *sc, const char *caller, int arg_n, s7_pointer arg, const char *descr)
+s7_pointer s7_wrong_type_arg_error(s7_scheme *sc, const char *caller, int32_t arg_n, s7_pointer arg, const char *descr)
 {
   /* info list is '(format_string caller arg_n arg type_name descr) */
   string_value(sc->err_wrap1) = (char *)caller;
@@ -42269,7 +42268,7 @@ static s7_pointer simple_out_of_range_error_prepackaged(s7_scheme *sc, s7_pointe
 }
 
 
-s7_pointer s7_out_of_range_error(s7_scheme *sc, const char *caller, int arg_n, s7_pointer arg, const char *descr)
+s7_pointer s7_out_of_range_error(s7_scheme *sc, const char *caller, int32_t arg_n, s7_pointer arg, const char *descr)
 {
   /* info list is '(format_string caller arg_n arg descr) */
   string_value(sc->err_wrap1) = (char *)caller;
@@ -42286,7 +42285,7 @@ s7_pointer s7_out_of_range_error(s7_scheme *sc, const char *caller, int arg_n, s
 
 s7_pointer s7_wrong_number_of_args_error(s7_scheme *sc, const char *caller, s7_pointer args)
 {
-  return(s7_error(sc, sc->wrong_number_of_args_symbol,  set_elist_2(sc, make_string_wrapper(sc, caller), args))); /* "caller" includes the format directives */
+  return(s7_error(sc, sc->wrong_number_of_args_symbol,  set_elist_2(sc, s7_make_string_wrapper(sc, caller), args))); /* "caller" includes the format directives */
 }
 
 
@@ -42299,10 +42298,10 @@ static s7_pointer division_by_zero_error(s7_scheme *sc, s7_pointer caller, s7_po
 static s7_pointer file_error(s7_scheme *sc, const char *caller, const char *descr, const char *name)
 {
   return(s7_error(sc, sc->io_error_symbol, 
-		  set_elist_4(sc, make_string_wrapper(sc, "~A: ~A ~S"), 
-				  make_string_wrapper(sc, caller), 
-				  make_string_wrapper(sc, descr), 
-				  make_string_wrapper(sc, name))));
+		  set_elist_4(sc, s7_make_string_wrapper(sc, "~A: ~A ~S"), 
+				  s7_make_string_wrapper(sc, caller), 
+				  s7_make_string_wrapper(sc, descr), 
+				  s7_make_string_wrapper(sc, name))));
 }
 
 
@@ -42429,7 +42428,7 @@ s7_pointer s7_dynamic_wind(s7_scheme *sc, s7_pointer init, s7_pointer body, s7_p
 static s7_pointer g_catch(s7_scheme *sc, s7_pointer args)
 {
   #define H_catch "(catch tag thunk handler) evaluates thunk; if an error occurs that matches the tag (#t matches all), the handler is called"
-  #define Q_catch s7_make_circular_signature(sc, 2, 3, sc->values_symbol, sc->T, sc->is_procedure_symbol)
+  #define Q_catch s7_make_signature(sc, 4, sc->values_symbol, s7_make_signature(sc, 2, sc->is_symbol_symbol, sc->is_boolean_symbol), sc->is_procedure_symbol, sc->is_procedure_symbol)
 
   s7_pointer p, proc, err;
 
@@ -42491,9 +42490,9 @@ static s7_pointer g_catch(s7_scheme *sc, s7_pointer args)
 /* this gives room for 4000 files each of 1000000 lines */
 
 
-static int remember_file_name(s7_scheme *sc, const char *file)
+static int32_t remember_file_name(s7_scheme *sc, const char *file)
 {
-  int i;
+  int32_t i;
 
   for (i = 0; i <= sc->file_names_top; i++)
     if (safe_strcmp(file, string_value(sc->file_names[i])))
@@ -42502,7 +42501,7 @@ static int remember_file_name(s7_scheme *sc, const char *file)
   sc->file_names_top++;
   if (sc->file_names_top >= sc->file_names_size)
     {
-      int old_size = 0;
+      int32_t old_size = 0;
       if (sc->file_names_size == 0)
 	{
 	  sc->file_names_size = INITIAL_FILE_NAMES_SIZE;
@@ -42553,7 +42552,7 @@ It has the additional local variables: error-type, error-data, error-code, error
   /* if owlet is not copied, (define e (owlet)), e changes as owlet does!
    */
   s7_pointer e, x;
-  unsigned int gc_loc;
+  uint32_t gc_loc;
 
   e = let_copy(sc, sc->owlet);
   gc_loc = s7_gc_protect(sc, e);
@@ -42570,7 +42569,7 @@ It has the additional local variables: error-type, error-data, error-code, error
 
 static s7_pointer active_catches(s7_scheme *sc)
 {
-  int i;
+  int32_t i;
   s7_pointer x, lst;
   lst = sc->nil;
   for (i = s7_stack_top(sc) - 1; i >= 3; i -= 4)
@@ -42593,7 +42592,7 @@ static s7_pointer active_catches(s7_scheme *sc)
 static s7_pointer active_exits(s7_scheme *sc)
 {
   /* (call-with-exit (lambda (exiter) (*s7* 'exits))) */
-  int i;
+  int32_t i;
   s7_pointer lst;
   lst = sc->nil;
   for (i = s7_stack_top(sc) - 1; i >= 3; i -= 4)
@@ -42616,9 +42615,9 @@ static s7_pointer active_exits(s7_scheme *sc)
   return(reverse_in_place_unchecked(sc, sc->nil, lst));
 }
 
-static s7_pointer stack_entries(s7_scheme *sc, s7_pointer stack, int top)
+static s7_pointer stack_entries(s7_scheme *sc, s7_pointer stack, int32_t top)
 {
-  int i;
+  int32_t i;
   s7_pointer lst;
   lst = sc->nil;
   for (i = top - 1; i >= 3; i -= 4)
@@ -42636,7 +42635,7 @@ static s7_pointer stack_entries(s7_scheme *sc, s7_pointer stack, int top)
 	{
 #if DEBUGGING
 	  if (op < OP_MAX_DEFINED_1)
-	    lst = cons(sc, list_4(sc, func, args, e, make_string_wrapper(sc, op_names[op])), lst);
+	    lst = cons(sc, list_4(sc, func, args, e, s7_make_string_wrapper(sc, op_names[op])), lst);
 	  else lst = cons(sc, list_4(sc, func, args, e, make_integer(sc, op)), lst);
 #else
 	  lst = cons(sc, list_4(sc, func, args, e, make_integer(sc, op)), lst);
@@ -42650,12 +42649,12 @@ static s7_pointer stack_entries(s7_scheme *sc, s7_pointer stack, int top)
 
 /* catch handlers */
 
-typedef bool (*catch_function)(s7_scheme *sc, int i, s7_pointer type, s7_pointer info, bool *reset_hook);
+typedef bool (*catch_function)(s7_scheme *sc, int32_t i, s7_pointer type, s7_pointer info, bool *reset_hook);
 static catch_function catchers[OP_MAX_DEFINED + 1];
 
 /* here and below, don't free the catcher */
 
-static bool catch_all_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer info, bool *reset_hook)
+static bool catch_all_function(s7_scheme *sc, int32_t i, s7_pointer type, s7_pointer info, bool *reset_hook)
 {
   s7_pointer catcher;
   catcher = stack_let(sc->stack, i);
@@ -42666,7 +42665,7 @@ static bool catch_all_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer
   return(true);
 }
 
-static bool catch_2_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer info, bool *reset_hook)
+static bool catch_2_function(s7_scheme *sc, int32_t i, s7_pointer type, s7_pointer info, bool *reset_hook)
 {
   /* this is the macro-error-handler case from g_catch
    *    (let () (define-macro (m . args) (apply (car args) (cadr args))) (catch #t (lambda () (error abs -1)) m))
@@ -42677,7 +42676,7 @@ static bool catch_2_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer i
       (catch_tag(x) == type) ||
       (type == sc->T))
     {
-      int loc;
+      int32_t loc;
       loc = catch_goto_loc(x);
       sc->op_stack_now = (s7_pointer *)(sc->op_stack + catch_op_loc(x));
       sc->stack_end = (s7_pointer *)(sc->stack_start + loc);
@@ -42697,7 +42696,7 @@ static bool catch_2_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer i
   return(false);
 }
 
-static bool catch_1_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer info, bool *reset_hook)
+static bool catch_1_function(s7_scheme *sc, int32_t i, s7_pointer type, s7_pointer info, bool *reset_hook)
 {
   s7_pointer x;
   x = stack_code(sc->stack, i);
@@ -42705,7 +42704,7 @@ static bool catch_1_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer i
       (catch_tag(x) == type) ||
       (type == sc->T))
     {
-      unsigned int loc;
+      uint32_t loc;
       opcode_t op;
       s7_pointer catcher, error_func, body;
 
@@ -42835,7 +42834,7 @@ static bool catch_1_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer i
   return(false);
 }
 
-static bool catch_dw_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer info, bool *reset_hook)
+static bool catch_dw_function(s7_scheme *sc, int32_t i, s7_pointer type, s7_pointer info, bool *reset_hook)
 {
   s7_pointer x;
   x = stack_code(sc->stack, i);
@@ -42853,7 +42852,7 @@ static bool catch_dw_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer
   return(false);
 }
 
-static bool catch_out_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer info, bool *reset_hook)
+static bool catch_out_function(s7_scheme *sc, int32_t i, s7_pointer type, s7_pointer info, bool *reset_hook)
 {
   s7_pointer x;
   x = stack_code(sc->stack, i);                /* "code" = port that we opened */
@@ -42864,27 +42863,27 @@ static bool catch_out_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer
   return(false);
 }
 
-static bool catch_in_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer info, bool *reset_hook)
+static bool catch_in_function(s7_scheme *sc, int32_t i, s7_pointer type, s7_pointer info, bool *reset_hook)
 {
   s7_close_input_port(sc, stack_code(sc->stack, i)); /* "code" = port that we opened */
   sc->input_port = stack_args(sc->stack, i);         /* "args" = port that we shadowed */
   return(false);
 }
 
-static bool catch_read_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer info, bool *reset_hook)
+static bool catch_read_function(s7_scheme *sc, int32_t i, s7_pointer type, s7_pointer info, bool *reset_hook)
 {
   pop_input_port(sc);
   return(false);
 }
 
-static bool catch_eval_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer info, bool *reset_hook)
+static bool catch_eval_function(s7_scheme *sc, int32_t i, s7_pointer type, s7_pointer info, bool *reset_hook)
 {
   s7_close_input_port(sc, sc->input_port);
   pop_input_port(sc);
   return(false);
 }
 
-static bool catch_barrier_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer info, bool *reset_hook)
+static bool catch_barrier_function(s7_scheme *sc, int32_t i, s7_pointer type, s7_pointer info, bool *reset_hook)
 {
   if (is_input_port(stack_args(sc->stack, i)))      /* (eval-string "'(1 .)") */
     {
@@ -42895,7 +42894,7 @@ static bool catch_barrier_function(s7_scheme *sc, int i, s7_pointer type, s7_poi
   return(false);
 }
 
-static bool catch_hook_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer info, bool *reset_hook)
+static bool catch_hook_function(s7_scheme *sc, int32_t i, s7_pointer type, s7_pointer info, bool *reset_hook)
 {
   sc->error_hook = stack_code(sc->stack, i);
   /* apparently there was an error during *error-hook* evaluation, but Rick wants the hook re-established anyway */
@@ -42904,7 +42903,7 @@ static bool catch_hook_function(s7_scheme *sc, int i, s7_pointer type, s7_pointe
   return(false);
 }
 
-static bool catch_goto_function(s7_scheme *sc, int i, s7_pointer type, s7_pointer info, bool *reset_hook)
+static bool catch_goto_function(s7_scheme *sc, int32_t i, s7_pointer type, s7_pointer info, bool *reset_hook)
 {
   call_exit_active(stack_args(sc->stack, i)) = false;
   return(false);
@@ -42912,7 +42911,7 @@ static bool catch_goto_function(s7_scheme *sc, int i, s7_pointer type, s7_pointe
 
 static void init_catchers(void)
 {
-  int i;
+  int32_t i;
   for (i = 0; i <= OP_MAX_DEFINED; i++) catchers[i] = NULL;
   catchers[OP_CATCH_ALL] =           catch_all_function;
   catchers[OP_CATCH_2] =             catch_2_function;
@@ -42934,10 +42933,10 @@ static s7_pointer g_throw(s7_scheme *sc, s7_pointer args)
 {
   #define H_throw "(throw tag . info) is like (error ...) but it does not affect the owlet. \
 It looks for an existing catch with a matching tag, and jumps to it if found.  Otherwise it raises an error."
-  #define Q_throw pcl_t
+  #define Q_throw s7_make_circular_signature(sc, 2, 3, sc->values_symbol, sc->is_symbol_symbol, sc->T)
 
   bool ignored_flag = false;
-  int i;
+  int32_t i;
   s7_pointer type, info;
 
   type = car(args);
@@ -42958,11 +42957,11 @@ It looks for an existing catch with a matching tag, and jumps to it if found.  O
   if (is_let(car(args))) 
     check_method(sc, car(args), sc->throw_symbol, args);
   return(s7_error(sc, make_symbol(sc, "uncaught-throw"), 
-		  set_elist_3(sc, make_string_wrapper(sc, "no catch found for (throw ~W~{~^ ~S~})"), type, info)));
+		  set_elist_3(sc, s7_make_string_wrapper(sc, "no catch found for (throw ~W~{~^ ~S~})"), type, info)));
 }
 
 
-static void s7_warn(s7_scheme *sc, int len, const char *ctrl, ...)
+static void s7_warn(s7_scheme *sc, int32_t len, const char *ctrl, ...)
 {
   va_list ap;
   char *str;
@@ -42980,7 +42979,7 @@ static void s7_warn(s7_scheme *sc, int len, const char *ctrl, ...)
 
 s7_pointer s7_error(s7_scheme *sc, s7_pointer type, s7_pointer info)
 {
-  static int last_line = -1;
+  static int32_t last_line = -1;
   bool reset_error_hook = false;
   s7_pointer cur_code;
 
@@ -43028,8 +43027,8 @@ s7_pointer s7_error(s7_scheme *sc, s7_pointer type, s7_pointer info)
   if ((is_pair(cur_code)) &&     /* can be () if unexpected close paren read error */
       (has_line_number(cur_code)))
     {
-      int line;
-      line = (int)pair_line(cur_code); /* cast to int (from unsigned int) for last_line */
+      int32_t line;
+      line = (int)pair_line(cur_code); /* cast to int32_t (from uint32_t) for last_line */
       if (line != last_line)
 	{
 	  last_line = line;
@@ -43068,7 +43067,7 @@ s7_pointer s7_error(s7_scheme *sc, s7_pointer type, s7_pointer info)
     }
 
   { /* look for a catcher */
-    int i;
+    int32_t i;
     /* top is 1 past actual top, top - 1 is op, if op = OP_CATCH, top - 4 is the cell containing the catch struct */
     for (i = s7_stack_top(sc) - 1; i >= 3; i -= 4)
       {
@@ -43128,7 +43127,7 @@ s7_pointer s7_error(s7_scheme *sc, s7_pointer type, s7_pointer info)
 	      (strchr(string_value(car(info)), '~')))
 	    {
 	      char *errstr;
-	      int len, str_len;
+	      int32_t len, str_len;
 	      len = string_length(car(info)) + 8;
 	      tmpbuf_malloc(errstr, len);
 	      str_len = snprintf(errstr, len, "\n;%s", string_value(car(info)));
@@ -43145,13 +43144,13 @@ s7_pointer s7_error(s7_scheme *sc, s7_pointer type, s7_pointer info)
 	  (!port_is_closed(sc->input_port)))
 	{
 	  const char *filename = NULL;
-	  int line;
+	  int32_t line;
 
 	  filename = port_filename(sc->input_port);
 	  line = port_line_number(sc->input_port);
 
 	  if (filename)
-	    format_to_port(sc, sc->error_port, "\n;  ~A[~D]", set_plist_2(sc, make_string_wrapper(sc, filename), make_integer(sc, line)), NULL, false, 10);
+	    format_to_port(sc, sc->error_port, "\n;  ~A[~D]", set_plist_2(sc, s7_make_string_wrapper(sc, filename), make_integer(sc, line)), NULL, false, 10);
 	  else
 	    {
 	      if ((line > 0) &&
@@ -43171,7 +43170,7 @@ s7_pointer s7_error(s7_scheme *sc, s7_pointer type, s7_pointer info)
 			  line = port_line_number(p);
 			  if (filename)
 			    format_to_port(sc, sc->error_port, "\n;  ~A[~D]", 
-					   set_plist_2(sc, make_string_wrapper(sc, filename), make_integer(sc, line)), NULL, false, 10);
+					   set_plist_2(sc, s7_make_string_wrapper(sc, filename), make_integer(sc, line)), NULL, false, 10);
 			}
 		    }
 		}
@@ -43191,8 +43190,8 @@ s7_pointer s7_error(s7_scheme *sc, s7_pointer type, s7_pointer info)
 		{
 		  format_to_port(sc, sc->error_port, "\n;  ~A ~A[~D]",
 				 set_plist_3(sc,
-					     make_string_wrapper(sc, call_name),
-					     make_string_wrapper(sc, sc->s7_call_file),
+					     s7_make_string_wrapper(sc, call_name),
+					     s7_make_string_wrapper(sc, sc->s7_call_file),
 					     make_integer(sc, sc->s7_call_line)),
 				 NULL, false, 13);
 		}
@@ -43269,7 +43268,7 @@ static s7_pointer read_error_1(s7_scheme *sc, const char *errmsg, bool string_er
    * do not catch the error if we simply signal an error when we encounter it.
    */
   char *msg;
-  int len;
+  int32_t len;
   s7_pointer pt;
 
   pt = sc->input_port;
@@ -43280,7 +43279,7 @@ static s7_pointer read_error_1(s7_scheme *sc, const char *errmsg, bool string_er
       if (is_string_port(sc->input_port))
 	{
           #define QUOTE_SIZE 40
-	  unsigned int i, j, start = 0, end, slen;
+	  uint32_t i, j, start = 0, end, slen, size;
 	  char *recent_input = NULL;
 
 	  /* we can run off the end in cases like (eval-string "(. . ,.)") or (eval-string " (@ . ,.)") */
@@ -43296,7 +43295,8 @@ static s7_pointer read_error_1(s7_scheme *sc, const char *errmsg, bool string_er
 	  start = i;
 
 	  /* start at current position and look ahead a few chars */
-	  for (i = port_position(pt), j = 0; (i < port_data_size(pt)) && (j < QUOTE_SIZE); i++, j++)
+	  size = port_data_size(pt);
+	  for (i = port_position(pt), j = 0; (i < size) && (j < QUOTE_SIZE); i++, j++)
 	    if ((port_data(pt)[i] == '\0') ||
 		(port_data(pt)[i] == '\n') ||
 		(port_data(pt)[i] == '\r'))
@@ -43358,7 +43358,7 @@ static s7_pointer read_error_1(s7_scheme *sc, const char *errmsg, bool string_er
       return(s7_error(sc, sc->read_error_symbol, set_elist_1(sc, make_string_uncopied_with_length(sc, msg, len))));
     }
 
-  return(s7_error(sc, (string_error) ? sc->string_read_error_symbol : sc->read_error_symbol, set_elist_1(sc, make_string_wrapper(sc, (char *)errmsg))));
+  return(s7_error(sc, (string_error) ? sc->string_read_error_symbol : sc->read_error_symbol, set_elist_1(sc, s7_make_string_wrapper(sc, (char *)errmsg))));
 }
 
 static s7_pointer read_error(s7_scheme *sc, const char *errmsg)
@@ -43377,7 +43377,7 @@ static s7_pointer g_error(s7_scheme *sc, s7_pointer args)
   #define H_error "(error type ...) signals an error.  The 'type' can be used with catch to trap \
 particular errors.  If the error is not caught, s7 treats the second argument as a format control string, \
 and applies it to the rest of the arguments."
-  #define Q_error pcl_t
+  #define Q_error s7_make_circular_signature(sc, 2, 3, sc->values_symbol, sc->is_symbol_symbol, sc->T)
 
   if (is_not_null(args))
     {
@@ -43392,7 +43392,7 @@ and applies it to the rest of the arguments."
 }
 
 
-static char *truncate_string(char *form, int len, use_write_t use_write, int *form_len)
+static char *truncate_string(char *form, int32_t len, use_write_t use_write, int32_t *form_len)
 {
   unsigned char *f;
   f = (unsigned char *)form;
@@ -43400,7 +43400,7 @@ static char *truncate_string(char *form, int len, use_write_t use_write, int *fo
   if (use_write != USE_DISPLAY)
     {
       /* I guess we need to protect the outer double quotes in this case */
-      int i;
+      int32_t i;
       for (i = len - 5; i >= (len / 2); i--)
 	if (is_white_space((int)f[i]))
 	  {
@@ -43432,7 +43432,7 @@ static char *truncate_string(char *form, int len, use_write_t use_write, int *fo
     }
   else
     {
-      int i;
+      int32_t i;
       for (i = len - 4; i >= (len / 2); i--)
 	if (is_white_space((int)f[i]))
 	  {
@@ -43457,10 +43457,10 @@ static char *truncate_string(char *form, int len, use_write_t use_write, int *fo
 }
 
 
-static char *object_to_truncated_string(s7_scheme *sc, s7_pointer p, int len)
+static char *object_to_truncated_string(s7_scheme *sc, s7_pointer p, int32_t len)
 {
   char *s;
-  int s_len;
+  int32_t s_len;
   sc->objstr_max_len = len + 2;
   s = s7_object_to_c_string(sc, p);
   sc->objstr_max_len = s7_int_max;
@@ -43471,14 +43471,14 @@ static char *object_to_truncated_string(s7_scheme *sc, s7_pointer p, int len)
 }
 
 
-static s7_pointer tree_descend(s7_scheme *sc, s7_pointer p, unsigned int line)
+static s7_pointer tree_descend(s7_scheme *sc, s7_pointer p, uint32_t line)
 {
   s7_pointer tp;
   if (!is_pair(p)) return(NULL);
   if (has_line_number(p))
     {
-      unsigned int x;
-      x = (unsigned int)remembered_line_number(pair_line(p));
+      uint32_t x;
+      x = (uint32_t)remembered_line_number(pair_line(p));
       if (x > 0)
 	{
 	  if (line == 0) /* first line number we encounter will be the current reader location (i.e. the end of the form) */
@@ -43505,12 +43505,13 @@ static char *current_input_string(s7_scheme *sc, s7_pointer pt)
     {
       const unsigned char *str;
       char *msg;
-      int i, j, start;
-      start = (int)port_position(pt) - 40;
+      int32_t i, j, start, pos;
+      pos = (int)port_position(pt);
+      start = pos - 40;
       if (start < 0) start = 0;
       msg = (char *)malloc(64 * sizeof(char));
       str = (const unsigned char *)port_data(pt);
-      for (i = start, j = 0; i < (int)port_position(pt); i++, j++)
+      for (i = start, j = 0; i < pos; i++, j++)
 	msg[j] = str[i];
       msg[j] = '\0';
       return(msg);
@@ -43521,7 +43522,7 @@ static char *current_input_string(s7_scheme *sc, s7_pointer pt)
 
 static s7_pointer missing_close_paren_error(s7_scheme *sc)
 {
-  int len;
+  int32_t len;
   char *msg, *syntax_msg = NULL;
   s7_pointer pt;
 
@@ -43539,7 +43540,7 @@ static s7_pointer missing_close_paren_error(s7_scheme *sc)
 	  (port_filename(pt)))
 	{
 	  slot_set_value(sc->error_line, make_integer(sc, port_line_number(pt)));
-	  slot_set_value(sc->error_file, make_string_wrapper(sc, port_filename(pt)));
+	  slot_set_value(sc->error_file, s7_make_string_wrapper(sc, port_filename(pt)));
 	}
       result = s7_call(sc, sc->missing_close_paren_hook, sc->nil);
       if (result != sc->unspecified)
@@ -43553,7 +43554,7 @@ static s7_pointer missing_close_paren_error(s7_scheme *sc)
       if ((p) && (is_pair(p)) &&
 	  (has_line_number(p)))
 	{
-	  int msg_len, form_len;
+	  int32_t msg_len, form_len;
 	  char *form;
 	  form = object_to_truncated_string(sc, p, 40);
 	  form_len = safe_strlen(form);
@@ -43600,7 +43601,7 @@ static s7_pointer missing_close_paren_error(s7_scheme *sc)
     return(s7_error(sc, sc->read_error_symbol, set_elist_1(sc, make_string_uncopied_with_length(sc, msg, len))));
   }
 
-  return(s7_error(sc, sc->read_error_symbol, set_elist_1(sc, make_string_wrapper(sc, "missing close paren"))));
+  return(s7_error(sc, sc->read_error_symbol, set_elist_1(sc, s7_make_string_wrapper(sc, "missing close paren"))));
 }
 
 
@@ -43610,9 +43611,9 @@ static void improper_arglist_error(s7_scheme *sc)
    *   the original was `(,@(reverse args) . ,code) essentially
    */
   if (sc->args == sc->nil)               /* (abs . 1) */
-    s7_error(sc, sc->syntax_error_symbol, set_elist_1(sc, make_string_wrapper(sc, "function call is a dotted list?")));
+    s7_error(sc, sc->syntax_error_symbol, set_elist_1(sc, s7_make_string_wrapper(sc, "function call is a dotted list?")));
   else s7_error(sc, sc->syntax_error_symbol,
-		set_elist_2(sc, make_string_wrapper(sc, "improper list of arguments: ~S"),
+		set_elist_2(sc, s7_make_string_wrapper(sc, "improper list of arguments: ~S"),
 				append_in_place(sc, sc->args = safe_reverse_in_place(sc, sc->args), sc->code)));
 }
 
@@ -43694,7 +43695,7 @@ static s7_pointer apply_list_star(s7_scheme *sc, s7_pointer d)
 
 static s7_pointer apply_list_error(s7_scheme *sc, s7_pointer lst)
 {
-  return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, make_string_wrapper(sc, "apply's last argument should be a proper list: ~S"), lst)));
+  return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "apply's last argument should be a proper list: ~S"), lst)));
 }
 
 
@@ -43724,7 +43725,7 @@ static s7_pointer g_apply(s7_scheme *sc, s7_pointer args)
       for (q = args, p = cdr(args); is_not_null(cdr(p)); q = p, p = cdr(p));
       /* the last arg is supposed to be a list, it will be spliced onto the end of the previous arg list (if any) below */
       
-      if (!is_proper_list(sc, car(p)))        /* (apply + #f) etc */
+      if (!s7_is_proper_list(sc, car(p)))        /* (apply + #f) etc */
 	return(apply_list_error(sc, args));
       set_cdr(q, car(p));
       /* this would work: if (is_c_function(sc->code)) return(c_function_call(sc->code)(sc, cdr(args)));
@@ -43739,7 +43740,7 @@ static s7_pointer g_apply(s7_scheme *sc, s7_pointer args)
   if (is_null(cddr(args)))
     sc->args = cadr(args);
   else sc->args = apply_list_star(sc, cdr(args));
-  if (!is_proper_list(sc, sc->args)) 
+  if (!s7_is_proper_list(sc, sc->args)) 
     return(apply_list_error(sc, args));
   
   push_stack(sc, OP_APPLY, (needs_copied_args(sc->code)) ? copy_list(sc, sc->args) : sc->args, sc->code);
@@ -43753,7 +43754,7 @@ s7_pointer s7_apply_function(s7_scheme *sc, s7_pointer fnc, s7_pointer args)
 #if DEBUGGING
   {
     s7_pointer p;
-    int argnum;
+    int32_t argnum;
     _NFre(fnc);
     for (argnum = 0, p = _NFre(args); is_pair(p); argnum++, p = _NFre(cdr(p)))
       _NFre(car(p));
@@ -43777,6 +43778,165 @@ s7_pointer s7_apply_function(s7_scheme *sc, s7_pointer fnc, s7_pointer args)
 }
 
 
+static int32_t next_tx(s7_scheme *sc)
+{
+  sc->t_temp_ctr++;
+  if (sc->t_temp_ctr >= T_TEMPS_SIZE) sc->t_temp_ctr = 0;
+  return(sc->t_temp_ctr);
+}
+
+static s7_pointer set_c_function_star_args(s7_scheme *sc)
+{
+  int32_t i, j, n_args;
+  s7_pointer arg, par, call_args, func;
+  s7_pointer *df;
+
+  func = sc->code;
+  n_args = c_function_all_args(func);     /* not counting keywords, I think */
+  if (is_safe_procedure(func))
+    call_args = c_function_call_args(func);
+  else 
+    {
+      int32_t tx;
+      tx = next_tx(sc);
+      call_args = make_list(sc, c_function_optional_args(func), sc->F);
+      sc->t_temps[tx] = call_args;
+    }
+
+  /* assume at the start that there are no keywords */
+  for (i = 0, arg = sc->args, par = call_args; (i < n_args) && (is_pair(arg)); i++, arg = cdr(arg), par = cdr(par))
+    {
+      if (!is_keyword(car(arg)))
+	set_car(par, car(arg));
+      else
+	{
+	  s7_pointer kpar, karg;
+	  int32_t ki;
+	  /* oops -- there are keywords, change scanners (much duplicated code...) */
+	  for (kpar = call_args; kpar != par; kpar = cdr(kpar))
+	    set_checked(kpar);
+	  for (; is_pair(kpar); kpar = cdr(kpar))
+	    clear_checked(kpar);
+	  df = c_function_arg_names(func);
+	  for (ki = i, karg = arg, kpar = par; (ki < n_args) && (is_pair(karg)); ki++, karg = cdr(karg), kpar = cdr(kpar))
+	    {
+	      if (!is_keyword(car(karg)))
+		{
+		  if (is_checked(kpar))
+		    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_3(sc, parameter_set_twice_string, car(kpar), sc->args)));
+		  set_checked(kpar);
+		  set_car(kpar, car(karg));
+		}
+	      else
+		{
+		  s7_pointer p;
+		  for (j = 0, p = call_args; j < n_args; j++, p = cdr(p))
+		    if (df[j] == car(karg))
+		      break;
+		  if (j == n_args)
+		    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "~A: not a parameter name?"), car(karg))));
+		  if (is_checked(p))
+		    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_3(sc, parameter_set_twice_string, car(p), sc->args)));
+		  if (!is_pair(cdr(karg)))
+		    return(s7_error(sc, sc->error_symbol, set_elist_3(sc, value_is_missing_string, func, car(karg))));
+		  set_checked(p);
+		  karg = cdr(karg);
+		  set_car(p, car(karg));
+		}
+	    }
+	  if (!is_null(karg))
+	    return(s7_error(sc, sc->wrong_number_of_args_symbol, set_elist_3(sc, sc->too_many_arguments_string, func, sc->args)));
+	  if (ki < n_args)
+	    {
+	      df = c_function_arg_defaults(func);
+	      if (has_simple_defaults(func))
+		{
+		  for (ki = i, kpar = par; ki < n_args; ki++, kpar = cdr(kpar))
+		    if (!is_checked(kpar))
+		      set_car(kpar, df[ki]);
+		}
+	      else
+		{
+		  for (ki = i, kpar = par; ki < n_args; ki++, kpar = cdr(kpar))
+		    if (!is_checked(kpar))
+		      {
+			s7_pointer defval;
+			defval = df[ki];
+			if (is_symbol(defval))
+			  set_car(kpar, find_symbol_checked(sc, defval));
+			else
+			  {
+			    if (is_pair(defval))
+			      set_car(kpar, s7_eval(sc, defval, sc->nil));
+			    else set_car(kpar, defval);
+			  }
+		      }
+		}
+	    }
+	  return(call_args);
+	}
+    }
+  if (!is_null(arg))
+    return(s7_error(sc, sc->wrong_number_of_args_symbol, set_elist_3(sc, sc->too_many_arguments_string, func, sc->args)));
+  if (i < n_args)
+    {
+      df = c_function_arg_defaults(func);
+      if (has_simple_defaults(func))
+	{
+	  for (; i < n_args; i++, par = cdr(par))
+	    set_car(par, df[i]);
+	}
+      else
+	{
+	  for (; i < n_args; i++, par = cdr(par))
+	    {
+	      s7_pointer defval;
+	      defval = df[i];
+	      if (is_symbol(defval))
+		set_car(par, find_symbol_checked(sc, defval));
+	      else
+		{
+		  if (is_pair(defval))
+		    set_car(par, s7_eval(sc, defval, sc->nil));
+		  else set_car(par, defval);
+		}
+	    }
+	}
+    }
+  return(call_args);
+}
+
+static void apply_c_function_star(s7_scheme *sc)
+{
+  sc->value = c_function_call(sc->code)(sc, set_c_function_star_args(sc));
+}
+
+s7_pointer s7_apply_function_star(s7_scheme *sc, s7_pointer fnc, s7_pointer args)
+{
+  TRACK(sc);
+  if (sc->safety > NO_SAFETY)
+    set_current_code(sc, cons(sc, fnc, args));
+  else set_current_code(sc, fnc);
+
+  if (is_c_function_star(fnc))
+    {
+      sc->w = sc->args;
+      sc->z = sc->code;
+      sc->args = args;
+      sc->code = fnc;
+      apply_c_function_star(sc);
+      sc->args = sc->w;
+      sc->code = sc->z;
+      return(sc->value);
+    }
+  push_stack(sc, OP_EVAL_DONE, sc->args, sc->code);
+  sc->code = fnc;
+  sc->args = (needs_copied_args(sc->code)) ? copy_list(sc, args) : args;
+  eval(sc, OP_APPLY);
+  return(sc->value);
+}
+
+
 s7_pointer s7_eval(s7_scheme *sc, s7_pointer code, s7_pointer e)
 {
   declare_jump_info();
@@ -43907,7 +44067,7 @@ s7_pointer s7_call(s7_scheme *sc, s7_pointer func, s7_pointer args)
 }
 
 
-s7_pointer s7_call_with_location(s7_scheme *sc, s7_pointer func, s7_pointer args, const char *caller, const char *file, int line)
+s7_pointer s7_call_with_location(s7_scheme *sc, s7_pointer func, s7_pointer args, const char *caller, const char *file, int32_t line)
 {
   s7_pointer result;
 
@@ -43959,7 +44119,7 @@ static s7_pointer implicit_index(s7_scheme *sc, s7_pointer obj, s7_pointer indic
       if (is_null(cdr(indices)))
 	{
 	  if (is_byte_vector(obj))       /* ((vector (byte-vector 1)) 0 0) */
-	    return(small_int((unsigned int)(character(string_ref_1(sc, obj, car(indices))))));
+	    return(small_int((uint32_t)(character(string_ref_1(sc, obj, car(indices))))));
 	  return(string_ref_1(sc, obj, car(indices)));
 	}
       return(s7_error(sc, sc->wrong_number_of_args_symbol, set_elist_3(sc, sc->too_many_arguments_string, obj, indices)));
@@ -44056,7 +44216,7 @@ static s7_pointer g_type_of(s7_scheme *sc, s7_pointer args)
 {
   #define H_type_of "(type-of obj) returns a symbol describing obj's type"
   #define Q_type_of s7_make_signature(sc, 2, s7_make_signature(sc, 2, sc->is_symbol_symbol, sc->is_boolean_symbol), sc->T)
-  int tp;
+  int32_t tp;
 
   tp = type(car(args));
   if ((tp >= 0) && (tp < NUM_TYPES))
@@ -44066,6 +44226,7 @@ static s7_pointer g_type_of(s7_scheme *sc, s7_pointer args)
 
 
 /* -------------------------------- s7-version -------------------------------- */
+
 static s7_pointer g_s7_version(s7_scheme *sc, s7_pointer args)
 {
   #define H_s7_version "(s7-version) returns some string describing the current s7"
@@ -44090,7 +44251,7 @@ void s7_quit(s7_scheme *sc)
 static s7_pointer g_emergency_exit(s7_scheme *sc, s7_pointer args)
 {
   #define H_emergency_exit "(emergency-exit obj) exits s7 immediately"
-  #define Q_emergency_exit pcl_t
+  #define Q_emergency_exit s7_make_signature(sc, 2, sc->T, sc->T)
 
   s7_pointer obj;
 #ifndef EXIT_SUCCESS
@@ -44112,7 +44273,7 @@ static s7_pointer g_emergency_exit(s7_scheme *sc, s7_pointer args)
 static s7_pointer g_exit(s7_scheme *sc, s7_pointer args)
 {
   #define H_exit "(exit obj) exits s7"
-  #define Q_exit pcl_t
+  #define Q_exit s7_make_signature(sc, 2, sc->T, sc->T)
 
   s7_quit(sc);
   return(g_emergency_exit(sc, args));
@@ -44133,12 +44294,12 @@ static bool is_all_x_safe(s7_scheme *sc, s7_pointer p)
 {
   return((!is_pair(p)) ||
 	 ((is_optimized(p)) && (is_all_x_op(optimize_op(p)))) ||
-	 ((car(p) == sc->quote_symbol) && (is_pair(cdr(p))) && (is_null(cddr(p))))); /* (if #t (quote . -1)) */
+	 ((car(p) == sc->quote_symbol) && (is_pair(cdr(p))) && (is_null(cddr(p))))) ; /* (if #t (quote . -1)) */
 }
 
-static int all_x_count(s7_scheme *sc, s7_pointer x)
+static int32_t all_x_count(s7_scheme *sc, s7_pointer x)
 {
-  int count = 0;
+  int32_t count = 0;
   s7_pointer p;
   for (p = cdr(x); is_pair(p); p = cdr(p))
     if (is_all_x_safe(sc, car(p)))
@@ -44200,6 +44361,15 @@ static s7_pointer local_x_c_add1(s7_scheme *sc, s7_pointer arg)
   return(g_add_s1_1(sc, x, cdr(arg))); /* arg=(+ x 1) */
 }
 
+static s7_pointer local_x_c_sub1(s7_scheme *sc, s7_pointer arg)  
+{
+  s7_pointer x;
+  x = local_symbol_value(cadr(arg));
+  if (is_integer(x))
+    return(make_integer(sc, integer(x) - 1));
+  return(minus_c1(sc, x));
+}
+
 static s7_pointer all_x_c_addi(s7_scheme *sc, s7_pointer arg)  
 {
   s7_pointer x;
@@ -44380,7 +44550,7 @@ static s7_pointer all_x_is_proper_list_s(s7_scheme *sc, s7_pointer arg)
 {
     s7_pointer lst;
     lst = find_symbol_unchecked(sc, cadr(arg));
-    if (is_proper_list(sc, lst)) return(sc->T);
+    if (s7_is_proper_list(sc, lst)) return(sc->T);
     if (!has_methods(lst)) return(sc->F);
     return(apply_boolean_method(sc, lst, sc->is_proper_list_symbol));
 }
@@ -44516,6 +44686,14 @@ static s7_pointer all_x_c_sss(s7_scheme *sc, s7_pointer arg)
   return(c_call(arg)(sc, sc->t3_1));
 }
 
+static s7_pointer local_x_c_sss(s7_scheme *sc, s7_pointer arg)
+{
+  set_car(sc->t3_1, local_symbol_value(cadr(arg)));
+  set_car(sc->t3_2, local_symbol_value(caddr(arg)));
+  set_car(sc->t3_3, local_symbol_value(cadddr(arg)));
+  return(c_call(arg)(sc, sc->t3_1));
+}
+
 static s7_pointer all_x_c_scs(s7_scheme *sc, s7_pointer arg)
 {
   set_car(sc->t3_1, find_symbol_unchecked(sc, cadr(arg)));
@@ -44592,14 +44770,7 @@ static s7_pointer all_x_c_opcq_c(s7_scheme *sc, s7_pointer arg)
   return(c_call(arg)(sc, sc->t2_1));
 }
 
-static int next_tx(s7_scheme *sc)
-{
-  sc->t_temp_ctr++;
-  if (sc->t_temp_ctr >= T_TEMPS_SIZE) sc->t_temp_ctr = 0;
-  return(sc->t_temp_ctr);
-}
-
-static s7_pointer safe_list_if_possible(s7_scheme *sc, int num_args)
+static s7_pointer safe_list_if_possible(s7_scheme *sc, int32_t num_args)
 {
   if ((num_args != 0) &&
       (num_args < NUM_SAFE_LISTS))
@@ -44619,7 +44790,7 @@ static s7_pointer safe_list_if_possible(s7_scheme *sc, int num_args)
 static s7_pointer all_x_c_all_s(s7_scheme *sc, s7_pointer arg)
 {
   s7_pointer args, p;
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   sc->t_temps[tx] = safe_list_if_possible(sc, integer(arglist_length(arg)));
   for (args = cdr(arg), p = sc->t_temps[tx]; is_pair(args); args = cdr(args), p = cdr(p))
@@ -44634,7 +44805,7 @@ static s7_pointer all_x_c_all_s(s7_scheme *sc, s7_pointer arg)
 static s7_pointer all_x_c_opcq_opcq(s7_scheme *sc, s7_pointer arg)
 {
   s7_pointer largs;
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   largs = cadr(arg);
   sc->t_temps[tx] = c_call(largs)(sc, cdr(largs));
@@ -44924,6 +45095,26 @@ static s7_pointer all_x_c_c_opssq(s7_scheme *sc, s7_pointer arg)
   return(c_call(arg)(sc, sc->t2_1));
 }
 
+
+
+/* p_pd (oscil o (oscil o1 x)) s_opssq
+ * d_pd for (oscil o1 x)?     
+ * p_dd for (* .1 (tap d x))   c_opssq
+ * s_opsq s_op_s_opsqq
+ * all_x_c_s handles a lot of g_env_w
+ */
+
+static s7_pointer direct_x_c_c_opssq(s7_scheme *sc, s7_pointer arg)
+{
+  s7_pointer largs;
+  s7_double x2;
+  largs = caddr(arg);
+  x2 = ((s7_d_pd_t)opt_direct_x(cddr(arg)))(find_symbol_unchecked(sc, cadr(largs)), 
+					    real_to_double(sc, find_symbol_unchecked(sc, caddr(largs)), "number_to_double"));
+  return(((s7_p_dd_t)opt_direct_x_call(cdr(arg)))(real_to_double(sc, cadr(arg), "*"), x2)); 
+}
+
+
 static s7_pointer local_x_c_s_opssq(s7_scheme *sc, s7_pointer arg)
 {
   s7_pointer largs;
@@ -45000,10 +45191,20 @@ static s7_pointer all_x_c_c_opsq(s7_scheme *sc, s7_pointer arg)
   return(c_call(arg)(sc, sc->t2_1));
 }
 
+static s7_pointer direct_x_c_opsq_opsq(s7_scheme *sc, s7_pointer arg)
+{
+  s7_double x1, x2;
+  cur_sc = sc;
+  x1 = ((s7_d_p_t)opt_direct_x(cdr(arg)))(find_symbol_unchecked(sc, cadr(cadr(arg))));
+  x2 = ((s7_d_p_t)opt_direct_x(cddr(arg)))(find_symbol_unchecked(sc, cadr(caddr(arg))));
+  return(((s7_p_dd_t)opt_direct_x_call(cdr(arg)))(x1, x2)); 
+}
+
+
 static s7_pointer all_x_c_opsq_opsq(s7_scheme *sc, s7_pointer arg)
 {
   s7_pointer largs;
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   largs = cdr(arg);
   set_car(sc->t1_1, find_symbol_unchecked(sc, cadr(car(largs))));
@@ -45018,7 +45219,7 @@ static s7_pointer all_x_c_opsq_opsq(s7_scheme *sc, s7_pointer arg)
 static s7_pointer all_x_c_opcq_opsq(s7_scheme *sc, s7_pointer arg)
 {
   s7_pointer largs;
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   largs = cdr(arg);
   sc->t_temps[tx] = c_call(car(largs))(sc, cdar(largs));
@@ -45032,7 +45233,7 @@ static s7_pointer all_x_c_opcq_opsq(s7_scheme *sc, s7_pointer arg)
 static s7_pointer all_x_c_opsq_opcq(s7_scheme *sc, s7_pointer arg)
 {
   s7_pointer largs;
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   largs = cdr(arg);
   set_car(sc->t1_1, find_symbol_unchecked(sc, cadr(car(largs))));
@@ -45046,7 +45247,7 @@ static s7_pointer all_x_c_opsq_opcq(s7_scheme *sc, s7_pointer arg)
 static s7_pointer all_x_c_opsq_opssq(s7_scheme *sc, s7_pointer arg)
 {
   s7_pointer largs;
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   largs = cdr(arg);
   set_car(sc->t1_1, find_symbol_unchecked(sc, cadr(car(largs))));
@@ -45062,7 +45263,7 @@ static s7_pointer all_x_c_opsq_opssq(s7_scheme *sc, s7_pointer arg)
 static s7_pointer all_x_c_opssq_opsq(s7_scheme *sc, s7_pointer arg)
 {
   s7_pointer largs;
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   largs = cdr(arg);
   set_car(sc->t2_1, find_symbol_unchecked(sc, cadr(car(largs))));
@@ -45078,7 +45279,7 @@ static s7_pointer all_x_c_opssq_opsq(s7_scheme *sc, s7_pointer arg)
 static s7_pointer all_x_c_opssq_opcq(s7_scheme *sc, s7_pointer arg)
 {
   s7_pointer largs;
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   largs = cdr(arg);
   set_car(sc->t2_1, find_symbol_unchecked(sc, cadr(car(largs))));
@@ -45093,7 +45294,7 @@ static s7_pointer all_x_c_opssq_opcq(s7_scheme *sc, s7_pointer arg)
 static s7_pointer all_x_c_opssq_opssq(s7_scheme *sc, s7_pointer arg)
 {
   s7_pointer largs;
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   largs = cdr(arg);
   set_car(sc->t2_1, find_symbol_unchecked(sc, cadr(car(largs))));
@@ -45173,7 +45374,7 @@ static s7_pointer all_x_c_a(s7_scheme *sc, s7_pointer arg)
 
 static s7_pointer all_x_c_ssa(s7_scheme *sc, s7_pointer arg)
 {
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   sc->t_temps[tx] = c_call(cdddr(arg))(sc, cadddr(arg));
   set_car(sc->t3_1, find_symbol_unchecked(sc, cadr(arg)));
@@ -45184,7 +45385,7 @@ static s7_pointer all_x_c_ssa(s7_scheme *sc, s7_pointer arg)
 
 static s7_pointer all_x_c_sas(s7_scheme *sc, s7_pointer arg)
 {
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   sc->t_temps[tx] = c_call(cddr(arg))(sc, caddr(arg));
   set_car(sc->t3_1, find_symbol_unchecked(sc, cadr(arg)));
@@ -45195,7 +45396,7 @@ static s7_pointer all_x_c_sas(s7_scheme *sc, s7_pointer arg)
 
 static s7_pointer all_x_c_sca(s7_scheme *sc, s7_pointer arg)
 {
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   sc->t_temps[tx] = c_call(cdddr(arg))(sc, cadddr(arg));
   set_car(sc->t3_1, find_symbol_unchecked(sc, cadr(arg)));
@@ -45206,7 +45407,7 @@ static s7_pointer all_x_c_sca(s7_scheme *sc, s7_pointer arg)
 
 static s7_pointer all_x_c_csa(s7_scheme *sc, s7_pointer arg)
 {
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   sc->t_temps[tx] = c_call(cdddr(arg))(sc, cadddr(arg));
   set_car(sc->t3_1, cadr(arg));
@@ -45217,7 +45418,7 @@ static s7_pointer all_x_c_csa(s7_scheme *sc, s7_pointer arg)
 
 static s7_pointer all_x_c_ca(s7_scheme *sc, s7_pointer arg)
 {
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   sc->t_temps[tx] = c_call(cddr(arg))(sc, caddr(arg));
   set_car(sc->t2_1, cadr(arg));
@@ -45227,7 +45428,7 @@ static s7_pointer all_x_c_ca(s7_scheme *sc, s7_pointer arg)
 
 static s7_pointer all_x_c_ac(s7_scheme *sc, s7_pointer arg)
 {
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   sc->t_temps[tx] = c_call(cdr(arg))(sc, cadr(arg));
   set_car(sc->t2_2, caddr(arg));
@@ -45237,7 +45438,7 @@ static s7_pointer all_x_c_ac(s7_scheme *sc, s7_pointer arg)
 
 static s7_pointer all_x_c_sa(s7_scheme *sc, s7_pointer arg)
 {
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   sc->t_temps[tx] = c_call(cddr(arg))(sc, caddr(arg));
   set_car(sc->t2_1, find_symbol_checked(sc, cadr(arg)));
@@ -45247,7 +45448,7 @@ static s7_pointer all_x_c_sa(s7_scheme *sc, s7_pointer arg)
 
 static s7_pointer all_x_c_as(s7_scheme *sc, s7_pointer arg)
 {
-  int tx;
+  int32_t tx;
   tx = next_tx(sc);
   sc->t_temps[tx] = c_call(cdr(arg))(sc, cadr(arg));
   set_car(sc->t2_2, find_symbol_checked(sc, caddr(arg)));
@@ -45324,7 +45525,7 @@ static s7_pointer all_x_closure_a(s7_scheme *sc, s7_pointer code)
 
 static void all_x_function_init(void)
 {
-  int i;
+  int32_t i;
   for (i = 0; i < OPT_MAX_DEFINED; i++)
     all_x_function[i] = NULL;
 
@@ -45355,6 +45556,7 @@ static void all_x_function_init(void)
   all_x_function[HOP_SAFE_C_SQ] = all_x_c_sq;
   all_x_function[HOP_SAFE_C_QS] = all_x_c_qs;
   all_x_function[HOP_SAFE_C_SS] = all_x_c_ss;
+  all_x_function[HOP_SAFE_C_LL] = local_x_c_ss;
 
   all_x_function[HOP_SAFE_C_opSq_S] = all_x_c_opsq_s;
   all_x_function[HOP_SAFE_C_opSq_C] = all_x_c_opsq_c;
@@ -45401,6 +45603,7 @@ static void all_x_function_init(void)
   all_x_function[HOP_SAFE_CLOSURE_S_C] = all_x_closure_s;
   all_x_function[HOP_SAFE_CLOSURE_A_C] = all_x_closure_a;
   all_x_function[HOP_SAFE_C_ALL_S] = all_x_c_all_s;
+  all_x_function[HOP_SAFE_QUOTE] = all_x_q;
 }
 
 static s7_pointer g_not_c_c(s7_scheme *sc, s7_pointer args);
@@ -45412,7 +45615,7 @@ static s7_pointer g_if_x2(s7_scheme *sc, s7_pointer args);
 static s7_pointer g_and_2(s7_scheme *sc, s7_pointer args);
 static s7_pointer g_and_3(s7_scheme *sc, s7_pointer args);
 static s7_pointer g_or_2(s7_scheme *sc, s7_pointer args);
-static s7_pointer check_quote(s7_scheme *sc, s7_pointer code);
+static inline s7_pointer check_quote(s7_scheme *sc, s7_pointer code);
 
 static s7_function all_x_eval(s7_scheme *sc, s7_pointer holder, s7_pointer e, safe_sym_t *checker)
 {
@@ -45436,18 +45639,13 @@ static s7_function all_x_eval(s7_scheme *sc, s7_pointer holder, s7_pointer e, sa
 		    }
 		  else return(all_x_is_pair_cdr);
 		}
-	      if (c_call(arg) == g_add_cs1)
-		return(all_x_c_add1);
-	      if (c_call(arg) == g_add_cl1)
-		return(local_x_c_add1);
-	      if (c_call(arg) == g_if_x2)
-		return(all_x_if_x2);
-	      if (c_call(arg) == g_and_2)
-		return(all_x_and2);
-	      if (c_call(arg) == g_or_2)
-		return(all_x_or2);
-	      if (c_call(arg) == g_and_3)
-		return(all_x_and3);
+	      if (c_call(arg) == g_add_cs1) return(all_x_c_add1);
+	      if (c_call(arg) == g_add_cl1) return(local_x_c_add1);
+	      if (c_call(arg) == g_subtract_cl1) return(local_x_c_sub1);
+	      if (c_call(arg) == g_if_x2) return(all_x_if_x2);	      /* g_if_x1 doesn't happen much */
+	      if (c_call(arg) == g_and_2) return(all_x_and2);
+	      if (c_call(arg) == g_or_2) return(all_x_or2);
+	      if (c_call(arg) == g_and_3) return(all_x_and3);
 	      if ((c_call(arg) == g_add_si) &&
 		  (checker(sc, cadr(arg), e)))
 		return((is_local_symbol(cdr(arg))) ? local_x_c_addi : all_x_c_addi);
@@ -45469,7 +45667,7 @@ static s7_function all_x_eval(s7_scheme *sc, s7_pointer holder, s7_pointer e, sa
 	    case HOP_SAFE_C_S:
 	      {
 		bool is_local;
-		is_local = is_local_symbol(cdr(arg));
+		is_local = (is_local_symbol(cdr(arg)) || (is_immutable(cadr(arg))));
 		if (car(arg) == sc->cdr_symbol) return((is_local) ? local_x_cdr_s : all_x_cdr_s);
 		if (car(arg) == sc->car_symbol) return((is_local) ? local_x_car_s : all_x_car_s);
 		if (car(arg) == sc->cadr_symbol) return((is_local) ? local_x_cadr_s : all_x_cadr_s);
@@ -45483,7 +45681,7 @@ static s7_function all_x_eval(s7_scheme *sc, s7_pointer holder, s7_pointer e, sa
 		if (car(arg) == sc->is_vector_symbol) return(all_x_is_vector_s);
 		if (car(arg) == sc->is_proper_list_symbol) return(all_x_is_proper_list_s);
 		if (car(arg) == sc->not_symbol) return(all_x_not_s);
-		return(all_x_c_s);
+		return((is_local) ? local_x_c_s : all_x_c_s);
 	      }
 
 	    case HOP_SAFE_C_L:
@@ -45517,6 +45715,13 @@ static s7_function all_x_eval(s7_scheme *sc, s7_pointer holder, s7_pointer e, sa
 		return(all_x_c_ls);
 	      return(all_x_c_ss);
 	      
+	    case HOP_SAFE_C_SSS:
+	      if ((is_local_symbol(cdr(arg))) &&
+		  (is_local_symbol(cddr(arg))) &&
+		  (is_local_symbol(cdddr(arg))))
+		return(local_x_c_sss);
+	      return(all_x_c_sss);
+	      
 	    case HOP_SAFE_C_opSSq:
 	      if (car(arg) == sc->not_symbol)
 		return(all_x_c_not_opssq);
@@ -45545,6 +45750,16 @@ static s7_function all_x_eval(s7_scheme *sc, s7_pointer holder, s7_pointer e, sa
 		return(local_x_c_s_opsq);
 	      return(all_x_c_s_opsq);
 
+	    case HOP_SAFE_C_C_opSSq:
+	      if (has_direct_x_opt(arg))
+		return(direct_x_c_c_opssq);
+	      return(all_x_c_c_opssq);
+
+	    case HOP_SAFE_C_opSq_opSq:
+	      if (has_direct_x_opt(arg))
+		return(direct_x_c_opsq_opsq);
+	      return(all_x_c_opsq_opsq);
+
 	    case HOP_SAFE_C_AA:
 	      if (is_symbol(cadr(arg)))
 		return(all_x_c_sa);
@@ -45557,14 +45772,16 @@ static s7_function all_x_eval(s7_scheme *sc, s7_pointer holder, s7_pointer e, sa
 	      return(NULL);
 
 	    default:
+	      /* if (!all_x_function[optimize_op(arg)]) fprintf(stderr, "all_x_eval %s %s\n", DISPLAY(arg), (is_optimized(arg)) ? opt_names[optimize_op(arg)] : "unopt"); */
 	      return(all_x_function[optimize_op(arg)]);
 	    }
-	}
+	} /* is_optimized */
       if (car(arg) == sc->quote_symbol)
 	{
 	  check_quote(sc, cdr(arg));
 	  return(all_x_q);
 	}
+      /* fprintf(stderr, "all_x_eval %s %d %d %s\n", DISPLAY(arg), car(arg) == sc->quote_symbol, is_optimized(arg), (is_optimized(arg)) ? opt_names[optimize_op(arg)] : "unopt"); */
       return(NULL);
     }
   if (is_symbol(arg))
@@ -45585,30 +45802,12 @@ static s7_function all_x_eval(s7_scheme *sc, s7_pointer holder, s7_pointer e, sa
 
 /* -------------------------------------------------------------------------------- */
 
-typedef s7_int (*s7_i_pi_t)(s7_pointer p, s7_int i1);
-typedef s7_int (*s7_i_pii_t)(s7_pointer p, s7_int i1, s7_int i2);
-typedef s7_int (*s7_i_iii_t)(s7_int i1, s7_int i2, s7_int i3);
-typedef s7_pointer (*s7_p_p_t)(s7_pointer p);
-typedef s7_pointer (*s7_p_t)(void);
-typedef bool (*s7_b_pp_t)(s7_pointer p1, s7_pointer p2);
-typedef bool (*s7_b_pi_t)(s7_pointer p1, s7_int i2);
-typedef bool (*s7_b_d_t)(s7_double p1);
-typedef bool (*s7_b_i_t)(s7_int p1);
-typedef bool (*s7_b_ii_t)(s7_int p1, s7_int p2);
-typedef bool (*s7_b_dd_t)(s7_double p1, s7_double p2);
-typedef s7_pointer (*s7_p_pp_t)(s7_pointer p1, s7_pointer p2);
-typedef s7_pointer (*s7_p_ppi_t)(s7_pointer p1, s7_pointer p2, s7_int i1);
-typedef s7_pointer (*s7_p_ppp_t)(s7_pointer p1, s7_pointer p2, s7_pointer p3);
-typedef s7_pointer (*s7_p_pi_t)(s7_pointer p1, s7_int i1);
-typedef s7_pointer (*s7_p_pip_t)(s7_pointer p1, s7_int i1, s7_pointer p2);
-typedef s7_pointer (*s7_p_ii_t)(s7_int i1, s7_int i2);
-
 enum {o_d_v, o_d_vd, o_d_vdd, o_d_vid, o_d_id, o_d_pi, o_d_ip, o_d_pd, o_d_pid, o_d, o_d_d, o_d_dd, o_d_ddd, o_d_dddd, 
       o_i_d, o_i_i, o_i_ii, o_i_iii, o_i_p, o_i_pi, o_i_pii, o_d_p, o_b_p, o_b_pp, o_b_pp_direct, o_b_pi, o_b_ii, o_b_dd, 
-      o_p, o_p_p, o_p_ii,
+      o_p, o_p_p, o_p_ii, o_p_dd,
       o_p_pp, o_p_pp_direct, o_p_ppp, o_p_ppp_direct, o_p_pi, o_p_pi_direct, o_p_ppi, o_p_pip, o_p_pip_direct, o_b_i, o_b_d};
 
-static void add_opt_func(s7_pointer f, int typ, void *func)
+static void add_opt_func(s7_pointer f, int32_t typ, void *func)
 {
   if (is_c_function(f))
     {
@@ -45621,7 +45820,7 @@ static void add_opt_func(s7_pointer f, int typ, void *func)
     }
 }
 
-static void *opt_func(s7_pointer f, int typ)
+static void *opt_func(s7_pointer f, int32_t typ)
 {
   if (is_c_function(f))
     {
@@ -45763,6 +45962,11 @@ static s7_b_pp_t s7_b_pp_direct_function(s7_pointer f) {return((s7_b_pp_t)opt_fu
 static void s7_set_p_ii_function(s7_pointer f, s7_p_ii_t df) {add_opt_func(f, o_p_ii, (void *)df);}
 static s7_p_ii_t s7_p_ii_function(s7_pointer f) {return((s7_p_ii_t)opt_func(f, o_p_ii));}
 
+#if (!WITH_GMP)
+static void s7_set_p_dd_function(s7_pointer f, s7_p_dd_t df) {add_opt_func(f, o_p_dd, (void *)df);}
+#endif
+static s7_p_dd_t s7_p_dd_function(s7_pointer f) {return((s7_p_dd_t)opt_func(f, o_p_dd));}
+
 
 #if DEBUGGING
 static opt_info *alloc_opo(s7_scheme *sc, s7_pointer expr)
@@ -45791,7 +45995,7 @@ static opt_info *alloc_opo_1(s7_scheme *sc)
 
 /* t600 has tests, t593 runs t*.scm */
 
-static bool return_false(s7_scheme *sc, s7_pointer expr, const char *func, int line)
+static bool return_false(s7_scheme *sc, s7_pointer expr, const char *func, int32_t line)
 {
 #if OPT_PRINT
   /* if (strcmp(func, "cell_optimize") == 0) */
@@ -45883,7 +46087,7 @@ static s7_pointer i_to_p(void *p)    {opt_info *o = (opt_info *)p; return(make_i
 static s7_pointer i_to_p_nr(void *p) {opt_info *o = (opt_info *)p; o->v8.fi(o); return(NULL);}
 
 
-/* -------------------------------- int opts -------------------------------- */
+/* -------------------------------- int32_t opts -------------------------------- */
 
 static s7_int opt_unwrap_int(void *p)
 {
@@ -45975,7 +46179,7 @@ static bool i_idp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
   s7_i_i_t func;
   s7_i_d_t idf;
   s7_i_p_t ipf;
-  int start;
+  int32_t start;
   start = sc->pc;
   
   func = s7_i_i_function(s_func);
@@ -46087,11 +46291,11 @@ static bool i_pi_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
       if (is_pair(sig))
 	{
 	  s7_pointer arg1, arg2;
-	  int start;
+	  int32_t start;
 	  start = sc->pc;
 	  arg1 = cadr(car_x);
 	  arg2 = caddr(car_x);
-	  
+
 	  if ((is_symbol(cadr(sig))) &&
 	      (is_symbol(arg1)))
 	    {
@@ -46171,14 +46375,6 @@ static s7_int opt_i_ii_cf(void *p)
   return(o->v3.i_ii_f(o->v1.i, o1->v7.fi(o1)));
 }
 
-static s7_int opt_i_ii_fc(void *p)
-{
-  opt_info *o = (opt_info *)p;
-  opt_info *o1;
-  o1 = cur_sc->opts[++cur_sc->pc];
-  return(o->v3.i_ii_f(o1->v7.fi(o1), o->v2.i));
-}
-
 static s7_int opt_i_ii_sf(void *p)
 {
   opt_info *o = (opt_info *)p;
@@ -46198,6 +46394,15 @@ static s7_int opt_i_ii_ff(void *p)
   return(o->v3.i_ii_f(i1, o1->v7.fi(o1)));
 }
 
+#if (!WITH_GMP)
+static s7_int opt_i_ii_fc(void *p)
+{
+  opt_info *o = (opt_info *)p;
+  opt_info *o1;
+  o1 = cur_sc->opts[++cur_sc->pc];
+  return(o->v3.i_ii_f(o1->v7.fi(o1), o->v2.i));
+}
+
 static s7_int opt_i_ii_fco(void *p)
 {
   opt_info *o = (opt_info *)p;
@@ -46224,6 +46429,7 @@ static bool i_ii_fc_combinable(s7_scheme *sc, opt_info *opc)
     }
   return(false);
 }
+#endif
 
 static bool i_ii_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x)
 {
@@ -46236,7 +46442,7 @@ static bool i_ii_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
       if (is_pair(sig))
 	{
 	  s7_pointer arg1, arg2;
-	  int start;
+	  int32_t start;
 	  start = sc->pc;
 	  arg1 = cadr(car_x);
 	  arg2 = caddr(car_x);
@@ -46290,6 +46496,35 @@ static bool i_ii_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 			      if ((car(car_x) == sc->modulo_symbol) &&
 				  (integer(arg2) > 1))
 				opc->v3.i_ii_f = modulo_i_ii_direct;
+			      else
+				{
+				  if (car(car_x) == sc->ash_symbol)
+				    {
+				      if (opc->v2.i < 0)
+					{
+					  if (opc->v2.i == -1)
+					    opc->v3.i_ii_f = rsh_i_i2_direct;
+					  else opc->v3.i_ii_f = rsh_i_ii_direct;
+					}
+				      else opc->v3.i_ii_f = lsh_i_ii_direct;
+				    }
+				  else
+				    {
+				      if (opc->v2.i > 0)
+					{
+					  if (opc->v3.i_ii_f == quotient_i_ii)
+					    opc->v3.i_ii_f = quotient_i_ii_direct;
+					  else
+					    {
+					      if (opc->v2.i > 1)
+						{
+						  if (opc->v3.i_ii_f == remainder_i_ii)
+						    opc->v3.i_ii_f = remainder_i_ii_direct;
+						}
+					    }
+					}
+				      }
+				}
 #endif
 			      return(true);
 			    }
@@ -46317,18 +46552,35 @@ static bool i_ii_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 		}
 	      else
 		{
+#if (!WITH_GMP)
 		  if (is_opt_int(arg2))
 		    {
 		      opc->v2.i = integer(arg2);
 		      if (int_optimize(sc, cdr(car_x)))
 			{
 			  if (!i_ii_fc_combinable(sc, opc))
-			    opc->v7.fi = opt_i_ii_fc;
+			    {
+			      if (opc->v2.i > 0)
+				{
+				  if (opc->v3.i_ii_f == quotient_i_ii)
+				    opc->v3.i_ii_f = quotient_i_ii_direct;
+				  else
+				    {
+				      if (opc->v2.i > 1)
+					{
+					  if (opc->v3.i_ii_f == remainder_i_ii)
+					    opc->v3.i_ii_f = remainder_i_ii_direct;
+					}
+				    }
+				}
+			      opc->v7.fi = opt_i_ii_fc;
+			    }
 			  return(true);
 			}
 		      pc_fallback(sc, start);
 		    }
 		  else
+#endif
 		    {
 		      if ((int_optimize(sc, cdr(car_x))) &&
 			  (int_optimize(sc, cddr(car_x))))
@@ -46365,7 +46617,7 @@ static bool i_iii_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
   ifunc = s7_i_iii_function(s_func);
   if (ifunc)
     {
-      int start;
+      int32_t start;
       start = sc->pc;
       if ((int_optimize(sc, cdr(car_x))) &&
 	  (int_optimize(sc, cddr(car_x))) &&
@@ -46463,7 +46715,7 @@ static bool i_pii_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 	  obj = s7_symbol_value(sc, cadr(car_x));
 	  if (s7_apply_function(sc, checker, set_plist_1(sc, obj)) == sc->T)
 	    {
-	      int start;
+	      int32_t start;
 	      start = sc->pc;
 	      opc->v3.i_pii_f = pfunc;
 	      opc->v1.p = find_symbol(sc, cadr(car_x));
@@ -46505,7 +46757,7 @@ static s7_int opt_i_add_any_f(void *p)
 {
   opt_info *o = (opt_info *)p;
   s7_int sum = 0;
-  int i;
+  int32_t i;
   for (i = 0; i < o->v1.i; i++)
     {
       opt_info *o1;
@@ -46539,7 +46791,7 @@ static s7_int opt_i_multiply_any_f(void *p)
 {
   opt_info *o = (opt_info *)p;
   s7_int sum = 1;
-  int i;
+  int32_t i;
   for (i = 0; i < o->v1.i; i++)
     {
       opt_info *o1;
@@ -46552,7 +46804,7 @@ static s7_int opt_i_multiply_any_f(void *p)
 static bool i_add_any_ok(s7_scheme *sc, opt_info *opc, s7_pointer car_x)
 {
   s7_pointer p, head;
-  int cur_len = 0, start;
+  int32_t cur_len = 0, start;
   start = sc->pc;
   head = car(car_x);
   for (p = cdr(car_x); is_pair(p); p = cdr(p))
@@ -46651,7 +46903,7 @@ static bool set_i_i_f_combinable(s7_scheme *sc, opt_info *opc)
   return(false);
 }
 
-static bool i_syntax_ok(s7_scheme *sc, s7_pointer car_x, int len)
+static bool i_syntax_ok(s7_scheme *sc, s7_pointer car_x, int32_t len)
 {
   if ((car(car_x) == sc->set_symbol) &&
       (len == 3))
@@ -46689,7 +46941,7 @@ static bool i_syntax_ok(s7_scheme *sc, s7_pointer car_x, int len)
   return(return_false(sc, car_x, __func__, __LINE__));
 }
 
-static bool i_implicit_ok(s7_scheme *sc, s7_pointer car_x, int len)
+static bool i_implicit_ok(s7_scheme *sc, s7_pointer car_x, int32_t len)
 {
   s7_pointer s_slot, head;
   head = car(car_x);
@@ -46810,7 +47062,7 @@ static s7_double opt_d_d_f(void *p)
 static bool d_d_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x)
 {
   s7_d_d_t func;
-  int start;
+  int32_t start;
   start = sc->pc;
 
   func = s7_d_d_function(s_func);
@@ -46906,7 +47158,7 @@ static s7_double opt_d_p_f(void *p)
 static bool d_p_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x)
 {
   s7_d_p_t dpf;
-  int start;
+  int32_t start;
   start = sc->pc;
   dpf = s7_d_p_function(s_func);
   if (dpf)
@@ -46964,7 +47216,7 @@ static bool d_pi_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
       if (ifunc)
 	{
 	  s7_pointer arg2;
-	  int start;
+	  int32_t start;
 	  start = sc->pc;
 	  opc->v1.p = find_symbol(sc, cadr(car_x));
 	  if (!is_slot(opc->v1.p)) 
@@ -47069,7 +47321,7 @@ static bool d_pd_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
       if (func)
 	{
 	  s7_pointer arg2;
-	  int start;
+	  int32_t start;
 	  start = sc->pc;
 	  arg2 = caddr(car_x);
 	  opc->v3.d_pd_f = func;
@@ -47157,7 +47409,7 @@ static s7_double opt_d_vd_ff(void *p)
 static s7_double opt_d_dd_cs(void *p);
 static s7_double opt_d_dd_sf(void *p);
 
-static bool d_vd_f_combinable(s7_scheme *sc, int start)
+static bool d_vd_f_combinable(s7_scheme *sc, int32_t start)
 {
   opt_info *opc, *o1;
   opc = sc->opts[start - 1];
@@ -47229,7 +47481,7 @@ static bool d_vd_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 	      if (s7_apply_function(sc, checker, set_plist_1(sc, obj)) == sc->T)
 		{
 		  s7_pointer arg2;
-		  int start;
+		  int32_t start;
 		  start = sc->pc;
 		  arg2 = caddr(car_x);
 		  opc->v3.d_vd_f = vfunc;
@@ -47288,6 +47540,12 @@ static s7_double opt_d_id_sf(void *p)
   return(o->v3.d_id_f(integer(slot_value(o->v1.p)), o1->v7.fd(o1)));
 }
 
+static s7_double opt_d_id_sc(void *p)
+{
+  opt_info *o = (opt_info *)p;
+  return(o->v3.d_id_f(integer(slot_value(o->v1.p)), o->v2.x));
+}
+
 static s7_double opt_d_id_sfo(void *p)
 {
   opt_info *o = (opt_info *)p;
@@ -47333,23 +47591,32 @@ static bool d_id_sf_combinable(s7_scheme *sc, opt_info *opc)
 
 static bool d_id_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x)
 {
+  /* fprintf(stderr, "d_id: %s\n", DISPLAY(car_x)); */
   if (is_symbol(cadr(car_x)))
     {
       s7_d_id_t flt_func;
       flt_func = s7_d_id_function(s_func);
       if (flt_func)
 	{
-	  int start;
+	  int32_t start;
 	  start = sc->pc;
 	  opc->v3.d_id_f = flt_func;
 	  opc->v1.p = find_symbol(sc, cadr(car_x));
 	  if ((is_slot(opc->v1.p)) &&
-	      (is_integer(slot_value(opc->v1.p))) &&
-	      (float_optimize(sc, cddr(car_x))))
+	      (is_integer(slot_value(opc->v1.p))))
 	    {
-	      if (!d_id_sf_combinable(sc, opc))
-		opc->v7.fd = opt_d_id_sf;
-	      return(true);
+	      if (is_t_real(caddr(car_x)))
+		{
+		  opc->v7.fd = opt_d_id_sc;
+		  opc->v2.x = real(caddr(car_x));
+		  return(true);
+		}
+	      if (float_optimize(sc, cddr(car_x)))
+		{
+		  if (!d_id_sf_combinable(sc, opc))
+		    opc->v7.fd = opt_d_id_sf;
+		  return(true);
+		}
 	    }
 	  pc_fallback(sc, start);
 	}
@@ -47491,7 +47758,15 @@ static s7_double opt_d_dd_fff(void *p)
   return(o->v3.d_dd_f(x1, x2));
 }
 
-static bool d_dd_ff_combinable(s7_scheme *sc, int start)
+static s7_double opt_d_dd_ff_o4(void *p)
+{
+  opt_info *o = (opt_info *)p;
+  s7_double x1;
+  x1 = o->v2.d_v_f(o->v1.obj);
+  return(o->v3.d_dd_f(x1, o->v8.d_vd_f(o->v5.obj, o->v4.d_v_f(o->v6.obj))));
+}
+
+static bool d_dd_ff_combinable(s7_scheme *sc, int32_t start)
 {
   opt_info *opc, *o1;
   opc = sc->opts[start - 1];
@@ -47503,7 +47778,6 @@ static bool d_dd_ff_combinable(s7_scheme *sc, int start)
       if ((o2->v7.fd == opt_d_v) &&
 	  (sc->pc == start + 2))
 	{
-	  opc->v6.p = o1->v1.p;
 	  opc->v1.obj = o1->v5.obj;
 	  opc->v4.d_v_f = o1->v3.d_v_f;
 	  opc->v2.obj = o2->v5.obj;
@@ -47527,10 +47801,24 @@ static bool d_dd_ff_combinable(s7_scheme *sc, int start)
 	    }
 	  else 
 	    {
-	      opc->v5.p = o1->v1.p;
-	      opc->v1.obj = o1->v5.obj;
-	      opc->v2.d_v_f = o1->v3.d_v_f;
-	      opc->v7.fd = opt_d_dd_ff_o1;
+	      if ((o2->v7.fd == opt_d_vd_o) &&
+		  (sc->pc == start + 2))
+		{
+		  opc->v1.obj = o1->v5.obj;
+		  opc->v2.d_v_f = o1->v3.d_v_f;
+		  opc->v8.d_vd_f = o2->v3.d_vd_f;
+		  opc->v4.d_v_f = o2->v4.d_v_f;
+		  opc->v5.obj = o2->v5.obj;
+		  opc->v6.obj = o2->v6.obj;
+		  opc->v7.fd = opt_d_dd_ff_o4;
+		  sc->pc -= 2;
+		}
+	      else
+		{
+		  opc->v1.obj = o1->v5.obj;
+		  opc->v2.d_v_f = o1->v3.d_v_f;
+		  opc->v7.fd = opt_d_dd_ff_o1;
+		}
 	    }
 	}
       return(true);
@@ -47599,7 +47887,7 @@ static bool d_dd_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
   if (func)
     {
       s7_pointer arg1, arg2;
-      int start;
+      int32_t start;
       start = sc->pc;
       arg1 = cadr(car_x);
       arg2 = caddr(car_x);
@@ -47758,6 +48046,12 @@ static bool d_dd_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 }
 
 /* -------- d_ddd -------- */
+static s7_double opt_d_ddd_sss(void *p)
+{
+  opt_info *o = (opt_info *)p;
+  return(o->v4.d_ddd_f(real(slot_value(o->v1.p)), real(slot_value(o->v2.p)), real(slot_value(o->v3.p))));
+}
+
 static s7_double opt_d_ddd_ssf(void *p)
 {
   opt_info *o = (opt_info *)p;
@@ -47790,6 +48084,57 @@ static s7_double opt_d_ddd_fff(void *p)
   return(o->v4.d_ddd_f(x1, x2, o3->v7.fd(o3)));
 }
 
+static s7_double opt_d_ddd_fff1(void *p)
+{
+  opt_info *o = (opt_info *)p;
+  s7_double x1, x2, x3;
+  x1 = o->v1.d_v_f(o->v2.obj);
+  x2 = o->v3.d_v_f(o->v4.obj);
+  x3 = o->v5.d_v_f(o->v6.obj);
+  return(o->v8.d_ddd_f(x1, x2, x3));
+}
+
+static s7_double opt_d_ddd_fff2(void *p)
+{
+  opt_info *o = (opt_info *)p;
+  opt_info *o2, *o3;
+  s7_double x1, x2;
+  x1 = o->v1.d_v_f(o->v2.obj);
+  cur_sc->pc += 2;
+  o2 = cur_sc->opts[cur_sc->pc];
+  x2 = o2->v7.fd(o2);
+  o3 = cur_sc->opts[++cur_sc->pc];
+  return(o->v8.d_ddd_f(x1, x2, o3->v7.fd(o3)));
+}
+
+static bool d_ddd_fff_combinable(s7_scheme *sc, opt_info *opc, int32_t start)
+{
+  if (sc->opts[start]->v7.fd == opt_d_v)
+    {
+      opt_info *o1;
+      opc->v8.d_ddd_f = opc->v4.d_ddd_f;
+      o1 = sc->opts[start];
+      opc->v1.d_v_f = o1->v3.d_v_f;
+      opc->v2.obj = o1->v5.obj;
+      if ((sc->opts[start + 1]->v7.fd == opt_d_v) &&
+	  (sc->opts[start + 2]->v7.fd == opt_d_v))
+	{
+	  opc->v7.fd = opt_d_ddd_fff1;
+	  o1 = sc->opts[start + 1];
+	  opc->v3.d_v_f = o1->v3.d_v_f;
+	  opc->v4.obj = o1->v5.obj;
+	  o1 = sc->opts[start + 2];
+	  opc->v5.d_v_f = o1->v3.d_v_f;
+	  opc->v6.obj = o1->v5.obj;
+	  sc->pc -= 3;
+	  return(true);
+	}
+      opc->v7.fd = opt_d_ddd_fff2;
+      return(true);
+    }
+  return(false);
+}
+
 static bool d_ddd_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x)
 {
   s7_d_ddd_t f;
@@ -47797,7 +48142,7 @@ static bool d_ddd_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
   f = s7_d_ddd_function(s_func);
   if (f)
     {
-      int start;
+      int32_t start;
       s7_pointer arg1, arg2;
       arg1 = cadr(car_x);
       arg2 = caddr(car_x);
@@ -47819,6 +48164,20 @@ static bool d_ddd_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 		  if ((is_slot(slot)) &&
 		      (is_float(slot_value(slot))))
 		    {
+		      s7_pointer arg3;
+		      arg3 = cadddr(car_x);
+		      if (is_symbol(arg3))
+			{
+			  s7_pointer slot;
+			  slot = find_symbol(sc, arg3);
+			  opc->v3.p = slot;
+			  if ((is_slot(slot)) &&
+			      (is_float(slot_value(slot))))
+			    {
+			      opc->v7.fd = opt_d_ddd_sss;
+			      return(true);
+			    }
+			}
 		      if (float_optimize(sc, cdddr(car_x)))
 			{
 			  opc->v7.fd = opt_d_ddd_ssf;
@@ -47840,7 +48199,15 @@ static bool d_ddd_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 	  (float_optimize(sc, cddr(car_x))) &&
 	  (float_optimize(sc, cdddr(car_x))))
 	{
-	  opc->v7.fd = opt_d_ddd_fff;
+	  if (!d_ddd_fff_combinable(sc, opc, start))
+	    {
+	    opc->v7.fd = opt_d_ddd_fff;
+	    /* fprintf(stderr, "%s\n", DISPLAY(car_x)); */
+	    /* (* (env pulsef) (blackman pulse2) (polywave gen (rand-interp rnd)))
+	     *  (* (env e)...) is common = opt_d_v: v3 v5 -> opc 
+	     * (+ k (* 2 alpha) -2.0) (* scl ang ang) (- n k 1)
+	     */
+	    }
 	  return(true);
 	}
       pc_fallback(sc, start);
@@ -47982,7 +48349,7 @@ static bool d_pid_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
       (is_symbol(cadr(car_x))))
     {
       s7_pointer head;
-      int start;
+      int32_t start;
       start = sc->pc;
 
       head = car(car_x);
@@ -48046,22 +48413,20 @@ static s7_double opt_d_vid_ssf(void *p)
   return(o->v4.d_vid_f(o->v5.obj, integer(slot_value(o->v2.p)), o1->v7.fd(o1)));
 }
 
-/* d_vid_ssf -> d_dd_ff_o1 -> d_vd_o1 -> d_dd_ff_o3 */
-static s7_double opt_fmv(void *p)
+static inline s7_double opt_fmv(void *p)
 {
+  /* d_vid_ssf -> d_dd_ff_o1 -> d_vd_o1 -> d_dd_ff_o3 */
   opt_info *o = (opt_info *)p;
   opt_info *o1, *o2, *o3;
   s7_double amp_env, index_env, vib;
 
-  o1 = cur_sc->opts[++cur_sc->pc]; /* ff_o1 */
+  o1 = cur_sc->opts[cur_sc->pc + 1];
+  o2 = cur_sc->opts[cur_sc->pc + 3];
+  o3 = cur_sc->opts[cur_sc->pc += 5];
   amp_env = o1->v2.d_v_f(o1->v1.obj); 
-  o2 = cur_sc->opts[cur_sc->pc += 2];
-  cur_sc->pc += 2;
-  o3 = cur_sc->opts[cur_sc->pc];
-  index_env = o3->v5.d_v_f(o3->v1.obj);
   vib = real(slot_value(o2->v2.p));
-  /* increment pc? */
-  
+  index_env = o3->v5.d_v_f(o3->v1.obj);
+
   return(o->v4.d_vid_f(o->v5.obj, 
 		       integer(slot_value(o->v2.p)),
 		       o1->v3.d_dd_f(amp_env,
@@ -48085,7 +48450,7 @@ static bool d_vid_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 	  sig = s7_procedure_signature(sc, s_func);
 	  if (is_pair(sig))
 	    {
-	      int start;
+	      int32_t start;
 	      s7_pointer slot, obj, checker;
 	      start = sc->pc;
 	      checker = s7_symbol_value(sc, cadr(sig));
@@ -48152,7 +48517,7 @@ static bool d_vdd_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 	  obj = slot_value(slot);
 	  if (s7_apply_function(sc, checker, set_plist_1(sc, obj)) == sc->T)
 	    {
-	      int start;
+	      int32_t start;
 	      start = sc->pc;
 	      if ((float_optimize(sc, cddr(car_x))) &&
 		  (float_optimize(sc, cdddr(car_x))))
@@ -48210,7 +48575,7 @@ static s7_double opt_d_add_any_f(void *p)
 {
   opt_info *o = (opt_info *)p;
   s7_double sum = 0.0;
-  int i;
+  int32_t i;
   for (i = 0; i < o->v1.i; i++)
     {
       opt_info *o1;
@@ -48225,7 +48590,7 @@ static s7_double opt_d_subtract_any_f(void *p)
   opt_info *o = (opt_info *)p;
   opt_info *o1;
   s7_double sum;
-  int i;
+  int32_t i;
   o1 = cur_sc->opts[++cur_sc->pc];
   sum = o1->v7.fd(o1);
   for (i = 1; i < o->v1.i; i++)
@@ -48260,7 +48625,7 @@ static s7_double opt_d_multiply_any_f(void *p)
 {
   opt_info *o = (opt_info *)p;
   s7_double sum = 1.0;
-  int i;
+  int32_t i;
   for (i = 0; i < o->v1.i; i++)
     {
       opt_info *o1;
@@ -48270,17 +48635,17 @@ static s7_double opt_d_multiply_any_f(void *p)
   return(sum);
 }
 
-static bool d_add_any_ok(s7_scheme *sc, opt_info *opc, s7_pointer car_x, int len)
+static bool d_add_any_ok(s7_scheme *sc, opt_info *opc, s7_pointer car_x, int32_t len)
 {
   s7_pointer head;
-  int start;
+  int32_t start;
   start = sc->pc;
   head = car(car_x);
   if ((head == sc->add_symbol) ||
       (head == sc->multiply_symbol))
     {
       s7_pointer p;
-      int cur_len = 0;
+      int32_t cur_len = 0;
       for (p = cdr(car_x); is_pair(p); p = cdr(p))
 	{
 	  if (is_pair(cdr(p)))
@@ -48363,13 +48728,22 @@ static s7_double opt_set_d_d_f(void *p)
   s7_double x;
   o1 = cur_sc->opts[++cur_sc->pc];
   x = o1->v7.fd(o1);
-  if (is_mutable(slot_value(o->v1.p)))
-    real(slot_value(o->v1.p)) = x;
-  else slot_set_value(o->v1.p, make_real(cur_sc, x));
+  slot_set_value(o->v1.p, make_real(cur_sc, x));
   return(x);
 }
 
-static bool d_syntax_ok(s7_scheme *sc, s7_pointer car_x, int len)
+static s7_double opt_set_d_d_fm(void *p)
+{
+  opt_info *o = (opt_info *)p;
+  opt_info *o1;
+  s7_double x;
+  o1 = cur_sc->opts[++cur_sc->pc];
+  x = o1->v7.fd(o1);
+  real(slot_value(o->v1.p)) = x;
+  return(x);
+}
+
+static bool d_syntax_ok(s7_scheme *sc, s7_pointer car_x, int32_t len)
 {
   if ((len == 3) &&
       (car(car_x) == sc->set_symbol))
@@ -48389,7 +48763,9 @@ static bool d_syntax_ok(s7_scheme *sc, s7_pointer car_x, int len)
 	      if ((is_t_real(slot_value(settee))) &&
 		  (float_optimize(sc, cddr(car_x))))
 		{
-		  opc->v7.fd = opt_set_d_d_f;
+		  if (is_mutable(slot_value(opc->v1.p)))
+		    opc->v7.fd = opt_set_d_d_fm;
+		  else opc->v7.fd = opt_set_d_d_f;
 		  return(true);
 		}
 	    }
@@ -48407,7 +48783,7 @@ static bool d_syntax_ok(s7_scheme *sc, s7_pointer car_x, int len)
   return(return_false(sc, car_x, __func__, __LINE__));
 }
 
-static bool d_implicit_ok(s7_scheme *sc, s7_pointer car_x, int len)
+static bool d_implicit_ok(s7_scheme *sc, s7_pointer car_x, int32_t len)
 {
   s7_pointer s_slot;
   s_slot = find_symbol(sc, car(car_x));
@@ -48535,9 +48911,20 @@ static bool opt_b_p_f(void *p)
   return(o->v2.b_p_f(o1->v7.fp(o1)));
 }
 
+#if (!WITH_GMP)
+static bool opt_zero_mod(void *p)
+{
+  opt_info *o = (opt_info *)p;
+  s7_int x;
+  x = integer(slot_value(o->v1.p));
+  return((x % o->v2.i) == 0);
+}
+#endif
+
+
 static bool b_idp_ok(s7_scheme *sc, s7_pointer s_func, s7_pointer car_x, s7_pointer arg_type)
 {
-  int cur_index;
+  int32_t cur_index;
   s7_b_p_t bpf;
   opt_info *opc;
   
@@ -48559,7 +48946,20 @@ static bool b_idp_ok(s7_scheme *sc, s7_pointer s_func, s7_pointer car_x, s7_poin
 	    }
 	  if (int_optimize(sc, cdr(car_x)))
 	    {
-	      opc->v7.fb = opt_b_i_f;
+#if (!WITH_GMP)
+	      opt_info *o1;
+	      o1 = sc->opts[sc->pc - 1];
+	      if ((o1->v7.fi == opt_i_ii_sc) &&
+		  (o1->v3.i_ii_f == modulo_i_ii_direct))
+		{
+		  opc->v7.fb = opt_zero_mod;
+		  opc->v1.p = o1->v1.p;
+		  opc->v2.i = o1->v2.i;
+		  sc->pc--;
+		}
+	      else 
+#endif
+		opc->v7.fb = opt_b_i_f;
 	      return(true);
 	    }
 	}
@@ -48870,7 +49270,7 @@ static bool opt_b_dd_ff(void *p)
 static bool b_dd_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x, s7_pointer arg1, s7_pointer arg2)
 {
   s7_b_dd_t bif;
-  int cur_index;
+  int32_t cur_index;
   cur_index = sc->pc;
   bif = s7_b_dd_function(s_func);
   if (bif)
@@ -49064,7 +49464,7 @@ static bool opt_and_bb1(void *p)
 static bool opt_and_any_b(void *p)
 {
   opt_info *o = (opt_info *)p;
-  int i;
+  int32_t i;
   for (i = 0; i < o->v1.i; i++)
     {
       opt_info *o1;
@@ -49109,7 +49509,7 @@ static bool opt_or_bb1(void *p)
 static bool opt_or_any_b(void *p)
 {
   opt_info *o = (opt_info *)p;
-  int i;
+  int32_t i;
   for (i = 0; i < o->v1.i; i++)
     {
       opt_info *o1;
@@ -49123,7 +49523,7 @@ static bool opt_or_any_b(void *p)
   return(false);
 }
 
-static bool opt_b_or_and(s7_scheme *sc, s7_pointer car_x, int len, int is_and)
+static bool opt_b_or_and(s7_scheme *sc, s7_pointer car_x, int32_t len, int32_t is_and)
 {
   opt_info *opc;
   opc = alloc_opo(sc, car_x);
@@ -49169,8 +49569,8 @@ static bool opt_b_or_and(s7_scheme *sc, s7_pointer car_x, int len, int is_and)
   return(return_false(sc, car_x, __func__, __LINE__));
 }
 
-static bool opt_b_and(s7_scheme *sc, s7_pointer car_x, int len) {return(opt_b_or_and(sc, car_x, len, true));}
-static bool opt_b_or(s7_scheme *sc, s7_pointer car_x, int len)  {return(opt_b_or_and(sc, car_x, len, false));}
+static bool opt_b_and(s7_scheme *sc, s7_pointer car_x, int32_t len) {return(opt_b_or_and(sc, car_x, len, true));}
+static bool opt_b_or(s7_scheme *sc, s7_pointer car_x, int32_t len)  {return(opt_b_or_and(sc, car_x, len, false));}
 
 
 /* ---------------------------------------- cell opts ---------------------------------------- */
@@ -49294,7 +49694,7 @@ static s7_pointer opt_p_cf_s(void *p)
 static bool p_p_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x)
 {
   s7_p_p_t ppf;
-  int start;
+  int32_t start;
   start = sc->pc;
   ppf = s7_p_p_function(s_func);
   if (ppf)
@@ -49362,26 +49762,105 @@ static s7_pointer opt_p_ii_ss(void *p)
   return(o->v3.p_ii_f(integer(slot_value(o->v1.p)), integer(slot_value(o->v2.p))));
 }
 
-static bool p_ii_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x)
+static s7_pointer opt_p_ii_fs(void *p)
+{
+  opt_info *o = (opt_info *)p;
+  opt_info *o1;
+  o1 = cur_sc->opts[++cur_sc->pc];
+  return(o->v3.p_ii_f(o1->v7.fi(o1), integer(slot_value(o->v2.p))));
+}
+
+static bool p_ii_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x, int32_t pstart)
 {
   s7_p_ii_t ifunc;
   ifunc = s7_p_ii_function(s_func);
-  if ((ifunc) &&
-      (is_symbol(cadr(car_x))) &&
-      (is_symbol(caddr(car_x))))
+  if (ifunc)
     {
-      opc->v1.p = find_symbol(sc, cadr(car_x));
-      opc->v2.p = find_symbol(sc, caddr(car_x));
-      if ((is_slot(opc->v1.p)) &&
-	  (is_opt_int(slot_value(opc->v1.p))) &&
-	  (is_slot(opc->v2.p)) &&
-	  (is_opt_int(slot_value(opc->v2.p))))
+      s7_pointer arg1, arg2;
+      arg1 = cadr(car_x);
+      arg2 = caddr(car_x);
+      if ((is_symbol(arg1)) &&
+	  (is_symbol(arg2)))
 	{
-	  opc->v3.p_ii_f = ifunc;
-	  opc->v7.fp = opt_p_ii_ss;
-	  return(true);
+	  opc->v1.p = find_symbol(sc, arg1);
+	  opc->v2.p = find_symbol(sc, arg2);
+	  if ((is_slot(opc->v1.p)) &&
+	      (is_opt_int(slot_value(opc->v1.p))) &&
+	      (is_slot(opc->v2.p)) &&
+	      (is_opt_int(slot_value(opc->v2.p))))
+	    {
+	      opc->v3.p_ii_f = ifunc;
+	      opc->v7.fp = opt_p_ii_ss;
+	      return(true);
+	    }
+	}
+      if ((int_optimize(sc, cdr(car_x))) &&
+	  (is_symbol(arg2)))
+	{
+	  opc->v2.p = find_symbol(sc, arg2);
+	  if ((is_slot(opc->v2.p)) &&
+	      (is_opt_int(slot_value(opc->v2.p))))
+	    {
+	      opc->v3.p_ii_f = ifunc;
+	      opc->v7.fp = opt_p_ii_fs;
+	      return(true);
+	    }
+	}
+    }
+  pc_fallback(sc, pstart);
+  return(false);
+}
+
+/* -------- p_dd -------- */
+static s7_pointer opt_p_dd_sc(void *p)
+{
+  opt_info *o = (opt_info *)p;
+  return(o->v3.p_dd_f(real_to_double(cur_sc, slot_value(o->v1.p), "p_dd"), o->v2.x));
+}
+
+static s7_pointer opt_p_dd_cs(void *p)
+{
+  opt_info *o = (opt_info *)p;
+  return(o->v3.p_dd_f(o->v2.x, real_to_double(cur_sc, slot_value(o->v1.p), "p_dd")));
+}
+
+static bool p_dd_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x, int32_t pstart)
+{
+  s7_p_dd_t ifunc;
+  ifunc = s7_p_dd_function(s_func);
+  if (ifunc)
+    {
+      s7_pointer arg1, arg2;
+      arg1 = cadr(car_x);
+      arg2 = caddr(car_x);
+      if ((is_symbol(arg1)) &&
+	  (is_t_real(arg2)))
+	{
+	  opc->v2.x = real(arg2);
+	  opc->v1.p = find_symbol(sc, arg1);
+	  if ((is_slot(opc->v1.p)) &&
+	      (is_opt_real(slot_value(opc->v1.p))))
+	    {
+	      opc->v3.p_dd_f = ifunc;
+	      opc->v7.fp = opt_p_dd_sc;
+	      return(true);
+	    }
+	}
+      if ((is_symbol(arg2)) &&
+	  (is_t_real(arg1)))
+	{
+	  opc->v2.x = real(arg1);
+	  opc->v1.p = find_symbol(sc, arg2);
+	  if ((is_slot(opc->v1.p)) &&
+	      (is_opt_real(slot_value(opc->v1.p))))
+	    {
+	      opc->v3.p_dd_f = ifunc;
+	      opc->v7.fp = opt_p_dd_cs;
+	      return(true);
+	    }
 	}
     }
+  pc_fallback(sc, pstart);
   return(false);
 }
 
@@ -49454,7 +49933,6 @@ static bool p_pi_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 		opc->v3.p_pi_f = s7_p_pi_direct_function(s_func);
 	    }
 	}
-      
       if (is_symbol(caddr(car_x)))
 	{
 	  s7_pointer slot;
@@ -49591,7 +50069,7 @@ static s7_pointer opt_p_pp_ff(void *p)
   return(o->v3.p_pp_f(p1, o1->v7.fp(o1)));
 }
 
-static bool p_pp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x)
+static bool p_pp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x, int32_t pstart)
 {
   s7_p_pp_t func;
   func = s7_p_pp_function(s_func);
@@ -49610,10 +50088,16 @@ static bool p_pp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 	  slot = find_symbol(sc, cadr(car_x));
 	  if ((!is_slot(slot)) || 
 	      (has_methods(slot_value(slot))))
-	    return(return_false(sc, car_x, __func__, __LINE__));
+	    {
+	      pc_fallback(sc, pstart);
+	      return(return_false(sc, car_x, __func__, __LINE__));
+	    }
 	  if ((s7_is_vector(slot_value(slot))) &&
 	      (vector_rank(slot_value(slot)) > 1))
-	    return(return_false(sc, car_x, __func__, __LINE__));
+	    {
+	      pc_fallback(sc, pstart);
+	      return(return_false(sc, car_x, __func__, __LINE__));
+	    }
 	  opc->v1.p = slot;
 	}
       
@@ -49636,6 +50120,7 @@ static bool p_pp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 		  opc->v7.fp = opt_p_pp_ss;
 		  return(true);
 		}
+	      pc_fallback(sc, pstart);
 	      return(return_false(sc, car_x, __func__, __LINE__));			    
 	    }
 	  if ((!is_pair(caddr(car_x))) ||
@@ -49675,6 +50160,7 @@ static bool p_pp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 		      opc->v7.fp = opt_p_pp_cs;
 		      return(true);
 		    }
+		  pc_fallback(sc, pstart);
 		  return(return_false(sc, car_x, __func__, __LINE__));			    
 		}
 	    }
@@ -49689,6 +50175,7 @@ static bool p_pp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 		      opc->v7.fp = opt_p_pp_fs;
 		      return(true);
 		    }
+		  pc_fallback(sc, pstart);
 		  return(return_false(sc, car_x, __func__, __LINE__));			    
 		}
 	      if ((!is_pair(caddr(car_x))) ||
@@ -49719,6 +50206,7 @@ static bool p_pp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 	    }
 	}
     }
+  pc_fallback(sc, pstart);
   return(false);
 }
 
@@ -49767,7 +50255,7 @@ static s7_pointer opt_p_cf_ss(void *p)
   return(o->v3.cf(cur_sc, set_plist_2(cur_sc, slot_value(o->v1.p), slot_value(o->v2.p))));
 }
 
-static bool p_cf_pp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x)
+static bool p_cf_pp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x, int32_t pstart)
 {
   if ((is_safe_procedure(s_func)) &&
       (c_function_required_args(s_func) <= 2) &&
@@ -49792,7 +50280,11 @@ static bool p_cf_pp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_point
 		      opc->v7.fp = opt_p_cf_ss;
 		      return(true);
 		    }
-		  else return(return_false(sc, car_x, __func__, __LINE__));
+		  else 
+		    {
+		      pc_fallback(sc, pstart);
+		      return(return_false(sc, car_x, __func__, __LINE__));
+		    }
 		}
 	      if (!is_pair(caddr(car_x)))
 		{
@@ -49806,7 +50298,11 @@ static bool p_cf_pp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_point
 		  return(true);
 		}
 	    }
-	  else return(return_false(sc, car_x, __func__, __LINE__));
+	  else 
+	    {
+	      pc_fallback(sc, pstart);
+	      return(return_false(sc, car_x, __func__, __LINE__));
+	    }
 	}
       if (cell_optimize(sc, cdr(car_x)))
 	{
@@ -49819,7 +50315,11 @@ static bool p_cf_pp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_point
 		  opc->v7.fp = opt_p_cf_fs;
 		  return(true);
 		}
-	      else return(return_false(sc, car_x, __func__, __LINE__));
+	      else 
+		{
+		  pc_fallback(sc, pstart);
+		  return(return_false(sc, car_x, __func__, __LINE__));
+		}
 	    }
 	  if (cell_optimize(sc, cddr(car_x)))
 	    {
@@ -49828,6 +50328,7 @@ static bool p_cf_pp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_point
 	    }
 	}
     }
+  pc_fallback(sc, pstart);
   return(false);
 }
 
@@ -49854,6 +50355,12 @@ static s7_pointer opt_p_pip_ssc(void *p)
   return(o->v3.p_pip_f(slot_value(o->v1.p), integer(slot_value(o->v2.p)), o->v4.p));
 }
 
+static s7_pointer opt_p_pip_c(void *p)
+{
+  opt_info *o = (opt_info *)p;
+  return(o->v3.p_pip_f(slot_value(o->v1.p), integer(slot_value(o->v2.p)), o->v5.p_p_f(o->v4.p)));
+}
+
 static s7_pointer opt_p_pip_sff(void *p)
 {
   opt_info *o = (opt_info *)p;
@@ -49874,9 +50381,15 @@ static s7_pointer opt_p_pip_sso(void *p)
 				       integer(slot_value(o->v4.p)))));
 }
 
+static s7_pointer opt_p_pip_ssf1(void *p)
+{
+  opt_info *o = (opt_info *)p;
+  opt_info *o1;
+  o1 = cur_sc->opts[cur_sc->pc += 2];
+  return(o->v3.p_pip_f(slot_value(o->v1.p), integer(slot_value(o->v2.p)), o->v4.p_p_f(o1->v7.fp(o1))));
+}
+
 #if 0
-p_p_c: (o->v2.p_p_f(o->v1.p))
-p_p_f: (o->v2.p_p_f(o1->v7.fp(o1))
 p_cf_s: (o->v2.cf(cur_sc, set_plist_1(cur_sc, slot_value(o->v1.p))))
 p_cf_ss: (o->v3.cf(cur_sc, set_plist_2(cur_sc, slot_value(o->v1.p), slot_value(o->v2.p)))
 p_pi_sf: (o->v3.p_pi_f(slot_value(o->v1.p), o1->v7.fi(o1)))
@@ -49891,23 +50404,17 @@ return(o->v3.p_pip_f(slot_value(o->v1.p), integer(slot_value(o->v2.p)), o1->v7.f
       /* p_pi_sf -> i_i_s (form)
        * p_cf_s, p_cf_ss (hash)
        * p_p_f -> i_to_p (ref), p_pp_fc -> p_pi_ss (ref)
-       * i_to_p (map), p_p_f -> i_to_p (map)
-       * [p_p_c], p_p_f -> p_p_c (sort)
+       * i_to_p (map), [p_p_f -> i_to_p (map)]
+       * [p_p_c], [p_p_f -> p_p_c (sort)]
        */
 #endif
 
-static s7_pointer opt_p_pip_c(void *p)
-{
-  opt_info *o = (opt_info *)p;
-  return(o->v3.p_pip_f(slot_value(o->v1.p), integer(slot_value(o->v2.p)), o->v5.p_p_f(o->v4.p)));
-}
-
-static bool p_pip_ssf_combinable(s7_scheme *sc, opt_info *opc)
+static bool p_pip_ssf_combinable(s7_scheme *sc, opt_info *opc, int32_t start)
 {
+  opt_info *o1;
   if ((sc->pc > 1) &&
       (opc == sc->opts[sc->pc - 2]))
     {
-      opt_info *o1;
       o1 = sc->opts[sc->pc - 1];
       if (o1->v7.fp == opt_p_pi_ss)
 	{
@@ -49928,6 +50435,14 @@ static bool p_pip_ssf_combinable(s7_scheme *sc, opt_info *opc)
 	  return(true);
 	}
     }
+
+  o1 = sc->opts[start];
+  if (o1->v7.fp == opt_p_p_f)
+    {
+      opc->v4.p_p_f = o1->v2.p_p_f;
+      opc->v7.fp = opt_p_pip_ssf1;
+      return(true);
+    }
   return(false);
 }
 
@@ -49969,11 +50484,15 @@ static bool p_pip_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
       if (is_symbol(caddr(car_x)))
 	{
 	  s7_pointer slot;
+	  int32_t start;
+	  start = sc->pc;
 	  slot = find_symbol(sc, caddr(car_x));
 	  if ((is_slot(slot)) &&
 	      (is_opt_int(slot_value(slot))))
 	    {
 	      opc->v2.p = slot;
+	      /* fprintf(stderr, "%d slot %s\n", __LINE__, DISPLAY(slot)); */
+
 	      if ((obj) &&
 		  (is_step_end(slot)))
 		switch (type(obj))
@@ -50023,7 +50542,7 @@ static bool p_pip_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
 		}
 	      if (cell_optimize(sc, cdddr(car_x)))
 		{
-		  if (!p_pip_ssf_combinable(sc, opc))
+		  if (!p_pip_ssf_combinable(sc, opc, start))
 		    opc->v7.fp = opt_p_pip_ssf;
 		  return(true);
 		}
@@ -50057,7 +50576,7 @@ static bool p_ppi_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
   ifunc = s7_p_ppi_function(s_func);
   if (ifunc)
     {
-      int start;
+      int32_t start;
       start = sc->pc;
       opc->v3.p_ppi_f = ifunc;
       if ((s7_is_character(cadr(car_x))) &&
@@ -50145,7 +50664,7 @@ static bool p_ppp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer
   func = s7_p_ppp_function(s_func);
   if (func)
     {
-      int start;
+      int32_t start;
       s7_pointer sig, checker = NULL;
 	  sig = s7_procedure_signature(sc, s_func);
 	  if ((is_pair(sig)) &&
@@ -50280,7 +50799,7 @@ static s7_pointer opt_p_cf_ppp(void *p)
 
 static bool p_cf_ppp_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x)
 {
-  int start;
+  int32_t start;
   start = sc->pc;
   if ((is_safe_procedure(s_func)) &&
       (c_function_required_args(s_func) <= 3) &&
@@ -50303,7 +50822,7 @@ static s7_pointer opt_p_cf_any(void *p)
 {
   opt_info *o = (opt_info *)p;
   s7_pointer arg;
-  int i, tx;
+  int32_t i, tx;
   tx = next_tx(cur_sc);
   cur_sc->t_temps[tx] = safe_list_if_possible(cur_sc, o->v1.i);
   for (i = 0, arg = cur_sc->t_temps[tx]; i < o->v1.i; i++, arg = cdr(arg))
@@ -50318,7 +50837,7 @@ static s7_pointer opt_p_cf_any(void *p)
   return(arg);
 }
 
-static bool p_cf_any_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x, int len)
+static bool p_cf_any_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x, int32_t len)
 {
   if ((is_safe_procedure(s_func)) &&
       ((int)c_function_required_args(s_func) <= (len - 1)) &&
@@ -50347,7 +50866,7 @@ static s7_pointer opt_unwrap_cell(void *p)
   return(o->v2.all_f(cur_sc, car(o->v1.p)));
 }
 
-static bool cell_all_x_ok(s7_scheme *sc, s7_pointer expr, int start)
+static bool cell_all_x_ok(s7_scheme *sc, s7_pointer expr, int32_t start)
 {
   s7_function opt;
   opt = all_x_optimize(sc, expr);
@@ -50367,7 +50886,7 @@ static bool cell_all_x_ok(s7_scheme *sc, s7_pointer expr, int start)
 /* -------- p_implicit -------- */
 static bool funcall_optimize(s7_scheme *sc, s7_pointer car_x, s7_pointer s_func);
 
-static bool p_implicit(s7_scheme *sc, s7_pointer car_x, int len)
+static bool p_implicit(s7_scheme *sc, s7_pointer car_x, int32_t len)
 {
   s7_pointer s_slot;
   s_slot = find_symbol(sc, car(car_x));
@@ -50544,7 +51063,7 @@ static s7_pointer opt_arg_type(s7_scheme *sc, s7_pointer argp)
 		  if ((car(sig) == sc->is_real_symbol) ||
 		      (car(sig) == sc->is_number_symbol))
 		    {
-		      int start;
+		      int32_t start;
 		      start = sc->pc;
 		      if (int_optimize(sc, argp))
 			{
@@ -50620,6 +51139,13 @@ static s7_pointer opt_set_p_d_f(void *p)
   return(x);
 }
 
+static s7_pointer opt_set_p_c(void *p)
+{
+  opt_info *o = (opt_info *)p;
+  slot_set_value(o->v1.p, o->v2.p);
+  return(o->v2.p);
+}
+
 static s7_pointer opt_set_p_i_fo(void *p)
 {
   opt_info *o = (opt_info *)p;
@@ -50698,7 +51224,6 @@ static bool opt_cell_set(s7_scheme *sc, s7_pointer car_x)
 	  
 	  opc->v1.p = settee;
 	  stype = s7_type_of(slot_value(settee));
-	  
 	  if (stype == sc->is_integer_symbol)
 	    {
 	      if (is_symbol(caddr(car_x)))
@@ -50726,6 +51251,12 @@ static bool opt_cell_set(s7_scheme *sc, s7_pointer car_x)
 	    }
 	  if (stype == sc->is_float_symbol)
 	    {
+	      if (is_t_real(caddr(car_x)))
+		{
+		  opc->v2.p = caddr(car_x);
+		  opc->v7.fp = opt_set_p_c;
+		  return(true);
+		}
 	      if (float_optimize(sc, cddr(car_x)))
 		{
 		  opc->v7.fp = opt_set_p_d_f;
@@ -50813,7 +51344,10 @@ static bool opt_cell_set(s7_scheme *sc, s7_pointer car_x)
 		  if (is_symbol(index))
 		    {
 		      s7_pointer slot;
+		      int32_t start;
+		      start = sc->pc;
 		      slot = find_symbol(sc, index);
+		      /* fprintf(stderr, "%d slot: %s\n", __LINE__, DISPLAY(slot)); */
 		      if ((is_slot(slot)) &&
 			  (!has_methods(slot_value(slot))))
 			{
@@ -50880,7 +51414,7 @@ static bool opt_cell_set(s7_scheme *sc, s7_pointer car_x)
 				  (s7_is_vector(obj)) ||
 				  (is_pair(obj)))
 				{
-				  if (!p_pip_ssf_combinable(sc, opc))
+				  if (!p_pip_ssf_combinable(sc, opc, start))
 				    opc->v7.fp = opt_p_pip_ssf;
 				}
 			      else opc->v7.fp = opt_p_ppp_ssf;
@@ -50949,7 +51483,7 @@ static s7_pointer opt_begin_p(void *p)
 {
   opt_info *o = (opt_info *)p;
   opt_info *o1;
-  int i, len;
+  int32_t i, len;
   len = o->v1.i - 1;
   for (i = 0; i < len; i++)
     {
@@ -50969,7 +51503,7 @@ static s7_pointer opt_begin_p_1(void *p)
   return(o1->v7.fp(o1));
 }
 
-static bool opt_cell_begin(s7_scheme *sc, s7_pointer car_x, int len)
+static bool opt_cell_begin(s7_scheme *sc, s7_pointer car_x, int32_t len)
 {
   opt_info *opc;
   s7_pointer p;
@@ -50990,7 +51524,7 @@ static s7_pointer opt_when_p(void *p)
   o1 = cur_sc->opts[++cur_sc->pc];
   if (o1->v7.fb(o1))
     {
-      int i, len;
+      int32_t i, len;
       len = o->v1.i - 1;
       for (i = 0; i < len; i++)
 	{
@@ -51008,7 +51542,7 @@ static s7_pointer opt_unless_p(void *p)
 {
   opt_info *o = (opt_info *)p;
   opt_info *o1;
-  int i, len;
+  int32_t i, len;
   o1 = cur_sc->opts[++cur_sc->pc];
   if (o1->v7.fb(o1))
     {
@@ -51025,7 +51559,7 @@ static s7_pointer opt_unless_p(void *p)
   return(o1->v7.fp(o1));
 }
 
-static bool opt_cell_when(s7_scheme *sc, s7_pointer car_x, int len)	      
+static bool opt_cell_when(s7_scheme *sc, s7_pointer car_x, int32_t len)	      
 {
   s7_pointer p;
   opt_info *opc;
@@ -51064,7 +51598,7 @@ static s7_pointer opt_cond_clause(void *p)
   if (o1->v7.fb(o1))
     {
       opt_info *top;
-      int i, len;
+      int32_t i, len;
       top = (opt_info *)(o->v5.obj);
       len = o->v1.i - 1;
       for (i = 0; i < len; i++)
@@ -51104,7 +51638,7 @@ static bool opt_cell_cond(s7_scheme *sc, s7_pointer car_x)
    */
   s7_pointer p, last_clause = NULL;
   opt_info *top;
-  int branches = 0, max_blen = 0, start_pc;
+  int32_t branches = 0, max_blen = 0, start_pc;
   
   top = alloc_opo(sc, car_x);
   start_pc = sc->pc;
@@ -51112,7 +51646,7 @@ static bool opt_cell_cond(s7_scheme *sc, s7_pointer car_x)
     {
       opt_info *opc;
       s7_pointer clause, cp;
-      int blen;
+      int32_t blen;
       clause = car(p);
       if ((!is_pair(clause)) ||
 	  (!is_pair(cdr(clause))) || /* leave the test->result case for later */
@@ -51177,7 +51711,7 @@ static s7_pointer opt_and_pp(void *p)
 static s7_pointer opt_and_any_p(void *p)
 {
   opt_info *o = (opt_info *)p;
-  int i;
+  int32_t i;
   s7_pointer val;
   val = cur_sc->T; /* (and) -> #t */
   for (i = 0; i < o->v1.i; i++)
@@ -51213,7 +51747,7 @@ static s7_pointer opt_or_pp(void *p)
 static s7_pointer opt_or_any_p(void *p)
 {
   opt_info *o = (opt_info *)p;
-  int i;
+  int32_t i;
   s7_pointer val;
   val = cur_sc->F; /* (or) -> #f */
   for (i = 0; i < o->v1.i; i++)
@@ -51230,14 +51764,14 @@ static s7_pointer opt_or_any_p(void *p)
   return(cur_sc->F);
 }
 
-static bool opt_cell_and(s7_scheme *sc, s7_pointer car_x, int len)
+static bool opt_cell_and(s7_scheme *sc, s7_pointer car_x, int32_t len)
 {
   opt_info *opc;
   opc = alloc_opo(sc, car_x);
   if (len == 3)
     {
       opt_info *wrapper;
-      int start;
+      int32_t start;
       opc->v7.fp = ((car(car_x) == sc->or_symbol) ? opt_or_pp : opt_and_pp);
       wrapper = sc->opts[sc->pc];
       start = sc->pc;
@@ -51272,7 +51806,7 @@ static bool opt_cell_and(s7_scheme *sc, s7_pointer car_x, int len)
 	  for (p = cdr(car_x); is_pair(p); p = cdr(p))
 	    {
 	      opt_info *wrapper;
-	      int start;
+	      int32_t start;
 	      wrapper = sc->opts[sc->pc];
 	      start = sc->pc;
 	      if (!cell_optimize(sc, p))
@@ -51441,7 +51975,7 @@ static s7_pointer opt_if_bpp(void *p)
   return(o1->v7.fp(o1));
 }
 
-static bool opt_cell_if(s7_scheme *sc, s7_pointer car_x, int len)
+static bool opt_cell_if(s7_scheme *sc, s7_pointer car_x, int32_t len)
 {
   opt_info *opc;
   opc = alloc_opo(sc, car_x);
@@ -51575,7 +52109,7 @@ static s7_pointer opt_case_clause(void *p)
       (case_memv(cur_sc, top->v4.p, o->v2.p)))
     {
       opt_info *o1;
-      int i, len;
+      int32_t i, len;
       len = o->v1.i - 1;
       for (i = 0; i < len; i++)
 	{
@@ -51605,7 +52139,7 @@ static bool opt_cell_case(s7_scheme *sc, s7_pointer car_x)
 	{
 	  opt_info *opc;
 	  s7_pointer clause, cp;
-	  int blen;
+	  int32_t blen;
 	  clause = car(p);
 	  if ((!is_pair(clause)) ||
 	      ((!is_pair(car(clause))) && (car(clause) != sc->else_symbol)) ||
@@ -51622,7 +52156,7 @@ static bool opt_cell_case(s7_scheme *sc, s7_pointer car_x)
 	    }
 	  else 
 	    {
-	      if (!is_proper_list(sc, car(clause)))
+	      if (!s7_is_proper_list(sc, car(clause)))
 		return(return_false(sc, clause, __func__, __LINE__));
 	      opc->v2.p = car(clause);
 	    }
@@ -51651,7 +52185,7 @@ static s7_pointer opt_let_temporarily(void *p)
 {
   opt_info *o = (opt_info *)p;
   opt_info *o1;
-  int tx, i, len;
+  int32_t tx, i, len;
   s7_pointer result;
 
   tx = next_tx(cur_sc);
@@ -51674,7 +52208,7 @@ static s7_pointer opt_let_temporarily(void *p)
   return(result);
 }
 
-static bool opt_cell_let_temporarily(s7_scheme *sc, s7_pointer car_x, int len)
+static bool opt_cell_let_temporarily(s7_scheme *sc, s7_pointer car_x, int32_t len)
 {
   if ((len > 2) &&
       (is_pair(cadr(car_x))) &&
@@ -51709,7 +52243,7 @@ static s7_pointer opt_do_any(void *p)
 {
   opt_info *o = (opt_info *)p; /* o->v2.p=frame, o->v1.i=body end index, o->v3.i=body length, o->v4.i(=return length, o->v5.i=end index */
   opt_info *o1, *ostart;
-  int loop, i;
+  int32_t loop, i;
   s7_pointer vp, old_e, result;
 
   old_e = cur_sc->envir;
@@ -51771,7 +52305,7 @@ static s7_pointer opt_do_no_vars(void *p)
   /* no vars, no return */
   opt_info *o = (opt_info *)p; /* o->v2.p=frame, o->v1.i=body end index, o->v3.i=body length, o->v4.i=return length, o->v5.i=end index */
   opt_info *ostart;
-  int loop, i;
+  int32_t loop, i;
   s7_pointer old_e;
 
   old_e = cur_sc->envir;
@@ -51800,7 +52334,7 @@ static s7_pointer opt_do_2(void *p)
   /* 1 var, no return */
   opt_info *o = (opt_info *)p; /* o->v2.p=frame, o->v1.i=body end index, o->v3.i=body length, o->v4.i=return length, o->v5.i=end index */
   opt_info *o1, *ostart;
-  int i, loop;
+  int32_t i, loop;
   s7_pointer vp, old_e;
 
   old_e = cur_sc->envir;
@@ -51833,9 +52367,9 @@ static s7_pointer opt_do_2(void *p)
 static s7_pointer opt_dotimes_2(void *p)
 {
   /* 1 var, no return */
-  opt_info *o = (opt_info *)p; /* o->v2.p=frame, o->v1.i=body end index, o->v3.i=body length, o->v4.i=return length, o->v5.i=end index, v6.i=end if int */
+  opt_info *o = (opt_info *)p; /* o->v2.p=frame, o->v1.i=body end index, o->v3.i=body length, o->v4.i=return length, o->v5.i=end index, v6.i=end if int32_t */
   opt_info *o1;
-  int i, loop;
+  int32_t i, loop;
   s7_int end;
   s7_pointer vp, old_e;
 
@@ -51871,7 +52405,7 @@ static s7_pointer opt_do_simple(void *p)
   /* 1 var step by 1, 1 expr, no return */
   opt_info *o = (opt_info *)p; /* o->v2.p=frame, o->v5.i=end index */
   opt_info *o1, *ostart;
-  int loop;
+  int32_t loop;
   s7_pointer vp, old_e;
 
   old_e = cur_sc->envir;
@@ -51964,7 +52498,7 @@ static s7_pointer opt_do_dpnr(void *p)
 {
   opt_info *o = (opt_info *)p;
   opt_info *o1;
-  int loop;
+  int32_t loop;
   s7_pointer vp;
   s7_int end;
   s7_double (*f)(void *p);
@@ -51987,7 +52521,7 @@ static s7_pointer opt_do_ipnr(void *p)
 {
   opt_info *o = (opt_info *)p;
   opt_info *o1;
-  int loop;
+  int32_t loop;
   s7_pointer vp;
   s7_int end;
   s7_int (*f)(void *p);
@@ -52010,7 +52544,7 @@ static s7_pointer opt_do_ifbp(void *p)
 {
   opt_info *o = (opt_info *)p;
   opt_info *o1;
-  int loop;
+  int32_t loop;
   s7_pointer vp;
   s7_int end;
   bool (*f)(void *p);
@@ -52038,7 +52572,7 @@ static s7_pointer opt_do_setpif(void *p)
 {
   opt_info *o = (opt_info *)p;
   opt_info *o1;
-  int loop;
+  int32_t loop;
   s7_pointer vp, val;
   s7_int end;
 
@@ -52073,7 +52607,7 @@ static bool stop_is_safe(s7_scheme *sc, s7_pointer stop, s7_pointer body)
 
 static bool do_is_safe(s7_scheme *sc, s7_pointer body, s7_pointer steppers, s7_pointer var_list, bool *has_set);
 
-static bool opt_cell_do(s7_scheme *sc, s7_pointer car_x, int len)
+static bool opt_cell_do(s7_scheme *sc, s7_pointer car_x, int32_t len)
 {
   /* TODO:
    *   step by 1/-1 to end opt built-in (mutable index)
@@ -52085,12 +52619,12 @@ static bool opt_cell_do(s7_scheme *sc, s7_pointer car_x, int len)
    */
   opt_info *opc;
   s7_pointer p, end, frame = NULL, old_e;
-  int var_len, body_len, step_len;
+  int32_t var_len, body_len, step_len;
   
   if (len < 3)
     return(false);
   
-  if (!is_proper_list(sc, cadr(car_x)))
+  if (!s7_is_proper_list(sc, cadr(car_x)))
     return(return_false(sc, car_x, __func__, __LINE__));
   var_len = safe_list_length(sc, cadr(car_x));
   step_len = var_len;
@@ -52201,7 +52735,7 @@ static bool opt_cell_do(s7_scheme *sc, s7_pointer car_x, int len)
   
   if (bool_optimize_nw(sc, end))
     {
-      int i, body_index;
+      int32_t i, body_index;
       s7_pointer p, stop;
       stop = car(end);
       /* fprintf(stderr, "check %s\n", DISPLAY_80(car_x)); */
@@ -52238,6 +52772,8 @@ static bool opt_cell_do(s7_scheme *sc, s7_pointer car_x, int len)
 		  /* TODO: put off this decision until it is needed (ref/set) 
 		   *    another choice: go from init downto 0: init is lim
 		   */
+		  if (slot_symbol(slot) == cadr(stop))
+		    set_stop = true; /* don't overrule this decision below */
 		  if (has_stepper(slot))
 		    {
 		      s7_pointer var, step;
@@ -52252,8 +52788,6 @@ static bool opt_cell_do(s7_scheme *sc, s7_pointer car_x, int len)
 			   ((caddr(step) == small_int(1)) && (car(step) == sc->add_symbol))))
 			{
 			  /* fprintf(stderr, "    end: %s\n", DISPLAY(let_slots(frame))); */
-			  if (slot_symbol(slot) == cadr(stop))
-			    set_stop = true;
 			  set_step_end(slot);
 			  denominator(slot_value(slot)) = lim;
 			}
@@ -52268,7 +52802,7 @@ static bool opt_cell_do(s7_scheme *sc, s7_pointer car_x, int len)
 		      (is_opt_int(slot_value(slot))) &&
 		      (stop_is_safe(sc, cadr(stop), cddr(car_x))))
 		    {
-		      /* fprintf(stderr, "%s: %s\n", DISPLAY(slot), DISPLAY(stop)); */
+		      /* fprintf(stderr, "%d %s: %s\n", __LINE__, DISPLAY(slot), DISPLAY(stop)); */
 		      set_step_end(slot);
 		      denominator(slot_value(slot)) = lim;
 		    }
@@ -52309,7 +52843,7 @@ static bool opt_cell_do(s7_scheme *sc, s7_pointer car_x, int len)
 	}
       if (is_null(p))
 	{
-	  int rtn_len = 0;
+	  int32_t rtn_len = 0;
 	  opc->v1.i = sc->pc - 1;
 	  if (!s7_is_list(sc, cdr(end)))
 	    {
@@ -52430,7 +52964,7 @@ static bool opt_cell_do(s7_scheme *sc, s7_pointer car_x, int len)
   return(false);
 }
 
-static bool p_syntax(s7_scheme *sc, s7_pointer car_x, int len)
+static bool p_syntax(s7_scheme *sc, s7_pointer car_x, int32_t len)
 {
   opcode_t op;
   s7_pointer func;
@@ -52496,7 +53030,7 @@ static void start_opts(s7_scheme *sc)
   sc->pc = 0;
 }
 
-static void pc_fallback(s7_scheme *sc, int new_pc)
+static void pc_fallback(s7_scheme *sc, int32_t new_pc)
 {
   sc->pc = new_pc;
 }
@@ -52513,29 +53047,29 @@ static void free_optlist(s7_scheme *sc, s7_pointer p)
 static s7_pointer make_optlist(s7_scheme *sc)
 {
   s7_pointer x;
-  int loc;
+  int32_t loc;
   new_cell(sc, x, T_OPTLIST);
   add_optlist(sc, x);
   if (stofl_loc < 0)
     {
       if (!stofl)
 	{
-	  int i;
+	  int32_t i;
 	  stored_optlists_size = INITIAL_STORED_OPTLISTS_SIZE;
 	  stored_optlists = (s7_pointer *)malloc(INITIAL_STORED_OPTLISTS_SIZE * sizeof(s7_pointer));
-	  stofl = (int *)malloc(INITIAL_STORED_OPTLISTS_SIZE * sizeof(int));
+	  stofl = (int32_t *)malloc(INITIAL_STORED_OPTLISTS_SIZE * sizeof(int));
 	  stofl_loc = INITIAL_STORED_OPTLISTS_SIZE - 1;
 	  for (i = 0; i < INITIAL_STORED_OPTLISTS_SIZE; i++)
 	    stofl[i] = i;
 	}
       else
 	{
-	  unsigned int k, size, new_size;
+	  uint32_t k, size, new_size;
 	  size = stored_optlists_size;
 	  new_size = 2 * size;
 	  stored_optlists = (s7_pointer *)realloc(stored_optlists, new_size * sizeof(s7_pointer));
 	  stored_optlists_size = new_size;
-	  stofl = (int *)realloc(stofl, new_size * sizeof(int));
+	  stofl = (int32_t *)realloc(stofl, new_size * sizeof(int));
 	  for (k = size; k < new_size; k++)
 	    stofl[++stofl_loc] = (int)k;
 	}
@@ -52552,9 +53086,9 @@ static s7_pointer opt_call(void *p)
   opt_info *o = (opt_info *)p;
   opt_info *o1;
   s7_pointer fp, result, old_e;
-  int i;
+  int32_t i;
   s7_pointer x, env;
-  unsigned long long int id;
+  uint64_t id;
 
   id = ++cur_sc->let_number;
   env = o->v2.p;
@@ -52574,7 +53108,7 @@ static s7_pointer opt_call(void *p)
 	}
       else
 	{
-	  int tx;
+	  int32_t tx;
 	  s7_pointer arg;
 	  tx = next_tx(cur_sc);
 	  cur_sc->t_temps[tx] = safe_list_if_possible(cur_sc, o->v1.i);
@@ -52620,7 +53154,7 @@ static s7_pointer opt_call_1_1(void *p)
   opt_info *o = (opt_info *)p;
   opt_info *o1;
   s7_pointer result, sym, x, env, old_e;
-  unsigned long long int id;
+  uint64_t id;
 
   id = ++cur_sc->let_number;
   env = o->v2.p;
@@ -52681,7 +53215,7 @@ static bool funcall_optimize(s7_scheme *sc, s7_pointer car_x, s7_pointer s_func)
   if (!closure_no_opt(s_func))
     {
       opt_info *opc;
-      int i;
+      int32_t i;
       s7_pointer p;
 
       opc = alloc_opo(sc, car_x);
@@ -52709,7 +53243,7 @@ static bool funcall_optimize(s7_scheme *sc, s7_pointer car_x, s7_pointer s_func)
 	  olst = closure_optlist(s_func);
 	  if (optlist_num_args(olst) != opc->v1.i)
 	    {
-	      /* fprintf(stderr, "wrong argnum: %" LL_D " %d\n", opc->v1.i, optlist_num_args(olst)); */
+	      /* fprintf(stderr, "wrong argnum: %" PRId64 " %d\n", opc->v1.i, optlist_num_args(olst)); */
 	      return(return_false(sc, car_x, __func__, __LINE__));
 	    }
 	  opc->v3.i = optlist_num_exprs(olst);
@@ -52726,7 +53260,7 @@ static bool funcall_optimize(s7_scheme *sc, s7_pointer car_x, s7_pointer s_func)
 	  if (setjmp(sc->opt_exit) == 0)
 	    {
 	      s7_pointer op;
-	      int start, tx, body_len;
+	      int32_t start, tx, body_len;
 
 	      tx = next_tx(sc);
 	      sc->t_temps[tx] = sc->envir;
@@ -52779,7 +53313,7 @@ static bool funcall_optimize(s7_scheme *sc, s7_pointer car_x, s7_pointer s_func)
 static s7_pointer func_returns(s7_scheme *sc, s7_pointer func)
 {
   s7_pointer body, last_expr;
-  int len;
+  int32_t len;
   body = closure_body(func);
   len = s7_list_length(sc, body);
   if (len <= 0) return(sc->F);
@@ -52840,7 +53374,7 @@ static bool float_optimize(s7_scheme *sc, s7_pointer expr)
     {
       /* get func, check sig, check all args */
       s7_pointer s_func;
-      int len;
+      int32_t len;
 
       len = s7_list_length(sc, car_x);
       /* need to check int_opt here */
@@ -52874,10 +53408,11 @@ static bool float_optimize(s7_scheme *sc, s7_pointer expr)
 	      break;
 	      
 	    case 3:
+	      /* fprintf(stderr, "flt: %s\n", DISPLAY(car_x)); */
 	      if ((d_dd_ok(sc, opc, s_func, car_x)) ||
 		  (d_vd_ok(sc, opc, s_func, car_x)) ||
-		  (d_pd_ok(sc, opc, s_func, car_x)) ||
 		  (d_id_ok(sc, opc, s_func, car_x)) ||
+		  (d_pd_ok(sc, opc, s_func, car_x)) ||
 		  (d_ip_ok(sc, opc, s_func, car_x)) ||
 		  (d_pi_ok(sc, opc, s_func, car_x)))
 		return(true);
@@ -52919,7 +53454,7 @@ static bool float_optimize(s7_scheme *sc, s7_pointer expr)
 		  (is_safe_closure(s_func)) &&
 		  (returns_float(sc, s_func)))
 		{
-		  int start;
+		  int32_t start;
 		  start = sc->pc;
 		  if (funcall_optimize(sc, car_x, s_func))
 		    {
@@ -52949,7 +53484,7 @@ static bool int_optimize(s7_scheme *sc, s7_pointer expr)
   if (is_symbol(head))
     {
       s7_pointer s_func;
-      int len;
+      int32_t len;
       len = s7_list_length(sc, car_x);
 
       if ((is_syntactic(head)) ||
@@ -53010,7 +53545,7 @@ static bool int_optimize(s7_scheme *sc, s7_pointer expr)
 		  (is_safe_closure(s_func)) &&
 		  (returns_integer(sc, s_func)))
 		{
-		  int start;
+		  int32_t start;
 		  start = sc->pc;
 		  if (funcall_optimize(sc, car_x, s_func))
 		    {
@@ -53041,7 +53576,7 @@ static bool cell_optimize(s7_scheme *sc, s7_pointer expr)
   if (is_symbol(head))
     {
       s7_pointer s_func = NULL;
-      int len;
+      int32_t len;
       len = s7_list_length(sc, car_x);
 
       if ((is_syntactic(head)) ||
@@ -53058,7 +53593,7 @@ static bool cell_optimize(s7_scheme *sc, s7_pointer expr)
 	{
 	  opt_info *opc;
 	  s7_pointer sig;
-	  int start;
+	  int32_t start;
 	  
 	  start = sc->pc;
 	  sig = s7_procedure_signature(sc, s_func);
@@ -53077,9 +53612,10 @@ static bool cell_optimize(s7_scheme *sc, s7_pointer expr)
 	      
 	    case 3:
 	      {
-		int pstart;
+		int32_t pstart;
 		s7_i_ii_t ifunc;
 		pstart = sc->pc;
+		/* fprintf(stderr, "cell: %s %p\n", DISPLAY_80(car_x), s7_d_id_function(s_func)); */
 
 		if (is_symbol(cadr(car_x)))
 		  {
@@ -53124,12 +53660,10 @@ static bool cell_optimize(s7_scheme *sc, s7_pointer expr)
 		  }
 		pc_fallback(sc, pstart);
 		
-		if ((p_ii_ok(sc, opc, s_func, car_x)) ||
-		    (p_pp_ok(sc, opc, s_func, car_x)))
-		  return(true);
-		
-		pc_fallback(sc, pstart);
-		if (p_cf_pp_ok(sc, opc, s_func, car_x))
+		if ((p_ii_ok(sc, opc, s_func, car_x, pstart)) ||
+		    (p_dd_ok(sc, opc, s_func, car_x, pstart)) ||
+		    (p_pp_ok(sc, opc, s_func, car_x, pstart)) ||
+		    (p_cf_pp_ok(sc, opc, s_func, car_x, pstart)))
 		  return(true);
 	      }
 	      break;
@@ -53137,7 +53671,7 @@ static bool cell_optimize(s7_scheme *sc, s7_pointer expr)
 	    case 4:
 	      if (is_symbol(cadr(car_x)))
 		{
-		  int pstart;
+		  int32_t pstart;
 		  pstart = sc->pc;
 		  if ((is_pair(sig)) &&
 		      (is_pair(cdr(sig))) &&
@@ -53227,7 +53761,7 @@ static bool bool_optimize_nw(s7_scheme *sc, s7_pointer expr)
   if (is_symbol(head))
     {
       s7_pointer s_func;
-      int len;
+      int32_t len;
       len = s7_list_length(sc, car_x);
 
       if ((is_syntactic(head)) ||
@@ -53272,7 +53806,7 @@ static bool bool_optimize_nw(s7_scheme *sc, s7_pointer expr)
 		    /* fprintf(stderr, "%s sigs: %s %s\n", DISPLAY_80(car_x), DISPLAY(sig1), DISPLAY(sig2)); */
 		    if (sig2 == sc->is_integer_symbol)
 		      {
-			int cur_index;
+			int32_t cur_index;
 			cur_index = sc->pc;
 
 			if ((sig1 == sc->is_integer_symbol) &&
@@ -53320,7 +53854,7 @@ static bool bool_optimize_nw(s7_scheme *sc, s7_pointer expr)
 		  (is_safe_closure(s_func)) &&
 		  (returns_bool(sc, s_func)))
 		{
-		  int start;
+		  int32_t start;
 		  start = sc->pc;
 		  if (funcall_optimize(sc, car_x, s_func))
 		    {
@@ -53341,7 +53875,7 @@ static bool bool_optimize_nw(s7_scheme *sc, s7_pointer expr)
 
 static bool bool_optimize(s7_scheme *sc, s7_pointer expr)
 {
-  int start;
+  int32_t start;
   opt_info *wrapper;
   start = sc->pc;
   if (bool_optimize_nw(sc, expr))
@@ -53396,9 +53930,9 @@ s7_float_function s7_float_optimize(s7_scheme *sc, s7_pointer expr)
   return(NULL);
 }
 
-s7_function s7_optimize_1(s7_scheme *sc, s7_pointer expr, bool nr)
+static s7_function s7_optimize_1(s7_scheme *sc, s7_pointer expr, bool nr)
 {
-  int old_funcalls, old_unwraps;
+  int32_t old_funcalls, old_unwraps;
 #if WITH_GMP
   return(NULL);
 #endif
@@ -53422,12 +53956,12 @@ s7_function s7_optimize_1(s7_scheme *sc, s7_pointer expr, bool nr)
 	  pc_fallback(sc, 0);
 	  set_no_int_opt(expr);
 	}
-      if (!no_bool_opt(expr))
+      if (!no_float_opt(expr))
 	{
 	  if (float_optimize(sc, expr))
 	    return((nr) ? opt_float_any_nr : opt_wrap_float);
 	  pc_fallback(sc, 0);
-	  set_no_bool_opt(expr);
+	  set_no_float_opt(expr);
 	}
       if (!no_bool_opt(expr))
 	{
@@ -53442,7 +53976,7 @@ s7_function s7_optimize_1(s7_scheme *sc, s7_pointer expr, bool nr)
 	  if ((sc->funcalls > old_funcalls) &&
 	      (sc->unwraps == old_unwraps))
 	    {
-	      int i;
+	      int32_t i;
 	      for (i = 0; i < sc->pc; i++)
 		{
 		  opt_info *o;
@@ -53519,7 +54053,7 @@ static void clear_optimizer_fixups(s7_scheme *sc)
   sc->optimizer_fixups = NULL;
 }
 
-static void add_optimizer_fixup(s7_scheme *sc, s7_pointer expr, unsigned int op)
+static void add_optimizer_fixup(s7_scheme *sc, s7_pointer expr, uint32_t op)
 {
   hash_entry_t *p;
 #if DEBUGGING
@@ -53541,7 +54075,7 @@ static void handle_optimizer_fixups(s7_scheme *sc)
 
 /* ---------------------------------------- for-each ---------------------------------------- */
 
-static s7_pointer make_counter(s7_scheme *sc, s7_pointer iter)
+static inline s7_pointer make_counter(s7_scheme *sc, s7_pointer iter)
 {
   s7_pointer x;
   new_cell(sc, x, T_COUNTER);
@@ -53570,6 +54104,19 @@ static s7_pointer make_iterators(s7_scheme *sc, s7_pointer args)
   return(safe_reverse_in_place(sc, sc->z));
 }
 
+static bool tree_has_setters(s7_scheme *sc, s7_pointer tree)
+{
+  clear_symbol_list(sc);
+  add_symbol_to_list(sc, sc->set_symbol);
+  add_symbol_to_list(sc, sc->vector_set_symbol);
+  add_symbol_to_list(sc, sc->list_set_symbol);
+  add_symbol_to_list(sc, sc->let_set_symbol);
+  add_symbol_to_list(sc, sc->hash_table_set_symbol);
+  add_symbol_to_list(sc, sc->set_car_symbol);
+  add_symbol_to_list(sc, sc->set_cdr_symbol);
+  return(tree_set_memq(sc, tree));
+}
+
 static s7_pointer g_for_each(s7_scheme *sc, s7_pointer args)
 {
   #define H_for_each "(for-each proc object . objects) applies proc to each element of the objects traversed in parallel. \
@@ -53577,7 +54124,7 @@ Each object can be a list, string, vector, hash-table, or any other sequence."
   #define Q_for_each s7_make_circular_signature(sc, 2, 3, sc->is_unspecified_symbol, sc->is_procedure_symbol, sc->is_sequence_symbol)
 
   s7_pointer p, f;
-  int len;
+  int32_t len;
   bool got_nil = false, arity_ok = false;
 
   /* try the normal case first */
@@ -53682,22 +54229,29 @@ Each object can be a list, string, vector, hash-table, or any other sequence."
       if (!pair_no_opt(body))
 	{
 	  s7_function func;
-	  s7_pointer slot, old_e;
+	  s7_pointer slot, old_e, seq;
 
 	  old_e = sc->envir;
 	  sc->envir = new_frame_in_env(sc, sc->envir);
-	  slot = make_slot_1(sc, sc->envir, car(closure_args(f)), sc->F);
-
+	  seq = cadr(args);
+	  if (is_pair(seq))
+	    slot = make_slot_1(sc, sc->envir, car(closure_args(f)), sc->F);
+	  else
+	    {
+	      if (is_float_vector(seq))
+		slot = make_slot_1(sc, sc->envir, car(closure_args(f)), real_zero);
+	      else slot = make_slot_1(sc, sc->envir, car(closure_args(f)), (is_int_vector(seq)) ? small_int(0) : sc->F);
+	    }
 	  if (is_null(cdr(body)))
 	    func = s7_optimize_nr(sc, body);
 	  else func = s7_cell_optimize(sc, cons(sc, cons(sc, sc->begin_symbol, body), sc->nil), true);
 
 	  if (func)
 	    {
-	      if (is_pair(cadr(args)))
+	      if (is_pair(seq))
 		{
 		  s7_pointer x, y;
-		  for (x = cadr(args), y = x; is_pair(x); )
+		  for (x = seq, y = x; is_pair(x); )
 		    {
 		      slot_set_value(slot, car(x));
 		      func(sc, expr);
@@ -53713,25 +54267,80 @@ Each object can be a list, string, vector, hash-table, or any other sequence."
 		    }
 		  return(sc->unspecified);
 		}
-	      else
+
+	      if (is_float_vector(seq))
 		{
-		  s7_pointer iter;
-		  sc->z = cadr(args);
-		  if (!is_iterator(sc->z))
-		    sc->z = s7_make_iterator(sc, sc->z);
-		  iter = sc->z;
-		  push_stack(sc, OP_GC_PROTECT, iter, f);
-		  sc->z = sc->nil;
-		  while (true)
+		  s7_double *vals;
+		  s7_int i, len;
+		  len = vector_length(seq);
+		  vals = float_vector_elements(seq);
+		  
+		  if ((len > 1000) &&
+		      (!tree_has_setters(sc, body)))
 		    {
-		      slot_set_value(slot, s7_iterate(sc, iter));
-		      if (iterator_is_at_end(iter))
+		      s7_pointer sv;
+		      sv = s7_make_mutable_real(sc, 0.0);
+		      slot_set_value(slot, sv);
+		      for (i = 0; i < len; i++)
 			{
-			  sc->stack_end -= 4;
-			  return(sc->unspecified);
+			  real(sv) = vals[i];
+			  func(sc, expr);
 			}
+		      return(sc->unspecified);
+		    }
+		  for (i = 0; i < len; i++)
+		    {
+		      slot_set_value(slot, make_real(sc, vals[i]));
 		      func(sc, expr);
 		    }
+		  return(sc->unspecified);
+		}
+	      
+	      /* if no set! vector|list|let|hash-table-set! set-car!|cdr! mutable arg? */
+	      if (is_int_vector(seq))
+		{
+		  s7_int *vals;
+		  s7_int i, len;
+		  len = vector_length(seq);
+		  vals = int_vector_elements(seq);
+		  
+		  if ((len > 1000) &&
+		      (!tree_has_setters(sc, body)))
+		    {
+		      s7_pointer sv;
+		      sv = make_mutable_integer(sc, 0);
+		      slot_set_value(slot, sv);
+		      for (i = 0; i < len; i++)
+			{
+			  integer(sv) = vals[i];
+			  func(sc, expr);
+			}
+		      return(sc->unspecified);
+		    }
+		  
+		  for (i = 0; i < len; i++)
+		    {
+		      slot_set_value(slot, make_integer(sc, vals[i]));
+		      func(sc, expr);
+		    }
+		  return(sc->unspecified);
+		}
+
+	      sc->z = seq;
+	      if (!is_iterator(sc->z))
+		sc->z = s7_make_iterator(sc, sc->z);
+	      seq = sc->z;
+	      push_stack(sc, OP_GC_PROTECT, seq, f);
+	      sc->z = sc->nil;
+	      while (true)
+		{
+		  slot_set_value(slot, s7_iterate(sc, seq));
+		  if (iterator_is_at_end(seq))
+		    {
+		      sc->stack_end -= 4;
+		      return(sc->unspecified);
+		    }
+		  func(sc, expr);
 		}
 	    }
 	  set_pair_no_opt(body);
@@ -53775,7 +54384,7 @@ a list of the results.  Its arguments can be lists, vectors, strings, hash-table
 
   static s7_pointer map_args_error = NULL;
   s7_pointer p, f;
-  int len;
+  int32_t len;
   bool got_nil = false;
 
   f = car(args);                                /* the function */
@@ -53793,7 +54402,6 @@ a list of the results.  Its arguments can be lists, vectors, strings, hash-table
     {
     case T_C_FUNCTION:
     case T_C_RST_ARGS_FUNCTION:
-    case T_C_FUNCTION_STAR: 
       if (((int)c_function_required_args(f) > len) ||
 	  ((int)c_function_all_args(f) < len))
 	{
@@ -53886,7 +54494,7 @@ a list of the results.  Its arguments can be lists, vectors, strings, hash-table
       
       case T_CLOSURE:
 	{
-	  int fargs;
+	  int32_t fargs;
 	  fargs = closure_arity_to_int(sc, f);
 	  /* if closure call is straightforward, use OP_MAP_1 */
 	  if ((len == 1) &&
@@ -53987,7 +54595,7 @@ a list of the results.  Its arguments can be lists, vectors, strings, hash-table
 
 static s7_pointer splice_in_values(s7_scheme *sc, s7_pointer args)
 {
-  int top;
+  int32_t top;
   s7_pointer x;
   top = s7_stack_top(sc) - 1; /* stack_end - stack_start: if this is negative, we're in big trouble */
 
@@ -54098,7 +54706,6 @@ static s7_pointer splice_in_values(s7_scheme *sc, s7_pointer args)
       eval_error(sc, "can't set! some variable to ~S", args);
       
     case OP_SET_PAIR_P_1:
-    case OP_SET_PAIR_C_P_1:
       set_multiple_value(args);
       eval_error(sc, "too many values to set! ~S", args);
       
@@ -54245,7 +54852,7 @@ static s7_pointer g_list_values(s7_scheme *sc, s7_pointer args)
 static s7_pointer g_apply_values(s7_scheme *sc, s7_pointer args)
 {
   #define H_apply_values "(apply-values var) applies values to var.  This is an internal function."
-  #define Q_apply_values pcl_t
+  #define Q_apply_values s7_make_signature(sc, 2, sc->T, sc->is_list_symbol)
   s7_pointer x;
 
   if (is_null(args))
@@ -54257,7 +54864,7 @@ static s7_pointer g_apply_values(s7_scheme *sc, s7_pointer args)
     x = car(args);
   else x = apply_list_star(sc, args);
 
-  if (!is_proper_list(sc, x))
+  if (!s7_is_proper_list(sc, x))
     return(apply_list_error(sc, args));
   if (is_null(x))
     {
@@ -54287,20 +54894,37 @@ static s7_pointer g_apply_values(s7_scheme *sc, s7_pointer args)
 static bool is_simple_code(s7_scheme *sc, s7_pointer form)
 {
   /* TODO: perhaps tree_memq here? the cycle check below is inadequate, and the last check looks dumb */
-  s7_pointer tmp;
-  for (tmp = form; is_pair(tmp); tmp = cdr(tmp))
-    if (is_pair(car(tmp)))
-      {
-	if ((tmp == car(tmp)) || /* try to protect against #1=(#1) -- do we actually need cyclic_sequences here? */
-	    (!is_simple_code(sc, car(tmp))))
-	  return(false);
-      }
-    else
-      {
-	if ((car(tmp) == sc->unquote_symbol) ||
-	    ((is_null(car(tmp))) && (is_null(cdr(tmp)))))
-	  return(false);
-      }
+  s7_pointer tmp, sp;
+  for (tmp = form, sp = form; is_pair(tmp); tmp = cdr(tmp), sp = cdr(sp))
+    {
+      if (is_pair(car(tmp)))
+	{
+	  if ((tmp == car(tmp)) || /* try to protect against #1=(#1) -- do we actually need cyclic_sequences here? */
+	      (!is_simple_code(sc, car(tmp))))
+	    return(false);
+	}
+      else
+	{
+	  if ((car(tmp) == sc->unquote_symbol) ||
+	      ((is_null(car(tmp))) && (is_null(cdr(tmp)))))
+	    return(false);
+	}
+      tmp = cdr(tmp);
+      if (!is_pair(tmp)) break;
+      if (tmp == sp) return(false);
+      if (is_pair(car(tmp)))
+	{
+	  if ((tmp == car(tmp)) || /* try to protect against #1=(#1) -- do we actually need cyclic_sequences here? */
+	      (!is_simple_code(sc, car(tmp))))
+	    return(false);
+	}
+      else
+	{
+	  if ((car(tmp) == sc->unquote_symbol) ||
+	      ((is_null(car(tmp))) && (is_null(cdr(tmp)))))
+	    return(false);
+	}
+    }
   return(is_null(tmp));
 }
 
@@ -54311,8 +54935,8 @@ static s7_pointer g_quasiquote_1(s7_scheme *sc, s7_pointer form)
 comma (\"unquote\") and comma-atsign (\"apply values\") to pre-evaluate portions of the list. \
 unquoted expressions are evaluated and plugged into the list, apply-values evaluates the expression \
 and splices the resultant list into the outer list. `(1 ,(+ 1 1) ,@(list 3 4)) -> (1 2 3 4)."
-  #define Q_quasiquote pcl_t
 
+  /* fprintf(stderr, "g_quasiquote_1: form: %s %s\n", DISPLAY(form), type_name(sc, form, NO_ARTICLE)); */
   if (!is_pair(form))
     {
       if ((is_symbol(form)) &&
@@ -54338,8 +54962,8 @@ and splices the resultant list into the outer list. `(1 ,(+ 1 1) ,@(list 3 4)) -
     return(list_2(sc, sc->quote_symbol, form));
 
   {
-    int len, i;
-    unsigned int loc;
+    int32_t len, i;
+    uint32_t loc;
     s7_pointer orig, bq, old_scw;
     bool dotted = false;
 
@@ -54439,13 +55063,13 @@ static void back_up_stack(s7_scheme *sc)
 
 static token_t read_sharp(s7_scheme *sc, s7_pointer pt)
 {
-  int c;
+  int32_t c;
   /* inchar can return EOF, so it can't be used directly as an index into the digits array */
   c = inchar(pt);
   switch (c)
     {
     case EOF:
-      s7_error(sc, sc->read_error_symbol, set_elist_1(sc, make_string_wrapper(sc, "unexpected '#' at end of input")));
+      s7_error(sc, sc->read_error_symbol, set_elist_1(sc, s7_make_string_wrapper(sc, "unexpected '#' at end of input")));
       break;
 
     case '(':
@@ -54473,10 +55097,10 @@ static token_t read_sharp(s7_scheme *sc, s7_pointer pt)
 	 * but
 	 *   :#2147483649123D()
 	 *   creates a vector with 512 dimensions!
-	 * ndims in the vector struct is an unsigned int, so we'll complain if it goes over short max for now
+	 * ndims in the vector struct is an uint32_t, so we'll complain if it goes over short max for now
 	 */
 	s7_int dims;
-	int d, loc = 0;
+	int32_t d, loc = 0;
 	sc->strbuf[loc++] = c;
 	dims = digits[c];
 
@@ -54485,14 +55109,14 @@ static token_t read_sharp(s7_scheme *sc, s7_pointer pt)
 	    s7_int dig;
 	    d = inchar(pt);
 	    if (d == EOF)
-	      s7_error(sc, sc->read_error_symbol, set_elist_1(sc, make_string_wrapper(sc, "unexpected end of input while reading #n...")));
+	      s7_error(sc, sc->read_error_symbol, set_elist_1(sc, s7_make_string_wrapper(sc, "unexpected end of input while reading #n...")));
 
 	    dig = digits[d];
 	    if (dig >= 10) break;
 	    dims = dig + (dims * 10);
 	    if ((dims <= 0) ||
 		(dims > S7_SHORT_MAX))
-	      s7_error(sc, sc->read_error_symbol, set_elist_2(sc, make_string_wrapper(sc, "overflow while reading #nD: ~A"), make_integer(sc, dims)));
+	      s7_error(sc, sc->read_error_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "overflow while reading #nD: ~A"), make_integer(sc, dims)));
 	    sc->strbuf[loc++] = d;
 	  }
 	sc->strbuf[loc++] = d;
@@ -54500,7 +55124,7 @@ static token_t read_sharp(s7_scheme *sc, s7_pointer pt)
 	  {
 	    d = inchar(pt);
 	    if (d == EOF)
-	      s7_error(sc, sc->read_error_symbol, set_elist_1(sc, make_string_wrapper(sc, "unexpected end of input while reading #nD...")));
+	      s7_error(sc, sc->read_error_symbol, set_elist_1(sc, s7_make_string_wrapper(sc, "unexpected end of input while reading #nD...")));
 	    sc->strbuf[loc++] = d;
 	    if (d == '(')
 	      {
@@ -54517,15 +55141,15 @@ static token_t read_sharp(s7_scheme *sc, s7_pointer pt)
 
     case 'u':
       {
-	int d;
+	int32_t d;
 	d = inchar(pt);
 	if (d == EOF)
-	  s7_error(sc, sc->read_error_symbol, set_elist_1(sc, make_string_wrapper(sc, "unexpected end of input while reading #u...")));
+	  s7_error(sc, sc->read_error_symbol, set_elist_1(sc, s7_make_string_wrapper(sc, "unexpected end of input while reading #u...")));
 	if (d == '8')
 	  {
 	    d = inchar(pt);
 	    if (d == EOF)
-	      s7_error(sc, sc->read_error_symbol, set_elist_1(sc, make_string_wrapper(sc, "unexpected end of input while reading #u8...")));
+	      s7_error(sc, sc->read_error_symbol, set_elist_1(sc, s7_make_string_wrapper(sc, "unexpected end of input while reading #u8...")));
 	    if (d == '(')
 	      return(TOKEN_BYTE_VECTOR);
 	    backchar(d, pt);
@@ -54574,7 +55198,7 @@ static token_t read_sharp(s7_scheme *sc, s7_pointer pt)
 	    last_char = c;
 	  }
 	if (c == EOF)
-	  s7_error(sc, sc->read_error_symbol, set_elist_1(sc, make_string_wrapper(sc, "unexpected end of input while reading #!")));
+	  s7_error(sc, sc->read_error_symbol, set_elist_1(sc, s7_make_string_wrapper(sc, "unexpected end of input while reading #!")));
 	return(token(sc));
       }
 
@@ -54592,7 +55216,7 @@ static token_t read_sharp(s7_scheme *sc, s7_pointer pt)
 	      {
 		c = fgetc(port_file(pt));
 		if (c == EOF)
-		  s7_error(sc, sc->read_error_symbol, set_elist_1(sc, make_string_wrapper(sc, "unexpected end of input while reading #|")));
+		  s7_error(sc, sc->read_error_symbol, set_elist_1(sc, s7_make_string_wrapper(sc, "unexpected end of input while reading #|")));
 		if ((c == '#') &&
 		    (last_char == '|'))
 		  break;
@@ -54616,7 +55240,7 @@ static token_t read_sharp(s7_scheme *sc, s7_pointer pt)
 		if ((!p) || (p >= pend))
 		  {
 		    port_position(pt) = port_data_size(pt);
-		    s7_error(sc, sc->read_error_symbol, set_elist_1(sc, make_string_wrapper(sc, "unexpected end of input while reading #|")));
+		    s7_error(sc, sc->read_error_symbol, set_elist_1(sc, s7_make_string_wrapper(sc, "unexpected end of input while reading #|")));
 		  }
 		if (p[1] == '#')
 		  break;
@@ -54648,7 +55272,7 @@ static token_t read_sharp(s7_scheme *sc, s7_pointer pt)
 
 static token_t read_comma(s7_scheme *sc, s7_pointer pt)
 {
-  int c;
+  int32_t c;
   /* here we probably should check for symbol names that start with "@":
      :(define-macro (hi @foo) `(+ , at foo 1))
      hi
@@ -54680,7 +55304,7 @@ static token_t read_comma(s7_scheme *sc, s7_pointer pt)
 
 static token_t read_dot(s7_scheme *sc, s7_pointer pt)
 {
-  int c;
+  int32_t c;
   c = inchar(pt);
   if (c != EOF)
     {
@@ -54701,7 +55325,7 @@ static token_t read_dot(s7_scheme *sc, s7_pointer pt)
 
 static token_t token(s7_scheme *sc)
 {
-  int c;
+  int32_t c;
   c = port_read_white_space(sc->input_port)(sc, sc->input_port);
   switch (c)
     {
@@ -54725,12 +55349,12 @@ static token_t token(s7_scheme *sc)
 
 #define NOT_AN_X_CHAR -1
 
-static int read_x_char(s7_pointer pt)
+static int32_t read_x_char(s7_pointer pt)
 {
   /* possible "\xnn" char (write creates these things, so we have to read them)
    *   but we could have crazy input like "\x -- with no trailing double quote
    */
-  int d1, c;
+  int32_t d1, c;
 
   c = inchar(pt);
   if (c == EOF)
@@ -54739,7 +55363,7 @@ static int read_x_char(s7_pointer pt)
   d1 = digits[c];
   if (d1 < 16)
     {
-      int d2;
+      int32_t d2;
       c = inchar(pt);
       if (c == EOF)
 	return(NOT_AN_X_CHAR);
@@ -54754,7 +55378,7 @@ static int read_x_char(s7_pointer pt)
 }
 
 
-static s7_pointer unknown_string_constant(s7_scheme *sc, int c)
+static s7_pointer unknown_string_constant(s7_scheme *sc, int32_t c)
 {
   /* check *read-error-hook* */
   if (hook_has_functions(sc->read_error_hook))
@@ -54772,7 +55396,7 @@ static s7_pointer read_string_constant(s7_scheme *sc, s7_pointer pt)
   /* sc->F => error
    *   no check needed here for bad input port and so on
    */
-  unsigned int i = 0;
+  uint32_t i = 0;
 
   if (is_string_port(pt))
     {
@@ -54797,7 +55421,7 @@ static s7_pointer read_string_constant(s7_scheme *sc, s7_pointer pt)
 	}
       if (*s == '"')
 	{
-	  int len;
+	  int32_t len;
 	  len = s - start;
 	  port_position(pt) += (len + 1);
 	  return(s7_make_string_with_length(sc, start, len));
@@ -54807,7 +55431,7 @@ static s7_pointer read_string_constant(s7_scheme *sc, s7_pointer pt)
 	{
 	  if (*s == '"')                         /* switch here no faster */
 	    {
-	      int len;
+	      int32_t len;
 	      len = s - start;
 	      port_position(pt) += (len + 1);
 	      return(s7_make_string_with_length(sc, start, len));
@@ -54817,8 +55441,8 @@ static s7_pointer read_string_constant(s7_scheme *sc, s7_pointer pt)
 	      if (*s == '\\')
 		{
 		  /* all kinds of special cases here (resultant string is not the current string), so drop to loop below (setting "i") */
-		  unsigned int len;
-		  len = (unsigned int)(s - start);
+		  uint32_t len;
+		  len = (uint32_t)(s - start);
 		  if (len > 0)
 		    {
 		      if (len >= sc->strbuf_size)
@@ -54842,7 +55466,7 @@ static s7_pointer read_string_constant(s7_scheme *sc, s7_pointer pt)
   while (true)
     {
       /* splitting this check out and duplicating the loop was slower?!? */
-      int c;
+      int32_t c;
       c = port_read_character(pt)(sc, pt);
 
       switch (c)
@@ -54932,7 +55556,7 @@ static s7_pointer read_expression(s7_scheme *sc)
 {
   while (true)
     {
-      int c;
+      int32_t c;
       switch (sc->tok)
 	{
 	case TOKEN_EOF:
@@ -55006,7 +55630,7 @@ static s7_pointer read_expression(s7_scheme *sc)
 		if (str)
 		  {
 		    char *msg;
-		    int len;
+		    int32_t len;
 		    msg = (char *)malloc(128 * sizeof(char));
 		    len = snprintf(msg, 128, "at \"...%s...\", stray comma before ')'?", str);
 		    free (str);
@@ -55093,7 +55717,7 @@ static s7_pointer unbound_variable(s7_scheme *sc, s7_pointer sym)
 {
   /* this always occurs in a context where we're trying to find anything, so I'll move a couple of those checks here
    */
-  if (has_ref_fallback(sc->envir)) /* an experiment -- see s7test (with-let *db* (+ int (length str))) */
+  if (has_ref_fallback(sc->envir)) /* an experiment -- see s7test (with-let *db* (+ int32_t (length str))) */
     check_method(sc, sc->envir, sc->let_ref_fallback_symbol, sc->w = list_2(sc, sc->envir, sym));
   /* but if the thing we want to hit this fallback happens to exist at a higher level, oops... */
 
@@ -55108,7 +55732,7 @@ static s7_pointer unbound_variable(s7_scheme *sc, s7_pointer sym)
 	{
 	  /* for C-defined things like hooks and dilambda, let_file and let_line are 0 */
 	  if ((let_file(env) > 0) && 
-	      (let_file(env) < (s7_int)sc->file_names_top) && /* let_file(env) might be > int */
+	      (let_file(env) < (s7_int)sc->file_names_top) && /* let_file(env) might be > int32_t */
 	      (let_line(env) > 0))
 	    return(list_3(sc, funclet_function(env), sc->file_names[let_file(env)], make_integer(sc, let_line(env))));
 	  return(funclet_function(env));
@@ -55245,8 +55869,8 @@ static s7_pointer unbound_variable(s7_scheme *sc, s7_pointer sym)
 static s7_pointer assign_syntax(s7_scheme *sc, const char *name, opcode_t op, s7_pointer min_args, s7_pointer max_args, const char *doc)
 {
   s7_pointer x, syn;
-  unsigned long long int hash;
-  unsigned int loc;
+  uint64_t hash;
+  uint32_t loc;
 
   hash = raw_string_hash((const unsigned char *)name, safe_strlen(name));
   loc = hash % SYMBOL_TABLE_SIZE;
@@ -55263,6 +55887,7 @@ static s7_pointer assign_syntax(s7_scheme *sc, const char *name, opcode_t op, s7
 
   set_global_slot(x, permanent_slot(x, syn));
   set_initial_slot(x, permanent_slot(x, syn));
+  set_local_slot(x, global_slot(x));
   typeflag(x) = SYNTACTIC_TYPE;  /* symbol syntactic etc */
   symbol_set_local(x, 0LL, sc->nil);
   symbol_set_ctr(x, 0;)
@@ -55296,6 +55921,7 @@ static s7_pointer assign_internal_syntax(s7_scheme *sc, const char *name, opcode
 
   set_global_slot(x, permanent_slot(x, syn));
   set_initial_slot(x, permanent_slot(x, syn));
+  set_local_slot(x, global_slot(x));
   typeflag(x) = SYNTACTIC_TYPE;
   return(x);
 }
@@ -55313,7 +55939,7 @@ static s7_pointer g_pair_line_number(s7_scheme *sc, s7_pointer args)
 
   if (has_line_number(p))
     {
-      unsigned int x;
+      uint32_t x;
       x = pair_line(p);
       return(make_integer(sc, remembered_line_number(x)));
     }
@@ -55335,7 +55961,7 @@ static s7_pointer g_pair_filename(s7_scheme *sc, s7_pointer args)
     }
   if (has_line_number(p))
     {
-      int x;
+      int32_t x;
       x = pair_line(p);
       return(remembered_file_name(x));
     }
@@ -55372,7 +55998,7 @@ static s7_pointer g_is_pair_cadr(s7_scheme *sc, s7_pointer args)
   return(g_is_pair(sc, set_plist_1(sc, g_cadr(sc, set_plist_1(sc, val)))));
 }
 
-static s7_pointer is_pair_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer is_pair_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (!ops) return(f);
   if (is_h_safe_c_s(cadr(expr)))
@@ -55408,7 +56034,7 @@ static s7_pointer g_is_null_cdr(s7_scheme *sc, s7_pointer args)
   return(make_boolean(sc, is_null(cdr(val))));
 }
 
-static s7_pointer is_null_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer is_null_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (!ops) return(f);
   if (is_h_safe_c_s(cadr(expr)))
@@ -55479,7 +56105,7 @@ static s7_pointer g_format_allg_no_column(s7_scheme *sc, s7_pointer args)
 }
 
 
-static s7_pointer format_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer format_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   s7_pointer port, str_arg;
   port = cadr(expr);
@@ -55490,7 +56116,7 @@ static s7_pointer format_chooser(s7_scheme *sc, s7_pointer f, int args, s7_point
     {
       if ((ops) && (args == 2))
 	{
-	  int len;
+	  int32_t len;
 	  char *orig;
 	  const char *p;
 
@@ -55554,7 +56180,7 @@ static s7_pointer g_is_eq_caar_q(s7_scheme *sc, s7_pointer args)
   return(make_boolean(sc, caar(lst) == cadadr(args)));
 }
 
-static s7_pointer is_eq_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer is_eq_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (!ops) return(f);
   if (is_h_safe_c_s(cadr(expr)))
@@ -55627,7 +56253,7 @@ static s7_pointer g_not_c_c(s7_scheme *sc, s7_pointer args)
   return(make_boolean(sc, is_false(sc, c_call(car(args))(sc, cdar(args)))));
 }
 
-static s7_pointer not_chooser(s7_scheme *sc, s7_pointer g, int args, s7_pointer expr, bool ops)
+static s7_pointer not_chooser(s7_scheme *sc, s7_pointer g, int32_t args, s7_pointer expr, bool ops)
 {
   if (!ops) return(g);
   if (is_optimized(cadr(expr))) /* cadr(expr) might be a symbol, for example; is_optimized includes is_pair */
@@ -55685,7 +56311,7 @@ static s7_pointer not_chooser(s7_scheme *sc, s7_pointer g, int args, s7_pointer
 	  set_opt_con2(cdr(expr), cadr(caddr(cadr(expr))));
 	  return(not_is_eq_sq);
 	}
-      if (optimize_op(cadr(expr)) == HOP_SAFE_C_SS)
+      if ((optimize_op(cadr(expr)) == HOP_SAFE_C_SS) || (optimize_op(cadr(expr)) == HOP_SAFE_C_LL))
 	{
 	  if (c_callee(cadr(expr)) == g_is_eq)
 	    {
@@ -55706,7 +56332,7 @@ static s7_pointer not_chooser(s7_scheme *sc, s7_pointer g, int args, s7_pointer
 }
 
 
-static s7_pointer vector_ref_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer vector_ref_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (args == 2)
     {
@@ -55759,7 +56385,7 @@ static s7_pointer vector_ref_chooser(s7_scheme *sc, s7_pointer f, int args, s7_p
 }
 
 
-static s7_pointer vector_set_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer vector_set_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (args == 3)
     {
@@ -55788,7 +56414,7 @@ static s7_pointer vector_set_chooser(s7_scheme *sc, s7_pointer f, int args, s7_p
 }
 
 
-static s7_pointer list_set_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer list_set_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if ((args == 3) &&
       (s7_is_integer(caddr(expr))) &&
@@ -55798,7 +56424,7 @@ static s7_pointer list_set_chooser(s7_scheme *sc, s7_pointer f, int args, s7_poi
   return(f);
 }
 
-static s7_pointer hash_table_ref_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer hash_table_ref_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
  if (args == 2)
     {
@@ -55812,7 +56438,7 @@ static s7_pointer hash_table_ref_chooser(s7_scheme *sc, s7_pointer f, int args,
        */
       if (ops)
 	{
-	  if ((optimize_op(expr) == HOP_SAFE_C_SS) ||
+	  if ((optimize_op(expr) == HOP_SAFE_C_SS) || (optimize_op(expr) == HOP_SAFE_C_LL) ||
 	      ((is_h_safe_c_c(expr)) &&
 	       (is_symbol(cadr(expr))) &&
 	       (is_symbol(caddr(expr)))))
@@ -55836,7 +56462,37 @@ static s7_pointer hash_table_ref_chooser(s7_scheme *sc, s7_pointer f, int args,
 
 
 #if (!WITH_GMP)
-static s7_pointer modulo_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+/* an experiment in non-safe_c_c overrides for (a (b,.))
+ *   expt is disabled by setting its c_function to cons
+ *   modulo is rerouted by setting its function to exptmod
+ *   this appears to work even in the clm-opt world because
+ *   cons/exptmod are called there as well.
+ */
+static s7_int exptmod_1(s7_int a, s7_int b, s7_int n)
+{
+  s7_int d;
+  if (b == 0) return(1);
+  d = exptmod_1((a * a) % n, b >> 1, n);
+  if ((b & 1) == 0) return(d);
+  return((a * d) % n);
+}
+
+static s7_pointer exptmod;
+static s7_pointer g_exptmod(s7_scheme *sc, s7_pointer args)
+{
+  s7_pointer a, b, n;
+  a = caar(args);
+  b = cdar(args);
+  /* free_cell(sc, car(args)); */ /* seems to be safe */
+  n = cadr(args);
+  if ((!is_t_integer(a)) || (integer(a) < 0) ||
+      (!is_t_integer(b)) || (integer(b) < 0) ||
+      (!is_t_integer(n)) || (integer(n) <= 0))                                   /* floating exception if n==0 */
+    return(g_modulo(sc, set_plist_2(sc, g_expt(sc, set_elist_2(sc, a, b)), n))); /* fallback on (modulo (expt a b) n) */
+  return(make_integer(sc, exptmod_1(integer(a), integer(b), integer(n))));
+}
+
+static s7_pointer modulo_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (!ops) return(f);
   if ((args == 2) &&
@@ -55849,11 +56505,19 @@ static s7_pointer modulo_chooser(s7_scheme *sc, s7_pointer f, int args, s7_point
       set_optimize_op(expr, HOP_SAFE_C_C);
       return(mod_si);
     }
+  
+  if ((is_pair(cadr(expr))) &&
+      (caadr(expr) == sc->expt_symbol))
+    {
+      set_c_function(cadr(expr), slot_value(initial_slot(sc->cons_symbol)));
+      return(exptmod);
+    }
+
   return(f);
 }
 #endif
 
-static s7_pointer add_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer add_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   /* (+ s f) (+ (* s s) s) (+ s s) (+ s (* s s))
    */
@@ -55923,7 +56587,7 @@ static s7_pointer add_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer
 }
 
 
-static s7_pointer multiply_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer multiply_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
 #if (!WITH_GMP)
   if (args == 2)
@@ -55951,26 +56615,14 @@ static s7_pointer multiply_chooser(s7_scheme *sc, s7_pointer f, int args, s7_poi
 		    }
 		}
 	      if ((arg1 == arg2) &&
-		  ((optimize_op(expr) == HOP_SAFE_C_SS) ||    /* (* x c) */
+		  ((optimize_op(expr) == HOP_SAFE_C_SS) || (optimize_op(expr) == HOP_SAFE_C_LL) ||    /* (* x c) */
 		   (is_h_safe_c_c(expr))))
 		{
 		  set_optimize_op(expr, HOP_SAFE_C_C);
 		  return(sqr_ss);
 		}
-	      
-	      if ((is_h_safe_c_s(arg2)) &&
-		  ((car(arg2) == sc->sin_symbol) || (car(arg2) == sc->cos_symbol)) &&
-		  ((optimize_op(expr) == HOP_SAFE_C_S_opSq) ||
-		   (is_h_safe_c_c(expr))))
-		{
-		  set_optimize_op(expr, HOP_SAFE_C_C);
-		  clear_unsafe(expr);
-		  if (car(arg2) == sc->sin_symbol)
-		    return(mul_s_sin_s);
-		  return(mul_s_cos_s);
-		}
 	    }
-	  
+
 	  if (is_symbol(arg2))
 	    {
 	      if ((optimize_op(expr) == HOP_SAFE_C_CS) ||
@@ -55989,6 +56641,7 @@ static s7_pointer multiply_chooser(s7_scheme *sc, s7_pointer f, int args, s7_poi
 		}
 	    }
 	}
+      /* fprintf(stderr, "%s\n", DISPLAY_80(expr)); */
       return(multiply_2);
     }
 #endif
@@ -55996,7 +56649,7 @@ static s7_pointer multiply_chooser(s7_scheme *sc, s7_pointer f, int args, s7_poi
 }
 
 
-static s7_pointer subtract_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer subtract_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
 #if (!WITH_GMP)
   if (args == 1)
@@ -56063,7 +56716,7 @@ static s7_pointer subtract_chooser(s7_scheme *sc, s7_pointer f, int args, s7_poi
 }
 
 
-static s7_pointer divide_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer divide_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
 #if (!WITH_GMP)
   if (args == 1)
@@ -56084,26 +56737,7 @@ static s7_pointer divide_chooser(s7_scheme *sc, s7_pointer f, int args, s7_point
 }
 
 #if (!WITH_GMP)
-static s7_pointer max_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
-{
-  if ((!ops) && (args == 2) &&
-      (is_t_real(cadr(expr))) &&
-      (!is_NaN(real(cadr(expr)))))
-    return(max_f2);
-  return(f);
-}
-
-static s7_pointer min_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
-{
-  if ((!ops) && (args == 2) &&
-      (is_t_real(cadr(expr))) &&
-      (!is_NaN(real(cadr(expr)))))
-    return(min_f2);
-  return(f);
-}
-
-
-static s7_pointer equal_chooser(s7_scheme *sc, s7_pointer ur_f, int args, s7_pointer expr, bool ops)
+static s7_pointer equal_chooser(s7_scheme *sc, s7_pointer ur_f, int32_t args, s7_pointer expr, bool ops)
 {
   if (args == 2)
     {
@@ -56128,14 +56762,12 @@ static s7_pointer equal_chooser(s7_scheme *sc, s7_pointer ur_f, int args, s7_poi
 			}
 		    }
 		}
-#if (!WITH_GMP)
 	      if ((optimize_op(expr) == HOP_SAFE_C_SC) ||
 		  ((is_h_safe_c_c(expr)) && (is_symbol(arg1))))
 		{
 		  set_optimize_op(expr, HOP_SAFE_C_C);
 		  return(equal_s_ic);
 		}
-#endif
 	    }
 	}
       return(equal_2);
@@ -56143,7 +56775,7 @@ static s7_pointer equal_chooser(s7_scheme *sc, s7_pointer ur_f, int args, s7_poi
   return(ur_f);
 }
 
-static s7_pointer less_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer less_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (args == 2)
     {
@@ -56177,7 +56809,7 @@ static s7_pointer less_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer
 }
 
 
-static s7_pointer leq_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer leq_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (args == 2)
     {
@@ -56196,7 +56828,7 @@ static s7_pointer leq_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer
 }
 
 
-static s7_pointer greater_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer greater_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (args == 2)
     {
@@ -56221,7 +56853,7 @@ static s7_pointer greater_chooser(s7_scheme *sc, s7_pointer f, int args, s7_poin
 }
 
 
-static s7_pointer geq_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer geq_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (args == 2)
     {
@@ -56262,7 +56894,7 @@ static bool returns_char(s7_scheme *sc, s7_pointer arg)
   return(false);
 }
 
-static s7_pointer char_equal_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer char_equal_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (args == 2)
     {
@@ -56287,14 +56919,14 @@ static s7_pointer char_equal_chooser(s7_scheme *sc, s7_pointer f, int args, s7_p
   return(f);
 }
 
-static s7_pointer char_less_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer char_less_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (args == 2)
     return(char_less_2);
   return(f);
 }
 
-static s7_pointer char_greater_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer char_greater_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (args == 2)
     return(char_greater_2);
@@ -56304,7 +56936,7 @@ static s7_pointer char_greater_chooser(s7_scheme *sc, s7_pointer f, int args, s7
 static void check_for_substring_temp(s7_scheme *sc, s7_pointer expr)
 {
   s7_pointer p, np = NULL, ap = NULL, sp = NULL, arg;
-  int pairs = 0;
+  int32_t pairs = 0;
   /* a bit tricky -- accept temp only if there's just one inner expression and it calls substring */
   for (p = cdr(expr); is_pair(p); p = cdr(p))
     {
@@ -56370,7 +57002,7 @@ static void check_for_substring_temp(s7_scheme *sc, s7_pointer expr)
     }
 }
 
-static s7_pointer char_position_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer char_position_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   if (!ops) return(f);
   if (((args == 2) || (args == 3)) &&
@@ -56379,7 +57011,7 @@ static s7_pointer char_position_chooser(s7_scheme *sc, s7_pointer f, int args, s
   return(f);
 }
 
-static s7_pointer string_equal_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer string_equal_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   check_for_substring_temp(sc, expr);
   if (args == 2)
@@ -56387,7 +57019,7 @@ static s7_pointer string_equal_chooser(s7_scheme *sc, s7_pointer f, int args, s7
   return(f);
 }
 
-static s7_pointer string_less_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer string_less_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   check_for_substring_temp(sc, expr);
   if (args == 2)
@@ -56395,7 +57027,7 @@ static s7_pointer string_less_chooser(s7_scheme *sc, s7_pointer f, int args, s7_
   return(f);
 }
 
-static s7_pointer string_greater_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer string_greater_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   check_for_substring_temp(sc, expr);
   if (args == 2)
@@ -56403,25 +57035,25 @@ static s7_pointer string_greater_chooser(s7_scheme *sc, s7_pointer f, int args,
   return(f);
 }
 
-static s7_pointer string_to_symbol_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer string_to_symbol_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   check_for_substring_temp(sc, expr);
   return(f);
 }
 
 
-static s7_pointer string_ref_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer string_ref_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   check_for_substring_temp(sc, expr);
   return(f);
 }
 
-static s7_pointer string_set_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer string_set_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   return(f);
 }
 
-static s7_pointer string_append_chooser(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops)
+static s7_pointer string_append_chooser(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops)
 {
   check_for_substring_temp(sc, expr);
   return(f);
@@ -56595,7 +57227,7 @@ static s7_pointer g_and_s_direct(s7_scheme *sc, s7_pointer args)
 
 
 static s7_pointer make_function_with_class(s7_scheme *sc, s7_pointer cls, const char *name, s7_function f, 
-					   int required_args, int optional_args, bool rest_arg, const char *doc)
+					   int32_t required_args, int32_t optional_args, bool rest_arg, const char *doc)
 {
   s7_pointer uf;
   /* the "safe_function" business here doesn't matter -- this is after the optimizer decides what is safe */
@@ -56605,7 +57237,7 @@ static s7_pointer make_function_with_class(s7_scheme *sc, s7_pointer cls, const
 }
 
 
-static s7_pointer set_function_chooser(s7_scheme *sc, s7_pointer sym, s7_pointer (*chooser)(s7_scheme *sc, s7_pointer f, int args, s7_pointer expr, bool ops))
+static s7_pointer set_function_chooser(s7_scheme *sc, s7_pointer sym, s7_pointer (*chooser)(s7_scheme *sc, s7_pointer f, int32_t args, s7_pointer expr, bool ops))
 {
   s7_pointer f;
   f = slot_value(global_slot(sym));
@@ -56658,8 +57290,6 @@ static void init_choosers(s7_scheme *sc)
   multiply_sf = make_function_with_class(sc, f, "*", g_multiply_sf, 2, 0, false, "* opt");
 
   sqr_ss = make_function_with_class(sc, f, "*", g_sqr_ss, 2, 0, false, "* opt");
-  mul_s_sin_s = make_function_with_class(sc, f, "*", g_mul_s_sin_s, 2, 0, false, "* opt");
-  mul_s_cos_s = make_function_with_class(sc, f, "*", g_mul_s_cos_s, 2, 0, false, "* opt");
 #endif
 
   /* / */
@@ -56671,14 +57301,7 @@ static void init_choosers(s7_scheme *sc)
   /* modulo */
   f = set_function_chooser(sc, sc->modulo_symbol, modulo_chooser);
   mod_si = make_function_with_class(sc, f, "modulo", g_mod_si, 2, 0, false, "modulo opt");
-
-  /* max */
-  f = set_function_chooser(sc, sc->max_symbol, max_chooser);
-  max_f2 = make_function_with_class(sc, f, "max", g_max_f2, 2, 0, false, "max opt");
-
-  /* min */
-  f = set_function_chooser(sc, sc->min_symbol, min_chooser);
-  min_f2 = make_function_with_class(sc, f, "min", g_min_f2, 2, 0, false, "min opt");
+  exptmod = make_function_with_class(sc, f, "modulo", g_exptmod, 3, 0, false, "modulo opt");
 
   /* = */
   f = set_function_chooser(sc, sc->eq_symbol, equal_chooser);
@@ -56893,7 +57516,7 @@ static void init_choosers(s7_scheme *sc)
 
 #define choose_c_function(Sc, Expr, Func, Args) do {clear_overlay(Expr); set_c_function(Expr, c_function_chooser(Func)(Sc, Func, Args, Expr, true));} while (0)
 
-static opt_t optimize_thunk(s7_scheme *sc, s7_pointer expr, s7_pointer func, int hop)
+static opt_t optimize_thunk(s7_scheme *sc, s7_pointer expr, s7_pointer func, int32_t hop)
 {
   if (is_immutable_symbol(car(expr)))
     hop = 1;
@@ -56951,22 +57574,37 @@ static opt_t optimize_thunk(s7_scheme *sc, s7_pointer expr, s7_pointer func, int
 }
 
 
-static int combine_ops(s7_scheme *sc, combine_op_t op1, s7_pointer e1, s7_pointer e2)
+static opt_t optimize_func_dotted_args(s7_scheme *sc, s7_pointer expr, s7_pointer func, int32_t hop, int32_t args, int32_t pairs, int32_t symbols, int32_t quotes, int32_t bad_pairs, s7_pointer e)
 {
-  int op2;
-  op2 = op_no_hop(e2);
+  if (all_x_count(sc, expr) == args)
+    {
+      set_unsafely_optimized(expr);
+      annotate_args(sc, cdr(expr), e);
+      set_arglist_length(expr, small_int(args));
+      set_optimize_op(expr, hop + OP_CLOSURE_ANY_ALL_X);
+      set_opt_lambda(expr, func);
+      /* fprintf(stderr, "expr: %s, func: %s, opt: %s\n", DISPLAY(expr), DISPLAY(func), DISPLAY(opt_lambda(expr))); */
+      return(OPT_F);
+    }
+  return(OPT_F);
+}
 
-  /* e_c_pp case (1) is slightly different from the others: e2 is not a part of e1
-   */
-  switch (op1)
+static int32_t combine_ops(s7_scheme *sc, s7_pointer func, s7_pointer expr, combine_op_t cop, s7_pointer e1, s7_pointer e2)
+{
+  int32_t arg_op;
+  s7_pointer arg;
+
+  switch (cop)
     {
     case E_C_P:
-      switch (op2)
+      arg_op = op_no_hop(e1);
+      switch (arg_op)
 	{
 	case OP_SAFE_C_S: case OP_SAFE_C_L: case OP_SAFE_CAR_S: case OP_SAFE_CDR_S: case OP_SAFE_CADR_S:
 	case OP_SAFE_IS_PAIR_S: case OP_SAFE_IS_NULL_S: case OP_SAFE_IS_SYMBOL_S:
 	  return(OP_SAFE_C_opSq);
 	case OP_SAFE_C_C:      return(OP_SAFE_C_opCq); /* this includes the multi-arg C_C cases */
+	case OP_SAFE_C_LL:
 	case OP_SAFE_C_SS:     return(OP_SAFE_C_opSSq);
 	case OP_SAFE_C_SQ:     return(OP_SAFE_C_opSQq);
 	case OP_SAFE_C_QS:     return(OP_SAFE_C_opQSq);
@@ -56978,161 +57616,170 @@ static int combine_ops(s7_scheme *sc, combine_op_t op1, s7_pointer e1, s7_pointe
 	case OP_SAFE_C_A:      return(OP_SAFE_C_opAq);
 	case OP_SAFE_C_AA:     return(OP_SAFE_C_opAAq);
 	case OP_SAFE_C_AAA:    return(OP_SAFE_C_opAAAq);
-	  /* car_s opsq_opsq c_opsq s_opcq opcq_s opsq_c opcq_c, but they don't amount to anything in safe_c_a|z */
 	}
       return(OP_SAFE_C_Z); /* this splits out to A in optimize_func_one_arg */
 
     case E_C_SP:
-      switch (op2)
+      arg = e2;
+      arg_op = op_no_hop(arg);
+      switch (arg_op)
 	{
 	case OP_SAFE_C_S: case OP_SAFE_C_L: case OP_SAFE_CAR_S: case OP_SAFE_CDR_S: case OP_SAFE_CADR_S:
 	case OP_SAFE_IS_PAIR_S: case OP_SAFE_IS_NULL_S: case OP_SAFE_IS_SYMBOL_S:
-	  set_opt_sym1(cdr(e1), cadr(e2));
+	  set_opt_sym1(cdr(expr), cadr(arg));
 	  return(OP_SAFE_C_S_opSq);
 
 	case OP_SAFE_C_C:
-	  set_opt_pair1(cdr(e1), cdr(e2));
+	  set_opt_pair1(cdr(expr), cdr(arg));
 	  return(OP_SAFE_C_S_opCq);
 
 	case OP_SAFE_C_SC:
-	  set_opt_sym1(cdr(e1), cadr(e2));
-	  set_opt_con2(cdr(e1), caddr(e2));
+	  set_opt_sym1(cdr(expr), cadr(arg));
+	  set_opt_con2(cdr(expr), caddr(arg));
 	  return(OP_SAFE_C_S_opSCq);
 
 	case OP_SAFE_C_CS:
-	  /* (* a (- 1 b)), e1 is the full expr, e2 is (- 1 b) */
-	  set_opt_con1(cdr(e1), cadr(e2));
-	  set_opt_sym2(cdr(e1), caddr(e2));
+	  /* expr is (* a (- 1 b)), e2 is (- 1 b) */
+	  set_opt_con1(cdr(expr), cadr(arg));
+	  set_opt_sym2(cdr(expr), caddr(arg));
 	  return(OP_SAFE_C_S_opCSq);
 
+	case OP_SAFE_C_LL:
 	case OP_SAFE_C_SS:
 	  /* (* a (- b c)) */
-	  set_opt_sym1(cdr(e1), cadr(e2));
-	  set_opt_sym2(cdr(e1), caddr(e2));
+	  set_opt_sym1(cdr(expr), cadr(arg));
+	  set_opt_sym2(cdr(expr), caddr(arg));
 	  return(OP_SAFE_C_S_opSSq);
 
-	case OP_SAFE_C_opSSq_S:
-	  return(OP_SAFE_C_S_op_opSSq_Sq);
-
-	case OP_SAFE_C_S_opSSq:
-	  return(OP_SAFE_C_S_op_S_opSSqq);
-
-	case OP_SAFE_C_S_opSq:
-	  return(OP_SAFE_C_S_op_S_opSqq);
-
-	case OP_SAFE_C_opSSq_opSSq:
-	  return(OP_SAFE_C_S_op_opSSq_opSSqq);
-
-	case OP_SAFE_C_SZ:
-	  return(OP_SAFE_C_S_opSZq);
-
-	case OP_SAFE_C_A:
-	  return(OP_SAFE_C_S_opAq);
-
-	case OP_SAFE_C_AA:
-	  return(OP_SAFE_C_S_opAAq);
-
+	case OP_SAFE_C_opSSq_S:	    return(OP_SAFE_C_S_op_opSSq_Sq);
+	case OP_SAFE_C_S_opSSq:	    return(OP_SAFE_C_S_op_S_opSSqq);
+	case OP_SAFE_C_S_opSq:	    return(OP_SAFE_C_S_op_S_opSqq);
+	case OP_SAFE_C_opSSq_opSSq: return(OP_SAFE_C_S_op_opSSq_opSSqq);
+	case OP_SAFE_C_SZ:	    return(OP_SAFE_C_S_opSZq);
+	case OP_SAFE_C_A:	    return(OP_SAFE_C_S_opAq);
+	case OP_SAFE_C_AA:	    return(OP_SAFE_C_S_opAAq);
 	case OP_SAFE_C_CSA:
 	case OP_SAFE_C_SCA:
 	case OP_SAFE_C_SAS:
 	case OP_SAFE_C_SSA:
 	case OP_SAFE_C_AAA:
 	  return(OP_SAFE_C_S_opAAAq);
-	  /* index h_safe_c_scs: 2210
-	   * thash h_safe_c_s_opcq: 2222222
-	   * tgen h_safe_c_opssq: 109130
-	   * tall h_safe_c_opsq: 30429
-	   * snd-test h_safe_c_s_op_s_opssqq: 835666
-	   * bench h_safe_c_opssq: 4374
-	   * lg h_safe_c_qs: 122728, h_safe_c_all_x: 1047308, h_safe_c_s_opscq: 144352, 
-	   *   h_safe_c_all_x: 1081764, h_safe_c_opsq_c: 444588, h_safe_c_s_opcq: 792071
-	   */
 	}
       return(OP_SAFE_C_SZ);
 
     case E_C_PS:
-      switch (op2)
+      arg = e1;
+      arg_op = op_no_hop(arg);
+      switch (arg_op)
 	{
 	case OP_SAFE_C_S: case OP_SAFE_C_L: case OP_SAFE_CAR_S: case OP_SAFE_CDR_S: case OP_SAFE_CADR_S:
 	case OP_SAFE_IS_PAIR_S: case OP_SAFE_IS_NULL_S: case OP_SAFE_IS_SYMBOL_S:
 	  return(OP_SAFE_C_opSq_S);
+	case OP_SAFE_C_LL:
+	case OP_SAFE_C_SS:    return(OP_SAFE_C_opSSq_S);
 	case OP_SAFE_C_C:     return(OP_SAFE_C_opCq_S);
 	case OP_SAFE_C_CS:    return(OP_SAFE_C_opCSq_S);
 	case OP_SAFE_C_SC:    return(OP_SAFE_C_opSCq_S);
-	case OP_SAFE_C_SS:    return(OP_SAFE_C_opSSq_S);
 	case OP_SAFE_C_opSq:  return(OP_SAFE_C_op_opSq_q_S);
 	case OP_SAFE_C_opSSq: return(OP_SAFE_C_op_opSSq_q_S);
-	    /* tall h_safe_c_css: 31740 [also index]
-	     * in lint, h_safe_c_sp: 778783, h_safe_c_qs: 133880, h_safe_c_opsq_opsq: 71292
-	     * in bench h_safe_c_css: 166564, h_safe_c_opsq_s: 28204
-	     * snd-test h_safe_c_aa: 145588
-	     * thash h_safe_c_s_opssq: 1111111, h_safe_c_s_opcq: 4444444
-	     * tgen h_safe_c_aa: 55780, h_safe_c_s_opsq: 26460
-	     */
 	}
       return(OP_SAFE_C_ZS);
 
     case E_C_PC:
-      switch (op2)
+      arg = e1;
+      arg_op = op_no_hop(arg);
+      switch (arg_op)
 	{
 	case OP_SAFE_C_S: case OP_SAFE_C_L: case OP_SAFE_CAR_S: case OP_SAFE_CDR_S: case OP_SAFE_CADR_S:
 	case OP_SAFE_IS_PAIR_S: case OP_SAFE_IS_NULL_S: case OP_SAFE_IS_SYMBOL_S:
 	  return(OP_SAFE_C_opSq_C);
 	case OP_SAFE_C_C:     return(OP_SAFE_C_opCq_C);
 	case OP_SAFE_C_CS:    return(OP_SAFE_C_opCSq_C);
-	case OP_SAFE_C_SS:    return(OP_SAFE_C_opSSq_C);
 	case OP_SAFE_C_SC:    return(OP_SAFE_C_opSCq_C);
 	case OP_SAFE_C_opSq:  return(OP_SAFE_C_op_opSq_q_C);
 	case OP_SAFE_C_opSSq: return(OP_SAFE_C_op_opSSq_q_C);
-	  /* lint h_safe_c_opsq_s: 224666, h_safe_c_ssc: 188152
-	   */
+
+	case OP_SAFE_C_LL:   
+	case OP_SAFE_C_SS:    return(OP_SAFE_C_opSSq_C);
 	}
       return(OP_SAFE_C_ZC);
 
     case E_C_CP:
-      switch (op2)
+      arg= e2;
+      arg_op = op_no_hop(arg);
+      switch (arg_op)
 	{
 	case OP_SAFE_C_C:
-	  set_opt_pair1(cdr(e1), cdr(e2));
+	  set_opt_pair1(cdr(expr), cdr(arg));
 	  return(OP_SAFE_C_C_opCq);
 
 	case OP_SAFE_C_S: case OP_SAFE_C_L: case OP_SAFE_CAR_S: case OP_SAFE_CDR_S: case OP_SAFE_CADR_S:
 	case OP_SAFE_IS_PAIR_S: case OP_SAFE_IS_NULL_S: case OP_SAFE_IS_SYMBOL_S:
-	  set_opt_sym1(cdr(e1), cadr(e2));
+	  set_opt_sym1(cdr(expr), cadr(arg));
 	  return(OP_SAFE_C_C_opSq);
 
 	case OP_SAFE_C_CS:
-	  set_opt_con1(cdr(e1), cadr(e2));
-	  set_opt_sym2(cdr(e1), caddr(e2));
+	  set_opt_con1(cdr(expr), cadr(arg));
+	  set_opt_sym2(cdr(expr), caddr(arg));
 	  return(OP_SAFE_C_C_opCSq);
 
 	case OP_SAFE_C_SC:
-	  set_opt_sym1(cdr(e1), cadr(e2));
-	  set_opt_con2(cdr(e1), caddr(e2));
+	  set_opt_sym1(cdr(expr), cadr(arg));
+	  set_opt_con2(cdr(expr), caddr(arg));
 	  return(OP_SAFE_C_C_opSCq);
 
+	case OP_SAFE_C_LL:
 	case OP_SAFE_C_SS:
-	  set_opt_sym1(cdr(e1), cadr(e2));
-	  set_opt_sym2(cdr(e1), caddr(e2));
-	  return(OP_SAFE_C_C_opSSq);
+	    set_opt_sym1(cdr(expr), cadr(arg));
+	    /* set_opt_sym2(cdr(expr), caddr(arg)); -- we're clobbering the old C_SS -> C_C_opSSq opt_sym2 setting */
+	    if ((is_real(e1)) &&
+		(symbol_id(car(arg)) == 0) && 
+		(s7_d_pd_function(slot_value(global_slot(car(arg))))))
+	      {
+		s7_p_dd_t fp;
+		fp = s7_p_dd_function(func);
+		if (fp) 
+		  {
+		    /* direct_x_c_c_opssq calls number_to_real on e1 */
+		    set_opt_direct_x(cddr(expr), s7_d_pd_function(slot_value(global_slot(car(arg)))));
+		    set_opt_direct_x_call(cdr(expr), fp);
+		    set_direct_x_opt(expr);
+		  }
+	      }
+	    return(OP_SAFE_C_C_opSSq);
 
 	case OP_SAFE_C_S_opCq:
 	  return(OP_SAFE_C_C_op_S_opCqq);
-	  /* tall h_safe_c_sss: 26461
-	   * lint h_safe_c_scc: 106206, h_safe_c_scc: 111182
-	   */
 	}
       return(OP_SAFE_C_CZ);
 
     case E_C_PP:
-      switch (op2)
+      arg = e2;
+      arg_op = op_no_hop(arg);
+      switch (arg_op)
 	{
 
 	case OP_SAFE_C_S: case OP_SAFE_C_L: case OP_SAFE_CAR_S: case OP_SAFE_CDR_S: case OP_SAFE_CADR_S:
 	case OP_SAFE_IS_PAIR_S: case OP_SAFE_IS_NULL_S: case OP_SAFE_IS_SYMBOL_S:
 	  if (is_safe_c_s(e1))
-	    return(OP_SAFE_C_opSq_opSq);
-	  if (optimize_op_match(e1, OP_SAFE_C_SS))
+	    {
+	      s7_p_dd_t fp;
+	      fp = s7_p_dd_function(func);
+	      if (fp) 
+		{
+		  if ((symbol_id(car(e1)) == 0) && (s7_d_p_function(slot_value(global_slot(car(e1))))) &&
+		      (symbol_id(car(e2)) == 0) && (s7_d_p_function(slot_value(global_slot(car(e2))))))
+		    {
+		      set_opt_direct_x(cdr(expr), s7_d_p_function(slot_value(global_slot(car(e1)))));
+		      set_opt_direct_x(cddr(expr), s7_d_p_function(slot_value(global_slot(car(e2)))));
+		      set_opt_direct_x_call(cdr(expr), fp);
+		      set_direct_x_opt(expr);
+		    }
+		}
+	      /* else fprintf(stderr, "opt: %s\n", DISPLAY_80(expr)); */
+	      return(OP_SAFE_C_opSq_opSq);
+	    }
+	  if ((optimize_op_match(e1, OP_SAFE_C_SS)) || (optimize_op_match(e1, OP_SAFE_C_LL)))
 	    return(OP_SAFE_C_opSSq_opSq);
 	  if (optimize_op_match(e1, OP_SAFE_C_C))
 	    return(OP_SAFE_C_opCq_opSq);
@@ -57141,7 +57788,7 @@ static int combine_ops(s7_scheme *sc, combine_op_t op1, s7_pointer e1, s7_pointe
 	case OP_SAFE_C_C:
 	  if (optimize_op_match(e1, OP_SAFE_C_C))
 	    return(OP_SAFE_C_opCq_opCq);
-	  if (optimize_op_match(e1, OP_SAFE_C_SS))
+	  if ((optimize_op_match(e1, OP_SAFE_C_SS)) || (optimize_op_match(e1, OP_SAFE_C_LL)))
 	    return(OP_SAFE_C_opSSq_opCq);
 	  if (optimize_op_match(e1, OP_SAFE_C_S))
 	    return(OP_SAFE_C_opSq_opCq);
@@ -57152,16 +57799,15 @@ static int combine_ops(s7_scheme *sc, combine_op_t op1, s7_pointer e1, s7_pointe
 	    return(OP_SAFE_C_opSCq_opSCq);
 	  break;
 
+	case OP_SAFE_C_LL:
 	case OP_SAFE_C_SS:
 	  if (optimize_op_match(e1, OP_SAFE_C_C))
 	    return(OP_SAFE_C_opCq_opSSq);
-	  if (optimize_op_match(e1, OP_SAFE_C_SS))
+	  if ((optimize_op_match(e1, OP_SAFE_C_SS)) || (optimize_op_match(e1, OP_SAFE_C_LL)))
 	    return(OP_SAFE_C_opSSq_opSSq);
 	  if (is_safe_c_s(e1))
 	    return(OP_SAFE_C_opSq_opSSq);
 	  break;
-	  /* qs sq opcq opsq a */
-
 	}
       return(OP_SAFE_C_ZZ);
 
@@ -57175,17 +57821,34 @@ static void annotate_args(s7_scheme *sc, s7_pointer args, s7_pointer e)
 {
   s7_pointer p;
   for (p = args; is_pair(p); p = cdr(p))
-    set_x_call(p, all_x_eval(sc, p, e, (s7_is_list(sc, e)) ? pair_symbol_is_safe : let_symbol_is_safe));
+    {
+#if DEBUGGING
+      s7_function allx;
+      allx = all_x_eval(sc, p, e, (s7_is_list(sc, e)) ? pair_symbol_is_safe : let_symbol_is_safe);
+      if (!allx)
+	{
+	  fprintf(stderr, "%s: is_all_x_safe: %d, all_x_eval null?\n", DISPLAY(p), is_all_x_safe(sc, car(p)));
+	  abort();
+	}
+      set_x_call(p, allx);
+#else
+      set_x_call(p, all_x_eval(sc, p, e, (s7_is_list(sc, e)) ? pair_symbol_is_safe : let_symbol_is_safe));
+#endif
+    }
 }
 
 static void annotate_arg(s7_scheme *sc, s7_pointer arg, s7_pointer e)
 {
   /* if sc->envir is sc->nil, we're at the top-level, but the global_slot check should suffice for that */
   set_x_call(arg, all_x_eval(sc, arg, e, (s7_is_list(sc, e)) ? pair_symbol_is_safe : let_symbol_is_safe));
+#if DEBUGGING
+  if (!c_call(arg))
+    abort();
+#endif
 }
 
 
-static void opt_generator(s7_scheme *sc, s7_pointer func, s7_pointer expr, int hop)
+static void opt_generator(s7_scheme *sc, s7_pointer func, s7_pointer expr, int32_t hop)
 {
   /* this is an optimization aimed at generators.  So we might as well go all out... */
   if (is_global(car(expr))) /* not a function argument for example */
@@ -57222,7 +57885,7 @@ static bool is_lambda(s7_scheme *sc, s7_pointer sym)
 }
 
 
-static opt_t optimize_func_one_arg(s7_scheme *sc, s7_pointer expr, s7_pointer func, int hop, int pairs, int symbols, int quotes, int bad_pairs, s7_pointer e)
+static opt_t optimize_func_one_arg(s7_scheme *sc, s7_pointer expr, s7_pointer func, int32_t hop, int32_t pairs, int32_t symbols, int32_t quotes, int32_t bad_pairs, s7_pointer e)
 {
   s7_pointer arg1;
   /* very often, expr is already optimized */
@@ -57292,17 +57955,17 @@ static opt_t optimize_func_one_arg(s7_scheme *sc, s7_pointer expr, s7_pointer fu
 	      if (symbols == 1)
 		{
 		  if (c_call(expr) == g_car)
-		    add_optimizer_fixup(sc, expr, (unsigned int)(hop + OP_SAFE_CAR_S));
+		    add_optimizer_fixup(sc, expr, (uint32_t)(hop + OP_SAFE_CAR_S));
 		  if (c_call(expr) == g_cdr)
-		    add_optimizer_fixup(sc, expr, (unsigned int)(hop + OP_SAFE_CDR_S));
+		    add_optimizer_fixup(sc, expr, (uint32_t)(hop + OP_SAFE_CDR_S));
 		  if (c_call(expr) == g_cadr)
-		    add_optimizer_fixup(sc, expr, (unsigned int)(hop + OP_SAFE_CADR_S));
+		    add_optimizer_fixup(sc, expr, (uint32_t)(hop + OP_SAFE_CADR_S));
 		  if (c_call(expr) == g_is_pair)
-		    add_optimizer_fixup(sc, expr, (unsigned int)(hop + OP_SAFE_IS_PAIR_S));
+		    add_optimizer_fixup(sc, expr, (uint32_t)(hop + OP_SAFE_IS_PAIR_S));
 		  if (c_call(expr) == g_is_null)
-		    add_optimizer_fixup(sc, expr, (unsigned int)(hop + OP_SAFE_IS_NULL_S));
+		    add_optimizer_fixup(sc, expr, (uint32_t)(hop + OP_SAFE_IS_NULL_S));
 		  if (c_call(expr) == g_is_symbol)
-		    add_optimizer_fixup(sc, expr, (unsigned int)(hop + OP_SAFE_IS_SYMBOL_S));
+		    add_optimizer_fixup(sc, expr, (uint32_t)(hop + OP_SAFE_IS_SYMBOL_S));
 		}
 	      return(OPT_T);
 	    }
@@ -57332,8 +57995,8 @@ static opt_t optimize_func_one_arg(s7_scheme *sc, s7_pointer expr, s7_pointer fu
 	    {
 	      if (func_is_safe)
 		{
-		  int op;
-		  op = combine_ops(sc, E_C_P, expr, arg1);
+		  int32_t op;
+		  op = combine_ops(sc, func, expr, E_C_P, arg1, NULL);
 		  set_safe_optimize_op(expr, hop + op);
 		  /* fallback is Z */
 		  if (!hop)
@@ -57429,12 +58092,16 @@ static opt_t optimize_func_one_arg(s7_scheme *sc, s7_pointer expr, s7_pointer fu
     {
       bool safe_case;
       s7_pointer body;
+      int32_t arit;
+      arit = closure_arity_to_int(sc, func);
+      if (arit != 1)
+	{
+	  if ((arit == -1) &&
+	      (is_symbol(closure_args(func))))
+	    return(optimize_func_dotted_args(sc, expr, func, hop, 1, pairs, symbols, quotes, bad_pairs, e));
+	  return(OPT_F);
+	}
 
-      if (closure_arity_to_int(sc, func) != 1)
-	return(OPT_F);
-      /* this is checking for dotted arglists: boolean=? for example.  To optimize these calls, we need op_closure cases that
-       *   bind the dotted name to the remaining args as a list.  This does not happen enough to be worth the trouble.
-       */
       safe_case = is_safe_closure(func);
       body = closure_body(func);
 
@@ -57539,8 +58206,7 @@ static opt_t optimize_func_one_arg(s7_scheme *sc, s7_pointer expr, s7_pointer fu
       set_optimize_op(expr, hop + ((safe_case) ? OP_SAFE_CLOSURE_P : OP_CLOSURE_P));
       set_opt_lambda(expr, func);
       set_unsafely_optimized(expr);
-      /* return(OPT_F); */
-      return((is_optimized(expr)) ? OPT_T : OPT_F); 
+      return(OPT_F);  /* don't check is_optimized here for OPT_T */
     }
 
   if (is_closure_star(func))
@@ -57594,10 +58260,26 @@ static opt_t optimize_func_one_arg(s7_scheme *sc, s7_pointer expr, s7_pointer fu
       return((is_optimized(expr)) ? OPT_T : OPT_F);
     }
 
+  if ((is_c_function_star(func)) &&
+      (all_x_count(sc, expr) == 1))
+    {
+      set_optimized(expr);
+      set_optimize_op(expr, hop + OP_SAFE_C_STAR_A);
+      annotate_args(sc, cdr(expr), e);
+      set_arglist_length(expr, small_int(1));
+      clear_overlay(expr);
+      set_c_function(expr, func);
+      return(OPT_T);
+    }
+
   if ((s7_is_vector(func)) &&
       (is_all_x_safe(sc, arg1)))
     {
-      set_unsafe_optimize_op(expr, hop + OP_VECTOR_A);
+      if ((is_immutable_symbol(car(expr))) &&
+	  (vector_rank(func) == 1) &&
+	  (is_normal_vector(func)))
+	set_unsafe_optimize_op(expr, hop + OP_CVECTOR_A);
+      else set_unsafe_optimize_op(expr, hop + OP_VECTOR_A);
       annotate_arg(sc, cdr(expr), e);
       set_arglist_length(expr, small_int(1));
       return(OPT_T);
@@ -57610,7 +58292,6 @@ static opt_t optimize_func_one_arg(s7_scheme *sc, s7_pointer expr, s7_pointer fu
 static bool let_memq(s7_scheme *sc, s7_pointer symbol, s7_pointer symbols)
 {
   s7_pointer x;
-  /* fprintf(stderr, "%s in %s\n", DISPLAY(symbol), DISPLAY(symbols)); */
   for (x = symbols; is_pair(x); x = cdr(x))
     {
       if (car(x) == symbol)
@@ -57619,22 +58300,27 @@ static bool let_memq(s7_scheme *sc, s7_pointer symbol, s7_pointer symbols)
   return(false);
 }
 
+
 static s7_pointer find_uncomplicated_symbol(s7_scheme *sc, s7_pointer symbol, s7_pointer e)
 {
   s7_pointer x;
-  long long int id;
+  int64_t id;
 
   if ((symbol_is_in_list(sc, symbol)) &&
       (let_memq(sc, symbol, e)))   /* it's probably a local variable reference */
     return(sc->nil);
 
-  if ((has_keyword(symbol)) &&
-      (symbol_is_in_list(sc, s7_make_keyword(sc, symbol_name(symbol)))))
-    return(sc->nil);
-
   if (is_global(symbol))
     return(global_slot(symbol));
 
+  /* see 59108 (OP_DEFINE_* in optimize_syntax) -- keyword version of name is used if a definition is
+   *   contingent on some run-time decision, so we're looking here for local defines that might not happen.
+   *   s7test.scm has a test case using acos.
+   */
+  if ((has_keyword(symbol)) &&
+      (symbol_is_in_list(sc, symbol_to_keyword(sc, symbol))))
+    return(sc->nil);
+
   id = symbol_id(symbol);
   for (x = sc->envir; id < let_id(x); x = outlet(x));
   for (; is_let(x); x = outlet(x))
@@ -57670,7 +58356,7 @@ static bool unsafe_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer arg1, s7_p
 
 static void check_lambda(s7_scheme *sc);
 
-static opt_t optimize_func_two_args(s7_scheme *sc, s7_pointer expr, s7_pointer func, int hop, int pairs, int symbols, int quotes, int bad_pairs, s7_pointer e)
+static opt_t optimize_func_two_args(s7_scheme *sc, s7_pointer expr, s7_pointer func, int32_t hop, int32_t pairs, int32_t symbols, int32_t quotes, int32_t bad_pairs, s7_pointer e)
 {
   s7_pointer arg1, arg2;
 
@@ -57743,7 +58429,12 @@ static opt_t optimize_func_two_args(s7_scheme *sc, s7_pointer expr, s7_pointer f
 	      else
 		{
 		  if (symbols == 2) /* these two symbols are almost never the same, (sqrt (+ (* x x) (* y y))) */
-		    set_optimize_op(expr, hop + OP_SAFE_C_SS); 
+		    {
+		      if ((is_local_symbol(cdr(expr))) &&
+			  (is_local_symbol(cddr(expr))))
+			set_optimize_op(expr, hop + OP_SAFE_C_LL); 
+		      else set_optimize_op(expr, hop + OP_SAFE_C_SS); 
+		    }
 		  else set_optimize_op(expr, hop + ((is_symbol(arg1)) ? OP_SAFE_C_SC : OP_SAFE_C_CS));
 		}
 	      set_optimized(expr);
@@ -57785,7 +58476,12 @@ static opt_t optimize_func_two_args(s7_scheme *sc, s7_pointer expr, s7_pointer f
 		  else
 		    {
 		      if (symbols == 2)
-			set_optimize_op(expr, hop + OP_SAFE_C_SS);
+			{
+			  if ((is_local_symbol(cdr(expr))) &&
+			      (is_local_symbol(cddr(expr))))
+			    set_optimize_op(expr, hop + OP_SAFE_C_LL);
+			  else set_optimize_op(expr, hop + OP_SAFE_C_SS);
+			}
 		      else set_optimize_op(expr, hop + OP_SAFE_C_C);
 		    }
 		  return(OPT_T);
@@ -57800,8 +58496,8 @@ static opt_t optimize_func_two_args(s7_scheme *sc, s7_pointer expr, s7_pointer f
 	{
 	  if ((func_is_safe) || (is_maybe_safe(func)))
 	    {
-	      int op;
-	      op = combine_ops(sc, E_C_PP, arg1, arg2);
+	      int32_t op;
+	      op = combine_ops(sc, func, expr, E_C_PP, arg1, arg2);
 	      set_safe_optimize_op(expr, hop + op);
 	      /* fallback here is ZZ */
 	      if (!hop)
@@ -57855,14 +58551,14 @@ static opt_t optimize_func_two_args(s7_scheme *sc, s7_pointer expr, s7_pointer f
 	  if ((func_is_safe) || (is_maybe_safe(func)))
 	    {
 	      combine_op_t orig_op;
-	      int op;
+	      int32_t op;
 
 	      if (is_pair(arg1))
 		{
 		  if (is_symbol(arg2))
 		    orig_op = E_C_PS;
 		  else orig_op = E_C_PC;
-		  op = combine_ops(sc, orig_op, expr, arg1);
+		  op = combine_ops(sc, func, expr, orig_op, arg1, arg2);
 		  if (!hop) clear_hop(arg1);
 		}
 	      else
@@ -57870,7 +58566,7 @@ static opt_t optimize_func_two_args(s7_scheme *sc, s7_pointer expr, s7_pointer f
 		  if (is_symbol(arg1))
 		    orig_op = E_C_SP;
 		  else orig_op = E_C_CP;
-		  op = combine_ops(sc, orig_op, expr, arg2);
+		  op = combine_ops(sc, func, expr, orig_op, arg1, arg2);
 		  if (!hop) clear_hop(arg2);
 		}
 
@@ -58158,10 +58854,19 @@ static opt_t optimize_func_two_args(s7_scheme *sc, s7_pointer expr, s7_pointer f
 
   if (is_closure(func))
     {
-      if (closure_arity_to_int(sc, func) != 2)
-	return(OPT_F);
+      int32_t arit;
+      arit = closure_arity_to_int(sc, func);
+      if (arit != 2)
+	{
+	  if ((arit == -1) &&
+	      (is_symbol(closure_args(func))))
+	    return(optimize_func_dotted_args(sc, expr, func, hop, 2, pairs, symbols, quotes, bad_pairs, e));
+	  return(OPT_F);
+	}
       if (is_immutable(func)) hop = 1;
 
+      /* safe_closures with 1-expr c_c h-optimized body with hop=1 happen only in tgen (and not enough there to warrant any effort) */
+
       if ((pairs == 0) &&
 	  (symbols >= 1))
 	{
@@ -58263,11 +58968,23 @@ static opt_t optimize_func_two_args(s7_scheme *sc, s7_pointer expr, s7_pointer f
 	  return(OPT_F);
 	}
     }
+
+  if ((is_c_function_star(func)) &&
+      (all_x_count(sc, expr) == 2))
+    {
+      set_optimized(expr);
+      set_optimize_op(expr, hop + OP_SAFE_C_STAR_AA);
+      annotate_args(sc, cdr(expr), e);
+      set_arglist_length(expr, small_int(2));
+      clear_overlay(expr);
+      set_c_function(expr, func);
+      return(OPT_T);
+    }
+
   return((is_optimized(expr)) ? OPT_T : OPT_F);
 }
 
-
-static opt_t optimize_func_three_args(s7_scheme *sc, s7_pointer expr, s7_pointer func, int hop, int pairs, int symbols, int quotes, int bad_pairs, s7_pointer e)
+static opt_t optimize_func_three_args(s7_scheme *sc, s7_pointer expr, s7_pointer func, int32_t hop, int32_t pairs, int32_t symbols, int32_t quotes, int32_t bad_pairs, s7_pointer e)
 {
   s7_pointer arg1, arg2, arg3;
 
@@ -58625,8 +59342,16 @@ static opt_t optimize_func_three_args(s7_scheme *sc, s7_pointer expr, s7_pointer
   /* not c func */
   if (is_closure(func))
     {
-      if (closure_arity_to_int(sc, func) != 3)
-	return(OPT_F);
+      int32_t arit;
+      arit = closure_arity_to_int(sc, func);
+      if (arit != 3)
+	{
+	  if ((arit == -1) &&
+	      (is_symbol(closure_args(func))))
+	    return(optimize_func_dotted_args(sc, expr, func, hop, 3, pairs, symbols, quotes, bad_pairs, e));
+	  return(OPT_F);
+	}
+
       if (is_immutable(func)) hop = 1;
 
       if ((symbols == 3) &&
@@ -58673,6 +59398,18 @@ static opt_t optimize_func_three_args(s7_scheme *sc, s7_pointer expr, s7_pointer
 	}
     }
 
+  if ((is_c_function_star(func)) &&
+      (all_x_count(sc, expr) == 3))
+    {
+      set_optimized(expr);
+      set_optimize_op(expr, hop + OP_SAFE_C_STAR_ALL_X);
+      annotate_args(sc, cdr(expr), e);
+      set_arglist_length(expr, small_int(3));
+      clear_overlay(expr);
+      set_c_function(expr, func);
+      return(OPT_T);
+    }
+
   if (bad_pairs > quotes) return(OPT_F);
   return((is_optimized(expr)) ? OPT_T : OPT_F);
 }
@@ -58692,7 +59429,7 @@ static bool symbols_are_safe(s7_scheme *sc, s7_pointer args, s7_pointer e)
   return(true);
 }
 
-static opt_t optimize_func_many_args(s7_scheme *sc, s7_pointer expr, s7_pointer func, int hop, int args, int pairs, int symbols, int quotes, int bad_pairs, s7_pointer e)
+static opt_t optimize_func_many_args(s7_scheme *sc, s7_pointer expr, s7_pointer func, int32_t hop, int32_t args, int32_t pairs, int32_t symbols, int32_t quotes, int32_t bad_pairs, s7_pointer e)
 {
   bool func_is_closure;
 
@@ -58702,8 +59439,8 @@ static opt_t optimize_func_many_args(s7_scheme *sc, s7_pointer expr, s7_pointer
     hop = 1;
 
   if ((is_c_function(func)) &&
-      (c_function_required_args(func) <= (unsigned int)args) &&
-      (c_function_all_args(func) >= (unsigned int)args))
+      (c_function_required_args(func) <= (uint32_t)args) &&
+      (c_function_all_args(func) >= (uint32_t)args))
     {
       if (is_safe_procedure(func))
 	{
@@ -58765,12 +59502,20 @@ static opt_t optimize_func_many_args(s7_scheme *sc, s7_pointer expr, s7_pointer
   func_is_closure = is_closure(func);
   if (func_is_closure)
     {
-      if (closure_arity_to_int(sc, func) != args)
-	return(OPT_F);
+      int32_t arit;
+      arit = closure_arity_to_int(sc, func);
+      if (arit != args)
+	{
+	  if ((arit == -1) &&
+	      (is_symbol(closure_args(func))))
+	    return(optimize_func_dotted_args(sc, expr, func, hop, args, pairs, symbols, quotes, bad_pairs, e));
+	  return(OPT_F);
+	}
+
       if (is_immutable(func)) hop = 1;
 
       if ((pairs == 0) &&
-	  ((symbols == args) || (symbols == 0)) &&
+	  /* ((symbols == args) || (symbols == 0)) && */ /* i.e. all args are either symbols or constants? */
 	  (args < GC_TRIGGER_SIZE))
 	{
 	  bool safe_case;
@@ -58784,7 +59529,6 @@ static opt_t optimize_func_many_args(s7_scheme *sc, s7_pointer expr, s7_pointer
 	      (symbols == args) &&
 	      (symbols_are_safe(sc, cdr(expr), e)))
 	    set_optimize_op(expr, hop + ((is_null(cdr(closure_body(func)))) ? OP_CLOSURE_ALL_S_P : OP_CLOSURE_ALL_S));
-
 	  return(OPT_F);
 	}
     }
@@ -58794,6 +59538,18 @@ static opt_t optimize_func_many_args(s7_scheme *sc, s7_pointer expr, s7_pointer
        (closure_star_arity_to_int(sc, func) < args)))
     return(OPT_F);
 
+  if ((is_c_function_star(func)) &&
+      (all_x_count(sc, expr) == args))
+    {
+      set_optimized(expr);
+      set_optimize_op(expr, hop + OP_SAFE_C_STAR_ALL_X);
+      annotate_args(sc, cdr(expr), e);
+      set_arglist_length(expr, make_permanent_integer(args));
+      clear_overlay(expr);
+      set_c_function(expr, func);
+      return(OPT_T);
+    }
+
   if (args < GC_TRIGGER_SIZE)
     {
       if (((func_is_closure) ||
@@ -58814,16 +59570,17 @@ static opt_t optimize_func_many_args(s7_scheme *sc, s7_pointer expr, s7_pointer
   return((is_optimized(expr)) ? OPT_T : OPT_F);
 }
 
-static opt_t optimize_expression(s7_scheme *sc, s7_pointer expr, int hop, s7_pointer e);
+static opt_t optimize_expression(s7_scheme *sc, s7_pointer expr, int32_t hop, s7_pointer e);
 
-static opt_t optimize_syntax(s7_scheme *sc, s7_pointer expr, s7_pointer func, int hop, s7_pointer e)
+static opt_t optimize_syntax(s7_scheme *sc, s7_pointer expr, s7_pointer func, int32_t hop, s7_pointer e)
 {
   opcode_t op;
   s7_pointer p, body;
   /* TODO: those not allowed need to be passed back and treated as unsafe symbols (find_uncomplicated_symbol etc) */
+#if 0
   if (!is_pair(cdr(expr))) /* cddr(expr) might be null if, for example, (begin (let ...)) */
     return(OPT_F);
-
+#endif
   op = (opcode_t)syntax_opcode(func);
   sc->w = e;
   body = cdr(expr);
@@ -58856,10 +59613,11 @@ static opt_t optimize_syntax(s7_scheme *sc, s7_pointer expr, s7_pointer func, in
 	  {
 	    s7_pointer var;
 	    var = car(p);
-	    if ((is_pair(var)) &&
-		(is_symbol(car(var))) &&
-		(is_pair(cdr(var))) &&
-		(is_pair(cadr(var))) &&
+	    if ((!is_pair(var)) ||
+		(!is_symbol(car(var))) ||
+		(!is_pair(cdr(var))))
+	      return(OPT_OOPS);
+	    if ((is_pair(cadr(var))) &&
 		(!is_checked(cadr(var))) &&
 		(optimize_expression(sc, cadr(var), hop, e) == OPT_OOPS))
 	      return(OPT_OOPS);
@@ -58895,19 +59653,18 @@ static opt_t optimize_syntax(s7_scheme *sc, s7_pointer expr, s7_pointer func, in
 	  {
 	    s7_pointer var;
 	    var = car(p);
-	    if ((is_pair(var)) &&
-		(is_symbol(car(var))) &&
-		(is_pair(cdr(var))))
-	      {
-		if ((is_pair(cadr(var))) &&
-		    (!is_checked(cadr(var))))
-		  {
-		    if (optimize_expression(sc, cadr(var), hop, e) == OPT_OOPS)
-		      return(OPT_OOPS);
-		  }
-		e = cons(sc, add_symbol_to_list(sc, car(var)), e);
-		sc->w = e;
-	      }
+	    if ((!is_pair(var)) ||
+		(!is_symbol(car(var))) ||
+		(!is_pair(cdr(var))))
+	      return(OPT_OOPS);
+
+	    if ((is_pair(cadr(var))) &&
+		(!is_checked(cadr(var))) &&
+		(optimize_expression(sc, cadr(var), hop, e) == OPT_OOPS))
+	      return(OPT_OOPS);
+
+	    e = cons(sc, add_symbol_to_list(sc, car(var)), e);
+	    sc->w = e;
 	  }
 	if (is_symbol(cadr(expr)))
 	  {
@@ -58916,6 +59673,27 @@ static opt_t optimize_syntax(s7_scheme *sc, s7_pointer expr, s7_pointer func, in
 	  }
       }
       break;
+      
+    case OP_LET_TEMPORARILY:
+      {
+	s7_pointer vars;
+	vars = cadr(expr);
+	body = cddr(expr);
+	for (p = vars; is_pair(p); p = cdr(p))
+	  {
+	    s7_pointer var;
+	    var = car(vars);
+	    if ((is_pair(var)) &&
+		(is_pair(cdr(var))) &&
+		(is_pair(cadr(var))) &&
+		(!is_checked(cadr(var))))
+	      {
+		if (optimize_expression(sc, cadr(var), hop, e) == OPT_OOPS)
+		  return(OPT_OOPS);
+	      }
+	  }
+      }
+      break;
 
     case OP_DO:
       {
@@ -58930,9 +59708,11 @@ static opt_t optimize_syntax(s7_scheme *sc, s7_pointer expr, s7_pointer func, in
 	  {
 	    s7_pointer var;
 	    var = car(p);
-	    if ((is_pair(var)) &&
-		(is_pair(cdr(var))) &&
-		(is_pair(cadr(var))) &&
+	    if ((!is_pair(var)) ||
+		(!is_symbol(car(var))) ||
+		(!is_pair(cdr(var))))
+	      return(OPT_OOPS);
+	    if ((is_pair(cadr(var))) &&
 		(!is_checked(cadr(var))) &&
 		(optimize_expression(sc, cadr(var), hop, e) == OPT_OOPS)) /* the init field -- locals are not defined yet */
 	      return(OPT_OOPS);
@@ -58941,13 +59721,11 @@ static opt_t optimize_syntax(s7_scheme *sc, s7_pointer expr, s7_pointer func, in
 	for (p = vars; is_pair(p); p = cdr(p))
 	  {
 	    s7_pointer var;
-	    var = car(p);
+	    var = cddar(p);
 	    if ((is_pair(var)) &&
-		(is_pair(cdr(var))) &&
-		(is_pair(cddr(var))) &&
-		(is_pair(caddr(var))) &&
-		(!is_checked(caddr(var))) &&
-		(optimize_expression(sc, caddr(var), hop, e) == OPT_OOPS)) /* the step field -- locals are defined */
+		(is_pair(car(var))) &&
+		(!is_checked(car(var))) &&
+		(optimize_expression(sc, car(var), hop, e) == OPT_OOPS)) /* the step field -- locals are defined */
 	      return(OPT_OOPS);
 	  }
       }
@@ -58985,7 +59763,7 @@ static opt_t optimize_syntax(s7_scheme *sc, s7_pointer expr, s7_pointer func, in
 		  {
 		    if (car(e) != sc->key_rest_symbol)
 		      set_cdr(e, cons(sc, car(name_args), cdr(e))); /* export it */
-		    else add_symbol_to_list(sc, s7_make_keyword(sc, symbol_name(car(name_args))));
+		    else add_symbol_to_list(sc, symbol_to_keyword(sc, car(name_args)));
 		  }
 		else e = cons(sc, car(name_args), e);
 	      }
@@ -59011,7 +59789,7 @@ static opt_t optimize_syntax(s7_scheme *sc, s7_pointer expr, s7_pointer func, in
 		  {
 		    if (car(e) != sc->key_rest_symbol)
 		      set_cdr(e, cons(sc, name_args, cdr(e)));     /* export it */
-		    else add_symbol_to_list(sc, s7_make_keyword(sc, symbol_name(name_args)));
+		    else add_symbol_to_list(sc, symbol_to_keyword(sc, name_args));
 		  }
 		else e = cons(sc, name_args, e);
 		return(OPT_F);
@@ -59110,7 +59888,7 @@ static opt_t optimize_syntax(s7_scheme *sc, s7_pointer expr, s7_pointer func, in
 	  if ((happy) &&
 	      (is_null(p)))    /* catch the syntax error later: (or #f . 2) etc */
 	    {
-	      int args, symbols = 0, pairs = 0, rest = 0;
+	      int32_t args, symbols = 0, pairs = 0, rest = 0;
 	      s7_pointer sym = NULL;
 	      bool c_s_is_ok = true;
 
@@ -59167,7 +59945,7 @@ static opt_t optimize_syntax(s7_scheme *sc, s7_pointer expr, s7_pointer func, in
 		  if (s7_list_length(sc, cdr(expr)) == 2)
 		    {
 		      set_c_function(expr, or_2);
-		      add_optimizer_fixup(sc, expr, (unsigned int)(hop + OP_SAFE_C_OR2));
+		      add_optimizer_fixup(sc, expr, (uint32_t)(hop + OP_SAFE_C_OR2));
 		    }
 		  else 
 		    {
@@ -59188,7 +59966,7 @@ static opt_t optimize_syntax(s7_scheme *sc, s7_pointer expr, s7_pointer func, in
 			  else 
 			    {
 			      set_c_function(expr, and_2);
-			      add_optimizer_fixup(sc, expr, (unsigned int)(hop + OP_SAFE_C_AND2));
+			      add_optimizer_fixup(sc, expr, (uint32_t)(hop + OP_SAFE_C_AND2));
 			    }
 			}
 		      else
@@ -59241,7 +60019,7 @@ static opt_t optimize_syntax(s7_scheme *sc, s7_pointer expr, s7_pointer func, in
 }
 
 
-static opt_t optimize_expression(s7_scheme *sc, s7_pointer expr, int hop, s7_pointer e)
+static opt_t optimize_expression(s7_scheme *sc, s7_pointer expr, int32_t hop, s7_pointer e)
 {
   s7_pointer car_expr;
 
@@ -59254,27 +60032,29 @@ static opt_t optimize_expression(s7_scheme *sc, s7_pointer expr, int hop, s7_poi
   if (is_symbol(car_expr))
     {
       s7_pointer func;
-      if (is_syntactic(car_expr)) 
-	return(optimize_syntax(sc, expr, _TSyn(slot_value(global_slot(car_expr))), hop, e));
-
-      if (car_expr == sc->quote_symbol)
-	return(OPT_F);
-      if (car_expr == sc->cutlet_symbol)
-	return(OPT_OOPS);
+      if (is_syntactic(car_expr))
+	{
+	  if (!is_pair(cdr(expr)))
+	    return(OPT_OOPS);
+	  return(optimize_syntax(sc, expr, _TSyn(slot_value(global_slot(car_expr))), hop, e));
+	}
 
       func = find_uncomplicated_symbol(sc, car_expr, e);
       if (is_slot(func))
 	{
 	  func = slot_value(func);
 	  if (is_syntax(func))   /* 12-8-16 was is_syntactic, but that is only appropriate above -- here we have the value */
-	    return(optimize_syntax(sc, expr, func, hop, e));  /* e can be extended via set-cdr! here */
-
+	    {
+	      if (!is_pair(cdr(expr)))
+		return(OPT_OOPS);
+	      return(optimize_syntax(sc, expr, func, hop, e));  /* e can be extended via set-cdr! here */
+	    }
 	  /* we miss implicit indexing here because at this time, the data are not set */
 	  if ((is_procedure(func)) ||
 	      /* (is_c_function(func)) || */
 	      (is_safe_procedure(func))) /* built-in applicable objects like vectors */
 	    {
-	      int pairs = 0, symbols = 0, args = 0, bad_pairs = 0, quotes = 0, orig_hop;
+	      int32_t pairs = 0, symbols = 0, args = 0, bad_pairs = 0, quotes = 0, orig_hop;
 	      s7_pointer p;
 
 	      orig_hop = hop;
@@ -59396,7 +60176,7 @@ static opt_t optimize_expression(s7_scheme *sc, s7_pointer expr, int hop, s7_poi
       {
 	/* else maybe it's something like a let variable binding: (sqrtfreq (sqrt frequency)) */
 	s7_pointer p;
-	int len = 0, pairs = 0, symbols = 0, quotes = 0;
+	int32_t len = 0, pairs = 0, symbols = 0, quotes = 0;
 
 	for (p = cdr(expr); is_pair(p); p = cdr(p), len++)
 	  {
@@ -59471,6 +60251,13 @@ static opt_t optimize_expression(s7_scheme *sc, s7_pointer expr, int hop, s7_poi
 		  {
 		    if (len == 1)
 		      {
+			if (car(expr) == sc->quote_symbol)
+			  {
+			    set_unsafe_optimize_op(expr, HOP_SAFE_QUOTE); /* see also below */
+			    set_c_function(expr, slot_value(global_slot(sc->cadr_symbol)));
+			    return(OPT_F);
+			  }
+
 			if (is_all_x_safe(sc, arg1))
 			  {
 			    set_arglist_length(expr, small_int(1));
@@ -59506,6 +60293,14 @@ static opt_t optimize_expression(s7_scheme *sc, s7_pointer expr, int hop, s7_poi
 		if ((all_x_count(sc, expr) == len) &&
 		    (len < GC_TRIGGER_SIZE))
 		  {
+		    if ((len == 1) &&
+			(car(expr) == sc->quote_symbol))
+		      {
+			set_safe_optimize_op(expr, HOP_SAFE_QUOTE);
+			set_c_function(expr, slot_value(global_slot(sc->cadr_symbol)));
+			return(OPT_T);
+		      }
+
 		    set_unsafe_optimize_op(expr, (len == 1) ? OP_UNKNOWN_A : OP_UNKNOWN_ALL_X);
 		    set_arglist_length(expr, make_permanent_integer(len));
 		    if (len == 1)
@@ -59573,7 +60368,7 @@ static opt_t optimize_expression(s7_scheme *sc, s7_pointer expr, int hop, s7_poi
 }
 
 
-static opt_t optimize(s7_scheme *sc, s7_pointer code, int hop, s7_pointer e)
+static opt_t optimize(s7_scheme *sc, s7_pointer code, int32_t hop, s7_pointer e)
 {
   s7_pointer x;
   /* fprintf(stderr, "optimize: %s %s\n", DISPLAY_80(code), DISPLAY(e)); */
@@ -59611,10 +60406,10 @@ static opt_t optimize(s7_scheme *sc, s7_pointer code, int hop, s7_pointer e)
 #define goto_EVAL_ARGS 9
 #define goto_DO_UNCHECKED 10
 
-static s7_pointer check_lambda_args(s7_scheme *sc, s7_pointer args, int *arity)
+static s7_pointer check_lambda_args(s7_scheme *sc, s7_pointer args, int32_t *arity)
 {
   s7_pointer x;
-  int i;
+  int32_t i;
   /* fprintf(stderr, "check lambda args %s\n", DISPLAY(args)); */
 
   if ((!is_pair(args)) && (!is_null(args)))
@@ -59658,10 +60453,10 @@ static s7_pointer check_lambda_args(s7_scheme *sc, s7_pointer args, int *arity)
 }
 
 
-static s7_pointer check_lambda_star_args(s7_scheme *sc, s7_pointer args, int *arity)
+static s7_pointer check_lambda_star_args(s7_scheme *sc, s7_pointer args, int32_t *arity)
 {
   s7_pointer top, v, w;
-  int i;
+  int32_t i;
 
   if (!s7_is_list(sc, args))
     {
@@ -59740,7 +60535,7 @@ static s7_pointer check_lambda_star_args(s7_scheme *sc, s7_pointer args, int *ar
 	      else
 		{
 		  if (is_immutable_symbol(cadr(w)))
-		    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, make_string_wrapper(sc, "can't bind an immutable object: ~S"), w)));
+		    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "can't bind an immutable object: ~S"), w)));
 		}
 	      set_local(cadr(w));
 	    }
@@ -59769,9 +60564,7 @@ static body_t min_body(body_t b1, body_t b2) {return((b1 < b2) ? b1 : b2);}
 typedef struct slist {s7_pointer sym; struct slist *next;} slist;
 static slist *syms_free_list = NULL;
 
-static int sym_allocs = 0;
-
-static slist *add_sym(s7_scheme *sc, s7_pointer symbol, slist *lst)
+static inline slist *add_sym(s7_scheme *sc, s7_pointer symbol, slist *lst)
 {
   slist *top;
   if (syms_free_list)
@@ -59779,11 +60572,7 @@ static slist *add_sym(s7_scheme *sc, s7_pointer symbol, slist *lst)
       top = syms_free_list;
       syms_free_list = syms_free_list->next;
     }
-  else 
-    {
-      sym_allocs++;
-      top = (slist *)malloc(sizeof(slist));
-    }
+  else top = (slist *)malloc(sizeof(slist));
   top->sym = add_symbol_to_list(sc, symbol);
   top->next = lst;
   return(top);
@@ -59802,7 +60591,7 @@ static bool memq_sym(s7_scheme *sc, s7_pointer symbol, slist *top)
 }
 
 /* #define cancel_sym(Sc, Symbol, Top) cancel_sym_1(Sc, Symbol, Top, x, __LINE__) */
-/* static void cancel_sym_1(s7_scheme *sc, s7_pointer symbol, slist *top, s7_pointer x, int line) */
+/* static void cancel_sym_1(s7_scheme *sc, s7_pointer symbol, slist *top, s7_pointer x, int32_t line) */
 static void cancel_sym(s7_scheme *sc, s7_pointer symbol, slist *top)
 {
   slist *p;
@@ -59855,8 +60644,7 @@ static slist *split_slist(slist *top, slist *main_args)
 }
 
 
-static body_t body_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer body, slist *main_args, bool at_end);
-static void set_all_locals(s7_scheme *sc, s7_pointer tree, slist *args)
+static inline void set_all_locals(s7_scheme *sc, s7_pointer tree, slist *args)
 {
   s7_pointer p;
 #if WITH_SYMS_PRINT
@@ -59871,14 +60659,11 @@ static void set_all_locals(s7_scheme *sc, s7_pointer tree, slist *args)
       if (is_symbol(cp))
 	{
 	  if ((memq_sym(sc, cp, args)) || 
-	      ((is_immutable(cp)) &&         /* immutable (by itself) would work except for tricky cases like with-let (no local_slot!) */
-	       (is_slot(local_slot(cp))) &&
+	      ((is_immutable(cp)) &&                         /* immutable (by itself) would work except for tricky cases like with-let (no local_slot! -- changed) */
+	       (unchecked_type(local_slot(cp)) == T_SLOT) && /* local_slot might be a free cell (so debugging free cell check is annoying) */
 	       ((is_number(slot_value(local_slot(cp)))) ||
 		(is_sequence(slot_value(local_slot(cp)))))))
-	    {
-	      /* fprintf(stderr, "    set local %s\n", DISPLAY(p)); */
-	      set_local_symbol(p);
-	    }
+	    set_local_symbol(p);
 	}
       else 
 	{
@@ -59888,19 +60673,19 @@ static void set_all_locals(s7_scheme *sc, s7_pointer tree, slist *args)
     }
 }
 
+static body_t body_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer body, slist *main_args, bool at_end);
+#define SAFE_FORM_PRINT 0
+
 static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *main_args, bool at_end)
 {
   s7_pointer expr;
   body_t result = VERY_SAFE_BODY;
+
   if (!is_pair(x)) return(result);
-  sc->cycle_counter++;
-  if ((!is_proper_list(sc, x)) ||
-      (sc->cycle_counter > 5000))
-    return(UNSAFE_BODY);
-  
   expr = car(x);
   if (is_syntactic_symbol(expr))
     {
+      if (!is_pair(cdr(x))) return(UNSAFE_BODY);
       switch (symbol_syntax_op(expr))
 	{
 	case OP_OR:
@@ -59914,11 +60699,9 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 	  
 	case OP_QUOTE:
 	  return(VERY_SAFE_BODY);
-	  break;
 	  
 	case OP_IF:
-	  if (!is_pair(cdr(x)))     /* (if) ! */   
-	    return(UNSAFE_BODY); 
+	  if (!is_pair(cddr(x))) return(UNSAFE_BODY);
 	  if (is_pair(cadr(x)))
 	    {
 	      result = form_is_safe(sc, func, cadr(x), main_args, false);
@@ -59939,8 +60722,7 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 	  
 	case OP_WHEN:
 	case OP_UNLESS:
-	  if (!is_pair(cdr(x)))      /* (when) */
-	    return(UNSAFE_BODY); 
+	  if (!is_pair(cddr(x))) return(UNSAFE_BODY);
 	  if (is_pair(cadr(x)))
 	    {
 	      result = form_is_safe(sc, func, cadr(x), main_args, false);
@@ -59952,8 +60734,9 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 
 	case OP_COND:
 	  {
-	    s7_pointer p;
-	    for (p = cdr(x); is_pair(p); p = cdr(p))
+	    bool follow = false;
+	    s7_pointer sp, p;
+	    for (p = cdr(x), sp = x; is_pair(p); p = cdr(p))
 	      {
 		s7_pointer ex;
 		ex = car(p);
@@ -59971,6 +60754,8 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 		    if (result == UNSAFE_BODY) 
 		      return(UNSAFE_BODY);
 		  }
+		if (follow) {sp = cdr(sp); if (p == sp) return(UNSAFE_BODY);}
+		follow = (!follow);
 	      }
 	    if (is_not_null(p))
 	      return(UNSAFE_BODY);
@@ -59980,14 +60765,18 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 	  
 	case OP_CASE:
 	  {
-	    s7_pointer p;
+	    bool follow = false;
+	    s7_pointer sp, p;
+	    if (!is_pair(cddr(x))) return(UNSAFE_BODY);
 	    if (is_pair(cadr(x)))
 	      {
 		result = form_is_safe(sc, func, cadr(x), main_args, false);
 		if (result == UNSAFE_BODY) 
 		  return(UNSAFE_BODY);
 	      }
-	    for (p = cddr(x); is_pair(p); p = cdr(p))
+	    sp = cdr(x);
+	    p = cdr(sp);
+	    for (; is_pair(p); p = cdr(p))
 	      {
 		if (!is_pair(car(p))) return(UNSAFE_BODY);
 		if (is_pair(cdar(p)))
@@ -59996,6 +60785,8 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 		    if (result == UNSAFE_BODY) 
 		      return(UNSAFE_BODY);
 		  }
+		if (follow) {sp = cdr(sp); if (p == sp) return(UNSAFE_BODY);}
+		follow = (!follow);
 	      }
 	    return(result);
 	  }
@@ -60005,8 +60796,7 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 	  /* if we set func, we have to make sure we abandon the tail call scan:
 	   * (let () (define (hi a) (let ((v (vector 1 2 3))) (set! hi v) (hi a))) (hi 1))
 	   */
-	  if (!is_pair(cdr(x)))
-	    return(UNSAFE_BODY); /* (set!) ! */
+	  if (!is_pair(cddr(x))) return(UNSAFE_BODY);
 	  if (cadr(x) == func)
 	    return(UNSAFE_BODY);
 	  
@@ -60024,6 +60814,7 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 	  /* not OP_DEFINE even in simple cases (safe_closure assumes constant funclet) */
 
 	case OP_WITH_LET:
+	  if (!is_pair(cddr(x))) return(UNSAFE_BODY);
 	  if (is_pair(cadr(x)))
 	    return(UNSAFE_BODY);
 	  return(min_body(body_is_safe(sc, sc->F, cddr(x), main_args, at_end), SAFE_BODY));
@@ -60033,8 +60824,7 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 	case OP_LET_TEMPORARILY:
 	  {
 	    s7_pointer p;
-	    if (!is_pair(cadr(x)))
-	      return(UNSAFE_BODY);
+	    if (!is_pair(cadr(x))) return(UNSAFE_BODY);
 	    for (p = cadr(x); is_pair(p); p = cdr(p))
 	      {
 		if ((!is_pair(car(p))) ||
@@ -60053,14 +60843,16 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 	case OP_LETREC:
 	case OP_LETREC_STAR:
 	  {
-	    s7_pointer vars, body, let_name;
+	    bool follow = false;
+	    s7_pointer vars, body, let_name, sp;
 	    slist *top, *locals;
 	    top = main_args;
 	    vars = cadr(x);
 	    body = cddr(x);
 	    if (is_symbol(vars))
 	      {
-		if (vars == func)        /* named let shadows caller */
+		if (!is_pair(body)) return(UNSAFE_BODY); /* (let name . res) */
+		if (vars == func)                        /* named let shadows caller */
 		  {
 		    free_syms(split_slist(top, main_args));
 		    return(UNSAFE_BODY);
@@ -60070,8 +60862,8 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 		body = cdddr(x);
 	      }
 	    else let_name = func;
-	    
-	    for (; is_pair(vars); vars = cdr(vars))
+
+	    for (sp = NULL; is_pair(vars); vars = cdr(vars))
 	      {
 		s7_pointer let_var, var_name;
 		
@@ -60103,6 +60895,17 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 			return(UNSAFE_BODY);
 		      }
 		  }
+		follow = (!follow);
+		if (follow)
+		  {
+		    if (!sp)
+		      sp = vars;
+		    else
+		      {
+			sp = cdr(sp); 
+			if (vars == sp) return(UNSAFE_BODY);
+		      }
+		  }
 	      }
 	    result = min_body(result, body_is_safe(sc, let_name, body, top, at_end));
 	    locals = split_slist(top, main_args);
@@ -60121,12 +60924,14 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 	  {
 	    slist *top, *locals;
 	    top = main_args;
-	    if (!is_pair(cddr(x)))
-	      return(UNSAFE_BODY);
+	    if (!is_pair(cddr(x))) return(UNSAFE_BODY);
 	    if (is_pair(cadr(x)))
 	      {
-		s7_pointer vars;
-		for (vars = cadr(x); is_pair(vars); vars = cdr(vars))
+		bool follow = false;
+		s7_pointer vars, sp;
+		vars = cadr(x);
+		sp = vars;
+		for (; is_pair(vars); vars = cdr(vars))
 		  {
 		    s7_pointer do_var;
 		    do_var = car(vars);
@@ -60150,6 +60955,11 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 			free_syms(split_slist(top, main_args));
 			return(UNSAFE_BODY);
 		      }
+		    if (sp != vars)
+		      {
+			if (follow) {sp = cdr(sp); if (vars == sp) return(UNSAFE_BODY);}
+			follow = (!follow);
+		      }
 		  }
 	      }
 	    if (is_pair(caddr(x)))
@@ -60197,8 +61007,11 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
     {
       if (expr == func) /* try to catch tail call, expr is car(x) */
 	{
-	  s7_pointer p;
-	  for (p = cdr(x); is_pair(p); p = cdr(p))
+	  bool follow = false;
+	  s7_pointer sp, p;
+	  p = cdr(x);
+	  sp = x;
+	  for (; is_pair(p); p = cdr(p))
 	    {
 	      if (is_pair(car(p)))
 		{
@@ -60213,6 +61026,8 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 		  if (car(p) == func)
 		    return(UNSAFE_BODY);
 		}
+	      if (follow) {sp = cdr(sp); if (p == sp) return(UNSAFE_BODY);}
+	      follow = (!follow);
 	    }
 	  if ((at_end) && (is_null(p))) /* tail call, so safe */
 	    return(result); 
@@ -60222,6 +61037,7 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
       if (is_symbol(expr)) /* expr=car(x) */
 	{
 	  s7_pointer f, f_slot;
+	  bool c_safe;
 
 	  if (memq_sym(sc, expr, main_args)) /* it's defined locally (so don't use find_symbol) */
 	    return(UNSAFE_BODY);
@@ -60230,29 +61046,86 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 	  if (!is_slot(f_slot))
 	    return(UNSAFE_BODY);
 	  f = slot_value(f_slot);
-	  result = ((is_sequence(f)) || ((is_c_function(f)) && (is_safe_procedure(f)) && (is_global(expr)))) ? VERY_SAFE_BODY : SAFE_BODY;
-
-	  if (((is_c_function(f)) && (is_scope_safe_procedure(f))) ||
+	  c_safe = (is_c_function(f)) && (is_safe_or_scope_safe_procedure(f));
+	  result = ((is_sequence(f)) || 
+		    ((c_safe) && (is_global(expr)))) ? VERY_SAFE_BODY : SAFE_BODY;
+#if SAFE_FORM_PRINT
+	  fprintf(stderr, "%d: %s: %d %d %s (scope: %d)\n", __LINE__, DISPLAY(f), result, is_global(expr), describe_type_bits(sc, f), c_safe);
+#endif
+	  if ((c_safe) ||
 	      ((is_any_closure(f)) && (is_safe_closure(f))) ||
 	      (is_sequence(f)))
 	    {
-	      s7_pointer p;
-	      for (p = cdr(x); is_pair(p); p = cdr(p))
+	      bool follow = false;
+	      s7_pointer sp, p;
+	      p = cdr(x);
+	      sp = x;
+	      for (; is_pair(p); p = cdr(p))
 		{
 		  if ((is_pair(car(p))) &&
 		      (caar(p) != sc->quote_symbol))
 		    {
 		      if (caar(p) == func)
 			return(UNSAFE_BODY);
-		      result = min_body(result, form_is_safe(sc, func, car(p), main_args, false));
+
+		      if ((is_c_function(f)) && (is_scope_safe(f)) &&
+			  (caar(p) == sc->lambda_symbol))
+			{
+			  s7_pointer largs, lbody, q;
+			  slist *top, *locals;
+			  body_t lresult;
+
+			  if (!is_pair(cdar(p))) /* (lambda . /) */
+			    return(UNSAFE_BODY);
+			  largs = cadar(p);
+			  top = main_args;
+			  lbody = cddar(p);
+			  for (q = largs; is_pair(q); q = cdr(q))
+			    {
+			      if (!is_symbol(car(q)))
+				{
+				  free_syms(split_slist(top, main_args));
+				  return(UNSAFE_BODY); 
+				}
+			      cancel_sym(sc, car(q), top);
+			      top = add_sym(sc, car(q), top);
+			    }
+			  lresult = body_is_safe(sc, func, lbody, top, false);
+			  locals = split_slist(top, main_args);
+			  if (locals)
+			    {
+#if SAFE_FORM_PRINT
+			      fprintf(stderr, "%d: %s result: %d\n", __LINE__, DISPLAY(lbody), result);
+#endif
+			      if (lresult == VERY_SAFE_BODY)
+				set_all_locals(sc, lbody, locals);
+			      free_syms(locals);
+			    }
+			  result = min_body(result, lresult);
+			}
+		      else 
+			{
+			  result = min_body(result, form_is_safe(sc, func, car(p), main_args, false));
+#if SAFE_FORM_PRINT
+			  fprintf(stderr, "%d: %s %d\n", __LINE__, DISPLAY_80(car(p)), result);
+#endif
+			}
+#if SAFE_FORM_PRINT
+		      fprintf(stderr, "%d: %s: %d\n", __LINE__, DISPLAY_80(car(p)), result);
+#endif
 		      if (result == UNSAFE_BODY)
 			return(UNSAFE_BODY);
 		    }
 		  else
 		    {
+#if SAFE_FORM_PRINT
+		      fprintf(stderr, "not a pair: %s\n", DISPLAY(car(p)));
+#endif
 		      if (car(p) == func)
 			return(UNSAFE_BODY);
 		    }
+		  if (follow) {sp = cdr(sp); if (p == sp) return(UNSAFE_BODY);}
+		  follow = (!follow);
 		}
 	      if (!is_null(p))
 		return(UNSAFE_BODY);
@@ -60266,26 +61139,33 @@ static body_t form_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer x, slist *
 
 static body_t body_is_safe(s7_scheme *sc, s7_pointer func, s7_pointer body, slist *main_args, bool at_end)
 {
-  s7_pointer p;
+  bool follow = false;
+  s7_pointer p, sp;
   body_t result = VERY_SAFE_BODY;
-  for (p = body; is_pair(p); p = cdr(p))
+  for (p = body, sp = body; is_pair(p); p = cdr(p))
     {
       if (is_pair(car(p)))
 	{
 	  result = min_body(result, form_is_safe(sc, func, car(p), main_args, (at_end) && (is_null(cdr(p)))));
-	  if (result == UNSAFE_BODY)
-	    return(UNSAFE_BODY);
+	  if (result == UNSAFE_BODY) return(UNSAFE_BODY);
+	}
+      if (p != body)
+	{
+	  if (follow) {sp = cdr(sp); if (p == sp) return(UNSAFE_BODY);}
+	  follow = (!follow);
 	}
     }
   if (!is_null(p))
     return(UNSAFE_BODY);
+#if SAFE_FORM_PRINT
+  fprintf(stderr, "%d: %d\n", __LINE__, result);
+#endif
   return(result);
 }
 
-
 static s7_pointer optimize_lambda(s7_scheme *sc, bool unstarred_lambda, s7_pointer func, s7_pointer args, s7_pointer body)
 {
-  int len;
+  int32_t len;
 
   len = s7_list_length(sc, body);
   if (len < 0)                /* (define (hi) 1 . 2) */
@@ -60299,15 +61179,13 @@ static s7_pointer optimize_lambda(s7_scheme *sc, bool unstarred_lambda, s7_point
 
       clear_symbol_list(sc);
       for (p = args; is_pair(p); p = cdr(p))
-	{
-	  if (is_symbol(car(p)))
-	    sargs = add_sym(sc, car(p), sargs);
-	  else sargs = add_sym(sc, caar(p), sargs);
-	}
+	sargs = add_sym(sc, (is_symbol(car(p))) ? car(p) : caar(p), sargs);
       if (!is_null(p))
 	sargs = add_sym(sc, p, sargs);
       result = body_is_safe(sc, func, body, sargs, true);
-      /* fprintf(stderr, "%s: %d\n", DISPLAY_80(func), result); */
+#if SAFE_FORM_PRINT
+      fprintf(stderr, "%s: %d\n", DISPLAY_80(body), result);
+#endif
       if (result == VERY_SAFE_BODY)
 	{
 	  if ((is_symbol(func)) &&
@@ -60320,11 +61198,13 @@ static s7_pointer optimize_lambda(s7_scheme *sc, bool unstarred_lambda, s7_point
 	   *   the local_slot.  If that is invalid (normally a free_cell), oops... So the code above,
 	   *   checks for a global function that has been previously defined locally.  
 	   */
+#if SAFE_FORM_PRINT
+	  fprintf(stderr, "set_locals: %s\n", DISPLAY_80(body));
+#endif
 	  set_all_locals(sc, body, sargs);
 	}
 
       free_syms(sargs);
-      sc->cycle_counter = 0;
       clear_symbol_list(sc);  /* tracks locals */
 
       if (is_symbol(func))    /* func can be sc->gc_nil (see check_lambda and check_lambda_star) */
@@ -60370,9 +61250,13 @@ static s7_pointer optimize_lambda(s7_scheme *sc, bool unstarred_lambda, s7_point
 		set_simple_arg_defaults(body);
 	    }
 	  if (result != UNSAFE_BODY)
+	    {
+#if SAFE_FORM_PRINT
+	      fprintf(stderr, "%s is safe\n", DISPLAY_80(body));
+#endif
 	    set_safe_closure(body);
-	  /* else fprintf(stderr, "unsafe: %s\n", DISPLAY(body)); */
 	  /* this bit is set on the function itself in make_closure and friends */
+	    }
 	}
       /* else fprintf(stderr, "rest: %d %s\n", result, DISPLAY(body)); */
     }
@@ -60449,7 +61333,7 @@ static void check_lambda_star(s7_scheme *sc)
 static s7_pointer check_case(s7_scheme *sc)
 {
   bool keys_simple = true, has_feed_to = false, keys_single = true, bodies_simple = true;
-  int key_type = T_FREE;
+  int32_t key_type = T_FREE;
   s7_pointer x;
 
   if (!is_pair(sc->code))                                            /* (case) or (case . 1) */
@@ -60569,7 +61453,7 @@ static s7_pointer check_case(s7_scheme *sc)
 	  (!bodies_simple) ||  /* x_x_g g=general keys or bodies */
 	  (!keys_single))
 	{
-	  if (!keys_simple)  /* x_g_g (no int case here) */
+	  if (!keys_simple)  /* x_g_g (no int32_t case here) */
 	    {
 	      if (is_symbol(car(sc->code)))
 		pair_set_syntax_symbol(sc->code, sc->case_s_g_g_symbol);
@@ -60633,7 +61517,6 @@ static s7_pointer check_case(s7_scheme *sc)
   return(sc->code);
 }
 
-
 static s7_pointer check_let_one_var(s7_scheme *sc, s7_pointer start)
 {
   s7_pointer binding;
@@ -60654,7 +61537,8 @@ static s7_pointer check_let_one_var(s7_scheme *sc, s7_pointer start)
 	      if ((is_h_safe_c_s(cadr(binding))) &&
 		  (is_pair(cadr(sc->code))))             /* one body expr is a pair */
 		{
-		  pair_set_syntax_symbol(sc->code, sc->let_opsq_p_symbol);
+ 		  pair_set_syntax_symbol(sc->code, sc->let_opsq_p_symbol);
+
 		  set_opt_sym2(sc->code, cadadr(binding));
 		  if ((!is_optimized(cadr(sc->code))) &&
 		      (is_syntactic_symbol(caadr(sc->code))))
@@ -60738,7 +61622,7 @@ static s7_pointer check_let(s7_scheme *sc)
 {
   s7_pointer x, start;
   bool named_let;
-  int vars;
+  int32_t vars;
 
   if (!is_pair(sc->code))               /* (let . 1) */
     {
@@ -60784,7 +61668,7 @@ static s7_pointer check_let(s7_scheme *sc)
       if (!is_pair(cddr(sc->code)))             /* (let hi () . =>) */
 	eval_error(sc, "named let stray dot? ~A", sc->code);
       if (is_immutable_symbol(car(sc->code)))
-	return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, make_string_wrapper(sc, "can't bind an immutable object: ~S"), sc->code)));
+	return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "can't bind an immutable object: ~S"), sc->code)));
       set_local(car(sc->code));
       start = cadr(sc->code);
     }
@@ -60816,7 +61700,7 @@ static s7_pointer check_let(s7_scheme *sc)
 	eval_error(sc, "bad variable ~S in let", carx);
 
       if (is_immutable_symbol(y))
-	return(s7_error(sc, sc->wrong_type_arg_symbol,	set_elist_2(sc, make_string_wrapper(sc, "can't bind an immutable object: ~S"), x)));
+	return(s7_error(sc, sc->wrong_type_arg_symbol,	set_elist_2(sc, s7_make_string_wrapper(sc, "can't bind an immutable object: ~S"), x)));
 
       /* check for name collisions -- not sure this is required by Scheme */
       if (symbol_is_in_list(sc, y))
@@ -60837,21 +61721,22 @@ static s7_pointer check_let(s7_scheme *sc)
     {
       if (named_let)
 	{
-	  s7_pointer ex;
-
 	  if (is_null(start))
 	    pair_set_syntax_symbol(sc->code, sc->named_let_no_vars_symbol);
 	  else pair_set_syntax_symbol(sc->code, sc->named_let_symbol);
 
 	  /* this is (let name ...) so the initial values need to be removed from the closure arg list */
-	  
-	  sc->args = sc->nil;
-	  for (ex = start; is_pair(ex); ex = cdr(ex))
-	    sc->args = cons(sc, caar(ex), sc->args);
-	  
-	  optimize_lambda(sc, true, car(sc->code), sc->args = safe_reverse_in_place(sc, sc->args), cddr(sc->code));
-
-	  /* apparently these guys are almost never safe */
+	  if (vars > 0)
+	    {
+	      s7_pointer ex, exp;
+	      sc->args = safe_list_if_possible(sc, vars);
+	      for (ex = start, exp = sc->args; is_pair(ex); ex = cdr(ex), exp = cdr(exp))
+		car(exp) = caar(ex);
+	      optimize_lambda(sc, true, car(sc->code), sc->args, cddr(sc->code));
+	      clear_list_in_use(sc->args);
+	      sc->current_safe_list = 0;
+	    }
+	  else optimize_lambda(sc, true, car(sc->code), sc->nil, cddr(sc->code));
 	  return(sc->code);
 	}
 
@@ -60946,7 +61831,7 @@ static s7_pointer check_let_star(s7_scheme *sc)
       if (!is_pair(cddr(sc->code)))                 /* (let* hi () . =>) */
 	eval_error(sc, "named let* stray dot? ~A", sc->code);
       if (is_immutable_symbol(car(sc->code)))
-	return(s7_error(sc, sc->wrong_type_arg_symbol,	set_elist_2(sc, make_string_wrapper(sc, "can't bind an immutable object: ~S"), sc->code)));
+	return(s7_error(sc, sc->wrong_type_arg_symbol,	set_elist_2(sc, s7_make_string_wrapper(sc, "can't bind an immutable object: ~S"), sc->code)));
       set_local(car(sc->code));
       if ((!is_null(cadr(sc->code))) &&
 	  (!is_pair(cadr(sc->code))))               /* (let* hi x ... ) */
@@ -60982,7 +61867,7 @@ static s7_pointer check_let_star(s7_scheme *sc)
 	eval_error(sc, "bad variable ~S in let*", var);
 
       if (is_immutable_symbol(var))                 /* (let* ((pi 3)) ...) */
-	return(s7_error(sc, sc->wrong_type_arg_symbol,	set_elist_2(sc, make_string_wrapper(sc, "can't bind an immutable object: ~S"), var_and_val)));
+	return(s7_error(sc, sc->wrong_type_arg_symbol,	set_elist_2(sc, s7_make_string_wrapper(sc, "can't bind an immutable object: ~S"), var_and_val)));
 
       /* currently (let* ((a 1) (a (+ a 1))) a) is 2, not an error. */
       set_local(var);
@@ -61015,19 +61900,27 @@ static s7_pointer check_let_star(s7_scheme *sc)
 	  else  /* more than one entry */
 	    {
 	      s7_pointer p, op;
+	      clear_symbol_list(sc);
 	      op = sc->let_star_all_x_symbol;
 	      set_opt_con2(sc->code, cadaar(sc->code));
 	      for (p = car(sc->code); is_pair(p); p = cdr(p))
 		{
 		  s7_pointer x;
 		  x = car(p);
+		  add_symbol_to_list(sc, car(x));
 		  if (is_pair(cadr(x)))
 		    {
 		      if ((!is_all_x_safe(sc, cadr(x))) &&
 			  (car(cadr(x)) != sc->quote_symbol))
 			{
-			  op = sc->let_star2_symbol;
-			  break;
+			  if (p == car(sc->code))
+			    op = sc->let_star_a2_symbol;
+			  else 
+			    {
+			      /* fprintf(stderr, "%s\n", DISPLAY_80(cadr(x))); */
+			      op = sc->let_star2_symbol;
+			      break;
+			    }
 			}
 		    }
 		}
@@ -61036,12 +61929,24 @@ static s7_pointer check_let_star(s7_scheme *sc)
 	}
 
       if ((pair_syntax_symbol(sc->code) == sc->let_all_x_symbol) ||
-	  (pair_syntax_symbol(sc->code) == sc->let_star_all_x_symbol))
+	  (pair_syntax_symbol(sc->code) == sc->let_star_all_x_symbol) ||
+	  (pair_syntax_symbol(sc->code) == sc->let_star_a2_symbol))
 	{
 	  s7_pointer p;
-	  for (p = car(sc->code); is_pair(p); p = cdr(p))
-	    set_x_call(cdar(p), all_x_eval(sc, cdar(p), sc->envir, let_symbol_is_safe));
+	  clear_symbol_list(sc);
+	  if (pair_syntax_symbol(sc->code) == sc->let_star_a2_symbol)
+	    {
+	      p = cdar(sc->code);
+	      add_symbol_to_list(sc, caar(p));
+	    }
+	  else p = car(sc->code);
+	  for (; is_pair(p); p = cdr(p))
+	    {
+	      set_x_call(cdar(p), all_x_eval(sc, cdar(p), sc->envir, let_star_symbol_is_safe));
+	      add_symbol_to_list(sc, caar(p));
+	    }
 	}
+      /* most optimized cases here not caught via all_x* are safe_closure calls etc */
     }
   return(sc->code);
 }
@@ -61070,7 +61975,7 @@ static s7_pointer check_letrec(s7_scheme *sc, bool letrec)
 
       y = car(carx);
       if (is_immutable_symbol(y))
-	return(s7_error(sc, sc->wrong_type_arg_symbol,	set_elist_2(sc, make_string_wrapper(sc, "can't bind an immutable object: ~S"), x)));
+	return(s7_error(sc, sc->wrong_type_arg_symbol,	set_elist_2(sc, s7_make_string_wrapper(sc, "can't bind an immutable object: ~S"), x)));
 
       if (!is_pair(cdr(carx)))                /* (letrec ((x . 1))...) */
 	{
@@ -61120,9 +62025,9 @@ static s7_pointer check_let_temporarily(s7_scheme *sc)
       if (is_symbol(car(carx)))
 	{
 	  if (is_immutable_symbol(car(carx))) /* (let-temporarily ((pi 3)) ...) */
-	    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, make_string_wrapper(sc, "can't bind an immutable object: ~S"), x)));
+	    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "can't bind an immutable object: ~S"), x)));
 	  if (is_syntactic(car(carx)))        /* (let-temporarily ((if 3)) ...) */
-	    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, make_string_wrapper(sc, "can't set! ~S"), car(carx))));
+	    return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "can't set! ~S"), car(carx))));
 	}
 
       if (!is_pair(cdr(carx)))                /* (let-temporarily ((x . 1))...) */
@@ -61140,7 +62045,7 @@ static s7_pointer check_let_temporarily(s7_scheme *sc)
 }
 
 
-static s7_pointer check_quote(s7_scheme *sc, s7_pointer code)
+static inline s7_pointer check_quote(s7_scheme *sc, s7_pointer code)
 {
   if (!is_pair(code))                    /* (quote . -1) */
     {
@@ -61234,20 +62139,18 @@ static s7_pointer check_or(s7_scheme *sc)
       if (all_pairs)
 	{
 	  s7_pointer ep;
-	  bool any_nils = false, any_ps = false;
+	  bool any_nils = false;
 	  for (ep = sc->code; is_pair(ep); ep = cdr(ep))
 	    {
 	      s7_function callee;
 	      callee = all_x_eval(sc, ep, sc->envir, let_symbol_is_safe);
 	      if (!callee) any_nils = true;
 	      set_x_call_checked(ep, callee);
-	      if (!is_optimized(car(p)))
-		any_ps = true;
 	    }
 	  if ((c_callee(sc->code)) &&
 	      (is_pair(cdr(sc->code))) &&
 	      (is_null(cddr(sc->code))))
-	    pair_set_syntax_symbol(sc->code, (any_nils) ? ((any_ps) ? sc->or_ap_symbol : sc->or_az_symbol) : sc->or_safe_aa_symbol);
+	    pair_set_syntax_symbol(sc->code, (any_nils) ? sc->or_ap_symbol : sc->or_safe_aa_symbol);
 	  else pair_set_syntax_symbol(sc->code, (any_nils) ? sc->or_p_symbol : sc->or_safe_p_symbol);
 	}
       else pair_set_syntax_symbol(sc->code, sc->or_unchecked_symbol);
@@ -61323,7 +62226,7 @@ static void set_if_opts(s7_scheme *sc, bool one_branch, bool reversed)
 	      set_opt_sym3(sc->code, cadr(test));
 	      return;
 	    }
-	  if (optimize_op(test) == HOP_SAFE_C_SS)
+	  if ((optimize_op(test) == HOP_SAFE_C_SS) || (optimize_op(test) == HOP_SAFE_C_LL))
 	    {
 	      pair_set_syntax_symbol(sc->code, choose_if_opt(sc->if_css, one_branch, reversed, not_case));
 	      set_opt_sym2(sc->code, caddr(test));
@@ -61386,7 +62289,7 @@ static void set_if_opts(s7_scheme *sc, bool one_branch, bool reversed)
 		    pair_set_syntax_symbol(sc->code, choose_if_opt(sc->if_andp, one_branch, reversed, not_case));
 		  else
 		    {
-		      if ((new_op == OP_OR_P) || (new_op == OP_OR_AP) || (new_op == OP_OR_AZ) || 
+		      if ((new_op == OP_OR_P) || (new_op == OP_OR_AP) || 
 			  (new_op == OP_OR_SAFE_P) || (new_op == OP_OR_SAFE_AA))
 			pair_set_syntax_symbol(sc->code, choose_if_opt(sc->if_orp, one_branch, reversed, not_case));
 		    }
@@ -61509,7 +62412,7 @@ static s7_pointer check_define(s7_scheme *sc)
 {
   s7_pointer func, caller;
   bool starred;
-  int arity = CLOSURE_ARITY_NOT_SET;
+  int32_t arity = CLOSURE_ARITY_NOT_SET;
 
   starred = (sc->op == OP_DEFINE_STAR);
   if (starred)
@@ -61603,12 +62506,12 @@ static s7_pointer check_define(s7_scheme *sc)
   return(sc->code);
 }
 
-static int define_unchecked_ex(s7_scheme *sc)
+static int32_t define_unchecked_ex(s7_scheme *sc)
 {
   if (sc->op == OP_DEFINE_STAR_UNCHECKED)
     {
       s7_pointer x;
-      unsigned int typ;
+      uint32_t typ;
       if (is_safe_closure(cdr(sc->code)))
 	typ = T_CLOSURE_STAR | T_SAFE_CLOSURE;
       else typ = T_CLOSURE_STAR;
@@ -61723,7 +62626,7 @@ static s7_pointer check_define_macro(s7_scheme *sc, opcode_t op)
   if (!is_pair(sc->code))                                               /* (define-macro . 1) */
     eval_error_with_caller(sc, "~A name missing (stray dot?): ~A", caller, sc->code);
   if (!is_pair(car(sc->code)))                                          /* (define-macro a ...) */
-    return(wrong_type_argument_with_type(sc, caller, 1, car(sc->code), make_string_wrapper(sc, "a list: (name ...)")));
+    return(wrong_type_argument_with_type(sc, caller, 1, car(sc->code), s7_make_string_wrapper(sc, "a list: (name ...)")));
   /* not car(opt_back(sc->code)) to get the caller (e.g. 'define-bacro) because opt_back might not be set: (apply define-macro '(1)) */
 
   x = caar(sc->code);
@@ -61745,13 +62648,13 @@ static s7_pointer check_define_macro(s7_scheme *sc, opcode_t op)
   if ((!s7_is_list(sc, y)) &&
       (!is_symbol(y)))
     return(s7_error(sc, sc->syntax_error_symbol,                                      /* (define-macro (mac . 1) ...) */
-		    set_elist_3(sc, make_string_wrapper(sc, "macro ~A argument list is ~S?"), x, y)));
+		    set_elist_3(sc, s7_make_string_wrapper(sc, "macro ~A argument list is ~S?"), x, y)));
 
   for ( ; is_pair(y); y = cdr(y))
     if ((!is_symbol(car(y))) &&
 	((sc->op == OP_DEFINE_MACRO) || (sc->op == OP_DEFINE_BACRO) || (sc->op == OP_DEFINE_EXPANSION)))
       return(s7_error(sc, sc->syntax_error_symbol,                                    /* (define-macro (mac 1) ...) */
-		      set_elist_3(sc, make_string_wrapper(sc, "define-macro ~A argument name is not a symbol: ~S"), x, y)));
+		      set_elist_3(sc, s7_make_string_wrapper(sc, "define-macro ~A argument name is not a symbol: ~S"), x, y)));
 
   if ((sc->op == OP_DEFINE_MACRO_STAR) || (sc->op == OP_DEFINE_BACRO_STAR))
     set_cdar(sc->code, check_lambda_star_args(sc, cdar(sc->code), NULL));
@@ -61760,9 +62663,9 @@ static s7_pointer check_define_macro(s7_scheme *sc, opcode_t op)
   return(sc->code);
 }
 
-static int expansion_ex(s7_scheme *sc)
+static int32_t expansion_ex(s7_scheme *sc)
 {
-  int loc;
+  int32_t loc;
   s7_pointer caller;
   
   /* read-time macro expansion:
@@ -61942,14 +62845,15 @@ static s7_pointer check_cond(s7_scheme *sc)
       else
 	{
 	  s7_pointer p;
-	  bool xopt = true, eopt = true;
+	  bool xopt = true;
 	  pair_set_syntax_symbol(sc->code, sc->cond_simple_symbol);
 
 	  for (p = sc->code; xopt && (is_pair(p)); p = cdr(p))
 	    xopt = is_all_x_safe(sc, caar(p)); /* caar=test */
 	  if (xopt)
 	    {
-	      int i;
+	      int32_t i;
+	      bool eopt = true;
 	      pair_set_syntax_symbol(sc->code, sc->cond_all_x_symbol);
 	      for (i = 0, p = sc->code; is_pair(p); i++, p = cdr(p))
 		set_x_call(car(p), all_x_eval(sc, car(p), (is_null(sc->envir)) ? sc->rootlet : sc->envir, let_symbol_is_safe));
@@ -61966,7 +62870,7 @@ static s7_pointer check_cond(s7_scheme *sc)
   return(sc->code);
 }
 
-static int feed_to(s7_scheme *sc)
+static int32_t feed_to(s7_scheme *sc)
 {
   /* old form (pre 6-June-16): this causes a double evaluation:
    *   (let ((x 'y) (y 32)) (cond ((values x y) => list))) -> '(32 32)
@@ -62055,7 +62959,7 @@ static s7_pointer check_set(s7_scheme *sc)
 	  if (!s7_is_list(sc, cdar(sc->code)))                          /* (set! ('(1 2) . 0) 1) */
 	    eval_error(sc, "improper list of args to set!: ~A", sc->code);
 	}
-      if (!is_proper_list(sc, car(sc->code)))                           /* (set! ("hi" . 1) #\a) or (set! (#(1 2) . 1) 0) */
+      if (!s7_is_proper_list(sc, car(sc->code)))                        /* (set! ("hi" . 1) #\a) or (set! (#(1 2) . 1) 0) */
 	eval_error(sc, "set! target is an improper list: (set! ~A ...)", car(sc->code));
     }
   else
@@ -62141,19 +63045,6 @@ static s7_pointer check_set(s7_scheme *sc)
 				  set_x_call(cdr(sc->code), all_x_eval(sc, cdr(sc->code), sc->envir, let_symbol_is_safe));
 				}
 			    }
-			  else
-			    {
-			      if (is_h_safe_c_c(cadr(inner)))
-				{
-				  if (!is_pair(value))
-				    pair_set_syntax_symbol(sc->code, sc->set_pair_c_symbol);
-				  else
-				    {
-				      /* splice_in_values protects us here from values */
-				      pair_set_syntax_symbol(sc->code, sc->set_pair_c_p_symbol);
-				    }
-				}
-			    }
 			}
 		    }
 		}
@@ -62206,7 +63097,7 @@ static s7_pointer check_set(s7_scheme *sc)
 			  pair_set_syntax_symbol(sc->code, sc->set_symbol_p_symbol);
 			  if (is_h_safe_c_s(value))
 			    {
-			      pair_set_syntax_symbol(sc->code, sc->set_symbol_opsq_symbol);
+			      pair_set_syntax_symbol(sc->code, (is_local_symbol(cdr(value))) ? sc->set_symbol_oplq_symbol : sc->set_symbol_opsq_symbol);
 			      set_opt_sym2(sc->code, cadr(value));
 			    }
 			  else
@@ -62223,11 +63114,13 @@ static s7_pointer check_set(s7_scheme *sc)
 				  else
 				    {
 				      /* most of these special cases probably don't matter */
-				      if (optimize_op(value) == HOP_SAFE_C_SS)
+				      if ((optimize_op(value) == HOP_SAFE_C_SS) || (optimize_op(value) == HOP_SAFE_C_LL))
 					{
+					  bool locals;
+					  locals = ((is_local_symbol(cdr(value))) && (is_local_symbol(cddr(value))));
 					  if (settee == cadr(value))
 					    pair_set_syntax_symbol(sc->code, sc->increment_ss_symbol);
-					  else pair_set_syntax_symbol(sc->code, sc->set_symbol_opssq_symbol);
+					  else pair_set_syntax_symbol(sc->code, (locals) ? sc->set_symbol_opllq_symbol : sc->set_symbol_opssq_symbol);
 					  set_opt_pair2(sc->code, cdr(value));
 					}
 				      else
@@ -62413,7 +63306,7 @@ static bool set_pair_p_3(s7_scheme *sc, s7_pointer obj, s7_pointer arg, s7_point
 	    if ((is_byte_vector(obj)) &&
 		(s7_is_integer(value)))
 	      {
-		int ic;
+		int32_t ic;
 		ic = s7_integer(value);
 		if ((ic < 0) || (ic > 255))
 		  eval_type_error(sc, "string-set!: value must be a character: ~S", sc->code);
@@ -62526,7 +63419,7 @@ static bool safe_stepper(s7_scheme *sc, s7_pointer expr, s7_pointer vars)
   return(true);
 }
 
-static int set_pair_ex(s7_scheme *sc)
+static int32_t set_pair_ex(s7_scheme *sc)
 {
   s7_pointer caar_code, cx;
 
@@ -62766,7 +63659,7 @@ static int set_pair_ex(s7_scheme *sc)
 		    if ((is_byte_vector(cx)) &&
 			(s7_is_integer(val)))
 		      {
-			int ic;
+			int32_t ic;
 			ic = s7_integer(val);
 			if ((ic < 0) || (ic > 255))
 			  eval_error_no_return(sc, sc->wrong_type_arg_symbol, "string-set!: value must be a character: ~S", sc->code);
@@ -63312,7 +64205,8 @@ static bool do_is_safe(s7_scheme *sc, s7_pointer body, s7_pointer steppers, s7_p
 			if (!do_is_safe(sc, cadr(expr), steppers, var_list, has_set))
 			  return(false);
 			for (cp = cddr(expr); is_pair(cp); cp = cdr(cp))
-			  if (!do_is_safe(sc, cdar(cp), steppers, var_list, has_set))
+			  if ((!is_pair(car(cp))) ||      /* (case x #(123)...) */
+			      (!do_is_safe(sc, cdar(cp), steppers, var_list, has_set)))
 			    return(false);
 			break;
 		      }
@@ -63383,7 +64277,7 @@ static bool do_is_safe(s7_scheme *sc, s7_pointer body, s7_pointer steppers, s7_p
   return(true);
 }
 
-static bool preserves_type(s7_scheme *sc, unsigned int x)
+static bool preserves_type(s7_scheme *sc, uint32_t x)
 {
   return((x == sc->add_class) || 
 	 (x == sc->subtract_class) || 
@@ -63466,7 +64360,7 @@ static s7_pointer check_do(s7_scheme *sc)
       (has_opt_back(sc->code)))
     {
       s7_pointer vars, end, body, p;
-      int nvars, nsteps = 0;
+      int32_t nvars, nsteps = 0;
 
       pair_set_syntax_symbol(sc->code, sc->do_unchecked_symbol);
 
@@ -63475,7 +64369,7 @@ static s7_pointer check_do(s7_scheme *sc)
 	return(sc->code);             
       if (is_simple_expression(sc, car(end)))
 	set_x_call(end, all_x_eval(sc, end, sc->envir, let_symbol_is_safe));
-      else return(sc->code);          /* if end is not allxable, give up */
+      else return(sc->code);          /* if end is not a" PRIx64 "able, give up */
 
       vars = car(sc->code);
       if (is_null(vars))
@@ -63496,7 +64390,7 @@ static s7_pointer check_do(s7_scheme *sc)
 	  (caar(body) == sc->define_symbol))
 	return(sc->code);
 
-      /* TODO: set up init/step allx choices */
+      /* TODO: set up init/step a" PRIx64 " choices */
       for (nvars = 0, p = vars; is_pair(p); nvars++, p = cdr(p))
 	if (is_pair(cddar(p)))
 	  {
@@ -63543,14 +64437,14 @@ static s7_pointer check_do(s7_scheme *sc)
 		}
 	    }
 	  
-	  /* inits all non-pair, or all allx, or any */
-	  /* steppers allx, +1 -1 cdr */
+	  /* inits all non-pair, or all a" PRIx64 ", or any */
+	  /* steppers a" PRIx64 ", +1 -1 cdr */
 	}
 #endif
 
       
       /* 1/1 is of course the biggy -- can 1/n share its code? */
-      /* need to start: do_op_1step_no_opt[_1] = set up frame goto check end, then push _1, set code, goto begin1, step via allx
+      /* need to start: do_op_1step_no_opt[_1] = set up frame goto check end, then push _1, set code, goto begin1, step via a" PRIx64 "
        * :set frame non-steppers, then stepper at front, goto CHECK
        * _1: step, CHECK: check end, push, code=, go begin1
        *
@@ -63558,7 +64452,7 @@ static s7_pointer check_do(s7_scheme *sc)
        *   all the safe-stepper mutable ints and so on 
        */ 
 
-      /* are inits allxable, are steppers allxable, +/- by 1 by int, cdr, are there shadowing problems
+      /* are inits a" PRIx64 "able, are steppers a" PRIx64 "able, +/- by 1 by int, cdr, are there shadowing problems
        * (=|>= end lim) where end is stepper or (null? stp)
        * is body safe, 1 expr
        * return null or constant or 1-expr
@@ -63607,10 +64501,10 @@ static s7_pointer check_do(s7_scheme *sc)
 		      (cadr(end) != caddr(end)) &&
 #if (!WITH_GMP)
 		      ((opt_any1(end) == equal_s_ic) ||
-		       (optimize_op(end) == HOP_SAFE_C_SS) ||
+		       (optimize_op(end) == HOP_SAFE_C_SS) || (optimize_op(end) == HOP_SAFE_C_LL) ||
 		       (optimize_op(end) == HOP_SAFE_C_SC))
 #else
-		      ((optimize_op(end) == HOP_SAFE_C_SS) ||
+		      ((optimize_op(end) == HOP_SAFE_C_SS) || (optimize_op(end) == HOP_SAFE_C_LL) ||
 		       (optimize_op(end) == HOP_SAFE_C_SC))
 #endif
 		      )
@@ -63741,7 +64635,7 @@ static s7_pointer check_do(s7_scheme *sc)
 	clear_match_symbol(caar(p));
   
       /* end and steps look ok! */
-      pair_set_syntax_symbol(sc->code, sc->dox_symbol);                                     /* dox: vars/end are allxable */
+      pair_set_syntax_symbol(sc->code, sc->dox_symbol);                                     /* dox: vars/end are a" PRIx64 "able */
 
       /* each step expr is safe so not an explicit set!
        *   the symbol_is_safe check in all_x_eval needs to see the do envir, not the caller's
@@ -63780,7 +64674,7 @@ static s7_pointer check_do(s7_scheme *sc)
 
 static s7_pointer make_do_frame(s7_scheme *sc)
 {
-  long long int id;
+  int64_t id;
   s7_pointer frame, vars;
 
   new_frame(sc, sc->envir, frame);           /* new frame is not tied into the symbol lookup process yet */
@@ -63857,12 +64751,12 @@ static bool has_safe_steppers(s7_scheme *sc, s7_pointer frame)
 }
 
 
-static int dox_ex(s7_scheme *sc)
+static int32_t dox_ex(s7_scheme *sc)
 {
   /* any number of steppers using dox exprs, end also dox, body and end result arbitrary.
    *    since all these exprs are local, we don't need to jump until the body
    */
-  long long int id;
+  int64_t id;
   s7_pointer frame, vars, slot, code, end, endp;
   s7_function endf;
 
@@ -63986,7 +64880,7 @@ static int dox_ex(s7_scheme *sc)
 	{
 	  s7_pointer slots;
 	  slots = let_slots(sc->envir);
-	  /* is let activated? also multiexpr body  and other allx? */
+	  /* is let activated? also multiexpr body  and other all_x? */
 
 	  if ((is_null(cdr(code))) &&
 	      (is_pair(car(code))))
@@ -64028,7 +64922,7 @@ static int dox_ex(s7_scheme *sc)
 	    {
 	      s7_pointer p;
 	      bool use_opts = false;
-	      int body_len = 0;
+	      int32_t body_len = 0;
 	      p = code;
 
 	      if ((!pair_no_opt(code)) &&
@@ -64057,7 +64951,7 @@ static int dox_ex(s7_scheme *sc)
 
 	      if (is_null(p))
 		{
-		  int i;
+		  int32_t i;
 		  if (!use_opts)
 		    annotate_args(sc, code, sc->envir);
 
@@ -64122,7 +65016,7 @@ static int dox_ex(s7_scheme *sc)
 }
 
 	  
-static int simple_do_ex(s7_scheme *sc, s7_pointer code)
+static int32_t simple_do_ex(s7_scheme *sc, s7_pointer code)
 {
   s7_pointer body, step_expr, step_var, ctr, end;
   s7_function stepf, endf;
@@ -64218,7 +65112,7 @@ static int simple_do_ex(s7_scheme *sc, s7_pointer code)
 
 static bool opt_dotimes(s7_scheme *sc, s7_pointer code, s7_pointer scc, bool safe_step)
 {
-  int i, body_len;
+  int32_t i, body_len;
   s7_int end;
 
   if (sc->safety > CLM_OPTIMIZATION_SAFETY) return(false);
@@ -64364,7 +65258,7 @@ static bool opt_dotimes(s7_scheme *sc, s7_pointer code, s7_pointer scc, bool saf
 	  return(false);
     }
   else return(false);
-  /* TODO: here and in opt_let, generalize the body exprs */
+  /* TODO: here and in do_let, generalize the body exprs */
 
   end = denominator(slot_value(sc->args));
   if (safe_step)
@@ -64407,12 +65301,12 @@ static bool opt_dotimes(s7_scheme *sc, s7_pointer code, s7_pointer scc, bool saf
 }
  
 
-static int opt_let(s7_scheme *sc, s7_pointer step_slot, s7_pointer scc, bool safe_case)
+static int32_t do_let(s7_scheme *sc, s7_pointer step_slot, s7_pointer scc, bool safe_case)
 {
   s7_pointer let_body, p = NULL, let_vars, let_code;
   bool let_star;
   s7_pointer old_e, stepper;
-  int body_len, var_len;
+  int32_t body_len, var_len;
 
   if (sc->safety > CLM_OPTIMIZATION_SAFETY) return(fall_through);
   /* fprintf(stderr, "let_ok: %s\n", DISPLAY(scc)); */
@@ -64469,7 +65363,7 @@ static int opt_let(s7_scheme *sc, s7_pointer step_slot, s7_pointer scc, bool saf
       if ((var_len == 1) && (body_len == 1))
 	{
 	  s7_pointer ip, xp;
-	  int pc2;
+	  int32_t pc2;
 	  opt_info *first, *second;
 	  s7_double (*f1)(void *p);
 	  s7_double (*f2)(void *p);
@@ -64484,20 +65378,34 @@ static int opt_let(s7_scheme *sc, s7_pointer step_slot, s7_pointer scc, bool saf
 	  second = sc->opts[pc2];
 	  f2 = second->v7.fd;
 	  f2(second);
-	  for (k = numerator(stepper) + 1; k < end; k++)
+	  if (f2 == opt_fmv)
 	    {
-	      integer(ip) = k;
-	      sc->pc = 0;
-	      set_real(xp, f1(first));
-	      sc->pc = pc2;
-	      f2(second);
+	      for (k = numerator(stepper) + 1; k < end; k++)
+		{
+		  integer(ip) = k;
+		  sc->pc = 0;
+		  set_real(xp, f1(first));
+		  sc->pc = pc2;
+		  opt_fmv(second);
+		}
+	    }
+	  else
+	    {
+	      for (k = numerator(stepper) + 1; k < end; k++)
+		{
+		  integer(ip) = k;
+		  sc->pc = 0;
+		  set_real(xp, f1(first));
+		  sc->pc = pc2;
+		  f2(second);
+		}
 	    }
 	}
       else
 	{
 	  for (k = numerator(stepper); k < end; k++)
 	    {
-	      int i;
+	      int32_t i;
 	      integer(slot_value(step_slot)) = k;
 	      sc->pc = 0;
 	      for (p = let_slots(sc->envir); is_slot(p); p = next_slot(p))
@@ -64522,8 +65430,23 @@ static int opt_let(s7_scheme *sc, s7_pointer step_slot, s7_pointer scc, bool saf
   return(fall_through);
 }
 
+static bool dotimes(s7_scheme *sc, s7_pointer code, bool safe_case)
+{
+  s7_pointer body;
+  body = caddr(code);
+  /* here we assume one expr in body */
+
+  if (((typesflag(body) == SYNTACTIC_PAIR) ||
+       (typesflag(car(body)) == SYNTACTIC_TYPE)) &&
+      ((symbol_syntax_op(car(body)) == OP_LET) ||
+       (symbol_syntax_op(car(body)) == OP_LET_STAR)))
+    return(do_let(sc, sc->args, code, safe_case) == goto_SAFE_DO_END_CLAUSES);
+
+  return(opt_dotimes(sc, cddr(code), code, safe_case));
+}
+
 
-static int safe_dotimes_ex(s7_scheme *sc)
+static int32_t safe_dotimes_ex(s7_scheme *sc)
 {
   s7_pointer init_val;
 
@@ -64561,7 +65484,7 @@ static int safe_dotimes_ex(s7_scheme *sc)
 
 	  /* safe_dotimes: if null (or constant) body, set step=end and quit (here end is (= step lim) so nothing can happen)
 	   *   TODO: break out this case in check_do
-	   *   if 1-expr body look for syntactic case, if let(*) goto opt_let, else opt_dotimes
+	   *   if 1-expr body look for syntactic case, if let(*) goto do_let, else opt_dotimes
 	   *       if they are unhappy, got safe_dotimes_step_p
 	   *   TODO: another case for check_do
 	   *   else goto opt_dotimes then safe_dotimes_step_o
@@ -64596,20 +65519,10 @@ static int safe_dotimes_ex(s7_scheme *sc)
 		{
 		  if (!is_unsafe_do(code))
 		    {
-		      if ((symbol_syntax_op(car(sc->code)) == OP_LET) ||
-			  (symbol_syntax_op(car(sc->code)) == OP_LET_STAR))
-			{
-			  if (opt_let(sc, sc->args, code, true) == goto_SAFE_DO_END_CLAUSES)
-			    return(goto_SAFE_DO_END_CLAUSES);
-			}
-		      else
-			{
-			  if (opt_dotimes(sc, cddr(code), code, true))
-			    return(goto_SAFE_DO_END_CLAUSES);
-			}
+		      if (dotimes(sc, code, true))
+			return(goto_SAFE_DO_END_CLAUSES);
 		      set_unsafe_do(code);
 		    }
-
 		  push_stack(sc, OP_SAFE_DOTIMES_STEP_P, sc->args, code);
 		  if (typesflag(sc->code) == SYNTACTIC_PAIR)
 		    sc->op = (opcode_t)pair_syntax_op(sc->code);
@@ -64651,7 +65564,7 @@ static int safe_dotimes_ex(s7_scheme *sc)
   return(fall_through);
 }
 
-static int safe_do_ex(s7_scheme *sc)
+static int32_t safe_do_ex(s7_scheme *sc)
 {
   /* body is safe, step = +1, end is =, but stepper and end might be set (or at least indirectly exported) in the body:
    *    (let ((lst ())) (do ((i 0 (+ i 1))) ((= i 10)) (let ((j (min i 100))) (set! lst (cons j lst)))) lst)
@@ -64722,7 +65635,7 @@ static int safe_do_ex(s7_scheme *sc)
   return(goto_BEGIN1);
 }
 
-static int dotimes_p_ex(s7_scheme *sc)
+static int32_t dotimes_p_ex(s7_scheme *sc)
 {
   s7_pointer init, end, code, init_val, end_val, slot;
   /* (do ... (set! args ...)) -- one line, syntactic */
@@ -64779,8 +65692,7 @@ static int dotimes_p_ex(s7_scheme *sc)
   if ((!is_unsafe_do(code)) &&
       (opt_cfunc(caadr(code)) != geq_2))
     {
-      s7_pointer old_args, old_init, body;
-      body = caddr(code);
+      s7_pointer old_args, old_init;
 
       old_args = sc->args; 
       old_init = slot_value(dox_slot1(sc->envir));
@@ -64789,19 +65701,9 @@ static int dotimes_p_ex(s7_scheme *sc)
       denominator(slot_value(sc->args)) = integer(slot_value(dox_slot2(sc->envir)));
       set_step_end(sc->args);  /* dotimes step is by 1 */
       
-      if (((typesflag(body) == SYNTACTIC_PAIR) ||
-	   (typesflag(car(body)) == SYNTACTIC_TYPE)) &&
-	  ((symbol_syntax_op(car(body)) == OP_LET) ||
-	   (symbol_syntax_op(car(body)) == OP_LET_STAR)))
-	{
-	  if (opt_let(sc, sc->args, code, false) == goto_SAFE_DO_END_CLAUSES)
-	    return(goto_DO_END_CLAUSES);
-	}
-      else
-	{
-	  if (opt_dotimes(sc, cddr(code), code, false))
-	    return(goto_DO_END_CLAUSES);
-	}
+      if (dotimes(sc, code, false))
+	return(goto_DO_END_CLAUSES);
+
       slot_set_value(sc->args, old_init);
       sc->args = old_args;
       set_unsafe_do(code);
@@ -64812,7 +65714,7 @@ static int dotimes_p_ex(s7_scheme *sc)
   return(goto_EVAL);
 }
 	  
-static int do_init_ex(s7_scheme *sc)
+static int32_t do_init_ex(s7_scheme *sc)
 {
   s7_pointer x, y, z;
   /* fprintf(stderr, "%s: %s\n", __func__, DISPLAY_80(sc->code)); */
@@ -64883,7 +65785,7 @@ static int do_init_ex(s7_scheme *sc)
 /* -------------------------------------------------------------------------------- */
   
   
-static inline bool closure_is_ok_1(s7_scheme *sc, s7_pointer code, unsigned short type, int args)
+static inline bool closure_is_ok_1(s7_scheme *sc, s7_pointer code, uint16_t type, int32_t args)
 {
   s7_pointer f;
   f = find_symbol_unexamined(sc, car(code));
@@ -64897,13 +65799,13 @@ static inline bool closure_is_ok_1(s7_scheme *sc, s7_pointer code, unsigned shor
   return(false);
 }
 
-static bool closure_star_is_ok_1(s7_scheme *sc, s7_pointer code, unsigned short type, int args)
+static bool closure_star_is_ok_1(s7_scheme *sc, s7_pointer code, uint16_t type, int32_t args)
 {
   s7_pointer val; 
   val = find_symbol_unexamined(sc, car(code));
   if ((val == opt_lambda_unchecked(code)) ||
       ((val) &&
-       (typesflag(val) == (unsigned short)type) &&
+       (typesflag(val) == (uint16_t)type) &&
        ((closure_arity(val) >= args) || 
 	(closure_star_arity_to_int(sc, val) >= args)) &&
        (set_opt_lambda(code, val))))
@@ -64948,7 +65850,7 @@ static bool closure_star_is_ok_1(s7_scheme *sc, s7_pointer code, unsigned short
 
 /* unknown ops */
 
-static int fixup_unknown_op(s7_scheme *sc, s7_pointer code, s7_pointer func, int op)
+static int32_t fixup_unknown_op(s7_scheme *sc, s7_pointer code, s7_pointer func, int32_t op)
 {
   /* sc arg used if debugging */
   set_optimize_op(code, op);
@@ -64956,10 +65858,10 @@ static int fixup_unknown_op(s7_scheme *sc, s7_pointer code, s7_pointer func, int
   return(goto_OPT_EVAL);
 }
 
-static int unknown_ex(s7_scheme *sc, s7_pointer f)
+static int32_t unknown_ex(s7_scheme *sc, s7_pointer f)
 {
   s7_pointer code;
-  int hop;
+  int32_t hop;
   
   code = sc->code;
   hop = (is_immutable_symbol(car(code))) ? 1 : 0;
@@ -64973,7 +65875,7 @@ static int unknown_ex(s7_scheme *sc, s7_pointer f)
 	{
 	  if (is_safe_closure(f))
 	    {
-	      int outer_hop;
+	      int32_t outer_hop;
 	      s7_pointer body;
 	      body = closure_body(f);
 	      outer_hop = (is_local_symbol(code)) ? 2 : 0; 
@@ -65007,23 +65909,20 @@ static int unknown_ex(s7_scheme *sc, s7_pointer f)
        */
       break;
       
-    case T_GOTO:
-      return(fixup_unknown_op(sc, code, f, hop + OP_GOTO));
-
-    case T_ITERATOR:
-      return(fixup_unknown_op(sc, code, f, hop + OP_ITERATE));
+    case T_GOTO:     return(fixup_unknown_op(sc, code, f, hop + OP_GOTO));
+    case T_ITERATOR: return(fixup_unknown_op(sc, code, f, hop + OP_ITERATE));
 
     default:
-      break;
+      return(fixup_unknown_op(sc, code, f, OP_S));
     }
   return(fall_through);
 }
 
-static int unknown_g_ex(s7_scheme *sc, s7_pointer f)
+static int32_t unknown_g_ex(s7_scheme *sc, s7_pointer f)
 {
   s7_pointer code;
   bool sym_case;
-  int hop;
+  int32_t hop;
 
   code = sc->code;
   hop = (is_immutable_symbol(car(code))) ? 1 : 0;
@@ -65038,7 +65937,6 @@ static int unknown_g_ex(s7_scheme *sc, s7_pointer f)
     {
     case T_C_FUNCTION:
     case T_C_RST_ARGS_FUNCTION:
-    case T_C_FUNCTION_STAR: 
       if ((c_function_required_args(f) > 1) ||
 	  (c_function_all_args(f) == 0))
 	break;
@@ -65075,15 +65973,15 @@ static int unknown_g_ex(s7_scheme *sc, s7_pointer f)
 	      if (is_safe_closure(f))
 		{
 		  s7_pointer body;
-		  int outer_hop;
-		  outer_hop = ((is_local_symbol(code)) && (is_local_symbol(cdr(code)))) ? 2 : 0;
-		  set_optimize_op(code, hop + outer_hop + OP_SAFE_CLOSURE_S);
+		  set_optimize_op(code, hop + OP_SAFE_CLOSURE_S);
 		  body = closure_body(f);
 		  if ((is_null(cdr(body))) &&
 		      (!is_optimized(car(body))) && /* might be h_safe_c_c->if_x2 or whatever */
 		      (is_pair(car(body))) &&
 		      (is_syntactic_symbol(caar(body))))
 		    {
+		      int32_t outer_hop;
+		      outer_hop = ((is_local_symbol(code)) && (is_local_symbol(cdr(code)))) ? 2 : 0;
 		      set_optimize_op(code, hop + outer_hop + OP_SAFE_CLOSURE_S_P);
 		      if (typesflag(car(body)) != SYNTACTIC_PAIR)
 			{
@@ -65152,17 +66050,21 @@ static int unknown_g_ex(s7_scheme *sc, s7_pointer f)
     case T_HASH_TABLE:
       annotate_arg(sc, cdr(code), sc->envir);
       return(fixup_unknown_op(sc, code, f, hop + OP_HASH_TABLE_A));
+
+    case T_CONTINUATION:
+      annotate_arg(sc, cdr(code), sc->envir);
+      return(fixup_unknown_op(sc, code, f, hop + OP_CONTINUATION_A));
       
     default:
       break;
     }
-  return(fall_through);
+  return(fixup_unknown_op(sc, code, f, (sym_case) ? OP_S_S : OP_S_C));
 }
 		  
-static int unknown_gg_ex(s7_scheme *sc, s7_pointer f)
+static int32_t unknown_gg_ex(s7_scheme *sc, s7_pointer f)
 {
   bool s1, s2;
-  int hop;
+  int32_t hop;
   s7_pointer code;
   
   code = sc->code;
@@ -65181,7 +66083,6 @@ static int unknown_gg_ex(s7_scheme *sc, s7_pointer f)
     {
     case T_C_FUNCTION:
     case T_C_RST_ARGS_FUNCTION:
-    case T_C_FUNCTION_STAR: 
       if ((c_function_required_args(f) > 2) ||
 	  (c_function_all_args(f) < 2))
 	break;
@@ -65247,10 +66148,10 @@ static int unknown_gg_ex(s7_scheme *sc, s7_pointer f)
   return(fall_through);
 }
 
-static int unknown_all_s_ex(s7_scheme *sc, s7_pointer f)
+static int32_t unknown_all_s_ex(s7_scheme *sc, s7_pointer f)
 {
   s7_pointer code, arg;
-  int num_args, hop;
+  int32_t num_args, hop;
 
   code = sc->code;
   num_args = integer(arglist_length(code));
@@ -65265,7 +66166,6 @@ static int unknown_all_s_ex(s7_scheme *sc, s7_pointer f)
     {
     case T_C_FUNCTION:
     case T_C_RST_ARGS_FUNCTION:
-    case T_C_FUNCTION_STAR: 
       if (((int)c_function_required_args(f) > num_args) ||
 	  ((int)c_function_all_args(f) < num_args))
 	break;
@@ -65296,8 +66196,7 @@ static int unknown_all_s_ex(s7_scheme *sc, s7_pointer f)
 	{
 	  annotate_args(sc, cdr(code), sc->envir);
 	  return(fixup_unknown_op(sc, code, f, hop + ((is_safe_closure(f)) ? OP_SAFE_CLOSURE_ALL_X : 
-						      ((is_null(cdr(closure_body(f)))) ? OP_CLOSURE_ALL_S_P : 
-						       OP_CLOSURE_ALL_S))));
+						      ((is_null(cdr(closure_body(f)))) ? OP_CLOSURE_ALL_S_P : OP_CLOSURE_ALL_S))));
 	}
       break;
 
@@ -65317,10 +66216,10 @@ static int unknown_all_s_ex(s7_scheme *sc, s7_pointer f)
   return(fall_through);
 }
 
-static int unknown_a_ex(s7_scheme *sc, s7_pointer f)
+static int32_t unknown_a_ex(s7_scheme *sc, s7_pointer f)
 {
   s7_pointer code;
-  int hop;
+  int32_t hop;
 
   code = sc->code;
   hop = (is_immutable_symbol(car(code))) ? 1 : 0;
@@ -65334,11 +66233,10 @@ static int unknown_a_ex(s7_scheme *sc, s7_pointer f)
     {
     case T_C_FUNCTION:
     case T_C_RST_ARGS_FUNCTION:
-    case T_C_FUNCTION_STAR: 
       if ((c_function_required_args(f) > 1) ||
 	  (c_function_all_args(f) == 0))
 	break;
-      
+
     case T_C_OPT_ARGS_FUNCTION:
     case T_C_ANY_ARGS_FUNCTION:
       set_optimize_op(code, hop + ((is_safe_procedure(f)) ? OP_SAFE_C_A : OP_C_A));
@@ -65351,7 +66249,7 @@ static int unknown_a_ex(s7_scheme *sc, s7_pointer f)
 	  (closure_arity_to_int(sc, f) == 1))
 	{
 	  if (is_safe_closure(f))
-	    set_optimize_op(code, hop + (OP_SAFE_CLOSURE_A + ((is_local_symbol(code)) ? 2 : 0)));
+	    set_optimize_op(code, hop + (OP_SAFE_CLOSURE_A + ((is_local_symbol(code)) ? ((is_null(cdr(closure_body(f)))) ? 4 : 2) : 0)));
 	  else 
 	    {
 	      set_optimize_op(code, hop + OP_CLOSURE_A);
@@ -65397,15 +66295,17 @@ static int unknown_a_ex(s7_scheme *sc, s7_pointer f)
     case T_GOTO:       return(fixup_unknown_op(sc, code, f, hop + OP_GOTO_A));
       
     default:
+      /* macro, continuation */
       break;
     }
-  return(fall_through);
+  return(fixup_unknown_op(sc, code, f, OP_S_A)); /* closure with methods etc */
+  /* return(fall_through); */
 }
 
-static int unknown_aa_ex(s7_scheme *sc, s7_pointer f)
+static int32_t unknown_aa_ex(s7_scheme *sc, s7_pointer f)
 {
   s7_pointer code;
-  int hop;
+  int32_t hop;
   /* fprintf(stderr, "unknown_aa: %d %s %s\n", type(f), DISPLAY(f), DISPLAY(sc->code)); */
   
   code = sc->code;
@@ -65417,7 +66317,6 @@ static int unknown_aa_ex(s7_scheme *sc, s7_pointer f)
     {
     case T_C_FUNCTION:
     case T_C_RST_ARGS_FUNCTION:
-    case T_C_FUNCTION_STAR: 
       if ((c_function_required_args(f) > 2) ||
 	  (c_function_all_args(f) < 2))
 	break;
@@ -65455,10 +66354,10 @@ static int unknown_aa_ex(s7_scheme *sc, s7_pointer f)
   return(fall_through);
 }
 
-static int unknown_all_x_ex(s7_scheme *sc, s7_pointer f)
+static int32_t unknown_all_x_ex(s7_scheme *sc, s7_pointer f)
 {
   s7_pointer code;
-  int num_args, hop;
+  int32_t num_args, hop;
 
   code = sc->code;
   hop = (is_immutable_symbol(car(code))) ? 1 : 0;
@@ -65467,7 +66366,7 @@ static int unknown_all_x_ex(s7_scheme *sc, s7_pointer f)
 #if DEBUGGING && 0
   {
     s7_pointer p;
-    int i;
+    int32_t i;
     for (i = 1, p = cdr(code); is_pair(p); i++, p = cdr(p))
       if (!has_all_x(p))
 	{
@@ -65481,7 +66380,6 @@ static int unknown_all_x_ex(s7_scheme *sc, s7_pointer f)
     {
     case T_C_FUNCTION:
     case T_C_RST_ARGS_FUNCTION:
-    case T_C_FUNCTION_STAR: 
       if (((int)c_function_required_args(f) > num_args) ||
 	  ((int)c_function_all_args(f) < num_args))
 	break;
@@ -65563,7 +66461,7 @@ static void unwind_input_ex(s7_scheme *sc)
     sc->value = splice_in_values(sc, multiple_value(sc->value));
 }
 
-static int dynamic_wind_ex(s7_scheme *sc)
+static int32_t dynamic_wind_ex(s7_scheme *sc)
 {
   if (dynamic_wind_state(sc->code) == DWIND_INIT)
     {
@@ -65599,7 +66497,7 @@ static int dynamic_wind_ex(s7_scheme *sc)
   return(goto_START);
 }
 
-static int read_s_ex(s7_scheme *sc)
+static int32_t read_s_ex(s7_scheme *sc)
 {
   /* another lint opt */
   s7_pointer port, code;
@@ -65666,7 +66564,7 @@ static void eval_string_1_ex(s7_scheme *sc)
   sc->code = sc->value;
 }
 
-static int string_a_ex(s7_scheme *sc)
+static int32_t string_a_ex(s7_scheme *sc)
 {
   s7_int index;
   s7_pointer s, x, code;
@@ -65697,7 +66595,7 @@ static int string_a_ex(s7_scheme *sc)
   return(goto_START);
 }
 
-static int vector_a_ex(s7_scheme *sc)
+static int32_t vector_a_ex(s7_scheme *sc)
 {
   s7_pointer v, x, code;
 
@@ -65718,7 +66616,9 @@ static int vector_a_ex(s7_scheme *sc)
 	  if ((index < vector_length(v)) &&
 	      (index >= 0))
 	    {
-	      sc->value = vector_getter(v)(sc, v, index);
+	      if (is_float_vector(v))
+		sc->value = make_real(sc, float_vector_element(v, index));
+	      else sc->value = vector_getter(v)(sc, v, index);
 	      return(goto_START);
 	    }
 	}
@@ -65727,6 +66627,28 @@ static int vector_a_ex(s7_scheme *sc)
   return(goto_START);
 }
 
+static int32_t constant_vector_a_ex(s7_scheme *sc)
+{
+  s7_pointer v, x, code;
+
+  code = sc->code;
+  v = local_symbol_value(car(code));
+  x = c_call(cdr(code))(sc, cadr(code));
+  if (s7_is_integer(x))
+    {
+      s7_int index;
+      index = s7_integer(x);
+      if ((index < vector_length(v)) &&
+	  (index >= 0))
+	{
+	  sc->value = vector_element(v, index);
+	  return(goto_START);
+	}
+    }
+  sc->value = vector_ref_1(sc, v, set_plist_1(sc, x));
+  return(goto_START);
+}
+
 static void increment_1_ex(s7_scheme *sc)
 {
   /* ([set!] ctr (+ ctr 1)) */
@@ -65836,7 +66758,7 @@ static void set_pws_ex(s7_scheme *sc)
 
 static void apply_c_function(s7_scheme *sc) 	                    /* -------- C-based function -------- */
 {
-  unsigned int len;
+  uint32_t len;
   len = safe_list_length(sc, sc->args);
   if (len < c_function_required_args(sc->code))
     s7_error(sc, sc->wrong_number_of_args_symbol, set_elist_3(sc, sc->not_enough_arguments_string, sc->code, sc->args));
@@ -65847,7 +66769,7 @@ static void apply_c_function(s7_scheme *sc) 	                    /* -------- C-b
 
 static void apply_c_opt_args_function(s7_scheme *sc)                /* -------- C-based function that has n optional arguments -------- */
 {
-  unsigned int len;
+  uint32_t len;
   len = safe_list_length(sc, sc->args);
   if (c_function_all_args(sc->code) < len)
     s7_error(sc, sc->wrong_number_of_args_symbol, set_elist_3(sc, sc->too_many_arguments_string, sc->code, sc->args));
@@ -65856,7 +66778,7 @@ static void apply_c_opt_args_function(s7_scheme *sc)                /* --------
 
 static void apply_c_rst_args_function(s7_scheme *sc)                /* -------- C-based function that has n required args, then any others -------- */
 {
-  unsigned int len;
+  uint32_t len;
   len = safe_list_length(sc, sc->args);
   if (len < c_function_required_args(sc->code))
     s7_error(sc, sc->wrong_number_of_args_symbol, set_elist_3(sc, sc->not_enough_arguments_string, sc->code, sc->args));
@@ -65869,14 +66791,10 @@ static void apply_c_any_args_function(s7_scheme *sc)                /* --------
   sc->value = c_function_call(sc->code)(sc, sc->args);
 }
 
-static void apply_c_function_star(s7_scheme *sc)                    /* -------- C-based function with defaults (lambda*) -------- */
-{
-  sc->value = c_function_call(sc->code)(sc, set_c_function_call_args(sc));
-}
-
 static void apply_c_macro(s7_scheme *sc)  	                    /* -------- C-based macro -------- */
 {
-  int len;
+  int32_t len;
+  /* fprintf(stderr, "apply_c_macro: args: %s %s\n", DISPLAY(sc->args), type_name(sc, car(sc->args), NO_ARTICLE)); */
   len = s7_list_length(sc, sc->args);
   
   if (len < (int)c_macro_required_args(sc->code))
@@ -65885,7 +66803,9 @@ static void apply_c_macro(s7_scheme *sc)  	                    /* -------- C-bas
   if ((int)c_macro_all_args(sc->code) < len)
     s7_error(sc, sc->wrong_number_of_args_symbol, set_elist_3(sc, sc->too_many_arguments_string, sc->code, sc->args));
   
+  /* fprintf(stderr, "code: %s, args: %s\n", DISPLAY(sc->code), DISPLAY(sc->args)); */
   sc->code = c_macro_call(sc->code)(sc, sc->args);
+  /* fprintf(stderr, "  code: %s\n", DISPLAY(sc->code)); */
   if (is_multiple_value(sc->code)) /* can this happen? s7_values splices before returning, and `(values ...) is handled later */
     {
       push_stack(sc, OP_EVAL_MACRO_MV, sc->nil, cdr(sc->code));
@@ -65895,7 +66815,7 @@ static void apply_c_macro(s7_scheme *sc)  	                    /* -------- C-bas
 
 static void apply_syntax(s7_scheme *sc)                            /* -------- syntactic keyword as applicable object -------- */
 {                                                                  /* current reader-cond macro uses this via (map quote ...) */
-  int len;                                                         /*    ((apply lambda '((x) (+ x 1))) 4) */
+  int32_t len;                                                         /*    ((apply lambda '((x) (+ x 1))) 4) */
   if (is_pair(sc->args))
     {
       len = s7_list_length(sc, sc->args);
@@ -65959,15 +66879,18 @@ static void apply_string(s7_scheme *sc)                            /* -------- s
 	   set_elist_3(sc, (is_null(sc->args)) ? sc->not_enough_arguments_string : sc->too_many_arguments_string, sc->code, sc->args));
 }
 
-static int apply_pair(s7_scheme *sc)                              /* -------- list as applicable object -------- */
+static int32_t apply_pair(s7_scheme *sc)                              /* -------- list as applicable object -------- */
 {
   if (is_multiple_value(sc->code))                                  /* ((values 1 2 3) 0) */
     {
       /* car of values can be anything, so conjure up a new expression, and apply again */
       sc->x = multiple_value(sc->code);                             /* ((values + 1 2) 3) */
       sc->code = car(sc->x);
-      if (!is_proper_list(sc, cdr(sc->x)))
-	s7_error(sc, sc->syntax_error_symbol, set_elist_2(sc, make_string_wrapper(sc, "values arglist is a dotted list: ~A"), sc->x));
+#if 0
+      /* this can't happen? */
+      if (!s7_is_proper_list(sc, cdr(sc->x)))
+	s7_error(sc, sc->syntax_error_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "values arglist is a dotted list: ~A"), sc->x));
+#endif
       sc->args = s7_append(sc, cdr(sc->x), sc->args);
       sc->x = sc->nil;
       return(goto_APPLY);
@@ -66011,7 +66934,7 @@ static void apply_iterator(s7_scheme *sc)                          /* -------- i
 static void apply_lambda(s7_scheme *sc)                            /* -------- normal function (lambda), or macro -------- */
 {             /* load up the current args into the ((args) (lambda)) layout [via the current environment] */
   s7_pointer x, z, e;
-  unsigned long long int id;
+  uint64_t id;
   e = sc->envir;
   id = let_id(e);
   for (x = closure_args(sc->code), z = _TLst(sc->args); is_pair(x); x = cdr(x)) /* closure_args can be a symbol, for example */
@@ -66071,8 +66994,7 @@ static s7_pointer lambda_star_argument_set_value(s7_scheme *sc, s7_pointer sym,
 	/* x is our binding (symbol . value) */
 	if (is_not_checked_slot(x))
 	  set_checked_slot(x); /* this is a special use of this bit, I think */
-	else return(s7_error(sc, sc->wrong_type_arg_symbol,
-			     set_elist_4(sc, make_string_wrapper(sc, "~A: parameter set twice, ~S in ~S"), closure_name(sc, sc->code), sym, sc->args)));
+	else return(s7_error(sc, sc->wrong_type_arg_symbol, set_elist_4(sc, parameter_set_twice_string, closure_name(sc, sc->code), sym, sc->args)));
 	slot_set_value(x, val);
 	return(val);
       }
@@ -66141,7 +67063,7 @@ static s7_pointer lambda_star_set_args(s7_scheme *sc)
 	      s7_pointer sym;
 	      if (!is_pair(cdr(lx)))
 		return(s7_error(sc, sc->wrong_type_arg_symbol,
-				set_elist_4(sc, make_string_wrapper(sc, "~A: keyword argument's value is missing: ~S in ~S"),
+				set_elist_4(sc, s7_make_string_wrapper(sc, "~A: keyword argument's value is missing: ~S in ~S"),
 					    closure_name(sc, code), lx, args)));
 	      sym = keyword_symbol(car_lx);
 	      
@@ -66162,7 +67084,7 @@ static s7_pointer lambda_star_set_args(s7_scheme *sc)
 		  else
 		    {
 		      return(s7_error(sc, sc->wrong_type_arg_symbol,
-				      set_elist_4(sc, make_string_wrapper(sc, "~A: unknown key: ~S in ~S"),
+				      set_elist_4(sc, s7_make_string_wrapper(sc, "~A: unknown key: ~S in ~S"),
 						  closure_name(sc, code), lx, args)));
 		    }
 		}
@@ -66207,7 +67129,7 @@ static s7_pointer lambda_star_set_args(s7_scheme *sc)
 		  if ((!is_keyword(car(lx))) ||     /* ((lambda* (a :allow-other-keys) a) :a 1 :b 2 3) */
 		      (!is_pair(cdr(lx))))          /* ((lambda* (a :allow-other-keys) a) :a 1 :b) */
 		    return(s7_error(sc, sc->wrong_type_arg_symbol,
-				    set_elist_3(sc, make_string_wrapper(sc, "~A: not a key/value pair: ~S"), closure_name(sc, code), lx)));
+				    set_elist_3(sc, s7_make_string_wrapper(sc, "~A: not a key/value pair: ~S"), closure_name(sc, code), lx)));
 		  /* errors not caught?
 		   *    ((lambda* (a :allow-other-keys) a) :a 1 :a 2)
 		   *    ((lambda* (:allow-other-keys ) #f) :b :a :a :b)
@@ -66220,7 +67142,7 @@ static s7_pointer lambda_star_set_args(s7_scheme *sc)
   return(sc->nil);
 }
 
-static int lambda_star_default(s7_scheme *sc)
+static int32_t lambda_star_default(s7_scheme *sc)
 {
   while (true)
     {
@@ -66287,7 +67209,7 @@ static int lambda_star_default(s7_scheme *sc)
   return(fall_through);
 }
 
-static int apply_lambda_star(s7_scheme *sc) 	                  /* -------- define* (lambda*) -------- */
+static int32_t apply_lambda_star(s7_scheme *sc) 	                  /* -------- define* (lambda*) -------- */
 {
   /* to check for and fixup unset args from defaults, we need to traverse the slots in left-to-right order
    *   but they are stored backwards in the environment, so use pending_value as a back-pointer.
@@ -66361,7 +67283,7 @@ static int apply_lambda_star(s7_scheme *sc) 	                  /* -------- defin
 }
 
 
-static void apply_continuation(s7_scheme *sc)	                  /* -------- continuation ("call/cc") -------- */
+static inline void apply_continuation(s7_scheme *sc)               /* -------- continuation ("call/cc") -------- */
 {
   if (!call_with_current_continuation(sc))
     {
@@ -66379,7 +67301,7 @@ static void apply_c_object(s7_scheme *sc)                          /* -------- a
 
 /* -------------------------------------------------------------------------------- */
 
-static int define1_ex(s7_scheme *sc)
+static int32_t define1_ex(s7_scheme *sc)
 {	  
   /* sc->code is the symbol being defined, sc->value is its value
    *   if sc->value is a closure, car is of the form ((args...) body...)
@@ -66549,17 +67471,6 @@ static s7_pointer g_profile_filename(s7_scheme *sc, s7_pointer args)
 #endif
 
 
-#define unsafe_closure_2(Sc, Arg1, Arg2) \
-{ \
-  s7_pointer Code, Args, A1, A2; A1 = Arg1; A2 = Arg2; \
-  check_stack_size(Sc); \
-  Code = opt_lambda(Sc->code); \
-  Args = closure_args(Code); \
-  new_frame_with_two_slots(Sc, closure_let(Code), Sc->envir, car(Args), A1, cadr(Args), A2); \
-  Sc->code = closure_body(Code); \
-}
-
-
 /* -------------------------------- eval -------------------------------- */
 
 #if WITH_GCC
@@ -66644,9 +67555,6 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
       
     START_WITHOUT_POP_STACK:
       /* fprintf(stderr, "%s (%d) %s\n", op_names[sc->op], (int)(sc->op), DISPLAY_80(sc->code)); */
-#if SHOW_DEBUG_HISTORY
-      add_debug_history((char *)op_names[sc->op]);
-#endif
 #if WITH_PROFILE
       profile_at_start = sc->code;
       profile(sc, sc->code);
@@ -66672,7 +67580,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	   */
 	  
 	  if (port_is_closed(sc->input_port))
-	    return(s7_error(sc, sc->read_error_symbol, set_elist_1(sc, make_string_wrapper(sc, "our input port got clobbered!"))));
+	    return(s7_error(sc, sc->read_error_symbol, set_elist_1(sc, s7_make_string_wrapper(sc, "our input port got clobbered!"))));
 	  
 	  sc->tok = token(sc);
 	  switch (sc->tok)
@@ -66682,7 +67590,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		/* (eval-string "'a ; b") gets here with 'a -> a, so we need to squelch the pending eval.
 		 *   another approach would read-ahead in eval_string_1_ex, but this seems less messy.
 		 */
-		int top;
+		int32_t top;
 		top = s7_stack_top(sc) - 1;
 		if (stack_op(sc->stack, top) == OP_EVAL_STRING_1)
 		  vector_element(sc->stack, top) = (s7_pointer)OP_EVAL_STRING_2;
@@ -67010,6 +67918,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	    s7_pointer x, y, iterators, saved_args;
 	    iterators = car(sc->args);
 	    saved_args = cdr(sc->args);
+	    /* fprintf(stderr, "op_for_each: %s %s\n", DISPLAY(iterators), DISPLAY(saved_args)); */
 	    for (x = saved_args, y = iterators; is_pair(x); x = cdr(x), y = cdr(y))
 	      {
 		set_car(x, s7_iterate(sc, car(y)));
@@ -67021,10 +67930,12 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		    goto START;
 		  }
 	      }
+	    /* fprintf(stderr, "push %s %s\n", DISPLAY(sc->args), DISPLAY(sc->code)); */
 	    push_stack(sc, OP_FOR_EACH, sc->args, sc->code);
 	    sc->args = saved_args;
 	    if (needs_copied_args(sc->code))
 	      sc->args = copy_list(sc, sc->args);
+	    /* fprintf(stderr, "goto apply: %s %s\n", DISPLAY(sc->code), DISPLAY(sc->args)); */
 	    goto APPLY;
 	  }
 	  
@@ -67108,8 +68019,8 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		let_set_slots(counter_let(c), counter_slots(c));
 		sc->envir = old_frame_with_slot(sc, counter_let(c), arg);
 	      }
-	    sc->code = _TPair(closure_body(code));
-	    goto BEGIN1;
+	    sc->code = car(closure_body(code));
+	    goto EVAL;
 	  }
 
 	  
@@ -67201,7 +68112,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	case OP_DO_NO_VARS:
 	  {
 	    s7_pointer p;
-	    int i;
+	    int32_t i;
 	    sc->pc = 0;
 	    for (i = 0, p = cddr(sc->code); is_pair(p); i++, p = cdr(p))
 	      if (!cell_optimize(sc, p))
@@ -67236,7 +68147,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		      {
 			while (true)
 			  {
-			    int k;
+			    int32_t k;
 			    do_all_x_end(end);
 			    sc->pc = -1;
 			    for (k = 0; k < i; k++)
@@ -67328,7 +68239,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		    sc->pc = 0;
 		    sc->opts[0]->v7.fp(sc->opts[0]);
 		    update_steppers(sc);
-		    /* TODO: get the stepper and handle direct in more than just +1 (opt_let|dotimes) */
+		    /* TODO: get the stepper and handle direct in more than just +1 (do_let|dotimes) */
 		    do_all_x_end(end);
 		  }
 	      }
@@ -67342,7 +68253,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	SAFE_DOTIMES:
 	case OP_SAFE_DOTIMES:
 	  {
-	    int choice;
+	    int32_t choice;
 	    choice = safe_dotimes_ex(sc);
 	    if (choice == goto_SAFE_DO_END_CLAUSES) goto SAFE_DO_END_CLAUSES;
 	    if (choice == goto_BEGIN1) goto BEGIN1;
@@ -67409,7 +68320,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	SAFE_DO:
 	case OP_SAFE_DO:
 	  {
-	    int choice;
+	    int32_t choice;
 	    choice = safe_do_ex(sc);
 	    if (choice == goto_SAFE_DO_END_CLAUSES) goto SAFE_DO_END_CLAUSES;
 	    if (choice == goto_EVAL) goto EVAL;
@@ -67489,7 +68400,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		(is_symbol(cadr(caddr(caar(code))))) && /* caar=(i 0 (+ i 1)), caddr=(+ i 1), so this is apparently checking that the stepf is reasonable? */
 		(is_t_integer(caddr(caddr(caar(code))))))
 	      {
-		int choice;
+		int32_t choice;
 		choice = simple_do_ex(sc, code);
 		if (choice == goto_START) goto START;
 		if (choice == goto_BEGIN1) goto BEGIN1;
@@ -67541,7 +68452,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	DOTIMES_P:
 	case OP_DOTIMES_P:
 	  {
-	    int choice;
+	    int32_t choice;
 	    choice = dotimes_p_ex(sc);
 	    if (choice == goto_DO_END_CLAUSES) goto DO_END_CLAUSES;
 	    if (choice == goto_DO_UNCHECKED) goto DO_UNCHECKED;
@@ -67610,7 +68521,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	DOX:
 	case OP_DOX:
 	  {
-	    int choice;
+	    int32_t choice;
 	    choice = dox_ex(sc);
 	    if (choice == goto_DO_END_CLAUSES) goto DO_END_CLAUSES;
 	    if (choice == goto_SAFE_DO_END_CLAUSES) goto SAFE_DO_END_CLAUSES;
@@ -67841,7 +68752,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	      if ((car(sc->code) == sc->feed_to_symbol) &&
 		  (s7_symbol_value(sc, sc->feed_to_symbol) == sc->undefined))
 		{
-		  int res;
+		  int32_t res;
 		  res = feed_to(sc);
 		  if (res == goto_START) goto START;
 		  if (res == goto_APPLY) goto APPLY;
@@ -67870,7 +68781,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	      if ((car(sc->code) == sc->feed_to_symbol) &&
 		  (s7_symbol_value(sc, sc->feed_to_symbol) == sc->undefined))
 		{
-		  int res;
+		  int32_t res;
 		  res = feed_to(sc);
 		  if (res == goto_START) goto START;
 		  if (res == goto_APPLY) goto APPLY;
@@ -67891,7 +68802,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  
 	  /* -------------------------------- BEGIN -------------------------------- */
 	case OP_BEGIN:
-	  if (!is_proper_list(sc, sc->code))       /* proper list includes () */
+	  if (!s7_is_proper_list(sc, sc->code))    /* proper list includes () */
 	    eval_error(sc, "unexpected dot? ~A", sc->code);
 
 	  if ((!is_null(sc->code)) &&              /* so check for it here */
@@ -67906,7 +68817,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	      sc->value = sc->nil;
 	      goto START;
 	    }
-	  
+
 	case OP_BEGIN1:
 	  if ((sc->begin_hook) && (call_begin_hook(sc))) return(sc->F);
 	BEGIN1:
@@ -67919,7 +68830,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	EVAL:
 	case OP_EVAL:
 	  /* main part of evaluation
-	   *   at this point, it's sc->code we care about; sc->args is not relevant.
+	   *   at this point, it's sc->code we care about; sc->args is not set yet.
 	   */
 	  /* fprintf(stderr, "    eval: %s\n", DISPLAY_80(sc->code)); */
 
@@ -67944,9 +68855,6 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	    OPT_EVAL:
 	     /* fprintf(stderr, "opt_eval: %s %s\n", opt_names[optimize_op(sc->code)], DISPLAY_80(sc->code)); */
 
-#if SHOW_DEBUG_HISTORY
-	      add_debug_history((char *)opt_names[optimize_op(sc->code)]);
-#endif
 #if WITH_PROFILE
 	      if (sc->code != profile_at_start)
 		profile(sc, sc->code);
@@ -67967,8 +68875,18 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	      switch (optimize_op(code))
 		{
 		  /* -------------------------------------------------------------------------------- */
+		case OP_SAFE_QUOTE:
+		case HOP_SAFE_QUOTE:
+		  /* this is for some very special cases that would otherwise fall into unknown_a->trailers 
+		   *   all_x_eval assumes it is available even if never used here
+		   */
+		  sc->value = cadr(code);
+		  goto START;
+		  
+
 		case OP_SAFE_C_C:
-		  if (!c_function_is_ok(sc, code)) break;  /* break = fall into the "trailers" section where optimizations are cleared */
+		  if (!c_function_is_ok(sc, code)) {if (is_null(cddr(code))) {set_optimize_op(code, OP_S_C); goto OPT_EVAL;} break;}
+		  /* break = fall into the "trailers" section where optimizations are cleared */
 		case HOP_SAFE_C_C:
 		  sc->value = c_call(code)(sc, cdr(code)); /* this includes all safe calls where all args are constants */
 		  goto START;
@@ -67996,21 +68914,21 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  goto START;
 
 		case OP_SAFE_C_S:
-		  if (!c_function_is_ok(sc, code)) break;
+		  if (!c_function_is_ok(sc, code)) {set_optimize_op(code, OP_S_S); goto OPT_EVAL;}
 		case HOP_SAFE_C_S:
 		  set_car(sc->t1_1, find_symbol_unchecked(sc, cadr(code)));
 		  sc->value = c_call(code)(sc, sc->t1_1);
 		  goto START;
 		  
 		case OP_SAFE_C_L:
-		  if (!c_function_is_ok(sc, code)) break;
+		  if (!c_function_is_ok(sc, code)) {set_optimize_op(code, OP_S_S); goto OPT_EVAL;}
 		case HOP_SAFE_C_L:
 		  set_car(sc->t1_1, local_symbol_value(cadr(code)));
 		  sc->value = c_call(code)(sc, sc->t1_1);
 		  goto START;
 		  
 		case OP_SAFE_CAR_S:
-		  if (!c_function_is_ok(sc, code)) break;
+		  if (!c_function_is_ok(sc, code)) {set_optimize_op(code, OP_S_S); goto OPT_EVAL;}
 		case HOP_SAFE_CAR_S:
 		  {
 		    s7_pointer val;
@@ -68020,7 +68938,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  }
 		  
 		case OP_SAFE_CDR_S:
-		  if (!c_function_is_ok(sc, code)) break;
+		  if (!c_function_is_ok(sc, code)) {set_optimize_op(code, OP_S_S); goto OPT_EVAL;}
 		case HOP_SAFE_CDR_S:
 		  {
 		    s7_pointer val;
@@ -68030,7 +68948,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  }
 		  
 		case OP_SAFE_CADR_S:
-		  if (!c_function_is_ok(sc, code)) break;
+		  if (!c_function_is_ok(sc, code)) {set_optimize_op(code, OP_S_S); goto OPT_EVAL;}
 		case HOP_SAFE_CADR_S:
 		  {
 		    s7_pointer val;
@@ -68040,7 +68958,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  }
 		  
 		case OP_SAFE_IS_PAIR_S:
-		  if (!c_function_is_ok(sc, code)) break;
+		  if (!c_function_is_ok(sc, code)) {set_optimize_op(code, OP_S_S); goto OPT_EVAL;}
 		case HOP_SAFE_IS_PAIR_S:
 		  {
 		    s7_pointer val;
@@ -68050,7 +68968,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  }
 
 		case OP_SAFE_IS_NULL_S:
-		  if (!c_function_is_ok(sc, code)) break;
+		  if (!c_function_is_ok(sc, code)) {set_optimize_op(code, OP_S_S); goto OPT_EVAL;}
 		case HOP_SAFE_IS_NULL_S:
 		  {
 		    s7_pointer val;
@@ -68060,7 +68978,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  }
 
 		case OP_SAFE_IS_SYMBOL_S:  
-		  if (!c_function_is_ok(sc, code)) break;
+		  if (!c_function_is_ok(sc, code)) {set_optimize_op(code, OP_S_S); goto OPT_EVAL;}
 		case HOP_SAFE_IS_SYMBOL_S:
 		  {
 		    s7_pointer val;
@@ -68082,6 +69000,18 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		    goto START;
 		  }
 		  
+		case OP_SAFE_C_LL:
+		  if (!c_function_is_ok(sc, code)) break;
+		case HOP_SAFE_C_LL:
+		  {
+		    s7_pointer args;
+		    args = cdr(code);
+		    set_car(sc->t2_1, local_symbol_value(car(args)));
+		    set_car(sc->t2_2, local_symbol_value(cadr(args)));
+		    sc->value = c_call(code)(sc, sc->t2_1);
+		    goto START;
+		  }
+		  
 		case OP_SAFE_C_ALL_S:
 		  if (!c_function_is_ok(sc, code)) break;
 		case HOP_SAFE_C_ALL_S:
@@ -68454,11 +69384,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case OP_SAFE_C_A:
 		  if (!c_function_is_ok(sc, code)) 
 		    {
-		      s7_pointer new_func;
-		      /* need unknown_all_x|s etc
-		       * need to be sure all all_x unknowns are pre-annotated
-		       */
-		      if (unknown_a_ex(sc, new_func = find_symbol_checked(sc, car(code))) == goto_OPT_EVAL)
+		      if (unknown_a_ex(sc, find_symbol_checked(sc, car(code))) == goto_OPT_EVAL)
 			{
 			  if (op_no_hop(sc->code) == OP_SAFE_C_A)
 			    {
@@ -68466,9 +69392,9 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 			      sc->value = c_call(code)(sc, sc->a1_1);
 			      goto START;
 			    }
-			  goto OPT_EVAL;
 			}
-		      break;
+		      else set_optimize_op(code, OP_S_A);
+		      goto OPT_EVAL;
 		    }
 		case HOP_SAFE_C_A:
 		  set_car(sc->a1_1, c_call(cdr(code))(sc, cadr(code)));
@@ -68993,7 +69919,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		    s7_pointer args, val;
 		    args = cdr(code);
 		    val = find_symbol_unchecked(sc, opt_sym1(args));
-		    set_car(sc->t2_2, find_symbol_unchecked(sc, opt_sym2(args)));
+		    set_car(sc->t2_2, find_symbol_unchecked(sc, caddr(cadr(args)))); /* opt_sym2(args) */
 		    set_car(sc->t2_1, val);
 		    set_car(sc->t2_2, c_call(cadr(args))(sc, sc->t2_1));
 		    set_car(sc->t2_1, car(args));
@@ -69175,7 +70101,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  {
 		    /* (* s (f3 (f1 a b) (f2 c d))) */
 		    s7_pointer args, op1, op2;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    
 		    args = caddr(code);
@@ -69308,7 +70234,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_SAFE_C_opSq_S:
 		  {
 		    s7_pointer args;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    args = cdr(code);
 		    set_car(sc->t1_1, find_symbol_unchecked(sc, cadr(car(args))));
@@ -69421,7 +70347,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_SAFE_C_opSq_opSq:
 		  {
 		    s7_pointer args;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    args = cdr(code);
 		    set_car(sc->t1_1, find_symbol_unchecked(sc, cadr(car(args))));
@@ -69439,7 +70365,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_SAFE_C_opCq_opCq:
 		  {
 		    s7_pointer args;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    args = cdr(code);
 		    sc->t_temps[tx] = c_call(car(args))(sc, cdr(car(args)));
@@ -69454,7 +70380,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_SAFE_C_opSq_opCq:
 		  {
 		    s7_pointer args;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    args = cdr(code);
 		    set_car(sc->t1_1, find_symbol_unchecked(sc, cadr(car(args))));
@@ -69471,7 +70397,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_SAFE_C_opCq_opSq:
 		  {
 		    s7_pointer args;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    args = cdr(code);
 		    sc->t_temps[tx] = c_call(car(args))(sc, cdr(car(args)));
@@ -69487,7 +70413,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_SAFE_C_opCq_opSSq:
 		  {
 		    s7_pointer args;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    /* code: (/ (+ bn 1) (+ bn an)) */
 		    args = cdr(code);
@@ -69506,7 +70432,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_SAFE_C_opSCq_opSCq:
 		  {
 		    s7_pointer args, val2;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    args = cdr(code);
 		    val2 = find_symbol_unchecked(sc, cadadr(args));
@@ -69526,7 +70452,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_SAFE_C_opSSq_opSSq:
 		  {
 		    s7_pointer args, val3, val4;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    args = cdr(code);
 		    val3 = find_symbol_unchecked(sc, caddr(car(args)));
@@ -69548,7 +70474,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_SAFE_C_opSSq_opSq:
 		  {
 		    s7_pointer args, val3;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    args = cdr(code);
 		    val3 = find_symbol_unchecked(sc, caddr(car(args)));
@@ -69567,7 +70493,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_SAFE_C_opSq_opSSq:
 		  {
 		    s7_pointer args;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    args = cdr(code);
 		    set_car(sc->t1_1, find_symbol_unchecked(sc, cadr(car(args))));
@@ -69585,7 +70511,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_SAFE_C_opSSq_opCq:
 		  {
 		    s7_pointer arg1, arg2, val3;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    arg1 = cadr(code);
 		    arg2 = caddr(code);
@@ -69611,34 +70537,20 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 
 		  /* -------------------------------------------------------------------------------- */
 		case OP_C_S:
-		  if (!c_function_is_ok(sc, code)) break;
+		  if (!c_function_is_ok(sc, code)) {set_optimize_op(code, OP_S_S); goto OPT_EVAL;}
 		case HOP_C_S:
 		  sc->args = list_1(sc, find_symbol_unchecked(sc, cadr(code)));
 		  sc->value = c_call(code)(sc, sc->args);
 		  goto START;
 		  
 		case OP_READ_S:
-		  if (!c_function_is_ok(sc, code)) break;
+		  if (!c_function_is_ok(sc, code)) {set_optimize_op(code, OP_S_S); goto OPT_EVAL;}
 		case HOP_READ_S:
 		  read_s_ex(sc);
 		  goto START;
 
 		case OP_C_A:
-		  if (!c_function_is_ok(sc, code)) 
-		    {
-		      s7_pointer new_func;
-		      if (unknown_a_ex(sc, new_func = find_symbol_checked(sc, car(code))) == goto_OPT_EVAL)
-			{
-			  if (op_no_hop(sc->code) == OP_C_A)
-			    {
-			      sc->args = list_1(sc, c_call(cdr(code))(sc, cadr(code)));
-			      sc->value = c_call(code)(sc, sc->args);
-			      goto START;
-			    }
-			  goto OPT_EVAL;
-			}
-		      break;
-		    }
+		  if (!c_function_is_ok(sc, code)) {set_optimize_op(code, OP_S_A); goto OPT_EVAL;}
 		case HOP_C_A:
 		  sc->args = list_1(sc, c_call(cdr(code))(sc, cadr(code)));
 		  sc->value = c_call(code)(sc, sc->args);
@@ -69700,8 +70612,8 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  if (!c_function_is_ok(sc, code)) break;
 		case HOP_APPLY_SS:
 		  sc->code = find_symbol_unchecked(sc, cadr(code)); /* global search here was slower */
-		  sc->args = find_symbol_unchecked(sc, opt_sym2(code));
-		  if (!is_proper_list(sc, sc->args))        /* (apply + #f) etc */
+		  sc->args = find_symbol_unchecked(sc, opt_sym2(code));  /* is this right if code=macro? */
+		  if (!s7_is_proper_list(sc, sc->args))             /* (apply + #f) etc */
 		    return(apply_list_error(sc, sc->args));
 		  if (needs_copied_args(sc->code))
 		    sc->args = copy_list(sc, sc->args);
@@ -69725,7 +70637,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_C_S_opCq:
 		  {
 		    s7_pointer args, val;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    args = cdr(code);
 		    sc->t_temps[tx] = find_symbol_unchecked(sc, car(args));
@@ -69786,7 +70698,6 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		     *    code is (catch #t (lambda () ....) (lambda args ....))
 		     */
 		    s7_pointer p, f, args, tag;
-		    
 		    args = cddr(code);
 		    
 		    /* defer making the error lambda */
@@ -69822,7 +70733,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		    s7_pointer p;
 		    new_frame(sc, sc->envir, sc->envir);
 		    /* catch_all needs 3 pieces of info: the goto/op locs and the result
-		     *   the locs are unsigned ints, so this fits in the new frame's trailing fields.
+		     *   the locs are uint32_ts, so this fits in the new frame's trailing fields.
 		     * we could store the result in sc->args, push_stacked below and recovered
 		     *   in catch_all_function, and have a free list of empty lets, holding
 		     *   sc->capture_let_counter in the result slot.  But there's no gain in
@@ -69852,8 +70763,96 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		    sc->code = _TPair(car(opt_pair1(cdr(code))));
 		    goto OPT_EVAL_CHECKED;
 		  }
-		  
-		  
+
+
+		  /* -------------------------------------------------------------------------------- */
+		  /* unknown* fallback on these
+		   */
+		case OP_S:
+		case HOP_S:
+		  sc->code = find_symbol_unchecked(sc, car(code));
+		  sc->args = sc->nil;
+		  goto APPLY;
+
+		case OP_S_C:
+		case HOP_S_C:
+		  sc->code = find_symbol_unchecked(sc, car(code));
+		  if (dont_eval_args(sc->code))
+		    sc->args = cdr(code);
+		  else 
+		    {
+		      sc->args = sc->t1_1;
+		      set_car(sc->t1_1, cadr(code));
+		    }
+		  if (needs_copied_args(sc->code))
+		    sc->args = copy_list(sc, sc->args);
+		  goto APPLY;
+	      
+		case OP_S_S:
+		case HOP_S_S:
+		  sc->code = find_symbol_unchecked(sc, car(code));
+		  if (dont_eval_args(sc->code))
+		    sc->args = cdr(code);
+		  else 
+		    {
+		      sc->args = sc->t1_1;
+		      set_car(sc->t1_1, find_symbol_unchecked(sc, cadr(code)));
+		    }
+		  if (needs_copied_args(sc->code))
+		    sc->args = copy_list(sc, sc->args);
+		  goto APPLY;
+	      
+		case OP_S_A:
+		case HOP_S_A:
+		  /* fprintf(stderr, "s_a: %s\n", DISPLAY(code)); */
+		  sc->code = find_symbol_unchecked(sc, car(code));
+		  if (dont_eval_args(sc->code))
+		    sc->args = cdr(code);
+		  else 
+		    {
+		      set_car(sc->a1_1, c_call(cdr(code))(sc, cadr(code)));
+		      sc->args = sc->a1_1;
+		    }
+		  if (needs_copied_args(sc->code))
+		    sc->args = copy_list(sc, sc->args);
+		  goto APPLY;
+
+
+		case OP_SAFE_C_STAR_A:
+		  if (!c_function_is_ok(sc, code)) break;
+		case HOP_SAFE_C_STAR_A:
+		  set_car(sc->a1_1, c_call(cdr(code))(sc, cadr(code)));
+		  sc->args = sc->a1_1;
+		  sc->code = opt_cfunc(code);
+		  apply_c_function_star(sc);
+		  goto START;
+
+		case OP_SAFE_C_STAR_AA:
+		  if (!c_function_is_ok(sc, code)) break;
+		case HOP_SAFE_C_STAR_AA:
+		  set_car(sc->a2_1, c_call(cdr(code))(sc, cadr(code)));
+		  set_car(sc->a2_2, c_call(cddr(code))(sc, caddr(code)));
+		  sc->args = sc->a2_1;
+		  sc->code = opt_cfunc(code);
+		  apply_c_function_star(sc);
+		  goto START;
+
+		case OP_SAFE_C_STAR_ALL_X:
+		  if (!c_function_is_ok(sc, code)) break;
+		case HOP_SAFE_C_STAR_ALL_X:
+		  {
+		    s7_pointer args, p;
+		    sc->args = safe_list_if_possible(sc, integer(arglist_length(code)));
+		    for (args = cdr(code), p = sc->args; is_pair(args); args = cdr(args), p = cdr(p))
+		      set_car(p, c_call(args)(sc, car(args)));
+		    clear_list_in_use(sc->args);
+		    sc->current_safe_list = 0;
+		    sc->code = opt_cfunc(code);
+		    apply_c_function_star(sc);
+		    goto START;
+		  }
+
+
 		  /* -------------------------------------------------------------------------------- */
 		case OP_THUNK:
 		  if (!closure_is_ok(sc, code, MATCH_UNSAFE_CLOSURE, 0)) {if (unknown_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL; break;}
@@ -69912,13 +70911,6 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  sc->code = _TPair(closure_body(opt_lambda(code)));
 		  goto BEGIN1;
 		  
-		case OP_SAFE_LCLOSURE_L:
-		  set_opt_lambda(code, local_symbol_value(car(code)));		  
-		case HOP_SAFE_LCLOSURE_L:
-		  sc->envir = old_frame_with_slot(sc, closure_let(opt_lambda(code)), local_symbol_value(opt_sym2(code)));
-		  sc->code = _TPair(closure_body(opt_lambda(code)));
-		  goto BEGIN1;
-		  
 		case OP_SAFE_CLOSURE_S_C:
 		  /* here and below the closure has to be the original -- matches are no good */
 		  if (!closure_is_equal(sc, code)) {if (unknown_g_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL; break;}
@@ -69980,6 +70972,13 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  sc->code = _TPair(closure_body(opt_lambda(code)));
 		  goto BEGIN1;
 
+		case OP_SAFE_LCLOSURE_A_P:
+		  set_opt_lambda(code, slot_value(local_slot(car(code))));
+		case HOP_SAFE_LCLOSURE_A_P:
+		  sc->envir = old_frame_with_slot(sc, closure_let(opt_lambda(code)), c_call(cdr(code))(sc, cadr(code)));
+		  sc->code = car(closure_body(opt_lambda(code)));
+		  goto EVAL;
+
 		case OP_SAFE_CLOSURE_A_C:
 		  if (!closure_is_equal(sc, code)) {if (unknown_a_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL; break;}
 		case HOP_SAFE_CLOSURE_A_C:
@@ -70050,7 +71049,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_SAFE_CLOSURE_AA:
 		  {
 		    s7_pointer args, z;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    args = cdr(code);
 		    sc->t_temps[tx] = c_call(args)(sc, car(args));
@@ -70066,7 +71065,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_SAFE_CLOSURE_SAA:
 		  {
 		    s7_pointer args, z;
-		    int tx;
+		    int32_t tx;
 		    tx = next_tx(sc);
 		    args = cddr(code);
 		    sc->t_temps[tx] = c_call(args)(sc, car(args));
@@ -70082,7 +71081,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case HOP_SAFE_CLOSURE_ALL_X:
 		  {
 		    s7_pointer args, p, env, x, z;
-		    unsigned long long int id;
+		    uint64_t id;
 
 		    sc->args = safe_list_if_possible(sc, integer(arglist_length(code)));
 		    for (args = cdr(code), p = sc->args; is_pair(args); args = cdr(args), p = cdr(p))
@@ -70128,7 +71127,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		    val = c_call(cdr(code))(sc, cadr(code));
 		    if (is_keyword(val))
 		      s7_error(sc, sc->wrong_type_arg_symbol,
-			       set_elist_4(sc, make_string_wrapper(sc, "~A: keyword argument's value is missing: ~S in ~S"),
+			       set_elist_4(sc, s7_make_string_wrapper(sc, "~A: keyword argument's value is missing: ~S in ~S"),
 					   closure_name(sc, opt_lambda(code)), val, sc->args));
 		    sc->envir = old_frame_with_slot(sc, closure_let(opt_lambda(code)), val);
 		    /* that sets the first arg to the passed symbol value; now set default values, if any */
@@ -70181,7 +71180,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 			      }
 			    else
 			      s7_error(sc, sc->wrong_type_arg_symbol,
-				       set_elist_4(sc, make_string_wrapper(sc, "~A: unknown keyword argument: ~S in ~S"),
+				       set_elist_4(sc, s7_make_string_wrapper(sc, "~A: unknown keyword argument: ~S in ~S"),
 						   closure_name(sc, opt_lambda(code)), arg1, code));
 			  }
 		      }
@@ -70189,7 +71188,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		      {
 			if (is_keyword(arg2))
 			  s7_error(sc, sc->wrong_type_arg_symbol,
-				   set_elist_4(sc, make_string_wrapper(sc, "~A: keyword argument's value is missing: ~S in ~S"),
+				   set_elist_4(sc, s7_make_string_wrapper(sc, "~A: keyword argument's value is missing: ~S in ~S"),
 					       closure_name(sc, opt_lambda(code)), arg2, code));
 		      }
 		    sc->envir = old_frame_with_two_slots(sc, clet, arg1, arg2);
@@ -70297,6 +71296,26 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  call_with_exit(sc);
 		  goto START;
 		  /* for T_CONTINUATION, set sc->args to list_1(sc, ...) as in goto (and code?), then call_with_current_continuation */
+
+
+		case OP_CLOSURE_ANY_ALL_X:
+		  if (!closure_is_ok(sc, code, MATCH_UNSAFE_CLOSURE, -1)) break;
+		case HOP_CLOSURE_ANY_ALL_X:
+		  {
+		    s7_pointer p, old_args;
+		    check_stack_size(sc);
+		    sc->w = cdr(code);               /* args aren't evaluated yet */
+		    sc->args = make_list(sc, integer(arglist_length(code)), sc->F);
+		    for (p = sc->args, old_args = sc->w; is_pair(p); p = cdr(p), old_args = cdr(old_args))
+		      set_car(p, c_call(old_args)(sc, car(old_args)));
+		    sc->w = sc->nil;
+		    sc->code = opt_lambda(code);
+		    /* fprintf(stderr, "opt: %s %s\n", DISPLAY(sc->code), DISPLAY(closure_args(sc->code))); */
+		    new_frame_with_slot(sc, closure_let(sc->code), sc->envir, closure_args(sc->code), sc->args);
+		    sc->code = _TPair(closure_body(sc->code));
+		    goto BEGIN1;
+		  }
+		  
 		  
 		case OP_CLOSURE_C:
 		  if (!closure_is_ok(sc, code, MATCH_UNSAFE_CLOSURE, 1)) {if (unknown_g_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL; break;}		  
@@ -70315,7 +71334,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  goto EVAL;
 		  
 		case OP_CLOSURE_A:
-		  if (!closure_is_ok(sc, code, MATCH_UNSAFE_CLOSURE, 1)) {if (unknown_a_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL; break;}		  
+		  if (!closure_is_ok(sc, code, MATCH_UNSAFE_CLOSURE, 1)) {if (unknown_a_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL; fprintf(stderr, "closure_a gives up\n"); break;}		  
 		case HOP_CLOSURE_A:
 		  sc->value = c_call(cdr(code))(sc, cadr(code));
 		  check_stack_size(sc);
@@ -70349,8 +71368,17 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case OP_CLOSURE_SS:
 		  if (!closure_is_ok(sc, code, MATCH_UNSAFE_CLOSURE, 2)) {if (unknown_gg_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL; break;}		  
 		case HOP_CLOSURE_SS:
-		  unsafe_closure_2(sc, find_symbol_unchecked(sc, cadr(code)), find_symbol_unchecked(sc, opt_sym2(code)));
-		  goto BEGIN1;
+		  {
+		    s7_pointer f, args;
+		    check_stack_size(sc);
+		    f = opt_lambda(sc->code);
+		    args = closure_args(f);
+		    new_frame_with_two_slots(sc, closure_let(f), sc->envir, 
+					     car(args), find_symbol_unchecked(sc, cadr(code)),
+					     cadr(args), find_symbol_unchecked(sc, opt_sym2(code)));
+		    sc->code = closure_body(f);
+		    goto BEGIN1;
+		  }
 
 		case OP_CLOSURE_SS_P:
 		  if (!closure_is_equal(sc, code)) {if (unknown_gg_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL; break;}		  
@@ -70370,25 +71398,43 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		case OP_CLOSURE_SC:
 		  if (!closure_is_ok(sc, code, MATCH_UNSAFE_CLOSURE, 2)) {if (unknown_gg_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL; break;}		  
 		case HOP_CLOSURE_SC:
-		  unsafe_closure_2(sc, find_symbol_unchecked(sc, cadr(code)), opt_con2(code));
-		  goto BEGIN1;
+		  {
+		    s7_pointer f, args;
+		    check_stack_size(sc);
+		    f = opt_lambda(sc->code);
+		    args = closure_args(f);
+		    new_frame_with_two_slots(sc, closure_let(f), sc->envir, car(args), find_symbol_unchecked(sc, cadr(code)), cadr(args), opt_con2(code));
+		    sc->code = closure_body(f);
+		    goto BEGIN1;
+		  }
 		  
 		case OP_CLOSURE_CS:
 		  if (!closure_is_ok(sc, code, MATCH_UNSAFE_CLOSURE, 2)) {if (unknown_gg_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL; break;}		  
 		case HOP_CLOSURE_CS:
-		  unsafe_closure_2(sc, cadr(code), find_symbol_unchecked(sc, opt_sym2(code)));
-		  goto BEGIN1;
+		  {
+		    s7_pointer f, args;
+		    check_stack_size(sc);
+		    f = opt_lambda(sc->code);
+		    args = closure_args(f);
+		    new_frame_with_two_slots(sc, closure_let(f), sc->envir, car(args), cadr(code), cadr(args), find_symbol_unchecked(sc, opt_sym2(code)));
+		    sc->code = closure_body(f);
+		    goto BEGIN1;
+		  }
 		  
 		case OP_CLOSURE_AA:
 		  if (!closure_is_ok(sc, code, MATCH_UNSAFE_CLOSURE, 2)) {if (unknown_aa_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL; break;}		  
 		case HOP_CLOSURE_AA:
 		  {
-		    s7_pointer args;
-		    int tx;
+		    s7_pointer f, args, a_args;
+		    int32_t tx;
+		    check_stack_size(sc);
 		    tx = next_tx(sc);
-		    args = cdr(code);
-		    sc->t_temps[tx] = c_call(args)(sc, car(args));
-		    unsafe_closure_2(sc, sc->t_temps[tx], c_call(cdr(args))(sc, cadr(args)));
+		    a_args = cdr(code);
+		    sc->t_temps[tx] = c_call(a_args)(sc, car(a_args));
+		    f = opt_lambda(sc->code);
+		    args = closure_args(f);
+		    new_frame_with_two_slots(sc, closure_let(f), sc->envir, car(args), sc->t_temps[tx], cadr(args), c_call(cdr(a_args))(sc, cadr(a_args)));
+		    sc->code = closure_body(f);
 		    goto BEGIN1;
 		  }
 
@@ -70502,14 +71548,14 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  /* -------------------------------------------------------------------------------- */
 		  
 		case OP_CLOSURE_STAR_A:
-		  if (!closure_star_is_ok(sc, code, MATCH_UNSAFE_CLOSURE_STAR, 1)) {if (unknown_a_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL; break;}		  
+		  if (!closure_star_is_ok(sc, code, MATCH_UNSAFE_CLOSURE_STAR, 1)) {if (unknown_a_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL; break;}
 		case HOP_CLOSURE_STAR_A:
 		  {
 		    s7_pointer val, p;
 		    val = c_call(cdr(code))(sc, cadr(code));
 		    if (is_keyword(val))
 		      s7_error(sc, sc->wrong_type_arg_symbol,
-			       set_elist_4(sc, make_string_wrapper(sc, "~A: keyword argument's value is missing: ~S in ~S"),
+			       set_elist_4(sc, s7_make_string_wrapper(sc, "~A: keyword argument's value is missing: ~S in ~S"),
 					   closure_name(sc, opt_lambda(code)), val, code));
 		    sc->args = list_1(sc, val);
 
@@ -70533,7 +71579,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		    /* unsafe_closure_star(sc) */
 		    {
 		      s7_pointer x, z, e;
-		      unsigned long long int id;
+		      uint64_t id;
 		      
 		      new_frame(sc, closure_let(sc->code), sc->envir);
 		      e = sc->envir;
@@ -70634,6 +71680,12 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  if (unknown_a_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL;
 		  break;
 
+		case OP_CVECTOR_A:
+		case HOP_CVECTOR_A:
+		  if (constant_vector_a_ex(sc) == goto_START) goto START;
+		  if (unknown_a_ex(sc, sc->last_function) == goto_OPT_EVAL) goto OPT_EVAL;
+		  break;
+
 		case OP_STRING_A:
 		case HOP_STRING_A:
 		  if (string_a_ex(sc) == goto_START) goto START;
@@ -70654,6 +71706,22 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		    goto START;
 		  }
 		  
+		case OP_CONTINUATION_A:
+		case HOP_CONTINUATION_A:
+		  {
+		    s7_pointer s;
+		    s = find_symbol_unchecked(sc, car(code));
+		    if (!is_continuation(s)) 
+		      {
+			if (unknown_a_ex(sc, s) == goto_OPT_EVAL) goto OPT_EVAL;
+			break;
+		      }
+		    sc->code = s;
+		    sc->args = set_plist_1(sc, c_call(cdr(code))(sc, cadr(code)));
+		    apply_continuation(sc);
+		    goto START;
+		  }
+		  
 		case OP_ITERATE:
 		case HOP_ITERATE:
 		  {
@@ -70738,21 +71806,53 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	      /* there is a problem with this -- if the caller still insists on goto OPT_EVAL, for example,
 	       *   we get here over and over.  (let ((x (list (car y))))...) where list is redefined away.
 	       */
+#if 0
+	      if ((is_optimized(code)) &&
+		  (is_symbol(car(code))))
+		{
+		  s7_pointer val;
+		  val = find_symbol_unchecked(sc, car(code));
+		  if (val)
+		    fprintf(stderr, "opt trail: %s %s %s\n", opt_names[optimize_op(code)], type_name(sc, val, NO_ARTICLE), DISPLAY_80(code)); 
+		}
+#endif
+	      /* gg/ss -> ss etc
+	       * have a translation table, only c_c looks like trouble -- needs to be unwound
+	       *
+	       * some things are never opt'd?
+	       *   (* (expt (polywave osc fm) k) norm) ??? this is tgen...
+	       *   (fm-violin (* i 0.001) 0.01 440 0.001) tall
+	       *   clm defins are using car(body)=string as documentation!
+	       *   all list-values, define 
+	       * lg:
+	       *  trail: safe_c_aa c-function (fnc (car lst) (cdr lst))
+	       *  trail: unknown_gg function (letstar outer-vars inner-vars)
+	       *  trail: unknown_all_s function (letstar outer-vars inner-vars inner1-vars)
+	       *  trail: unknown_all_s function (letstar outer-vars inner-vars inner1-vars inner2-vars)
+	       *  trail: safe_closure_all_x function (f args form env)
+	       * letstar is (f . x) -- need support for dotted arg
+	       */
 	      clear_all_optimizations(sc, code);
 	      /* and fall into the normal evaluator */
 	    }
 	  
-	  /* fprintf(stderr, "trail: %s\n", DISPLAY(sc->code)); */
 	  {
 	    s7_pointer code, carc;
 	    code = sc->code;
 	    
+	    /* lint: p 81272    s 319845 r ~100000
+	     * b:      651000     321000   ~700000
+	     * sndf: 50187717    1298152   ~350000
+	     */
+
 	    if (is_pair(code))
 	      {
 #if WITH_PROFILE
 		if (sc->code != profile_at_start)
 		  profile(sc, code);
 #endif
+		/* fprintf(stderr, "trail: %s\n", DISPLAY(sc->code)); */
+
 		set_current_code(sc, code);
 		carc = car(code);
 		
@@ -70768,6 +71868,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		
 		/* -------------------------------------------------------------------------------- */
 		/* trailers */
+
 		if (is_symbol(carc))
 		  {
 		    /* car is a symbol, sc->code a list */
@@ -71386,7 +72487,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	    eval_error(sc, "macroexpand argument is not a macro call: ~A", sc->code);
 	  if (!is_null(cdr(sc->code)))
 	    eval_error(sc, "macroexpand: too many arguments: ~A", sc->code);
-	  if (!is_proper_list(sc, car(sc->code)))
+	  if (!s7_is_proper_list(sc, car(sc->code)))
 	    eval_error(sc, "macroexpand: improper arg list: ~A", car(sc->code));
 	  /* this seems to happen when it should not? */
 	  
@@ -71527,28 +72628,6 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  }
 	  break;
 	  
-	case OP_SET_PAIR_C_P:     /* ([set!] (name (+ i 1)) (if (eq? (car a) 'car) #\a #\d)) */
-	  push_stack_no_args(sc, OP_SET_PAIR_C_P_1, sc->code);
-	  sc->code = cadr(sc->code);
-	  goto EVAL;
-	    
-	case OP_SET_PAIR_C_P_1:   /* code: ((name (+ i 1)) ...) for example, so cadar is the c_c expr and its args are cdr(cadar) */
-	  sc->temp8 = sc->value;
-	  if (set_pair_p_3(sc, find_symbol(sc, caar(sc->code)), c_call(cadar(sc->code))(sc, cdadar(sc->code)), sc->temp8))
-	    goto APPLY;
-	  break;
-	    
-	case OP_SET_PAIR_C:        /* ([set!] (name (+ len 1)) #\r) */
-	  {
-	    s7_pointer value;
-	    value = cadr(sc->code);
-	    if (is_symbol(value))
-	      value = find_symbol_checked(sc, value);
-	    if (set_pair_p_3(sc, find_symbol(sc, caar(sc->code)), c_call(cadar(sc->code))(sc, cdadar(sc->code)), value))
-	      goto APPLY;
-	  }
-	  break;
-	    
 	case OP_SET_LET_S:       /* (set! (*s7* 'print-length) i) */
 	  if (set_pair_p_3(sc, find_symbol(sc, caar(sc->code)), cadr(cadar(sc->code)), find_symbol_unchecked(sc, cadr(sc->code))))
 	    goto APPLY;
@@ -71717,6 +72796,11 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		       set_car(sc->t1_1, find_symbol_unchecked(sc, opt_sym2(sc->code))); \
 		       slot_set_value(lx, c_call(cadr(sc->code))(sc, sc->t1_1)); \
 		     } while (0))
+	    SET_CASE(OP_SET_SYMBOL_opLq,
+		     do {						\
+		       set_car(sc->t1_1, local_symbol_value(opt_sym2(sc->code))); \
+		       slot_set_value(lx, c_call(cadr(sc->code))(sc, sc->t1_1)); \
+		     } while (0))
 	    
 	    SET_CASE(OP_SET_SYMBOL_opSSq,
 		     do {						\
@@ -71724,6 +72808,12 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		       set_car(sc->t2_2, find_symbol_unchecked(sc, cadr(opt_pair2(sc->code)))); \
 		       slot_set_value(lx, c_call(cadr(sc->code))(sc, sc->t2_1)); \
 		     } while (0))
+	    SET_CASE(OP_SET_SYMBOL_opLLq,
+		     do {						\
+		       set_car(sc->t2_1, local_symbol_value(car(opt_pair2(sc->code)))); \
+		       set_car(sc->t2_2, local_symbol_value(cadr(opt_pair2(sc->code)))); \
+		       slot_set_value(lx, c_call(cadr(sc->code))(sc, sc->t2_1)); \
+		     } while (0))
 	    
 	    SET_CASE(OP_SET_SYMBOL_opSSSq,
 		     do {						\
@@ -71830,7 +72920,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	       *   (let ((L '((1 2 3))) (index 1)) (set! ((L 0) index) 32) L)
 	       */
 	      
-	      if (!is_proper_list(sc, sc->args))                                 /* (set! ('(1 2) 1 . 2) 1) */
+	      if (!s7_is_proper_list(sc, sc->args))                              /* (set! ('(1 2) 1 . 2) 1) */
 		eval_error(sc, "set! target arguments are an improper list: ~A", sc->args);
 	      
 	      /* in all of these cases, we might need to GC protect the temporary lists */
@@ -71875,7 +72965,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	case OP_SET_UNCHECKED:
 	  if (is_pair(car(sc->code)))                                            /* has accessor */
 	    {
-	      int choice;
+	      int32_t choice;
 	      choice = set_pair_ex(sc);
 	      if (choice == goto_EVAL) goto EVAL;
 	      if (choice == goto_START) goto START;
@@ -71920,7 +73010,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 			    set_car(sc->t2_2, sc->value);
 			    sc->value = c_function_call(func)(sc, sc->t2_1);
 			    if (sc->value == sc->error_symbol) /* backwards compatibility... (but still used I think in g_features_set) */
-			      return(s7_error(sc, sc->error_symbol, set_elist_3(sc, make_string_wrapper(sc, "can't set ~S to ~S"), car(sc->t2_1), car(sc->t2_2))));
+			      return(s7_error(sc, sc->error_symbol, set_elist_3(sc, s7_make_string_wrapper(sc, "can't set ~S to ~S"), car(sc->t2_1), car(sc->t2_2))));
 			  }
 			else
 			  {
@@ -71944,7 +73034,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  
 	case OP_SET_WITH_ACCESSOR:
 	  if (sc->value == sc->error_symbol) /* backwards compatibility... */
-	    return(s7_error(sc, sc->error_symbol, set_elist_2(sc, make_string_wrapper(sc, "can't set ~S"), sc->code)));
+	    return(s7_error(sc, sc->error_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "can't set ~S"), sc->code)));
 	  slot_set_value(sc->code, sc->value);
 	  break;
 
@@ -72007,14 +73097,14 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  activate_let(sc, sc->value);  /* this activates sc->value, so the set! will happen in that environment */
 	  if (is_pair(car(sc->code)))
 	    {
-	      int choice;
+	      int32_t choice;
 	      choice = set_pair_ex(sc);
 	      if (choice == goto_EVAL) goto EVAL;
 	      if (choice == goto_START) goto START;
 	      if (choice == goto_APPLY) goto APPLY;
 	      goto EVAL_ARGS;
 	    }
-	  return(s7_error(sc, sc->error_symbol, set_elist_2(sc, make_string_wrapper(sc, "can't set ~S"), sc->args)));	  
+	  return(s7_error(sc, sc->error_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "can't set ~S"), sc->args)));	  
 	  
 	  
 	  /* -------------------------------- IF -------------------------------- */
@@ -72378,7 +73468,8 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  check_stack_size(sc);
 	  sc->code = opt_lambda(sc->code);
 	  new_frame_with_two_slots(sc, closure_let(sc->code), sc->envir, 
-				   car(closure_args(sc->code)), sc->args, cadr(closure_args(sc->code)), sc->value);
+				   car(closure_args(sc->code)), sc->args, 
+				   cadr(closure_args(sc->code)), sc->value);
 	  sc->code = _TPair(closure_body(sc->code));
 	  goto BEGIN1;
 	  
@@ -72391,7 +73482,8 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  check_stack_size(sc);
 	  sc->code = opt_lambda(sc->code);
 	  new_frame_with_two_slots(sc, closure_let(sc->code), sc->envir, 
-				   car(closure_args(sc->code)), sc->value, cadr(closure_args(sc->code)), sc->args);
+				   car(closure_args(sc->code)), sc->value, 
+				   cadr(closure_args(sc->code)), sc->args);
 	  sc->code = _TPair(closure_body(sc->code));
 	  goto BEGIN1;
 	  
@@ -72763,7 +73855,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		   *    (let hiho ((hiho 4)) hiho) -- I guess hiho is 4
 		   * it's possible to package the entire named-let in all_x_* (see rc-a-s7.c), but
 		   *    it's complicated code, and gains about 1/4 total compute time.  The overhead
-		   *    is in eval -- goto BEGIN1, all the eval switches, etc -- probably 500 of the 700
+		   *    is in eval -- goto BEGIN1;, all the eval switches, etc -- probably 500 of the 700
 		   *    can be regained directly.
 		   */
 		  s7_pointer let_name;
@@ -72811,7 +73903,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	      else
 		{
 		  s7_pointer e;
-		  unsigned long long int id;
+		  uint64_t id;
 		  
 		  e = sc->envir;
 		  id = let_id(e);
@@ -72841,18 +73933,46 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  /* -------------------------------- LET* -------------------------------- */
 	case OP_LET_STAR_ALL_X:
 	  {
-	    s7_pointer p;
+	    s7_pointer p, e = NULL;
 	    for (p = car(sc->code); is_pair(p); p = cdr(p))
 	      {
 		s7_pointer arg;
 		arg = cdar(p);
 		arg = c_call(arg)(sc, car(arg));
-		new_frame_with_slot(sc, sc->envir, sc->envir, caar(p), arg);
+		/* since each value is all_x safe, there are no internal closures over the on-going stack of lets here (so use one frame) */
+		if (e)
+		  make_slot_1(sc, e, caar(p), arg);
+		else
+		  {
+		    new_frame_with_slot(sc, sc->envir, e, caar(p), arg);
+		    sc->envir = e;
+		  }
 	      }
 	    sc->code = _TPair(cdr(sc->code));
 	    goto BEGIN1;
 	  }
 	  
+	case OP_LET_STAR_A2:
+	  push_stack(sc, OP_LET_STAR_A, sc->code, car(sc->code));
+	  sc->code = opt_con2(sc->code);
+	  goto EVAL;
+
+	case OP_LET_STAR_A:
+	  {
+	    s7_pointer p, old_code;
+	    old_code = sc->args;
+	    new_frame_with_slot(sc, sc->envir, sc->envir, caar(sc->code), sc->value);
+	    for (p = cdr(sc->code); is_pair(p); p = cdr(p))
+	      {
+		s7_pointer arg;
+		arg = cdar(p);
+		arg = c_call(arg)(sc, car(arg));
+		make_slot_1(sc, sc->envir, caar(p), arg);
+	      }
+	    sc->code = _TPair(cdr(old_code));
+	    goto BEGIN1;
+	  }
+	  
 	case OP_NAMED_LET_STAR:
 	  push_stack(sc, OP_LET_STAR1, sc->code, cadr(sc->code));
 	  sc->code = opt_con2(sc->code);
@@ -73192,7 +74312,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		  if ((car(sc->code) == sc->feed_to_symbol) &&
 		      (s7_symbol_value(sc, sc->feed_to_symbol) == sc->undefined))
 		    {
-		      int res;
+		      int32_t res;
 		      res = feed_to(sc);
 		      if (res == goto_START) goto START;
 		      if (res == goto_APPLY) goto APPLY;
@@ -73271,7 +74391,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		    sc->code = _TLst(cdar(p));
 		    if (is_null(sc->code))
 		      goto START;
-		    goto BEGIN1;
+		    goto BEGIN1; 
 		  }
 	      }
 	    sc->value = sc->unspecified; 
@@ -73501,14 +74621,6 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  sc->code = cadr(sc->code);
 	  goto EVAL;
 
-	case OP_OR_AZ:
-	  /* we know c_callee is set on sc->code, and there are only two branches */
-	  sc->value = c_call(sc->code)(sc, car(sc->code));
-	  if (is_true(sc, sc->value))
-	    goto START;
-	  sc->code = cadr(sc->code);
-	  goto OPT_EVAL_CHECKED;
-
 	case OP_OR_SAFE_AA:
 	  sc->value = c_call(sc->code)(sc, car(sc->code));
 	  if (is_true(sc, sc->value))
@@ -73585,7 +74697,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  
 	case OP_DEFINE_MACRO_WITH_ACCESSOR:
 	  if (sc->value == sc->error_symbol) /* backwards compatibility... */
-	    return(s7_error(sc, sc->error_symbol, set_elist_3(sc, make_string_wrapper(sc, "can't define-macro ~S to ~S"), car(sc->args), cadr(sc->args))));
+	    return(s7_error(sc, sc->error_symbol, set_elist_3(sc, s7_make_string_wrapper(sc, "can't define-macro ~S to ~S"), car(sc->args), cadr(sc->args))));
 	  sc->code = sc->value;
 	  if ((!is_pair(sc->code)) ||
 	      (!is_pair(car(sc->code))) ||
@@ -73697,7 +74809,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		if ((car(sc->code) == sc->feed_to_symbol) &&
 		    (s7_symbol_value(sc, sc->feed_to_symbol) == sc->undefined))
 		  {
-		    int res;
+		    int32_t res;
 		    res = feed_to(sc);
 		    if (res == goto_START) goto START;
 		    if (res == goto_APPLY) goto APPLY;
@@ -73902,7 +75014,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 		if ((car(sc->code) == sc->feed_to_symbol) &&
 		    (s7_symbol_value(sc, sc->feed_to_symbol) == sc->undefined))
 		  {
-		    int res;
+		    int32_t res;
 		    res = feed_to(sc);
 		    if (res == goto_START) goto START;
 		    if (res == goto_APPLY) goto APPLY;
@@ -73962,7 +75074,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	case OP_GET_OUTPUT_STRING_1:        /* from call-with-output-string and with-output-to-string -- return the port string directly */
 	  if ((!is_output_port(sc->code)) ||
 	      (port_is_closed(sc->code)))
-	    simple_wrong_type_argument_with_type(sc, sc->with_output_to_string_symbol, sc->code, make_string_wrapper(sc, "an open string output port"));
+	    simple_wrong_type_argument_with_type(sc, sc->with_output_to_string_symbol, sc->code, s7_make_string_wrapper(sc, "an open string output port"));
 	  
 	  if (port_position(sc->code) >= port_data_size(sc->code))
 	    resize_port_data(sc->code, port_position(sc->code) + 1); /* need room for the trailing #\null */
@@ -74059,7 +75171,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  goto BEGIN1;
 	  
 	case OP_WITH_BAFFLE:
-	  if (!is_proper_list(sc, sc->code))
+	  if (!s7_is_proper_list(sc, sc->code))
 	    eval_error(sc, "with-baffle: unexpected dot? ~A", sc->code);
 	  
 	  if ((!is_null(sc->code)) &&
@@ -74100,7 +75212,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  
 	case OP_READ_NEXT:       /* this is 75% of the token calls, so expanding it saves lots of time */
 	  {
-	    int c;
+	    int32_t c;
 	    s7_pointer pt;
 	    
 	    pt = sc->input_port;
@@ -74358,7 +75470,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  break;
 	  
 	case OP_READ_VECTOR:
-	  if (!is_proper_list(sc, sc->value))       /* #(1 . 2) */
+	  if (!s7_is_proper_list(sc, sc->value))    /* #(1 . 2) */
 	    return(read_error(sc, "vector constant data is not a proper list"));
 	  sc->v = sc->value;
 	  if (sc->args == small_int(1))             /* sc->args was sc->w earlier from read_sharp */
@@ -74371,7 +75483,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  break;
 
 	case OP_READ_INT_VECTOR:
-	  if (!is_proper_list(sc, sc->value))
+	  if (!s7_is_proper_list(sc, sc->value))
 	    return(read_error(sc, "vector constant data is not a proper list"));
 	  sc->v = sc->value;
 	  if (sc->args == small_int(1))             /* sc->args was sc->w earlier from read_sharp */
@@ -74383,7 +75495,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  break;
 
 	case OP_READ_FLOAT_VECTOR:
-	  if (!is_proper_list(sc, sc->value))
+	  if (!s7_is_proper_list(sc, sc->value))
 	    return(read_error(sc, "vector constant data is not a proper list"));
 	  sc->v = sc->value;
 	  if (sc->args == small_int(1))             /* sc->args was sc->w earlier from read_sharp */
@@ -74395,7 +75507,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 	  break;	  
 
 	case OP_READ_BYTE_VECTOR:
-	  if (!is_proper_list(sc, sc->value))
+	  if (!s7_is_proper_list(sc, sc->value))
 	    return(read_error(sc, "byte-vector constant data is not a proper list"));
 	  sc->v = sc->value;
 	  sc->value = g_byte_vector(sc, sc->value);
@@ -74455,7 +75567,7 @@ static s7_pointer eval(s7_scheme *sc, opcode_t first_op)
 
 
 /* needed in s7_gmp_init and s7_init, initialized in s7_init before we get to gmp */
-static s7_pointer pl_bt, pl_p, pl_bc, pcl_bc, pcl_bs, pl_bn, pl_sf, pcl_bt, pcl_e, pcl_i, pcl_t, pcl_r, pcl_n, pcl_s, pcl_v, pcl_f, pcl_c, pl_tl;
+static s7_pointer pl_bt, pl_p, pl_bc, pcl_bc, pcl_bs, pl_bn, pl_sf, pcl_bt, pcl_e, pcl_i, pcl_r, pcl_n, pcl_s, pcl_v, pcl_f, pcl_c, pl_tl;
 
 
 
@@ -74480,11 +75592,11 @@ mpz_t  *s7_big_integer(s7_pointer x) {return(&big_integer(x));}
 mpq_t  *s7_big_ratio(s7_pointer x)   {return(&big_ratio(x));}
 mpc_t  *s7_big_complex(s7_pointer x) {return(&big_complex(x));}
 
-static char *mpfr_to_string(mpfr_t val, int radix)
+static char *mpfr_to_string(mpfr_t val, int32_t radix)
 {
   char *str, *tmp, *str1;
   mp_exp_t expptr;
-  int i, len, ep;
+  int32_t i, len, ep;
   
   if (mpfr_zero_p(val))
     return(copy_string("0.0"));
@@ -74532,10 +75644,10 @@ static char *mpfr_to_string(mpfr_t val, int radix)
 }
 
 
-static char *mpc_to_string(mpc_t val, int radix, use_write_t use_write)
+static char *mpc_to_string(mpc_t val, int32_t radix, use_write_t use_write)
 {
   char *rl, *im, *tmp;
-  int len;
+  int32_t len;
   mpfr_t a, b;
   
   mpfr_init(a);
@@ -74558,7 +75670,7 @@ static char *mpc_to_string(mpc_t val, int radix, use_write_t use_write)
 }
 
 
-static char *big_number_to_string_with_radix(s7_pointer p, int radix, int width, int *nlen, use_write_t use_write)
+static char *big_number_to_string_with_radix(s7_pointer p, int32_t radix, int32_t width, int32_t *nlen, use_write_t use_write)
 {
   char *str = NULL;
   
@@ -74572,11 +75684,11 @@ static char *big_number_to_string_with_radix(s7_pointer p, int radix, int width,
   
   if (width > 0)
     {
-      int len;
+      int32_t len;
       len = safe_strlen(str);
       if (width > len)
 	{
-	  int spaces;
+	  int32_t spaces;
 	  str = (char *)realloc(str, (width + 1) * sizeof(char));
 	  spaces = width - len;
 	  str[width] = '\0';
@@ -74619,7 +75731,7 @@ static bool s7_is_one_or_big_one(s7_pointer p)
 }
 
 
-static s7_pointer string_to_big_integer(s7_scheme *sc, const char *str, int radix)
+static s7_pointer string_to_big_integer(s7_scheme *sc, const char *str, int32_t radix)
 {
   s7_pointer x;
   
@@ -74647,7 +75759,7 @@ s7_pointer s7_make_big_integer(s7_scheme *sc, mpz_t *val)
 }
 
 
-static s7_pointer string_to_big_ratio(s7_scheme *sc, const char *str, int radix)
+static s7_pointer string_to_big_ratio(s7_scheme *sc, const char *str, int32_t radix)
 {
   s7_pointer x;
   mpq_t n;
@@ -74710,7 +75822,7 @@ static s7_pointer make_big_integer_or_ratio(s7_scheme *sc, s7_pointer z)
 }
 
 
-static s7_pointer string_to_big_real(s7_scheme *sc, const char *str, int radix)
+static s7_pointer string_to_big_real(s7_scheme *sc, const char *str, int32_t radix)
 {
   s7_pointer x;
   
@@ -74739,7 +75851,7 @@ static s7_pointer s7_number_to_big_real(s7_scheme *sc, s7_pointer p)
       
     case T_RATIO:
       /* here we can't use fraction(number(p)) even though that uses long double division because
-       *   there are lots of long long int ratios that will still look the same.
+       *   there are lots of int64_t ratios that will still look the same.
        *   We have to do the actual bignum divide by hand.
        */
       {
@@ -74963,8 +76075,8 @@ static s7_pointer make_big_complex(s7_scheme *sc, mpfr_t rl, mpfr_t im)
 }
 
 
-/* gmp.h mpz_init_set_si the "si" part is "signed long int", so in 64-bit machines, s7_int already fits (if it's long long int).  
- *   I guess we can catch the 4-byte long int (since no configure script) by noticing that sizeof(s7_int) == sizeof(long int)?
+/* gmp.h mpz_init_set_si the "si" part is "signed long int", so in 64-bit machines, s7_int already fits (if it's int64_t).  
+ *   I guess we can catch the 4-byte long int32_t (since no configure script) by noticing that sizeof(s7_int) == sizeof(long int)?
  */
 
 static void mpz_init_set_s7_int(mpz_t n, s7_int uval)
@@ -74973,10 +76085,10 @@ static void mpz_init_set_s7_int(mpz_t n, s7_int uval)
     mpz_init_set_si(n, uval);
   else
     {
-      /* long long int to gmp mpz_t */
+      /* int64_t to gmp mpz_t */
       bool need_sign;
-      long long int val;
-      val = (long long int)uval;
+      int64_t val;
+      val = (int64_t)uval;
       /* handle one special case (sigh) */
       if (val == s7_int_min)
 	mpz_init_set_str(n, "-9223372036854775808", 10);
@@ -74986,7 +76098,7 @@ static void mpz_init_set_s7_int(mpz_t n, s7_int uval)
 	  if (need_sign) val = -val;
 	  mpz_init_set_si(n, val >> 32);
 	  mpz_mul_2exp(n, n, 32);
-	  mpz_add_ui(n, n, (unsigned int)(val & 0xffffffff));
+	  mpz_add_ui(n, n, (uint32_t)(val & 0xffffffff));
 	  if (need_sign) mpz_neg(n, n);
 	}
     }
@@ -75006,7 +76118,7 @@ static s7_pointer s7_int_to_big_integer(s7_scheme *sc, s7_int val)
 
 static s7_int big_integer_to_s7_int(mpz_t n)
 {
-  long long int high, low;
+  int64_t high, low;
   mpz_t x;
   bool need_sign = false;
 
@@ -75245,7 +76357,7 @@ static bool big_numbers_are_eqv(s7_pointer a, s7_pointer b)
 }
 
 
-static s7_pointer string_to_either_integer(s7_scheme *sc, const char *str, int radix)
+static s7_pointer string_to_either_integer(s7_scheme *sc, const char *str, int32_t radix)
 {
   s7_int val;
   bool overflow = false;
@@ -75258,7 +76370,7 @@ static s7_pointer string_to_either_integer(s7_scheme *sc, const char *str, int r
 }
 
 
-static s7_pointer string_to_either_ratio(s7_scheme *sc, const char *nstr, const char *dstr, int radix)
+static s7_pointer string_to_either_ratio(s7_scheme *sc, const char *nstr, const char *dstr, int32_t radix)
 {
   s7_int n, d;
   bool overflow = false;
@@ -75283,7 +76395,7 @@ static s7_pointer string_to_either_ratio(s7_scheme *sc, const char *nstr, const
 }
 
 
-static s7_pointer string_to_either_real(s7_scheme *sc, const char *str, int radix)
+static s7_pointer string_to_either_real(s7_scheme *sc, const char *str, int32_t radix)
 {
   bool overflow = false;
   s7_double val;
@@ -75296,7 +76408,7 @@ static s7_pointer string_to_either_real(s7_scheme *sc, const char *str, int radi
 }
 
 
-static s7_pointer string_to_either_complex_1(s7_scheme *sc, char *q, char *slash1, char *ex1, bool has_dec_point1, int radix, s7_double *d_rl)
+static s7_pointer string_to_either_complex_1(s7_scheme *sc, char *q, char *slash1, char *ex1, bool has_dec_point1, int32_t radix, s7_double *d_rl)
 {
   bool overflow = false;
   /* there's a real problem here -- we don't want to promote s7_double .1 to a bignum because
@@ -75348,7 +76460,7 @@ static s7_pointer string_to_either_complex_1(s7_scheme *sc, char *q, char *slash
 static s7_pointer string_to_either_complex(s7_scheme *sc,
 					   char *q, char *slash1, char *ex1, bool has_dec_point1,
 					   char *plus, char *slash2, char *ex2, bool has_dec_point2,
-					   int radix, int has_plus_or_minus)
+					   int32_t radix, int32_t has_plus_or_minus)
 {
   /* this can be just about anything involving 2 real/ratio/int portions, +/- in between and 'i' at the end */
   double d_rl = 0.0, d_im = 0.0;
@@ -75392,7 +76504,7 @@ static s7_pointer string_to_either_complex(s7_scheme *sc,
 }
 
 
-static int big_type_to_result_type(int cur_type, int next_type)
+static int32_t big_type_to_result_type(int32_t cur_type, int32_t next_type)
 {
   if ((cur_type == T_BIG_COMPLEX) ||
       (cur_type == T_COMPLEX) ||
@@ -75413,7 +76525,7 @@ static int big_type_to_result_type(int cur_type, int next_type)
 }
 
 
-static int normal_type_to_result_type(int cur_type, int next_type)
+static int32_t normal_type_to_result_type(int32_t cur_type, int32_t next_type)
 {
   if (cur_type > T_COMPLEX)
     next_type += 4;
@@ -75423,7 +76535,7 @@ static int normal_type_to_result_type(int cur_type, int next_type)
 }
 
 
-static s7_pointer promote_number_1(s7_scheme *sc, int type, s7_pointer x, bool copy)
+static s7_pointer promote_number_1(s7_scheme *sc, int32_t type, s7_pointer x, bool copy)
 {
   /* x can be any number -- need to convert it to the current result type */
 
@@ -75489,7 +76601,7 @@ static s7_pointer promote_number_1(s7_scheme *sc, int type, s7_pointer x, bool c
 }
 
 
-static s7_pointer promote_number(s7_scheme *sc, int type, s7_pointer x)
+static s7_pointer promote_number(s7_scheme *sc, int32_t type, s7_pointer x)
 {
   return(promote_number_1(sc, type, x, false));
 }
@@ -75509,7 +76621,7 @@ static s7_pointer to_big(s7_scheme *sc, s7_pointer x)
 }
 
 
-static s7_pointer copy_and_promote_number(s7_scheme *sc, int type, s7_pointer x)
+static s7_pointer copy_and_promote_number(s7_scheme *sc, int32_t type, s7_pointer x)
 {
   return(promote_number_1(sc, type, x, true));
 }
@@ -75522,7 +76634,7 @@ void s7_vector_fill(s7_scheme *sc, s7_pointer vec, s7_pointer obj)
    */
   if ((is_normal_vector(vec)) && (is_big_number(obj)))
     {
-      unsigned int gc_loc;
+      uint32_t gc_loc;
       s7_int i, len;
       s7_pointer *tp;
 
@@ -75557,7 +76669,7 @@ static s7_pointer big_bignum(s7_scheme *sc, s7_pointer args)
   p = g_string_to_number_1(sc, args, sc->bignum_symbol);
   if (is_false(sc, p))                                       /* (bignum "1/3.0") */
     s7_error(sc, make_symbol(sc, "bignum-error"), 
-	     set_elist_2(sc, make_string_wrapper(sc, "bignum argument does not represent a number: ~S"), car(args)));
+	     set_elist_2(sc, s7_make_string_wrapper(sc, "bignum argument does not represent a number: ~S"), car(args)));
 
   switch (type(p))
     {
@@ -75599,7 +76711,7 @@ static s7_pointer big_is_bignum(s7_scheme *sc, s7_pointer args)
 #define get_result_type(Sc, Type, P) \
   ((is_number(P)) ? normal_type_to_result_type(Type, type(p)) : ((is_big_number(P)) ? big_type_to_result_type(Type, type(p)) : result_type_via_method(Sc, Type, P)))
 
-static int result_type_via_method(s7_scheme *sc, int result_type, s7_pointer p)
+static int32_t result_type_via_method(s7_scheme *sc, int32_t result_type, s7_pointer p)
 {
   s7_pointer f;
   if (!has_methods(p)) return(-1);
@@ -75631,7 +76743,7 @@ static int result_type_via_method(s7_scheme *sc, int result_type, s7_pointer p)
 
 static s7_pointer big_add(s7_scheme *sc, s7_pointer args)
 {
-  int result_type = T_INTEGER;
+  int32_t result_type = T_INTEGER;
   s7_pointer x, result;
 
   if (is_null(args))
@@ -75733,7 +76845,7 @@ static s7_pointer big_negate(s7_scheme *sc, s7_pointer args)
 
 static s7_pointer big_subtract(s7_scheme *sc, s7_pointer args)
 {
-  int result_type = T_INTEGER;
+  int32_t result_type = T_INTEGER;
   s7_pointer x, result;
 
   if (!s7_is_number(car(args)))
@@ -75787,7 +76899,7 @@ static s7_pointer big_subtract(s7_scheme *sc, s7_pointer args)
 
 static s7_pointer big_multiply(s7_scheme *sc, s7_pointer args)
 {
-  int result_type = T_INTEGER;
+  int32_t result_type = T_INTEGER;
   s7_pointer x, result;
 
   if (is_null(args))
@@ -75960,7 +77072,7 @@ static s7_pointer big_invert(s7_scheme *sc, s7_pointer args)
 
 static s7_pointer big_divide(s7_scheme *sc, s7_pointer args)
 {
-  int result_type = T_INTEGER;
+  int32_t result_type = T_INTEGER;
   s7_pointer x, divisor, result;
 
   if (!s7_is_number(car(args)))
@@ -76368,7 +77480,7 @@ static s7_pointer big_log(s7_scheme *sc, s7_pointer args)
 	  if (is_NaN(y))
 	    return(real_NaN);
 	  if (y == 0.0)
-	    return(out_of_range(sc, sc->log_symbol, small_int(2), p1, make_string_wrapper(sc, "argument can't be 0.0")));
+	    return(out_of_range(sc, sc->log_symbol, small_int(2), p1, s7_make_string_wrapper(sc, "argument can't be 0.0")));
 	}
       if (x == 0.0)
 	return(s7_make_complex(sc, -INFINITY, M_PI));
@@ -76462,7 +77574,7 @@ static s7_pointer big_sqrt(s7_scheme *sc, s7_pointer args)
     method_or_bust_with_type_one_arg(sc, p, sc->sqrt_symbol, args, a_number_string);
   p = to_big(sc, p);
 
-  /* if big integer, try to return int if perfect square */
+  /* if big integer, try to return int32_t if perfect square */
   if (is_t_big_integer(p))
     {
       if (mpz_cmp_ui(big_integer(p), 0) < 0)
@@ -76565,12 +77677,12 @@ static s7_pointer big_sqrt(s7_scheme *sc, s7_pointer args)
 enum {TRIG_NO_CHECK, TRIG_TAN_CHECK, TRIG_TANH_CHECK};
 
 static s7_pointer big_trig(s7_scheme *sc, s7_pointer args,
-			   int (*mpfr_trig)(mpfr_ptr, mpfr_srcptr, mpfr_rnd_t),
-			   int (*mpc_trig)(mpc_ptr, mpc_srcptr, mpc_rnd_t),
-			   int tan_case, s7_pointer sym)
+			   int32_t (*mpfr_trig)(mpfr_ptr, mpfr_srcptr, mpfr_rnd_t),
+			   int32_t (*mpc_trig)(mpc_ptr, mpc_srcptr, mpc_rnd_t),
+			   int32_t tan_case, s7_pointer sym)
 /* these declarations mimic the mpfr.h and mpc.h declarations.  It seems to me that
  *   they ought to be:
- *			   int (*mpfr_trig)(mpfr_t rop, mpfr_t op, mp_rnd_t rnd),
+ *			   int32_t (*mpfr_trig)(mpfr_t rop, mpfr_t op, mp_rnd_t rnd),
  *			   void (*mpc_trig)(mpc_t rop, mpc_t op, mpc_rnd_t rnd))
  */
 {
@@ -76781,7 +77893,7 @@ static s7_pointer big_expt(s7_scheme *sc, s7_pointer args)
       if ((yval < s7_int32_max) &&
 	  (yval > s7_int32_min))
 	{
-	  /* from here yval can fit in an unsigned int
+	  /* from here yval can fit in an uint32_t
 	   *    (protect against gmp exception if for example (expt 1/9223372036854775807 -9223372036854775807)
 	   */
 	  if (s7_is_integer(x))
@@ -76793,13 +77905,13 @@ static s7_pointer big_expt(s7_scheme *sc, s7_pointer args)
 	      mpz_init_set(n, big_integer(x));
 	      if (yval >= 0)
 		{
-		  mpz_pow_ui(n, n, (unsigned int)yval);
+		  mpz_pow_ui(n, n, (uint32_t)yval);
 		  p = mpz_to_big_integer(sc, n);
 		  mpz_clear(n);
 		  return(p);
 		}
 
-	      mpz_pow_ui(n, n, (unsigned int)(-yval));
+	      mpz_pow_ui(n, n, (uint32_t)(-yval));
 	      mpq_init(r);
 	      mpq_set_z(r, n);
 	      mpq_inv(r, r);
@@ -76830,16 +77942,16 @@ static s7_pointer big_expt(s7_scheme *sc, s7_pointer args)
 	      mpq_init(r);
 	      if (yval >= 0)
 		{
-		  mpz_pow_ui(n, n, (unsigned int)yval);
-		  mpz_pow_ui(d, d, (unsigned int)yval);
+		  mpz_pow_ui(n, n, (uint32_t)yval);
+		  mpz_pow_ui(d, d, (uint32_t)yval);
 		  mpq_set_num(r, n);
 		  mpq_set_den(r, d);
 		}
 	      else
 		{
 		  yval = -yval;
-		  mpz_pow_ui(n, n, (unsigned int)yval);
-		  mpz_pow_ui(d, d, (unsigned int)yval);
+		  mpz_pow_ui(n, n, (uint32_t)yval);
+		  mpz_pow_ui(d, d, (uint32_t)yval);
 		  mpq_set_num(r, d);
 		  mpq_set_den(r, n);
 		  mpq_canonicalize(r);
@@ -76937,7 +78049,7 @@ static s7_pointer big_expt(s7_scheme *sc, s7_pointer args)
 	    (s7_is_rational(cadr(args))) &&
 	    (mpfr_integer_p(mpc_realref(z)) != 0))
 	  {
-	    /* mpfr_integer_p can be confused: (expt 2718/1000 (bignum "617/5")) returns an int if precision=128, float if 512 */
+	    /* mpfr_integer_p can be confused: (expt 2718/1000 (bignum "617/5")) returns an int32_t if precision=128, float if 512 */
 	    /*   so first make sure we're within (say) 31 bits */
 	    mpfr_t zi;
 	    mpfr_init_set_ui(zi, s7_int32_max, GMP_RNDN);
@@ -77261,7 +78373,7 @@ static s7_pointer big_ash(s7_scheme *sc, s7_pointer args)
       s7_int shift;
       s7_pointer p;
       bool p0_is_big;
-      int p0_compared_to_zero = 0;
+      int32_t p0_compared_to_zero = 0;
 
       p0_is_big = is_big_number(p0);
       if (p0_is_big)
@@ -77312,7 +78424,7 @@ static s7_pointer big_ash(s7_scheme *sc, s7_pointer args)
       else
 	{
 	  if (shift < 0) /* right */
-	    mpz_fdiv_q_2exp(n, n, (unsigned int)(-shift));
+	    mpz_fdiv_q_2exp(n, n, (uint32_t)(-shift));
 	}
       p = mpz_to_big_integer(sc, n);
       mpz_clear(n);
@@ -77336,7 +78448,7 @@ static bool is_integer_via_method(s7_scheme *sc, s7_pointer p)
   return(false);
 }
 
-static s7_pointer big_bits(s7_scheme *sc, s7_pointer args, s7_pointer sym, int start, s7_function g_bits,
+static s7_pointer big_bits(s7_scheme *sc, s7_pointer args, s7_pointer sym, int32_t start, s7_function g_bits,
 			   void (*mpz_bits)(mpz_ptr, mpz_srcptr, mpz_srcptr))
 {
   s7_pointer x, lst;
@@ -77776,7 +78888,7 @@ static s7_pointer big_round(s7_scheme *sc, s7_pointer args)
 
   if (is_t_big_ratio(p))
     {
-      int rnd;
+      int32_t rnd;
       mpz_t rm;
       mpz_init_set(n, mpq_numref(big_ratio(p)));
       mpz_init(rm);
@@ -77805,7 +78917,7 @@ static s7_pointer big_round(s7_scheme *sc, s7_pointer args)
     return(simple_out_of_range(sc, sc->round_symbol, p, (g_is_nan(sc, args) == sc->T) ? its_nan_string : its_infinite_string));
 
   {
-    int cmp_res;
+    int32_t cmp_res;
     mpz_t fl, ce;
     mpfr_t x, dfl, dce;
     mpfr_init_set(x, big_real(p), GMP_RNDN);
@@ -77942,7 +79054,7 @@ static s7_pointer big_modulo(s7_scheme *sc, s7_pointer args)
       (s7_is_integer(b)))
     {
       s7_pointer x, y;
-      int cy, cz;
+      int32_t cy, cz;
       mpz_t n;
 
       y = promote_number(sc, T_BIG_INTEGER, b);
@@ -77975,9 +79087,9 @@ static s7_pointer big_modulo(s7_scheme *sc, s7_pointer args)
 }
 
 
-static int big_real_scan_args(s7_scheme *sc, s7_pointer args)
+static int32_t big_real_scan_args(s7_scheme *sc, s7_pointer args)
 {
-  int i, result_type = T_INTEGER;
+  int32_t i, result_type = T_INTEGER;
   s7_pointer arg;
 
   for (i = 1, arg = args; is_not_null(arg); i++, arg = cdr(arg))
@@ -77994,7 +79106,7 @@ static int big_real_scan_args(s7_scheme *sc, s7_pointer args)
 
 static s7_pointer big_max(s7_scheme *sc, s7_pointer args)
 {
-  int result_type;
+  int32_t result_type;
   s7_pointer x, result, arg;
 
   result_type = big_real_scan_args(sc, args);
@@ -78022,7 +79134,7 @@ static s7_pointer big_max(s7_scheme *sc, s7_pointer args)
 	case T_BIG_REAL:    if (mpfr_cmp(big_real(result), big_real(arg)) < 0)	    result = arg; break;
 	}
     }
-  if (result_type == T_BIG_RATIO) /* maybe actual result was an int */
+  if (result_type == T_BIG_RATIO) /* maybe actual result was an int32_t */
     {
       if (mpz_cmp_ui(mpq_denref(big_ratio(result)), 1) == 0)
 	{
@@ -78040,7 +79152,7 @@ static s7_pointer big_max(s7_scheme *sc, s7_pointer args)
 
 static s7_pointer big_min(s7_scheme *sc, s7_pointer args)
 {
-  int result_type;
+  int32_t result_type;
   s7_pointer x, result, arg;
 
   result_type = big_real_scan_args(sc, args);
@@ -78068,7 +79180,7 @@ static s7_pointer big_min(s7_scheme *sc, s7_pointer args)
 	case T_BIG_REAL:    if (mpfr_cmp(big_real(result), big_real(arg)) > 0)       result = arg; break;
 	}
     }
-  if (result_type == T_BIG_RATIO) /* maybe actual result was an int */
+  if (result_type == T_BIG_RATIO) /* maybe actual result was an int32_t */
     {
       if (mpz_cmp_ui(mpq_denref(big_ratio(result)), 1) == 0)
 	{
@@ -78089,7 +79201,7 @@ static s7_pointer big_less(s7_scheme *sc, s7_pointer args)
   #define H_less "(< x1 ...) returns #t if its arguments are in increasing order"
   #define Q_less s7_make_circular_signature(sc, 1, 2, sc->is_boolean_symbol, sc->is_real_symbol)
 
-  int result_type;
+  int32_t result_type;
   s7_pointer x, previous, current;
 
   result_type = big_real_scan_args(sc, args);
@@ -78128,7 +79240,7 @@ static s7_pointer big_less_or_equal(s7_scheme *sc, s7_pointer args)
   #define H_less_or_equal "(<= x1 ...) returns #t if its arguments are in increasing order"
   #define Q_less_or_equal s7_make_circular_signature(sc, 1, 2, sc->is_boolean_symbol, sc->is_real_symbol)
 
-  int result_type;
+  int32_t result_type;
   s7_pointer x, previous, current;
 
   result_type = big_real_scan_args(sc, args);
@@ -78166,7 +79278,7 @@ static s7_pointer big_greater(s7_scheme *sc, s7_pointer args)
   #define H_greater "(> x1 ...) returns #t if its arguments are in decreasing order"
   #define Q_greater s7_make_circular_signature(sc, 1, 2, sc->is_boolean_symbol, sc->is_real_symbol)
 
-  int result_type;
+  int32_t result_type;
   s7_pointer x, previous, current;
 
   result_type = big_real_scan_args(sc, args);
@@ -78203,7 +79315,7 @@ static s7_pointer big_greater_or_equal(s7_scheme *sc, s7_pointer args)
   #define H_greater_or_equal "(>= x1 ...) returns #t if its arguments are in decreasing order"
   #define Q_greater_or_equal s7_make_circular_signature(sc, 1, 2, sc->is_boolean_symbol, sc->is_real_symbol)
 
-  int result_type;
+  int32_t result_type;
   s7_pointer x, previous, current;
 
   result_type = big_real_scan_args(sc, args);
@@ -78239,7 +79351,7 @@ static s7_pointer big_equal(s7_scheme *sc, s7_pointer args)
   #define Q_equal s7_make_circular_signature(sc, 1, 2, sc->is_boolean_symbol, sc->is_number_symbol)
 
   /* this is morally-equal? for bignums, the other case goes through big_numbers_are_eqv */
-  int result_type = T_INTEGER;
+  int32_t result_type = T_INTEGER;
   s7_pointer x, y, result;
   bool got_nan = false;
 
@@ -78499,7 +79611,7 @@ static s7_pointer big_lcm(s7_scheme *sc, s7_pointer args)
 }
 
 
-static s7_pointer set_bignum_precision(s7_scheme *sc, int precision)
+static s7_pointer set_bignum_precision(s7_scheme *sc, int32_t precision)
 {
   mp_prec_t bits;
   if (precision <= 1)                   /* (set! (*s7* 'bignum-precision) 1) causes mpfr to segfault! (also 0 and -1) */
@@ -78790,71 +79902,114 @@ static s7_pointer describe_memory_usage(s7_scheme *sc)
    *   sinc_tables, c-objects, rc_data, strbuf/tmpbuf[reallocs], autoload tables, hash_entrys, symbol_table,
    *   small_ints?
    */
-  int i, syms = 0, len;
+  int32_t i, syms = 0, len;
   s7_pointer x;
+  gc_list *gp;
 
 #ifdef __linux__
   struct rusage info;
   getrusage(RUSAGE_SELF, &info);
-  fprintf(stderr, "process size: %" LL_D "\n", (s7_int)(info.ru_maxrss * 1024));
+  fprintf(stderr, "process size: %" PRId64 "\n", (s7_int)(info.ru_maxrss * 1024));
 #endif
 
-  fprintf(stderr, "heap: %u (%" LL_D " bytes)", sc->heap_size, (s7_int)(sc->heap_size * (sizeof(s7_pointer) + sizeof(s7_cell))));
+  fprintf(stderr, "heap: %" PRId64 " (%" PRId64 " bytes)", sc->heap_size, (s7_int)(sc->heap_size * (sizeof(s7_pointer) + sizeof(s7_cell))));
   {
-    unsigned int k;
-    int ts[NUM_TYPES];
+    int64_t k;
+    int32_t ts[NUM_TYPES];
     for (i = 0; i < NUM_TYPES; i++) ts[i] = 0;
     for (k = 0; k < sc->heap_size; k++)
       ts[unchecked_type(sc->heap[k])]++;
     for (i = 0; i < NUM_TYPES; i++)
       {
 	if ((i % 10) == 0) fprintf(stderr, "\n ");
-	fprintf(stderr, " %d", ts[i]);
+	if (ts[i] > 100)
+	  fprintf(stderr, " (%s): %d", type_name_from_type(sc, i, NO_ARTICLE), ts[i]);
+	else fprintf(stderr, " %d", ts[i]);
       }
     fprintf(stderr, "\n");
   }
-  fprintf(stderr, "permanent cells: %d (%" LL_D " bytes)\n", permanent_cells, (s7_int)(permanent_cells * sizeof(s7_cell)));
-
-  for (i = 0; i < vector_length(sc->symbol_table); i++)
+  fprintf(stderr, "permanent cells: %d (%" PRId64 " bytes)\n", permanent_cells, (s7_int)(permanent_cells * sizeof(s7_cell)));
+  fprintf(stderr, "gc protected size: %u, unused: %d\n", sc->protected_objects_size, sc->gpofl_loc);
+      
+  for (i = 0; i < SYMBOL_TABLE_SIZE; i++)
     for (x = vector_element(sc->symbol_table, i); is_not_null(x); x = cdr(x))
       syms++;
-  fprintf(stderr, "symbol table: %d (%d symbols, %" LL_D " bytes)\n", SYMBOL_TABLE_SIZE, syms, 
+  fprintf(stderr, "symbol table: %d (%d symbols, %" PRId64 " bytes)\n", SYMBOL_TABLE_SIZE, syms, 
 	  (s7_int)(SYMBOL_TABLE_SIZE * sizeof(s7_pointer) + syms * 3 * sizeof(s7_cell)));
 
-  fprintf(stderr, "stack: %u (%" LL_D " bytes, current top: %ld)\n", sc->stack_size, (s7_int)(sc->stack_size * sizeof(s7_pointer)), (long int)s7_stack_top(sc));
+  fprintf(stderr, "stack: %u (%" PRId64 " bytes, current top: %ld)\n", sc->stack_size, (s7_int)(sc->stack_size * sizeof(s7_pointer)), (long int)s7_stack_top(sc));
   fprintf(stderr, "c_functions: %d (%d bytes)\n", c_functions, (int)(c_functions * sizeof(c_proc_t)));
 
   len = 0;
-  for (i = 0; i < (int)(sc->strings_loc); i++)
-    len += string_length(sc->strings[i]);
-  for (i = 0; i < (int)(sc->strings1_loc); i++)
-    len += string_length(sc->strings1[i]);
-  fprintf(stderr, "strings: %u, %d bytes\n", sc->strings_loc + sc->strings1_loc, len); /* also doc strings, permanent strings, etc */
+  gp = sc->strings;
+  for (i = 0; i < (int)(gp->loc); i++)
+    len += string_length(gp->list[i]);
+  syms = gp->loc;
+  gp = sc->strings1;
+  for (i = 0; i < (int)(gp->loc); i++)
+    len += string_length(gp->list[i]);
+  fprintf(stderr, "strings: %u, %d bytes\n", syms + gp->loc, len); /* also doc strings, permanent strings, etc */
 
   {
-    int hs;
+    int32_t hs;
     hash_entry_t *p;
     for (hs = 0, p = hash_free_list; p; p = (hash_entry_t *)(p->next), hs++);
 
     len = 0;
-    for (i = 0; i < (int)(sc->hash_tables_loc); i++)
-      len += (hash_table_mask(sc->hash_tables[i]) + 1);
+    gp = sc->hash_tables;
+    for (i = 0; i < (int)(gp->loc); i++)
+      len += (hash_table_mask(gp->list[i]) + 1);
     
-    fprintf(stderr, "hash tables: %d (entries in use: %d, free: %d), ", (int)(sc->hash_tables_loc), len, hs);
+    fprintf(stderr, "hash tables: %d (entries in use: %d, free: %d)\n", (int)(gp->loc), len, hs);
+  }
+  {
+    int64_t len = 0, flen = 0, ilen = 0;
+    gp = sc->vectors;
+    for (i = 0; i < (int)(gp->loc); i++)
+      {
+	s7_pointer v;
+	v = gp->list[i];
+	if (is_float_vector(v))
+	  flen += vector_length(v);
+	else
+	  {
+	    if (is_int_vector(v))
+	      ilen += vector_length(v);
+	    else len += vector_length(v);
+	  }
+      }
+    fprintf(stderr, "vectors: %u (%" PRId64 " %" PRId64 " %" PRId64 ")\n", sc->vectors->loc, len, flen, ilen);
+  }
+  {
+    int64_t len = 0, flen = 0;
+    gp = sc->input_ports;
+    for (i = 0; i < (int)(gp->loc); i++)
+      {
+	s7_pointer v;
+	v = gp->list[i];
+	if (port_data(v))
+	  {
+	    flen += port_data_size(v);
+	    if (port_needs_free(v))
+	      len += port_data_size(v);
+	  }
+      }
+    fprintf(stderr, "input ports: %d (%" PRId64 " %" PRId64 ")\n", sc->input_ports->loc, len, flen);
   }
-
   {
-    int fs;
-    unsigned int cc_stacks;
+    int32_t fs;
+    uint32_t cc_stacks;
     port_t *p;
     for (fs = 0, p = sc->port_heap; p; p = (port_t *)(p->next), fs++);
-    for (i = 0, cc_stacks = 0; i < (int)sc->continuations_loc; i++)
-      if (is_continuation(sc->continuations[i]))
-	cc_stacks += continuation_stack_size(sc->continuations[i]);
-    fprintf(stderr, "vectors: %u, input: %u, output: %u, free port: %d\ncontinuations: %u (total stack: %u), c_objects: %u, gensyms: %u, setters: %u, optlists: %u\n",
-	    sc->vectors_loc, sc->input_ports_loc, sc->output_ports_loc, fs, 
-	    sc->continuations_loc, cc_stacks,
-	    sc->c_objects_loc, sc->gensyms_loc, sc->setters_loc, sc->optlists_loc);
+    gp = sc->continuations;
+    for (i = 0, cc_stacks = 0; i < (int)gp->loc; i++)
+      if (is_continuation(gp->list[i]))
+	cc_stacks += continuation_stack_size(gp->list[i]);
+
+    fprintf(stderr, "output ports: %u, free port: %d\ncontinuations: %u (total stack: %u), c_objects: %u, gensyms: %u, setters: %u, optlists: %u\n",
+	    sc->output_ports->loc, fs, 
+	    gp->loc, cc_stacks,
+	    sc->c_objects->loc, sc->gensyms->loc, sc->setters_loc, sc->optlists->loc);
   }
   return(sc->F);
 }
@@ -78938,28 +80093,28 @@ static s7_pointer g_s7_let_ref_fallback(s7_scheme *sc, s7_pointer args)
     return(s7_make_integer(sc, sc->initial_string_port_length));
 
   if (sym == sc->input_ports_symbol)                                     /* input-ports */
-    return(make_vector_wrapper(sc, sc->input_ports_loc, sc->input_ports));
+    return(make_vector_wrapper(sc, sc->input_ports->loc, sc->input_ports->list));
   if (sym == sc->output_ports_symbol)                                    /* output-ports */
-    return(make_vector_wrapper(sc, sc->output_ports_loc, sc->output_ports));
+    return(make_vector_wrapper(sc, sc->output_ports->loc, sc->output_ports->list));
   if (sym == sc->strings_symbol)                                         /* strings */
-    return(make_vector_wrapper(sc, sc->strings_loc, sc->strings));
+    return(make_vector_wrapper(sc, sc->strings->loc, sc->strings->list));
   if (sym == sc->gensyms_symbol)                                         /* gensyms */
-    return(make_vector_wrapper(sc, sc->gensyms_loc, sc->gensyms));
+    return(make_vector_wrapper(sc, sc->gensyms->loc, sc->gensyms->list));
   if (sym == sc->vectors_symbol)                                         /* vectors */
-    return(make_vector_wrapper(sc, sc->vectors_loc, sc->vectors));
+    return(make_vector_wrapper(sc, sc->vectors->loc, sc->vectors->list));
   if (sym == sc->hash_tables_symbol)                                     /* hash-tables */
-    return(make_vector_wrapper(sc, sc->hash_tables_loc, sc->hash_tables));
+    return(make_vector_wrapper(sc, sc->hash_tables->loc, sc->hash_tables->list));
   if (sym == sc->continuations_symbol)                                   /* continuations */
-    return(make_vector_wrapper(sc, sc->continuations_loc, sc->continuations));
+    return(make_vector_wrapper(sc, sc->continuations->loc, sc->continuations->list));
   if (sym == sc->c_objects_symbol)                                       /* c-objects */
-    return(make_vector_wrapper(sc, sc->c_objects_loc, sc->c_objects));
+    return(make_vector_wrapper(sc, sc->c_objects->loc, sc->c_objects->list));
 
   if (sym == sc->file_names_symbol)                                      /* file-names (loaded files) */
     return(make_vector_wrapper(sc, sc->file_names_top, sc->file_names));
   if (sym == sc->c_types_symbol)                                         /* c-types */
     {
       s7_pointer res;
-      int i;
+      int32_t i;
       sc->w = sc->nil;
       for (i = 0; i < num_object_types; i++)                             /* c-object type (tag) is i */
 	sc->w = cons(sc, object_types[i]->scheme_name, sc->w);
@@ -79011,7 +80166,7 @@ static s7_pointer g_s7_let_set_fallback(s7_scheme *sc, s7_pointer args)
 	  ((iv == 0) && 
 	   ((sym != sc->print_length_symbol) &&
 	    (sym != sc->float_format_precision_symbol))))
-	return(simple_out_of_range(sc, sym, val, make_string_wrapper(sc, "should be a positive integer")));
+	return(simple_out_of_range(sc, sym, val, s7_make_string_wrapper(sc, "should be a positive integer")));
       
       if (sym == sc->print_length_symbol)               {sc->print_length = iv;               return(val);}
       if (sym == sc->default_hash_table_length_symbol)  {sc->default_hash_table_length = iv;  return(val);}
@@ -79080,10 +80235,10 @@ static s7_pointer g_s7_let_set_fallback(s7_scheme *sc, s7_pointer args)
 	  size = s7_integer(val);
 	  if (size >= INITIAL_STACK_SIZE)
 	    {
-	      sc->max_stack_size = (unsigned int)size;
+	      sc->max_stack_size = (uint32_t)size;
 	      return(val);
 	    }
-	  return(simple_out_of_range(sc, sym, val, make_string_wrapper(sc, "should be greater than the initial stack size (512)")));
+	  return(simple_out_of_range(sc, sym, val, s7_make_string_wrapper(sc, "should be greater than the initial stack size (512)")));
 	}
       return(simple_wrong_type_argument(sc, sym, val, T_INTEGER));
     }
@@ -79094,6 +80249,19 @@ static s7_pointer g_s7_let_set_fallback(s7_scheme *sc, s7_pointer args)
       return(simple_wrong_type_argument(sc, sym, val, T_INTEGER));
     }
 
+  if (sym == sc->heap_size_symbol)
+    {
+      if (s7_is_integer(val)) 
+	{
+	  s7_int size;
+	  size = s7_integer(val);
+	  if (size >= sc->heap_size * 2)
+	    resize_heap_to(sc, size);
+	  return(val);
+	}
+      return(simple_wrong_type_argument(sc, sym, val, T_INTEGER));
+    }
+
   if (sym == sc->autoloading_symbol)
     {
       if (s7_is_boolean(val)) {sc->is_autoloading = s7_boolean(sc, val); return(val);}
@@ -79142,28 +80310,26 @@ static s7_pointer g_s7_let_set_fallback(s7_scheme *sc, s7_pointer args)
       if (!is_pair(val))                
 	return(simple_wrong_type_argument(sc, sym, val, T_PAIR));
       if (s7_list_length(sc, val) != 5) 
-	return(simple_wrong_type_argument_with_type(sc, sym, val, make_string_wrapper(sc, "a list with 5 entries")));
+	return(simple_wrong_type_argument_with_type(sc, sym, val, s7_make_string_wrapper(sc, "a list with 5 entries")));
       if (!is_integer(car(val)))        
-	return(wrong_type_argument_with_type(sc, sym, 1, car(val), make_string_wrapper(sc, "an integer (stack frames)")));
+	return(wrong_type_argument_with_type(sc, sym, 1, car(val), s7_make_string_wrapper(sc, "an integer (stack frames)")));
       if (!is_integer(cadr(val)))       
-	return(wrong_type_argument_with_type(sc, sym, 2, cadr(val), make_string_wrapper(sc, "an integer (cols-for-data)")));
+	return(wrong_type_argument_with_type(sc, sym, 2, cadr(val), s7_make_string_wrapper(sc, "an integer (cols-for-data)")));
       if (!is_integer(caddr(val)))      
-	return(wrong_type_argument_with_type(sc, sym, 3, caddr(val), make_string_wrapper(sc, "an integer (line length)")));
+	return(wrong_type_argument_with_type(sc, sym, 3, caddr(val), s7_make_string_wrapper(sc, "an integer (line length)")));
       if (!is_integer(cadddr(val)))     
-	return(wrong_type_argument_with_type(sc, sym, 4, cadddr(val), make_string_wrapper(sc, "an integer (comment position)")));
+	return(wrong_type_argument_with_type(sc, sym, 4, cadddr(val), s7_make_string_wrapper(sc, "an integer (comment position)")));
       if (!s7_is_boolean(s7_list_ref(sc, val, 4))) 
-	return(wrong_type_argument_with_type(sc, sym, 5, s7_list_ref(sc, val, 4), make_string_wrapper(sc, "a boolean (treat-data-as-comment)")));
+	return(wrong_type_argument_with_type(sc, sym, 5, s7_list_ref(sc, val, 4), s7_make_string_wrapper(sc, "a boolean (treat-data-as-comment)")));
       sc->stacktrace_defaults = copy_list(sc, val);
       return(val);
     }
 
-  if ((sym == sc->cpu_time_symbol) || 
-      (sym == sc->heap_size_symbol) || (sym == sc->free_heap_size_symbol) ||
-      (sym == sc->gc_freed_symbol) || (sym == sc->gc_protected_objects_symbol) ||
+  if ((sym == sc->cpu_time_symbol) || (sym == sc->profile_info_symbol) ||
+      (sym == sc->free_heap_size_symbol) || (sym == sc->gc_freed_symbol) || (sym == sc->gc_protected_objects_symbol) ||
       (sym == sc->file_names_symbol) || (sym == sc->c_types_symbol) || (sym == sc->catches_symbol) || (sym == sc->exits_symbol) || 
-      (sym == sc->rootlet_size_symbol) || (sym == sc->profile_info_symbol) ||
-      (sym == sc->stack_top_symbol) || (sym == sc->stack_size_symbol))
-    return(s7_error(sc, sc->error_symbol, set_elist_2(sc, make_string_wrapper(sc, "can't set (*s7* '~S)"), sym)));
+      (sym == sc->rootlet_size_symbol) || (sym == sc->stack_top_symbol) || (sym == sc->stack_size_symbol))
+    return(s7_error(sc, sc->error_symbol, set_elist_2(sc, s7_make_string_wrapper(sc, "can't set (*s7* '~S)"), sym)));
       
   return(sc->undefined);
 }
@@ -79189,10 +80355,10 @@ static s7_pointer g_is_proper_list(s7_scheme *sc, s7_pointer args)
   #define Q_is_proper_list pl_bt
   s7_pointer p;
   p = car(args);
-  return(make_boolean(sc, is_proper_list(sc, p)));
+  return(make_boolean(sc, s7_is_proper_list(sc, p)));
 }
 
-static bool is_proper_list_b(s7_pointer p) {return(is_proper_list(cur_sc, p));}
+static bool is_proper_list_b(s7_pointer p) {return(s7_is_proper_list(cur_sc, p));}
 
 
 #if (!MS_WINDOWS)
@@ -79200,7 +80366,7 @@ static bool is_proper_list_b(s7_pointer p) {return(is_proper_list(cur_sc, p));}
 
 static bool is_decodable(s7_scheme *sc, s7_pointer p)
 {
-  int i;
+  int32_t i;
   s7_pointer x;
   s7_pointer *tp, *heap_top;
 
@@ -79213,7 +80379,7 @@ static bool is_decodable(s7_scheme *sc, s7_pointer p)
     return(true);
 
   /* check symbol-table */
-  for (i = 0; i < vector_length(sc->symbol_table); i++)
+  for (i = 0; i < SYMBOL_TABLE_SIZE; i++)
     for (x = vector_element(sc->symbol_table, i); is_not_null(x); x = cdr(x))
       {
 	s7_pointer sym;
@@ -79243,7 +80409,7 @@ char *s7_decode_bt(void)
   fp = fopen("gdb.txt", "r");
   if (fp)
     {
-      long i, size;
+      int64_t i, size;
       size_t bytes;
       bool in_quotes = false;
       unsigned char *bt;
@@ -79279,11 +80445,11 @@ char *s7_decode_bt(void)
 		       ((bt[i + 1] == ' ') && (bt[i + 2] == '0') && (bt[i + 3] == 'x'))))
 		    {
 		      void *vp;
-		      int vals;
+		      int32_t vals;
 		      vals = sscanf((const char *)(bt + i + 1), "%p", &vp);
 		      if (vals == 1)
 			{
-			  int k;
+			  int32_t k;
 			  for (k = i + ((bt[i + 2] == 'x') ? 3 : 4); (k < size) && (IS_DIGIT(bt[k], 16)); k++);
 			  if ((bt[k] != ' ') || (bt[k + 1] != '"'))
 			    {
@@ -79324,7 +80490,7 @@ char *s7_decode_bt(void)
 
 /* -------------------------------- initialization -------------------------------- */
 
-static s7_pointer make_unique_object(const char* name, unsigned int typ)
+static s7_pointer make_unique_object(const char* name, uint32_t typ)
 {
   s7_pointer p;
   p = alloc_pointer();
@@ -79337,7 +80503,7 @@ static s7_pointer make_unique_object(const char* name, unsigned int typ)
 
 s7_scheme *s7_init(void)
 {
-  int i;
+  int32_t i;
   s7_scheme *sc;
   s7_pointer sym;
   static bool already_inited = false;
@@ -79365,11 +80531,6 @@ s7_scheme *s7_init(void)
       else float_format_g = "%.*g"; /* float and double */
     }
 
-#if DEBUGGING && SHOW_DEBUG_HISTORY
-  for (i = 0; i < DEBUG_HISTORY_SIZE; i++)
-    debug_history[i] = NULL;
-  debug_history_loc = 0;
-#endif
   sc = (s7_scheme *)calloc(1, sizeof(s7_scheme)); /* malloc is not recommended here */
   cur_sc = sc;                                    /* for gdb/debugging */
   sc->gc_off = true;                              /* sc->args and so on are not set yet, so a gc during init -> segfault */
@@ -79508,7 +80669,7 @@ s7_scheme *s7_init(void)
 
   sc->heap_size = INITIAL_HEAP_SIZE;
   if ((sc->heap_size % 32) != 0)
-    sc->heap_size = 32 * (int)ceil((double)(sc->heap_size) / 32.0);
+    sc->heap_size = 32 * (int64_t)ceil((double)(sc->heap_size) / 32.0);
   sc->heap = (s7_pointer *)malloc(sc->heap_size * sizeof(s7_pointer));
 
   sc->free_heap = (s7_cell **)malloc(sc->heap_size * sizeof(s7_cell *));
@@ -79533,7 +80694,7 @@ s7_scheme *s7_init(void)
 
   /* this has to precede s7_make_* allocations */
   sc->protected_objects_size = INITIAL_PROTECTED_OBJECTS_SIZE;
-  sc->gpofl = (unsigned int *)malloc(INITIAL_PROTECTED_OBJECTS_SIZE * sizeof(unsigned int));
+  sc->gpofl = (uint32_t *)malloc(INITIAL_PROTECTED_OBJECTS_SIZE * sizeof(uint32_t));
   sc->gpofl_loc = INITIAL_PROTECTED_OBJECTS_SIZE - 1;
   sc->protected_objects = s7_make_vector(sc, INITIAL_PROTECTED_OBJECTS_SIZE);
 
@@ -79583,9 +80744,12 @@ s7_scheme *s7_init(void)
       string_temp_true_length(p) = INITIAL_TMP_STR_SIZE;
     }
 
-  sc->opts[0] = (opt_info *)calloc(1, sizeof(opt_info));
-  for (i = 1; i < OPTS_SIZE; i++)
-    sc->opts[i] = (opt_info *)calloc(1, sizeof(opt_info));
+  {
+    opt_info *os;
+    os = (opt_info *)calloc(OPTS_SIZE, sizeof(opt_info));
+    for (i = 0; i < OPTS_SIZE; i++)
+      sc->opts[i] = &os[i];
+  }
   sc->funcalls = 0;
   sc->unwraps = 0;
       
@@ -79723,7 +80887,7 @@ s7_scheme *s7_init(void)
 	      default:
 		{
                   #define P_SIZE 12
-		  int len;
+		  int32_t len;
 		  if ((c < 32) || (c >= 127))
 		    len = snprintf((char *)(&(character_name(cp))), P_SIZE, "#\\x%x", c);
 		  else len = snprintf((char *)(&(character_name(cp))), P_SIZE, "#\\%c", c);
@@ -79825,6 +80989,7 @@ s7_scheme *s7_init(void)
   sc->let_all_s_symbol =             assign_internal_syntax(sc, "let",         OP_LET_ALL_S);
   sc->let_all_x_symbol =             assign_internal_syntax(sc, "let",         OP_LET_ALL_X);
   sc->let_star_all_x_symbol =        assign_internal_syntax(sc, "let*",        OP_LET_STAR_ALL_X);
+  sc->let_star_a2_symbol =           assign_internal_syntax(sc, "let*",        OP_LET_STAR_A2);
   sc->let_opcq_symbol =              assign_internal_syntax(sc, "let",         OP_LET_opCq);
   sc->let_opssq_symbol =             assign_internal_syntax(sc, "let",         OP_LET_opSSq);
   sc->let_opssq_e_symbol =           assign_internal_syntax(sc, "let",         OP_LET_opSSq_E);
@@ -79869,7 +81034,9 @@ s7_scheme *s7_init(void)
   sc->set_symbol_s_symbol =          assign_internal_syntax(sc, "set!",        OP_SET_SYMBOL_S);
   sc->set_symbol_q_symbol =          assign_internal_syntax(sc, "set!",        OP_SET_SYMBOL_Q);
   sc->set_symbol_opsq_symbol =       assign_internal_syntax(sc, "set!",        OP_SET_SYMBOL_opSq);
+  sc->set_symbol_oplq_symbol =       assign_internal_syntax(sc, "set!",        OP_SET_SYMBOL_opLq);
   sc->set_symbol_opssq_symbol =      assign_internal_syntax(sc, "set!",        OP_SET_SYMBOL_opSSq);
+  sc->set_symbol_opllq_symbol =      assign_internal_syntax(sc, "set!",        OP_SET_SYMBOL_opLLq);
   sc->set_symbol_opsssq_symbol =     assign_internal_syntax(sc, "set!",        OP_SET_SYMBOL_opSSSq);
   sc->set_symbol_opcq_symbol =       assign_internal_syntax(sc, "set!",        OP_SET_SYMBOL_opCq);
   sc->set_symbol_p_symbol =          assign_internal_syntax(sc, "set!",        OP_SET_SYMBOL_P);
@@ -79886,8 +81053,6 @@ s7_scheme *s7_init(void)
   sc->set_pair_za_symbol =           assign_internal_syntax(sc, "set!",        OP_SET_PAIR_ZA);
   sc->set_let_s_symbol =             assign_internal_syntax(sc, "set!",        OP_SET_LET_S);
   sc->set_let_all_x_symbol =         assign_internal_syntax(sc, "set!",        OP_SET_LET_ALL_X);
-  sc->set_pair_c_symbol =            assign_internal_syntax(sc, "set!",        OP_SET_PAIR_C);
-  sc->set_pair_c_p_symbol =          assign_internal_syntax(sc, "set!",        OP_SET_PAIR_C_P);
   sc->increment_1_symbol =           assign_internal_syntax(sc, "set!",        OP_INCREMENT_1);
   sc->increment_ss_symbol =          assign_internal_syntax(sc, "set!",        OP_INCREMENT_SS);
   sc->increment_sss_symbol =         assign_internal_syntax(sc, "set!",        OP_INCREMENT_SSS);
@@ -79905,7 +81070,6 @@ s7_scheme *s7_init(void)
   sc->or_unchecked_symbol =          assign_internal_syntax(sc, "or",          OP_OR_UNCHECKED);
   sc->or_p_symbol =                  assign_internal_syntax(sc, "or",          OP_OR_P);
   sc->or_ap_symbol =                 assign_internal_syntax(sc, "or",          OP_OR_AP);
-  sc->or_az_symbol =                 assign_internal_syntax(sc, "or",          OP_OR_AZ);
   sc->or_safe_p_symbol =             assign_internal_syntax(sc, "or",          OP_OR_SAFE_P);
   sc->or_safe_aa_symbol =            assign_internal_syntax(sc, "or",          OP_OR_SAFE_AA);
   sc->if_unchecked_symbol =          assign_internal_syntax(sc, "if",          OP_IF_UNCHECKED);
@@ -80056,7 +81220,7 @@ s7_scheme *s7_init(void)
   sc->is_iterator_symbol =           defun("iterator?",	        is_iterator,		1, 0, false);
   sc->is_constant_symbol =           defun("constant?",	        is_constant,		1, 0, false);
   sc->is_macro_symbol =              defun("macro?",		is_macro,		1, 0, false);
-  sc->is_c_pointer_symbol =          defun("c-pointer?",	is_c_pointer,		1, 0, false);
+  sc->is_c_pointer_symbol =          defun("c-pointer?",	is_c_pointer,		1, 1, false);
   sc->is_c_object_symbol =           defun("c-object?",	        is_c_object,		1, 0, false);
   sc->is_input_port_symbol =         defun("input-port?",	is_input_port,		1, 0, false);
   sc->is_output_port_symbol =        defun("output-port?",	is_output_port,		1, 0, false);
@@ -80101,7 +81265,6 @@ s7_scheme *s7_init(void)
   pcl_bs = s7_make_circular_signature(sc, 1, 2, sc->is_boolean_symbol, sc->is_string_symbol);
 
   pcl_i =  s7_make_circular_signature(sc, 0, 1, sc->is_integer_symbol);
-  pcl_t =  s7_make_circular_signature(sc, 0, 1, sc->T);
   pcl_r =  s7_make_circular_signature(sc, 0, 1, sc->is_real_symbol);
   pcl_f =  s7_make_circular_signature(sc, 0, 1, sc->is_rational_symbol);
   pcl_n =  s7_make_circular_signature(sc, 0, 1, sc->is_number_symbol);
@@ -80153,7 +81316,7 @@ s7_scheme *s7_init(void)
   sc->provide_symbol =               defun("provide",		provide,		1, 0, false);
   sc->is_defined_symbol =            defun("defined?",		is_defined,		1, 2, false);
 
-  sc->c_pointer_symbol =             defun("c-pointer",	        c_pointer,		1, 0, false);
+  sc->c_pointer_symbol =             defun("c-pointer",	        c_pointer,		1, 2, false);
 
   sc->port_line_number_symbol =      defun("port-line-number",  port_line_number,	0, 1, false);
   sc->port_filename_symbol =         defun("port-filename",	port_filename,		0, 1, false);
@@ -80489,7 +81652,7 @@ s7_scheme *s7_init(void)
   /* it's faster to leave error/throw unsafe than to set needs_copied_args and use s7_define_safe_function because copy_list overwhelms any other savings */
   sc->stacktrace_symbol =            defun("stacktrace",	stacktrace,		0, 5, false);
 
-  sc->apply_values_symbol =          unsafe_defun("apply-values", apply_values, 0, 0, true);
+  sc->apply_values_symbol =          unsafe_defun("apply-values", apply_values, 0, 1, false);
   set_immutable(sc->apply_values_symbol);
   sc->apply_values_function = slot_value(global_slot(sc->apply_values_symbol));
 
@@ -80550,11 +81713,10 @@ s7_scheme *s7_init(void)
   set_scope_safe(slot_value(global_slot(sc->apply_values_symbol)));
   set_scope_safe(slot_value(global_slot(sc->list_values_symbol)));
 
-
-  s7_define_safe_function(sc, "tree-leaves",   g_tree_leaves,   1, 0, false, "an experiment");
-  s7_define_safe_function(sc, "tree-memq",     g_tree_memq,     2, 0, false, "an experiment");
-  s7_define_safe_function(sc, "tree-set-memq", g_tree_set_memq, 2, 0, false, "an experiment");
-  s7_define_safe_function(sc, "tree-count",    g_tree_count,    2, 1, false, "an experiment");
+  defun("tree-leaves",   tree_leaves,   1, 0, false);
+  defun("tree-memq",     tree_memq,     2, 0, false);
+  defun("tree-set-memq", tree_set_memq, 2, 0, false);
+  sc->tree_count_symbol = defun("tree-count", tree_count, 2, 1, false);
 
 
   /* -------- *features* -------- */
@@ -80724,7 +81886,6 @@ s7_scheme *s7_init(void)
    *    current-error-port should simply be an s7 variable with a name like *error-port* and an accessor to
    *    ensure its new value, if any, is an output port.
    */
-  
 
   s7_function_set_setter(sc, "car",              "set-car!");
   s7_function_set_setter(sc, "cdr",              "set-cdr!");
@@ -80739,7 +81900,7 @@ s7_scheme *s7_init(void)
   c_function_set_setter(slot_value(global_slot(sc->port_line_number_symbol)), s7_make_function(sc, "(set! port-line-number)", g_set_port_line_number, 1, 1, false, "port line setter"));
 
   {
-    int i, top;
+    int32_t i, top;
 #if WITH_GMP
     #define S7_LOG_LLONG_MAX 36.736800
     #define S7_LOG_LONG_MAX  16.6355322
@@ -80781,13 +81942,13 @@ s7_scheme *s7_init(void)
 #if WITH_GMP
       {
 	mpz_t seed;
-	mpz_init_set_ui(seed, (unsigned int)time(NULL));
+	mpz_init_set_ui(seed, (uint32_t)time(NULL));
 	gmp_randinit_default(random_gmp_state(p));
 	gmp_randseed(random_gmp_state(p), seed);
 	mpz_clear(seed);
       }
 #else
-      random_seed(p) = (unsigned long long int)time(NULL);
+      random_seed(p) = (uint64_t)time(NULL);
       random_carry(p) = 1675393560;
 #endif
       sc->default_rng = p;
@@ -80914,6 +82075,9 @@ s7_scheme *s7_init(void)
   s7_set_d_dd_function(slot_value(global_slot(sc->add_symbol)), add_d_dd);
   s7_set_d_dd_function(slot_value(global_slot(sc->subtract_symbol)), subtract_d_dd);
   s7_set_d_dd_function(slot_value(global_slot(sc->multiply_symbol)), multiply_d_dd);
+  s7_set_d_id_function(slot_value(global_slot(sc->multiply_symbol)), multiply_d_id);
+  s7_set_d_id_function(slot_value(global_slot(sc->add_symbol)), add_d_id);
+  s7_set_d_id_function(slot_value(global_slot(sc->subtract_symbol)), sub_d_id);
   s7_set_d_dd_function(slot_value(global_slot(sc->divide_symbol)), divide_d_dd);
 #if (!WITH_GMP)
   s7_set_d_dd_function(slot_value(global_slot(sc->atan_symbol)), atan_d_dd);
@@ -80944,9 +82108,16 @@ s7_scheme *s7_init(void)
   s7_set_d_p_function(slot_value(global_slot(sc->imag_part_symbol)), imag_part_d_p);
   s7_set_d_p_function(slot_value(global_slot(sc->magnitude_symbol)), magnitude_d_p);
   s7_set_p_pp_function(slot_value(global_slot(sc->multiply_symbol)), multiply_p_pp);
+  s7_set_p_dd_function(slot_value(global_slot(sc->multiply_symbol)), mul_p_dd);
+  s7_set_p_dd_function(slot_value(global_slot(sc->add_symbol)), add_p_dd);
+  s7_set_p_dd_function(slot_value(global_slot(sc->subtract_symbol)), sub_p_dd);
+  s7_set_p_ii_function(slot_value(global_slot(sc->multiply_symbol)), mul_p_ii);
+  s7_set_p_ii_function(slot_value(global_slot(sc->add_symbol)), add_p_ii);
+  s7_set_p_ii_function(slot_value(global_slot(sc->subtract_symbol)), sub_p_ii);
   s7_set_d_p_function(slot_value(global_slot(sc->angle_symbol)), angle_d_p);
   s7_set_i_d_function(slot_value(global_slot(sc->round_symbol)), round_i_d);
   s7_set_i_d_function(slot_value(global_slot(sc->floor_symbol)), floor_i_d);
+  s7_set_i_p_function(slot_value(global_slot(sc->floor_symbol)), floor_i_p);
   s7_set_i_d_function(slot_value(global_slot(sc->truncate_symbol)), truncate_i_d);
   s7_set_i_d_function(slot_value(global_slot(sc->ceiling_symbol)), ceiling_i_d);
   s7_set_i_i_function(slot_value(global_slot(sc->random_symbol)), random_i_i);
@@ -81074,16 +82245,31 @@ s7_scheme *s7_init(void)
   s7_set_b_dd_function(slot_value(global_slot(sc->geq_symbol)), geq_b_dd);
 
 #if (!WITH_GMP)
-  s7_set_p_pp_function(slot_value(global_slot(sc->eq_symbol)), equal_p_pp);
+  s7_set_b_pp_function(slot_value(global_slot(sc->logbit_symbol)), logbit_b_pp);
   s7_set_p_pi_function(slot_value(global_slot(sc->eq_symbol)), equal_p_pi);
-  s7_set_p_pp_function(slot_value(global_slot(sc->lt_symbol)), less_p_pp);
+  s7_set_p_pp_function(slot_value(global_slot(sc->eq_symbol)), equal_p_pp);
+  s7_set_p_ii_function(slot_value(global_slot(sc->eq_symbol)), equal_p_ii);
+  s7_set_p_dd_function(slot_value(global_slot(sc->eq_symbol)), equal_p_dd);
+
+  s7_set_p_pp_function(slot_value(global_slot(sc->lt_symbol)), lt_p_pp);
   s7_set_p_pi_function(slot_value(global_slot(sc->lt_symbol)), lt_p_pi);
+  s7_set_p_ii_function(slot_value(global_slot(sc->lt_symbol)), lt_p_ii);
+  s7_set_p_dd_function(slot_value(global_slot(sc->lt_symbol)), lt_p_dd);
+
   s7_set_p_pp_function(slot_value(global_slot(sc->leq_symbol)), leq_p_pp);
   s7_set_p_pi_function(slot_value(global_slot(sc->leq_symbol)), leq_p_pi);
-  s7_set_p_pp_function(slot_value(global_slot(sc->gt_symbol)), greater_p_pp);
+  s7_set_p_dd_function(slot_value(global_slot(sc->leq_symbol)), leq_p_dd);
+  s7_set_p_ii_function(slot_value(global_slot(sc->leq_symbol)), leq_p_ii);
+
+  s7_set_p_pp_function(slot_value(global_slot(sc->gt_symbol)), gt_p_pp);
   s7_set_p_pi_function(slot_value(global_slot(sc->gt_symbol)), gt_p_pi);
+  s7_set_p_dd_function(slot_value(global_slot(sc->gt_symbol)), gt_p_dd);
+  s7_set_p_ii_function(slot_value(global_slot(sc->gt_symbol)), gt_p_ii);
+
   s7_set_p_pp_function(slot_value(global_slot(sc->geq_symbol)), geq_p_pp);
   s7_set_p_pi_function(slot_value(global_slot(sc->geq_symbol)), geq_p_pi);
+  s7_set_p_ii_function(slot_value(global_slot(sc->geq_symbol)), geq_p_ii);
+  s7_set_p_dd_function(slot_value(global_slot(sc->geq_symbol)), geq_p_dd);
   /* TODO: also multiply_p_pi etc */
 
   s7_set_b_pp_function(slot_value(global_slot(sc->eq_symbol)), req_b_pp);
@@ -81282,7 +82468,7 @@ s7_scheme *s7_init(void)
 #endif
 
   /* fprintf(stderr, "size: %d, max op: %d, opt: %d\n", (int)sizeof(s7_cell), OP_MAX_DEFINED, OPT_MAX_DEFINED); */
-  /* 64 bit machine: size: 48 [size 72 if gmp, 120 if debugging], op: 409, opt: 410 */
+  /* 64 bit machine: size: 48 or 56(heap-size) [size 72 if gmp, 120 if debugging], op: 426, opt: 442 */
 
   if (sizeof(void *) > sizeof(s7_int))
     fprintf(stderr, "s7_int is too small: it has %d bytes, but void* has %d\n", (int)sizeof(s7_int), (int)sizeof(void *));
@@ -81354,7 +82540,6 @@ int main(int argc, char **argv)
  * s7:
  * if profile, use line/file num to get at hashed count? and use that to annotate pp output via [count]-symbol pre-rewrite
  *   (profile-count file line)?
- * perhaps add various version numbers etc to *features* (snd-help) or (*s7* 'version-info)?
  *
  * gtk_box_pack* has changed -- many uses!
  * gtk4: no draw signal -- need to set the draw func
@@ -81369,73 +82554,78 @@ int main(int argc, char **argv)
  *   play_selection_1 could put ends somewhere, set ends to NO_END_SPECIFIED, dac_loop_sample can
  *   use begs/other-ends to get loop points, so free_dac_info does not need to restart the loop(?)
  *   If start/end selection changed while playing, are these loop points updated?
+ * there are uses of unscramble in snd-snd.c(1) and snd-dac.c(1)
+ *
+ * lint: as in random-gen, move internally created but unchanged sequences (lists) out of the body
  *
  * gtk gl: I can't see how to switch gl in and out as in the motif version -- I guess I need both gl_area and drawing_area
  * the old mus-audio-* code needs to use play or something, especially bess*
  * snd+gtk+script->eps fails??  Also why not make a graph in the no-gui case? t415.scm.
  * remove as many edpos args as possible, and num+bool->num
- * snd namespaces: clm2xen, dac, edits, fft, gxcolormaps, mix, region, snd.  for snd-mix, tie-ins are in place
+ * snd namespaces: dac, edits, fft, gxcolormaps, mix, region, snd.  for snd-mix, tie-ins are in place
  * ruby version crashes in test 4|8 -- file_copy?
  *
- * opt_let and opt_dotimes can be combined, at least from opt_let's view
- *   maybe split these at a lower level
- * ip for pi cases (b_ip, but it doesn't appear to happen much)
- * snd-test: if envelope-interp set! frample->file file->sample[d_p|vii] et al array-interp
  * finish the t563.scm bugs: a couple number type problems 31905 30802 
- * weed out unused stuff -- choose.data/choose: not_is_string|char, simple_char_eq, is_eq_caar_q?
- * ash if arg2 known -- forego checks, similarly quotient: i_ii_direct as in modulo (these need opt_choosers too->v7.fp)
+ * weed out unused stuff -- choose.data/choose: simple_char_eq, is_eq_caar_q not_is_string|char|pair_car
  * map/for-each multi-expr bodies could be done in-place (rather than cons with begin)
  *   map/for-each/sort! in-place if c-func: p_pp 
  *   for-each+lambda also doable if lambda body is
- * varlet et al ok if let is not curlet or outlet(curlet) -- opt_chooser somehow?
- * need to test opt_sizes escape in sort et al
- *   perhaps save sc->envir, make sure it is ok if optimize fails
+ * test opt_sizes escape in sort et al -- perhaps save sc->envir, make sure it is ok if optimize fails
  * s7_macroexpand of multiple-value-set!? maybe disable values?
  *    s7test 29596 _sort_ 23890 use-redef-1 etc
- * see g_float_vector_ref -- 3mil univects! [call/all] [opt_p_cf_ss in call?]
- * tref p_pip_ssf+p_p_f, let_a|s|one|c_a, int_opt check in new do(dox_ex) needs access to do-let
- * let*->let: maybe frame-opt let* in do? or if names are unique we're safe: letz (not let_star2)
- *    so check_let_star looks for symbol_id==0 -- can this work? id==0 does happen
- * macro expanded in func (optimize_lambda)
- * need tests for cond/case in opt_dotimes_2
- * why not dotimes in thash etc?
- * do steppers (and many others) aren't marked local usually [tsort -- most loops are op_do!]
- * arg list consed up in lambda_check can be freed or not created at all
- * for-each with c-func of int|float-vect could surely use mutable arg, but this never happens?
- * tform vector_a_ex -- local symbol here?
- *   catch/call-with-exit maybe be stack-unsafe, but we should ignore that for setting locals (if body is safe)
- *   pending-unsafe for catch/call-with-exit etc -- needs lambda walker 
- * sort and|or_bb1?
- * even if body is unsafe, constants can be marked local
- * local all_x_c_opssq_s? -- in fft.scm if args rl/im local (why aren't they?) all would be local
- * opt overhead: after optimize, fill one array with opt_infos, then march through it -- no opt* call, cur_sc->pc = index into array
- *   an array of functions, but what form
- * combine opts to reduce overhead, d_id_sf+d_dd_ff_o1, d_vid_ssf+same, opt_let d_dd_f2->d_vid_ssf, d_vd_o1+d_dd_ff_o3
- *   maybe d_dd_ff_o1+d_vd_o1
- *   perhaps combine all wrappers into one temp?
+ * all_x_if_a...?
+ * opt let? opt_float_begin in s7_float_optimize for map-channel in snd?
+ * g_multiply_2 (et al) -> direct cases
+ * tie in p_di|id?
+ * private let: block outlet of any let = shutlet?
+ * doc tree*?
+ * there's confusion about where .so files place their names upon load:
+ *   cload uses (outlet (curlet))?? xg/xm use rootlet etc
+ *   ideally all would allow (load "a.so" (define *a* (inlet 'init_func 'init_a))) and the like
+ *   either we need settable (shadow-rootlet) or all should use curlet
+ *   (libm -> snd results in two versions of each??)
+ *   libgtk uses curlet which seems to work as intended
+ * grepl:
+ *   grepl.scm for debugger.
+ *      libgl_s7.c to makegl
+ *   in gdb -- window showing text (via emacs?) and auto decode gdb output
+ *   in repl auto s7let? or begin-hook for that? or begin_hook for trace? symbol-access for set!
+ *   also on-going profile? room/gc stats? stacktrace?
+ *   added glistener commands: M-. 
+ *   repl as break etc
+ *   in glistener, hover/select op, give doc string, var, highlight def? and box->inspect
+ *   as typed, run lint? or display op args, check types etc
+ *   if undef name, search libs and give correct/closest?
+ * libgtk:
+ *   callback funcs need calling check -- 5 list as fields of c-pointer?
+ *   several more special funcs
+ *   include gtkex1 somewhere with instructions and gtkex.scm
  *
  * --------------------------------------------------------------------
  *
- *           12  |  13  |  14  |  15  ||  16  | 17.4 17.5 17.6
- * tmac          |      |      |      || 9043 |  602  263
- * index    44.3 | 3291 | 1725 | 1276 || 1231 | 1127 1080
- * tref          |      |      | 2372 || 2083 | 1289 1145
- * teq           |      |      | 6612 || 2787 | 2210 1990
- * s7test   1721 | 1358 |  995 | 1194 || 2932 | 2643 2346
- * tlet     5318 | 3701 | 3712 | 3700 || 4004 | 3641 2483
- * bench    42.7 | 8752 | 4220 | 3506 || 3507 | 3032 2747
- * lint          |      |      |      || 4029 | 3308 3021 [144.1]
- * tmap          |      |      |  9.3 || 4300 | 3716 3069
- * tcopy         |      |      | 13.6 || 3185 | 3342 3158
- * tauto     265 |   89 |  9   |  8.4 || 2980 | 3248 3200
- * tform         |      |      | 6816 || 3850 | 3627 3374
- * tfft          |      | 15.5 | 16.4 || 17.3 | 4920 3989
- * tsort         |      |      |      || 9186 | 5403 4705
- * titer         |      |      |      || 5964 | 5234 4714
- * thash         |      |      | 50.7 || 8926 | 8651 7910
- * tgen          |   71 | 70.6 | 38.0 || 12.7 | 12.4 12.6
- * tall       90 |   43 | 14.5 | 12.7 || 17.9 | 20.1 18.0
- * calls     359 |  275 | 54   | 34.7 || 43.4 | 42.5 41.1 [131.5]
+ *           12  |  13  |  14  |  15  ||  16  | 17.4  17.5  17.6  17.7
+ * tmac          |      |      |      || 9052 |  615   259   261
+ * index    44.3 | 3291 | 1725 | 1276 || 1255 | 1158  1111  1058
+ * tref          |      |      | 2372 || 2125 | 1375  1231  1125
+ * tauto     265 |   89 |  9   |  8.4 || 2993 | 3255  3254  1772
+ * teq           |      |      | 6612 || 2777 | 2129  1978  1988
+ * s7test   1721 | 1358 |  995 | 1194 || 2926 | 2645  2356  2215
+ * tlet     5318 | 3701 | 3712 | 3700 || 4006 | 3616  2527  2436
+ * lint          |      |      |      || 4041 | 3376  3114  3003
+ * lg            |      |      |      || 211  | 161   149   143.9
+ * tcopy         |      |      | 13.6 || 3183 | 3404  3229  3092
+ * tform         |      |      | 6816 || 3714 | 3530  3361  3295
+ * tmap          |      |      |  9.3 || 5279 |       3939  3387
+ * tfft          |      | 15.5 | 16.4 || 17.3 | 4901  4008  3963
+ * tsort         |      |      |      || 8584 | 4869  4080  4010
+ * titer         |      |      |      || 5971 | 5224  4768  4707
+ * thash         |      |      | 50.7 || 8778 | 8488  8057  7550
+ * tgen          |   71 | 70.6 | 38.0 || 12.6 | 12.4  12.6  11.7
+ * bench         |      |      |      || 17.3 | 15.7  15.4  14.6
+ * tall       90 |   43 | 14.5 | 12.7 || 17.9 | 20.4  18.6  17.7
+ * calls     359 |  275 | 54   | 34.7 || 43.7 | 42.5  41.1  39.7
+ *                                    || 145  | 135   132   93.2
  * 
  * --------------------------------------------------------------------
+ * safe lets saved across calls gains nothing! ~/old/has-olets(2)-s7.c.
  */
diff --git a/s7.h b/s7.h
index 993d425..9c1182a 100644
--- a/s7.h
+++ b/s7.h
@@ -1,18 +1,18 @@
 #ifndef S7_H
 #define S7_H
 
-#define S7_VERSION "5.3"
-#define S7_DATE "22-May-17"
+#define S7_VERSION "5.8"
+#define S7_DATE "28-July-17"
 
-typedef long long int s7_int; /* This sets the size of integers in Scheme; it needs to be big enough to accomodate a C pointer. */
+#include <stdint.h>           /* for int64_t */
+
+typedef int64_t s7_int;       /* This sets the size of integers in Scheme; it needs to be big enough to accomodate a C pointer. */
 typedef double s7_double;     /*   similarly for Scheme reals; only "double" works in C++ */
 
 /* old forms... */
 typedef s7_int s7_Int;
 typedef s7_double s7_Double;
 
-#include <stdio.h>
-
 #ifndef __cplusplus
 #ifndef _MSC_VER
   #include <stdbool.h>
@@ -56,8 +56,11 @@ bool s7_is_null(s7_scheme *sc, s7_pointer p);                        /* null? */
 
 bool s7_is_valid(s7_scheme *sc, s7_pointer arg);                     /* does 'arg' look like an s7 object? */
 bool s7_is_c_pointer(s7_pointer arg);
+bool s7_is_c_pointer_of_type(s7_pointer arg, s7_pointer type);
 void *s7_c_pointer(s7_pointer p);
+s7_pointer s7_c_pointer_type(s7_pointer p);
 s7_pointer s7_make_c_pointer(s7_scheme *sc, void *ptr);              /* these are for passing uninterpreted C pointers through Scheme */
+s7_pointer s7_make_c_pointer_with_type(s7_scheme *sc, void *ptr, s7_pointer type, s7_pointer info);
 
 s7_pointer s7_eval_c_string(s7_scheme *sc, const char *str);         /* (eval-string str) */
 s7_pointer s7_eval_c_string_with_environment(s7_scheme *sc, const char *str, s7_pointer e);
@@ -89,9 +92,9 @@ bool s7_is_provided(s7_scheme *sc, const char *feature);             /* (provide
 
 
 s7_pointer s7_error(s7_scheme *sc, s7_pointer type, s7_pointer info);
-s7_pointer s7_wrong_type_arg_error(s7_scheme *sc, const char *caller, int arg_n, s7_pointer arg, const char *descr);
+s7_pointer s7_wrong_type_arg_error(s7_scheme *sc, const char *caller, int32_t arg_n, s7_pointer arg, const char *descr);
   /* set arg_n to 0 to indicate that caller takes only one argument (so the argument number need not be reported */
-s7_pointer s7_out_of_range_error(s7_scheme *sc, const char *caller, int arg_n, s7_pointer arg, const char *descr);
+s7_pointer s7_out_of_range_error(s7_scheme *sc, const char *caller, int32_t arg_n, s7_pointer arg, const char *descr);
 s7_pointer s7_wrong_number_of_args_error(s7_scheme *sc, const char *caller, s7_pointer args);
 
   /* these are equivalent to (error ...) in Scheme
@@ -119,14 +122,14 @@ s7_pointer s7_stacktrace(s7_scheme *sc);
 s7_pointer s7_history(s7_scheme *sc);                                /* the current (circular backwards) history buffer */
 s7_pointer s7_add_to_history(s7_scheme *sc, s7_pointer entry);       /* add entry to the history buffer */
 
-unsigned int s7_gc_protect(s7_scheme *sc, s7_pointer x);
+uint32_t s7_gc_protect(s7_scheme *sc, s7_pointer x);
 void s7_gc_unprotect(s7_scheme *sc, s7_pointer x);
-void s7_gc_unprotect_at(s7_scheme *sc, unsigned int loc);
-s7_pointer s7_gc_protected_at(s7_scheme *sc, unsigned int loc);
+void s7_gc_unprotect_at(s7_scheme *sc, uint32_t loc);
+s7_pointer s7_gc_protected_at(s7_scheme *sc, uint32_t loc);
 s7_pointer s7_gc_on(s7_scheme *sc, bool on);
 void s7_gc_stats(s7_scheme *sc, bool on);
-unsigned int s7_heap_size(s7_scheme *sc);
-int s7_gc_freed(s7_scheme *sc);
+int64_t s7_heap_size(s7_scheme *sc);
+int64_t s7_gc_freed(s7_scheme *sc);
 
   /* any s7_pointer object held in C (as a local variable for example) needs to be
    *   protected from garbage collection if there is any chance the GC may run without
@@ -209,12 +212,13 @@ s7_pointer s7_cddaar(s7_pointer p);
 
 
 bool s7_is_list(s7_scheme *sc, s7_pointer p);                                /* (list? p) -> (or (pair? p) (null? p)) */
-int s7_list_length(s7_scheme *sc, s7_pointer a);                             /* (length a) */
-s7_pointer s7_list(s7_scheme *sc, int num_values, ...);                      /* (list ...) */
+bool s7_is_proper_list(s7_scheme *sc, s7_pointer p);                         /* (proper-list? p) */
+int32_t s7_list_length(s7_scheme *sc, s7_pointer a);                         /* (length a) */
+s7_pointer s7_list(s7_scheme *sc, int32_t num_values, ...);                  /* (list ...) */
 s7_pointer s7_reverse(s7_scheme *sc, s7_pointer a);                          /* (reverse a) */
 s7_pointer s7_append(s7_scheme *sc, s7_pointer a, s7_pointer b);             /* (append a b) */
-s7_pointer s7_list_ref(s7_scheme *sc, s7_pointer lst, int num);              /* (list-ref lst num) */
-s7_pointer s7_list_set(s7_scheme *sc, s7_pointer lst, int num, s7_pointer val); /* (list-set! lst num val) */
+s7_pointer s7_list_ref(s7_scheme *sc, s7_pointer lst, int32_t num);          /* (list-ref lst num) */
+s7_pointer s7_list_set(s7_scheme *sc, s7_pointer lst, int32_t num, s7_pointer val); /* (list-set! lst num val) */
 s7_pointer s7_assoc(s7_scheme *sc, s7_pointer obj, s7_pointer lst);          /* (assoc obj lst) */
 s7_pointer s7_assq(s7_scheme *sc, s7_pointer obj, s7_pointer x);             /* (assq obj lst) */
 s7_pointer s7_member(s7_scheme *sc, s7_pointer obj, s7_pointer lst);         /* (member obj lst) */
@@ -224,20 +228,21 @@ bool s7_tree_memq(s7_scheme *sc, s7_pointer sym, s7_pointer tree);           /*
 bool s7_is_string(s7_pointer p);                                             /* (string? p) */
 const char *s7_string(s7_pointer p);                                         /* Scheme string -> C string (do not free the string) */
 s7_pointer s7_make_string(s7_scheme *sc, const char *str);                   /* C string -> Scheme string (str is copied) */
-s7_pointer s7_make_string_with_length(s7_scheme *sc, const char *str, int len);  /* same as s7_make_string, but provides strlen */
+s7_pointer s7_make_string_with_length(s7_scheme *sc, const char *str, int32_t len);  /* same as s7_make_string, but provides strlen */
+s7_pointer s7_make_string_wrapper(s7_scheme *sc, const char *str);
 s7_pointer s7_make_permanent_string(const char *str);                        /* make a string that will never be GC'd */
-unsigned int s7_string_length(s7_pointer str);                               /* (string-length str) */
+uint32_t s7_string_length(s7_pointer str);                                   /* (string-length str) */
 
 
 bool s7_is_character(s7_pointer p);                                          /* (character? p) */
 char s7_character(s7_pointer p);                                             /* Scheme character -> C char */
-s7_pointer s7_make_character(s7_scheme *sc, unsigned int c);                 /* C char (as unsigned int) -> Scheme character */
+s7_pointer s7_make_character(s7_scheme *sc, uint32_t c);                     /* C char (as uint32_t) -> Scheme character */
 
 
 bool s7_is_number(s7_pointer p);                                             /* (number? p) */
 bool s7_is_integer(s7_pointer p);                                            /* (integer? p) */
-s7_int s7_integer(s7_pointer p);                                             /* Scheme integer -> C int (long long int probably) */
-s7_pointer s7_make_integer(s7_scheme *sc, s7_int num);                       /* C long long int -> Scheme integer */
+s7_int s7_integer(s7_pointer p);                                             /* Scheme integer -> C integer (int64_t) */
+s7_pointer s7_make_integer(s7_scheme *sc, s7_int num);                       /* C int64_t -> Scheme integer */
 
 bool s7_is_real(s7_pointer p);                                               /* (real? p) */
 s7_double s7_real(s7_pointer p);                                             /* Scheme real -> C double */
@@ -248,14 +253,6 @@ s7_double s7_number_to_real_with_caller(s7_scheme *sc, s7_pointer x, const char
 s7_int s7_number_to_integer(s7_scheme *sc, s7_pointer x);
 s7_int s7_number_to_integer_with_caller(s7_scheme *sc, s7_pointer x, const char *caller);
 
-bool s7_is_ulong(s7_pointer arg);                                            /* returns true if arg is an unsigned long */
-unsigned long s7_ulong(s7_pointer p);                                        /* Scheme unsigned long -> C */
-s7_pointer s7_make_ulong(s7_scheme *sc, unsigned long n);                    /* C unsigned lonog -> Scheme */
-bool s7_is_ulong_long(s7_pointer arg);                                       /* returns true if arg is an unsigned long long */
-unsigned long long s7_ulong_long(s7_pointer p);                              /* Scheme unsigned long long -> C */
-s7_pointer s7_make_ulong_long(s7_scheme *sc, unsigned long long n);          /* C unsigned long long -> Scheme */
-  /* the ulong stuff is intended for passing uninterpreted C pointers through Scheme and back to C */
-
 bool s7_is_rational(s7_pointer arg);                                        /* (rational? arg) -- integer or ratio */
 bool s7_is_ratio(s7_pointer arg);                                           /* true if arg is a ratio, not an integer */
 s7_pointer s7_make_ratio(s7_scheme *sc, s7_int a, s7_int b);                /* returns the Scheme object a/b */
@@ -271,12 +268,19 @@ bool s7_is_complex(s7_pointer arg);                                         /* (
 s7_pointer s7_make_complex(s7_scheme *sc, s7_double a, s7_double b);        /* returns the Scheme object a+bi */
 s7_double s7_real_part(s7_pointer z);                                       /* (real-part z) */
 s7_double s7_imag_part(s7_pointer z);                                       /* (imag-part z) */
-char *s7_number_to_string(s7_scheme *sc, s7_pointer obj, int radix);        /* (number->string obj radix) */
+char *s7_number_to_string(s7_scheme *sc, s7_pointer obj, int32_t radix);    /* (number->string obj radix) */
+
+bool s7_is_ulong(s7_pointer arg);
+unsigned long s7_ulong(s7_pointer p);
+s7_pointer s7_make_ulong(s7_scheme *sc, unsigned long n);
+bool s7_is_ulong_long(s7_pointer arg);
+uint64_t s7_ulong_long(s7_pointer p);
+s7_pointer s7_make_ulong_long(s7_scheme *sc, uint64_t n);
 
 
 bool s7_is_vector(s7_pointer p);                                            /* (vector? p) */
 s7_int s7_vector_length(s7_pointer vec);                                    /* (vector-length vec) */
-int s7_vector_rank(s7_pointer vect);                                        /* number of dimensions in vect */
+int32_t s7_vector_rank(s7_pointer vect);                                    /* number of dimensions in vect */
 s7_int *s7_vector_dimensions(s7_pointer vec);                               /* dimensions (don't free the pointer) */
 s7_int *s7_vector_offsets(s7_pointer vec);                                  /* precalculated offsets to speed-up addressing (don't free) */
 s7_pointer *s7_vector_elements(s7_pointer vec);                             /* a pointer to the array of s7_pointers */
@@ -287,13 +291,13 @@ bool s7_is_int_vector(s7_pointer p);
 
 s7_pointer s7_vector_ref(s7_scheme *sc, s7_pointer vec, s7_int index);                            /* (vector-ref vec index) */
 s7_pointer s7_vector_set(s7_scheme *sc, s7_pointer vec, s7_int index, s7_pointer a);              /* (vector-set! vec index a) */
-s7_pointer s7_vector_ref_n(s7_scheme *sc, s7_pointer vector, int indices, ...);                   /* multidimensional vector-ref */
-s7_pointer s7_vector_set_n(s7_scheme *sc, s7_pointer vector, s7_pointer value, int indices, ...); /* multidimensional vector-set! */
+s7_pointer s7_vector_ref_n(s7_scheme *sc, s7_pointer vector, int32_t indices, ...);                   /* multidimensional vector-ref */
+s7_pointer s7_vector_set_n(s7_scheme *sc, s7_pointer vector, s7_pointer value, int32_t indices, ...); /* multidimensional vector-set! */
 
 s7_pointer s7_make_vector(s7_scheme *sc, s7_int len);                                 /* (make-vector len) */
-s7_pointer s7_make_int_vector(s7_scheme *sc, s7_int len, int dims, s7_int *dim_info);
-s7_pointer s7_make_float_vector(s7_scheme *sc, s7_int len, int dims, s7_int *dim_info);
-s7_pointer s7_make_float_vector_wrapper(s7_scheme *sc, s7_int len, s7_double *data, int dims, s7_int *dim_info, bool free_data);
+s7_pointer s7_make_int_vector(s7_scheme *sc, s7_int len, int32_t dims, s7_int *dim_info);
+s7_pointer s7_make_float_vector(s7_scheme *sc, s7_int len, int32_t dims, s7_int *dim_info);
+s7_pointer s7_make_float_vector_wrapper(s7_scheme *sc, s7_int len, s7_double *data, int32_t dims, s7_int *dim_info, bool free_data);
 s7_pointer s7_make_and_fill_vector(s7_scheme *sc, s7_int len, s7_pointer fill);       /* (make-vector len fill) */
 
 void s7_vector_fill(s7_scheme *sc, s7_pointer vec, s7_pointer obj);                   /* (vector-fill! vec obj) */
@@ -328,7 +332,7 @@ s7_pointer s7_hook_set_functions(s7_scheme *sc, s7_pointer hook, s7_pointer func
 bool s7_is_input_port(s7_scheme *sc, s7_pointer p);                         /* (input-port? p) */
 bool s7_is_output_port(s7_scheme *sc, s7_pointer p);                        /* (output-port? p) */
 const char *s7_port_filename(s7_pointer x);                                 /* (port-filename p) */
-int s7_port_line_number(s7_pointer p);                                      /* (port-line-number p) */
+int32_t s7_port_line_number(s7_pointer p);                                      /* (port-line-number p) */
 
 s7_pointer s7_current_input_port(s7_scheme *sc);                            /* (current-input-port) */
 s7_pointer s7_set_current_input_port(s7_scheme *sc, s7_pointer p);          /* (set-current-input-port) */
@@ -354,11 +358,11 @@ typedef enum {S7_READ, S7_READ_CHAR, S7_READ_LINE, S7_READ_BYTE, S7_PEEK_CHAR, S
 s7_pointer s7_open_output_function(s7_scheme *sc, void (*function)(s7_scheme *sc, unsigned char c, s7_pointer port));  
 s7_pointer s7_open_input_function(s7_scheme *sc, s7_pointer (*function)(s7_scheme *sc, s7_read_t read_choice, s7_pointer port));
 
-int s7_read_char(s7_scheme *sc, s7_pointer port);                           /* (read-char port) */
-int s7_peek_char(s7_scheme *sc, s7_pointer port);                           /* (peek-char port) */
+int32_t s7_read_char(s7_scheme *sc, s7_pointer port);                       /* (read-char port) */
+int32_t s7_peek_char(s7_scheme *sc, s7_pointer port);                       /* (peek-char port) */
 s7_pointer s7_read(s7_scheme *sc, s7_pointer port);                         /* (read port) */
 void s7_newline(s7_scheme *sc, s7_pointer port);                            /* (newline port) */
-void s7_write_char(s7_scheme *sc, int c, s7_pointer port);                  /* (write-char c port) */
+void s7_write_char(s7_scheme *sc, int32_t c, s7_pointer port);                  /* (write-char c port) */
 void s7_write(s7_scheme *sc, s7_pointer obj, s7_pointer port);              /* (write obj port) */
 void s7_display(s7_scheme *sc, s7_pointer obj, s7_pointer port);            /* (display obj port) */
 const char *s7_format(s7_scheme *sc, s7_pointer args);                      /* (format ... */
@@ -371,9 +375,9 @@ s7_pointer s7_closure_let(s7_scheme *sc, s7_pointer p);
 s7_pointer s7_closure_args(s7_scheme *sc, s7_pointer p);
 s7_pointer s7_funclet(s7_scheme *sc, s7_pointer p);                         /* (funclet x) */
 const char *s7_procedure_documentation(s7_scheme *sc, s7_pointer p);        /* (procedure-documentation x) if any (don't free the string) */
-s7_pointer s7_make_signature(s7_scheme *sc, int len, ...);                  /* procedure-signature data */
-s7_pointer s7_make_circular_signature(s7_scheme *sc, int cycle_point, int len, ...);
-bool s7_is_aritable(s7_scheme *sc, s7_pointer x, int args);                 /* (aritable? x args) */
+s7_pointer s7_make_signature(s7_scheme *sc, int32_t len, ...);              /* procedure-signature data */
+s7_pointer s7_make_circular_signature(s7_scheme *sc, int32_t cycle_point, int32_t len, ...);
+bool s7_is_aritable(s7_scheme *sc, s7_pointer x, int32_t args);             /* (aritable? x args) */
 s7_pointer s7_arity(s7_scheme *sc, s7_pointer x);                           /* (arity x) */
 const char *s7_help(s7_scheme *sc, s7_pointer obj);                         /* (help obj) */
 s7_pointer s7_make_continuation(s7_scheme *sc);                             /* call/cc... (see example below) */
@@ -466,32 +470,36 @@ bool s7_is_constant(s7_pointer p);
 bool s7_is_function(s7_pointer p); 
 
 s7_pointer s7_make_function(s7_scheme *sc, const char *name, s7_function fnc, 
-			    int required_args, int optional_args, bool rest_arg, const char *doc);
+			    int32_t required_args, int32_t optional_args, bool rest_arg, const char *doc);
 s7_pointer s7_make_safe_function(s7_scheme *sc, const char *name, s7_function fnc, 
-				 int required_args, int optional_args, bool rest_arg, const char *doc);
+				 int32_t required_args, int32_t optional_args, bool rest_arg, const char *doc);
 s7_pointer s7_make_typed_function(s7_scheme *sc, const char *name, s7_function f, 
-				  int required_args, int optional_args, bool rest_arg, const char *doc, s7_pointer signature);
+				  int32_t required_args, int32_t optional_args, bool rest_arg, const char *doc, s7_pointer signature);
 
 s7_pointer s7_define_function(s7_scheme *sc, const char *name, s7_function fnc, 
-			      int required_args, int optional_args, bool rest_arg, const char *doc);
+			      int32_t required_args, int32_t optional_args, bool rest_arg, const char *doc);
 s7_pointer s7_define_safe_function(s7_scheme *sc, const char *name, s7_function fnc, 
-				   int required_args, int optional_args, bool rest_arg, const char *doc);
+				   int32_t required_args, int32_t optional_args, bool rest_arg, const char *doc);
 s7_pointer s7_define_typed_function(s7_scheme *sc, const char *name, s7_function fnc,
-				    int required_args, int optional_args, bool rest_arg, 
+				    int32_t required_args, int32_t optional_args, bool rest_arg, 
 				    const char *doc, s7_pointer signature);
 s7_pointer s7_define_unsafe_typed_function(s7_scheme *sc, const char *name, s7_function fnc,
-					   int required_args, int optional_args, bool rest_arg, 
+					   int32_t required_args, int32_t optional_args, bool rest_arg, 
 					   const char *doc, s7_pointer signature);
 
+s7_pointer s7_make_function_star(s7_scheme *sc, const char *name, s7_function fnc, const char *arglist, const char *doc);
+s7_pointer s7_make_safe_function_star(s7_scheme *sc, const char *name, s7_function fnc, const char *arglist, const char *doc);
 void s7_define_function_star(s7_scheme *sc, const char *name, s7_function fnc, const char *arglist, const char *doc);
 void s7_define_safe_function_star(s7_scheme *sc, const char *name, s7_function fnc, const char *arglist, const char *doc);
+void s7_define_typed_function_star(s7_scheme *sc, const char *name, s7_function fnc, const char *arglist, const char *doc, s7_pointer signature);
+s7_pointer s7_apply_function_star(s7_scheme *sc, s7_pointer fnc, s7_pointer args);
 
 void s7_define_function_with_setter(s7_scheme *sc, const char *name, s7_function get_fnc, 
-				    s7_function set_fnc, int req_args, int opt_args, const char *doc);
+				    s7_function set_fnc, int32_t req_args, int32_t opt_args, const char *doc);
   /* this is now the same as s7_dilambda (different args) */
 
 s7_pointer s7_apply_function(s7_scheme *sc, s7_pointer fnc, s7_pointer args);
-s7_pointer s7_define_macro(s7_scheme *sc, const char *name, s7_function fnc, int required_args, int optional_args, bool rest_arg, const char *doc);
+s7_pointer s7_define_macro(s7_scheme *sc, const char *name, s7_function fnc, int32_t required_args, int32_t optional_args, bool rest_arg, const char *doc);
 
   /* s7_make_function creates a Scheme function object from the s7_function 'fnc'.
    *   Its name (for s7_describe_object) is 'name', it requires 'required_args' arguments,
@@ -547,7 +555,7 @@ s7_pointer s7_define_macro(s7_scheme *sc, const char *name, s7_function fnc, int
    */
 
 s7_pointer s7_call(s7_scheme *sc, s7_pointer func, s7_pointer args);
-s7_pointer s7_call_with_location(s7_scheme *sc, s7_pointer func, s7_pointer args, const char *caller, const char *file, int line);
+s7_pointer s7_call_with_location(s7_scheme *sc, s7_pointer func, s7_pointer args, const char *caller, const char *file, int32_t line);
   
   /* s7_call takes a Scheme function (e.g. g_car above), and applies it to 'args' (a list of arguments)
    *   returning the result.
@@ -565,16 +573,16 @@ bool s7_is_dilambda(s7_pointer obj);
 s7_pointer s7_dilambda(s7_scheme *sc, 
 		       const char *name,
 		       s7_pointer (*getter)(s7_scheme *sc, s7_pointer args), 
-		       int get_req_args, int get_opt_args,
+		       int32_t get_req_args, int32_t get_opt_args,
 		       s7_pointer (*setter)(s7_scheme *sc, s7_pointer args),
-		       int set_req_args, int set_opt_args,
+		       int32_t set_req_args, int32_t set_opt_args,
 		       const char *documentation);
 s7_pointer s7_typed_dilambda(s7_scheme *sc, 
 		       const char *name,
 		       s7_pointer (*getter)(s7_scheme *sc, s7_pointer args), 
-		       int get_req_args, int get_opt_args,
+		       int32_t get_req_args, int32_t get_opt_args,
 		       s7_pointer (*setter)(s7_scheme *sc, s7_pointer args),
-		       int set_req_args, int set_opt_args,
+		       int32_t set_req_args, int32_t set_opt_args,
 		       const char *documentation,
  		       s7_pointer get_sig, s7_pointer set_sig);
 
@@ -587,7 +595,7 @@ bool s7_iterator_is_at_end(s7_scheme *sc, s7_pointer obj);
 s7_pointer s7_iterate(s7_scheme *sc, s7_pointer iter);
 
   /* ancient form -- backwards compatibility */
-int s7_new_type(const char *name, 
+int32_t s7_new_type(const char *name, 
 		char *(*print)(s7_scheme *sc, void *value), 
 		void (*free)(void *value), 
 		bool (*equal)(void *val1, void *val2),
@@ -596,7 +604,7 @@ int s7_new_type(const char *name,
 		s7_pointer (*set)(s7_scheme *sc, s7_pointer obj, s7_pointer args));
 
   /* new form */
-int s7_new_type_x(s7_scheme *sc,
+int32_t s7_new_type_x(s7_scheme *sc,
 		  const char *name, 
 		  char *(*print)(s7_scheme *sc, void *value), 
 		  void (*free)(void *value), 
@@ -610,14 +618,15 @@ int s7_new_type_x(s7_scheme *sc,
 		  s7_pointer (*fill)(s7_scheme *sc, s7_pointer args));
 
 bool s7_is_object(s7_pointer p);
-int s7_object_type(s7_pointer obj);
+int32_t s7_object_type(s7_pointer obj);
 void *s7_object_value(s7_pointer obj);
-void *s7_object_value_checked(s7_pointer obj, int type);
-s7_pointer s7_make_object(s7_scheme *sc, int type, void *value);
+void *s7_object_value_checked(s7_pointer obj, int32_t type);
+s7_pointer s7_make_object(s7_scheme *sc, int32_t type, void *value);
+s7_pointer s7_make_object_with_let(s7_scheme *sc, int32_t type, void *value, s7_pointer let);
 void s7_mark_object(s7_pointer p);
 s7_pointer s7_object_let(s7_pointer obj);
 s7_pointer s7_object_set_let(s7_pointer obj, s7_pointer e);
-void s7_set_object_print_readably(int type, char *(*printer)(s7_scheme *sc, void *val));
+void s7_set_object_print_readably(int32_t type, char *(*printer)(s7_scheme *sc, void *val));
 
   /* These functions create a new Scheme object type.  There is a simple example in s7.html.
    *
@@ -650,7 +659,7 @@ void s7_set_object_print_readably(int type, char *(*printer)(s7_scheme *sc, void
    */
 
 
-void s7_autoload_set_names(s7_scheme *sc, const char **names, int size);
+void s7_autoload_set_names(s7_scheme *sc, const char **names, int32_t size);
 
 s7_pointer s7_copy(s7_scheme *sc, s7_pointer args);
 s7_pointer s7_fill(s7_scheme *sc, s7_pointer args);
@@ -763,7 +772,7 @@ s7_d_pi_t s7_d_pi_function(s7_pointer f);
 
 
 /* these are possibly temporary */
-void s7_object_type_set_direct(int tag, 
+void s7_object_type_set_direct(int32_t tag, 
 			       s7_pointer (*dref)(s7_scheme *sc, s7_pointer obj, s7_int index), 
 			       s7_pointer (*dset)(s7_scheme *sc, s7_pointer obj, s7_int index, s7_pointer val));
 void s7_slot_set_real_value(s7_scheme *sc, s7_pointer slot, s7_double value);
@@ -848,6 +857,11 @@ s7_pointer s7_apply_n_9(s7_scheme *sc, s7_pointer args,
  * 
  *        s7 changes
  *
+ * 28-Jul:    s7_make_c_pointer_with_type and s7_c_pointer_type.
+ * 24-Jul:    int64_t rather than long long int, and various related changes.
+ * 18-Jul:    s7_make_object_with_let.
+ * 8-July:    s7_define_typed_function_star, s7_make_function_star. s7_apply_function_star.
+ * 27-June:   s7_make_string_wrapper.
  * 22-May:    lambda* keyword arg handling changed slightly. 
  * 9-May:     s7_history, s7_add_to_history.
  * 20-Apr:    s7_tree_memq (for Snd), s7_type_of, many changes for new clm optimizer.
@@ -1002,7 +1016,7 @@ s7_pointer s7_apply_n_9(s7_scheme *sc, s7_pointer args,
  *            s7_symbol_special_value for C-side access to dynamic bindings.
  *            s7_is_macro.
  *            port-closed? returns #t if its argument (a port) is closed.
- * 22-July:   s7_make_character takes unsigned int, rather than int.
+ * 22-July:   s7_make_character takes uint32_t, rather than int.
  *            added symbol function for funny symbol names.
  * 12-July:   initial-environment.
  * 7-July:    removed force and delay: use slib.
diff --git a/s7.html b/s7.html
index a04cd36..e8fc341 100644
--- a/s7.html
+++ b/s7.html
@@ -4132,6 +4132,20 @@ in its closure:
 <em class="gray">(boolean? real?)</em>
 </pre>
 
+<p>procedure-signature could also be used to implement CL's 'the:
+</p>
+<pre class="indented">
+(define-macro (the value-type form)
+  `((let ((signature (list ,value-type)))
+      (lambda ()
+	,form))))
+
+(display (+ 1 (<em class="red">the</em> integer? (+ 2 3))))
+</pre>
+
+<p>but the optimizer currently doesn't know how to take advantage of this pattern.
+</p>
+
 <p>openlet alerts s7 that f1 has methods.
 </p>
 <blockquote>
@@ -5829,7 +5843,7 @@ stacktrace-defaults           stacktrace formatting info for error handler
 
 symbol-table                  a vector
 rootlet-size                  the number of globals
-heap-size                     total cells currently available
+heap-size                     total cells currently available (settable)
 free-heap-size                the number of currently unused cells
 gc-freed                      number of cells freed by the last GC pass
 gc-protected-objects          vector of the objects permanently protected from the GC
@@ -6636,7 +6650,7 @@ so misleading that I feel guilty about it):
 (for-each do-loop (list 1000 1000000 10000000))
 </pre>
 
-<p>In s7, that takes 0.22 seconds on my home machine.  In tinyScheme, from
+<p>In s7, that takes 0.1 seconds on my home machine.  In tinyScheme, from
 whence we sprang, it takes 85 seconds.  In the chicken interpreter, 5.3
 seconds, and after compilation (using -O2) of the chicken compiler output,
 0.75 seconds.  So, s7 is comparable to chicken in speed, even though chicken
diff --git a/s7test.scm b/s7test.scm
index 3bcd288..c7e3e2a 100644
--- a/s7test.scm
+++ b/s7test.scm
@@ -432,7 +432,9 @@ static s7_pointer g_make_block(s7_scheme *sc, s7_pointer args)
      return(s7_out_of_range_error(sc, \"make-block\", 1, s7_car(args), \"should be something reasonable\"));
   g = (g_block *)calloc(1, sizeof(g_block));
   g->size = (size_t)size;
-  g->data = (double *)calloc(g->size, sizeof(double));
+  if (g->size > 0)
+    g->data = (double *)calloc(g->size, sizeof(double));
+  else g->data = NULL;
   new_g = s7_make_object(sc, g_block_type, (void *)g);
   s7_object_set_let(new_g, g_block_methods);
   s7_openlet(sc, new_g);
@@ -488,7 +490,7 @@ static char *g_block_display_readably(s7_scheme *sc, void *value)
 static void g_block_free(void *value)
 {
   g_block *g = (g_block *)value;
-  free(g->data);
+  if (g->data) free(g->data);
   free(g);
 }
 
@@ -903,12 +905,12 @@ void block_init(s7_scheme *sc)
 			       g_block_ref, g_block_set, g_block_length, 
 			       g_block_copy, g_block_reverse, g_block_fill);
   s7_set_object_print_readably(g_block_type, g_block_display_readably);
-  s7_define_function(sc, \"make-block\", g_make_block, 1, 0, false, g_make_block_help);
-  s7_define_function(sc, \"block\", g_to_block, 0, 0, true, g_block_help);
-  s7_define_function(sc, \"subblock\", g_subblock, 1, 0, true, g_subblock_help);
-  s7_define_function(sc, \"block-append\", g_block_append, 0, 0, true, g_block_append_help);
-  s7_define_function(sc, \"block-reverse!\", g_block_reverse_in_place, 1, 0, true, g_block_reverse_in_place_help);
-  s7_define_function(sc, \"block?\", g_is_block, 1, 0, false, g_is_block_help);
+  s7_define_safe_function(sc, \"make-block\", g_make_block, 1, 0, false, g_make_block_help);
+  s7_define_safe_function(sc, \"block\", g_to_block, 0, 0, true, g_block_help);
+  s7_define_safe_function(sc, \"subblock\", g_subblock, 1, 0, true, g_subblock_help);
+  s7_define_safe_function(sc, \"block-append\", g_block_append, 0, 0, true, g_block_append_help);
+  s7_define_safe_function(sc, \"block-reverse!\", g_block_reverse_in_place, 1, 0, true, g_block_reverse_in_place_help);
+  s7_define_safe_function(sc, \"block?\", g_is_block, 1, 0, false, g_is_block_help);
   s7_define_function_star(sc, \"blocks\", g_blocks, \"(frequency 4) (scaler 1)\", \"test for function*\");
   g_block_methods = s7_eval_c_string(sc, \"(openlet (inlet 'float-vector? (lambda (p) #t) \
 						           'object->let (lambda (p e) (varlet e :empty (zero? (length p)))) \
@@ -1328,12 +1330,13 @@ void block_init(s7_scheme *sc)
 
 (test (c-pointer?) 'error)
 (test (c-object?) 'error)
-(test (c-pointer? _c_obj_ 2) 'error)
+(test (c-pointer? _c_obj_ 2 3) 'error)
 (test (c-object? _c_obj_ 2) 'error)
 (when with-bignums
   (test (c-pointer? (c-pointer (bignum "12341234"))) #t)
   (test (c-pointer (bignum "1.4")) 'error))
 
+
 (when with-block
   (test (pair? (*s7* 'c-types)) #t))
 
@@ -7212,6 +7215,12 @@ zzy" (lambda (p) (eval (read p))))) 32)
 (test (proper-list? (cons 1 (cons 2 3))) #f)
 (test (proper-list? '(1 . ())) #t)
 
+(test (proper-list? (let ((lst (list 1))) (set-cdr! lst lst) lst)) #f)
+(test (proper-list? (let ((lst (list 1 2))) (set-cdr! (cdr lst) lst) lst)) #f)
+(test (proper-list? (let ((lst (list 1 2 3))) (set-cdr! (cddr lst) lst) lst)) #f)
+(test (proper-list? (let ((lst (list 1 2 3 4))) (set-cdr! (cdddr lst) lst) lst)) #f)
+(test (proper-list? (let ((lst (list 1 2 3 4 5))) (set-cdr! (cdr (cdddr lst)) lst) lst)) #f)
+
 (test (proper-list? '(1 2) ()) 'error)
 (test (proper-list?) 'error)
 (for-each
@@ -28479,9 +28488,9 @@ who says the continuation has to restart the map from the top?
 (test (apply + `(1 ,@`(2 ,@(list 3)))) 6)
 (test (eval `(- ,@()',1)) -1)
 (test (eval `(,- ,@()'1)) -1)
-(test (eval (eval ``(- ,@,@'(,1())))) -1)
-(test (eval (eval ``(,@,@'(- ,1())))) -1)
-(test (eval (eval ``(,- ,@,@'(1())))) -1)
+;(test (eval (eval ``(- ,@,@'(,1())))) -1)
+;(test (eval (eval ``(,@,@'(- ,1())))) -1)
+;(test (eval (eval ``(,- ,@,@'(1())))) -1)
 (test (eval (eval ``(,- ,@'(,@()1)))) -1)
 (test (eval (eval ``(- ,@,@',().(1)))) -1)
 (test (quasiquote quote) 'quote)
@@ -32115,6 +32124,8 @@ or better (define-macro (prog vars . body) `(call-with-exit (lambda (return) (ta
 (test (arity hash-table)                                             (cons 0 *max-arity*))
 (test (arity close-output-port)                                      '(1 . 1))
 (test (arity type-of)                                                '(1 . 1))
+(test (arity c-pointer)                                              '(1 . 3))
+(test (arity c-pointer?)                                             '(1 . 2))
 
 (test (let () (define-macro (mac1 a b c) `(+ ,a ,b)) (arity mac1))   '(3 . 3))
 (test (let () (define-macro (mac1 a b . c) `(+ ,a ,b)) (arity mac1)) (cons 2 *max-arity*))
@@ -32583,7 +32594,6 @@ or better (define-macro (prog vars . body) `(call-with-exit (lambda (return) (ta
 (test (procedure-signature string=?) (let ((L (list 'boolean? 'string?))) (set-cdr! (cdr L) (cdr L)) L))
 (test (procedure-signature <=) (let ((L (list 'boolean? 'real?))) (set-cdr! (cdr L) (cdr L)) L))
 (test (procedure-signature >=) (let ((L (list 'boolean? 'real?))) (set-cdr! (cdr L) (cdr L)) L))
-(test (procedure-signature throw) (let ((L (list #t))) (set-cdr! L L) L))
 (test (procedure-signature eqv?) (let ((L (list 'boolean? #t))) (set-cdr! (cdr L) (cdr L)) L))
 (test (procedure-signature vector-ref) (let ((L (list #t 'vector? 'integer?))) (set-cdr! (cddr L) (cddr L)) L))
 (test (procedure-signature float-vector-set!) (let ((L (list 'real? 'float-vector? 'integer? 'integer:real?))) (set-cdr! (cdddr L) (cdddr L)) L))
@@ -32680,7 +32690,9 @@ or better (define-macro (prog vars . body) `(call-with-exit (lambda (return) (ta
 (test (procedure-signature length) '((real? boolean?) #t))
 (test (procedure-signature caaddr) '(#t pair?))
 (test (procedure-signature vector) (let ((L (list 'vector? #t))) (set-cdr! (cdr L) (cdr L)) L))
-(test (procedure-signature error) (let ((L (list #t))) (set-cdr! L L) L))
+(test (procedure-signature throw) (let ((L (list 'values 'symbol? #t))) (set-cdr! (cddr L) (cddr L)) L)) ; was pcl_t
+(test (procedure-signature error) (let ((L (list 'values 'symbol? #t))) (set-cdr! (cddr L) (cddr L)) L)) ; same
+(test (procedure-signature catch) '(values (symbol? boolean?) procedure? procedure?))
 (test (procedure-signature eq?) (let ((L (list 'boolean? #t))) (set-cdr! (cdr L) (cdr L)) L))
 (test (procedure-signature proper-list?) '(boolean? #t))
 (test (procedure-signature char-upper-case?) '(boolean? char?))
@@ -32702,7 +32714,7 @@ or better (define-macro (prog vars . body) `(call-with-exit (lambda (return) (ta
 (test (procedure-signature current-error-port) '(output-port?))
 (test (procedure-signature flush-output-port) '(#t output-port?))
 (test (procedure-signature owlet) '(let?))
-(test (procedure-signature c-pointer) '(c-pointer? integer?))
+(test (procedure-signature c-pointer) '(c-pointer? integer? #t #t))
 (test (procedure-signature with-output-to-string) '(string? procedure?))
 (test (procedure-signature memv) '((pair? boolean?) #t list?))
 (test (procedure-signature char?) '(boolean? #t))
@@ -32718,7 +32730,6 @@ or better (define-macro (prog vars . body) `(call-with-exit (lambda (return) (ta
 (test (procedure-signature open-input-string) '(input-port? string?))
 (test (procedure-signature write) '(#t #t output-port?))
 (test (procedure-signature cdr) '(#t pair?))
-(test (procedure-signature catch) (let ((L (list 'values #t 'procedure?))) (set-cdr! (cddr L) (cddr L)) L))
 (test (procedure-signature call/cc) '(values procedure?))
 (test (procedure-signature port-filename) '(string? #t))
 (test (procedure-signature caaadr) '(#t pair?))
@@ -32803,7 +32814,7 @@ or better (define-macro (prog vars . body) `(call-with-exit (lambda (return) (ta
 (test (procedure-signature map) (let ((L (list 'list? 'procedure? 'sequence?))) (set-cdr! (cddr L) (cddr L)) L))
 (test (procedure-signature caaaar) '(#t pair?))
 (test (procedure-signature port-line-number) '(integer? (input-port? null?)))
-(test (procedure-signature c-pointer?) '(boolean? #t))
+(test (procedure-signature c-pointer?) '(boolean? #t #t))
 (test (procedure-signature int-vector-ref) (let ((L (list '(integer? int-vector?) 'int-vector? 'integer?))) (set-cdr! (cddr L) (cddr L)) L))
 (test (procedure-signature gc) '(#t boolean?))
 (test (procedure-signature angle) '(real? number?))
@@ -32813,7 +32824,8 @@ or better (define-macro (prog vars . body) `(call-with-exit (lambda (return) (ta
 (test (procedure-signature atan) '(number? number? real?))
 (test (procedure-signature varlet) (let ((L (list 'let? 'let? #t))) (set-cdr! (cddr L) (cddr L)) L))
 (test (procedure-signature random-state) (let ((L (list 'random-state? 'integer?))) (set-cdr! (cdr L) (cdr L)) L))
-(test (procedure-signature emergency-exit) (let ((L (list #t))) (set-cdr! L L) L))
+(test (procedure-signature emergency-exit) '(#t #t))
+(test (procedure-signature #_exit) '(#t #t))
 (test (procedure-signature peek-char) '((char? eof-object?) input-port?))
 (test (procedure-signature directory->list) '(pair? string?))
 (test (procedure-signature cdaaar) '(#t pair?))
@@ -32846,6 +32858,12 @@ or better (define-macro (prog vars . body) `(call-with-exit (lambda (return) (ta
 (test (procedure-signature string->number) '((number? boolean?) string? integer?))
 (test (procedure-signature number->string) '(string? number? integer?))
 (test (procedure-signature type-of) '((symbol? boolean?) #t))
+(test (procedure-signature quasiquote) #f)
+(test (procedure-signature apply-values) '(#t list?))
+(test (procedure-signature tree-memq) '(boolean? #t list?))
+(test (procedure-signature tree-set-memq) '(boolean? list? list?))
+(test (procedure-signature tree-leaves) '(integer? list?))
+(test (procedure-signature tree-count) '(integer? #t list? integer?))
 
 #|
 (define (show-cycle sig)
@@ -37237,7 +37255,7 @@ func
 (test (object->let "abc") (inlet :value "abc" :type 'string? :length 3))  
 (test (object->let (byte-vector 1 2 3)) (inlet :value (byte-vector 1 2 3) :type 'byte-vector? :length 3)) 
 (test (object->let (cons 1 2)) (inlet :value (cons 1 2) :type 'pair? :length -1))  
-(test (object->let (c-pointer 0)) (inlet :value (c-pointer 0) :type 'c-pointer? :s7-value #f))
+(test (object->let (c-pointer 0)) (inlet :value (c-pointer 0) :type 'c-pointer? :c-pointer 0 :c-type #f :info #f))
 
 (let ((c #f)) 
   (call/cc (lambda (f) (set! c f)))
@@ -37291,8 +37309,8 @@ func
 (let () 
   (define (fff x) (+ x 1))
   (let ((e (funclet fff)))
-    (test (object->let e) 
-          (inlet 'value e :type 'let? :length 1 :open #f :outlet (inlet 'fff fff) :function 'fff :file "s7test.scm" :line (port-line-number)))))
+    (test ((object->let e) :type) 'let?)))
+;          (inlet 'value e :type 'let? :length 1 :open #f :outlet (inlet 'fff fff) :function 'fff :file "s7test.scm" :line (port-line-number)))))
 (let ((e (openlet (inlet :abs (lambda (x) (- x 1))))))
   (test (object->let e) (inlet :value e :type 'let? :length 1 :open #t :outlet ())))
 
@@ -37301,31 +37319,28 @@ func
 	   (bl (object->let b)))
       (test (let? bl) #t)
       (test (bl 'value) b)
-      (test (bl 'length) 8)
       (test (bl 'type) 'c-object?)
       (test (bl 'class) "#<block>")
-      (test (integer? (bl 'c-type)) #t)
+      (test (integer? (bl 'c-object-type)) #t)
       (test (bl 'empty) #f)
-      (test (let? (bl 'let)) #t)))
+      (test (let? (bl 'c-object-let)) #t)))
 (when (provided? 'snd)
   (when (or (provided? 'snd-gtk)
 	    (provided? 'snd-motif))
     (let ((cl (object->let jet-colormap)))
       (test (let? cl) #t)
       (test (cl 'value) jet-colormap)
-      (test (pair? (memv (cl 'length) '(64 512))) #t)
       (test (cl 'type) 'c-object?)
       (test (cl 'class) "<colormap>")
-      (test (integer? (cl 'c-type)) #t)
-      (test (null? (cl 'let)) #t)))
+      (test (integer? (cl 'c-object-type)) #t)
+      (test (null? (cl 'c-object-let)) #t)))
   (let ((cl (object->let fourier-transform)))
       (test (let? cl) #t)
       (test (cl 'value) fourier-transform)
-      (test (integer? (cl 'length)) #t)
       (test (cl 'type) 'c-object?)
       (test (cl 'class) "<transform>")
-      (test (integer? (cl 'c-type)) #t)
-      (test (null? (cl 'let)) #t)))
+      (test (integer? (cl 'c-object-type)) #t)
+      (test (null? (cl 'c-object-let)) #t)))
 
 (test (object->let *stderr*) (inlet :value *stderr* :type 'output-port? :port-type 'file :closed #f :file "*stderr*"))
 (test (object->let *stdin*) (inlet :value *stdin* :type 'input-port? :port-type 'file :closed #f :file "*stdin*" :line 0))
@@ -51887,6 +51902,30 @@ hi6: (string-app...
 (test (logior -1 "hi") 'error)
 (test (logior #f "hi") 'error)
 
+(let ()
+  (define (make-bit-vector n)
+    (make-int-vector (ceiling (/ n 63))))
+  
+  (define (bit-vector-ref v n)
+    (logbit? (int-vector-ref v (quotient n 63)) (remainder n 63)))
+  
+  (define (bit-vector-set! v n t-or-f)
+    (int-vector-set! v (quotient n 63)
+		     (let ((cur (int-vector-ref v (quotient n 63)))
+			   (bit (ash 1 (remainder n 63))))
+		       (if t-or-f
+			   (logior cur bit)
+			   (logand cur (lognot bit))))))
+  
+  (let ((bv (make-bit-vector 128)))
+    (if (bit-vector-ref bv 72)
+	(format *stderr* "default #f: ~A~%" (bit-vector-ref bv 72)))
+    (bit-vector-set! bv 72 #t)
+    (if (not (bit-vector-ref bv 72))
+	(format *stderr* "set: ~A~%" (bit-vector-ref bv 72)))
+    (bit-vector-set! bv 72 #f)
+    (if (bit-vector-ref bv 72)
+	(format *stderr* "clear #f: ~A~%" (bit-vector-ref bv 72)))))
 
 
 
@@ -54245,6 +54284,14 @@ hi6: (string-app...
 ;; check an optimizer bug
 (test (let () (define (f x) (modulo x 12)) (f 3/4)) 3/4)
 
+;; check built-in exptmod
+(let ()
+  (define (f a b n) (modulo (expt a b) n))
+  (num-test (f 3 100 5) 1)
+  (num-test (f 3 101 5) 3)
+  (num-test (f 3 100 3) 0)
+  )
+
 
 
 ;;; --------------------------------------------------------------------------------
@@ -83787,6 +83834,11 @@ etc
 (test (let () (define (func x) (do ((i 0 (+ i 1))) ((= i 1) i) / (letrec . #t))) (define (hi) (func #f)) (hi)) 'error)
 (test (let () (define (func x) (iterator-sequence (string-ci<=? (do ((i 0 (+ i 1))) ((= i 1) i) (when (+ i 1) `(+ x 1) (list 1) (- i 1)))))) (define (hi) (func #f)) (hi)) 'error)
 (test (let () (define (func x) (continuation? (do ((i 0 (+ i 1))) ((= i 1) i)  (unless   (+ i 1)  quasiquote  )))) (define (hi) (func #f)) (hi)) #f)
+(test (let () (define (func x) (error `(x 1) (null? i) (list 1 2) (lambda . /))) (define (hi) (func #f)) (hi)) 'error)
+(test (let () (define (func x) (do ((i 0 (+ i 1))) ((= i 1) i) / (case / (if x y) #2d((1 2) (3 4)) (x => y)))) (define (hi) (func #f)) (hi)) 'error)
+(test (let () (define (func x) (char>=? (inlet 'a 1) (hook-functions (output-port?))) (vector? (letrec))) (define (hi) (func #f)) (hi)) 'error)
+(test (let () (define (func x) (letrec // . letrec)) (define (hi) (func #f)) (hi)) 'error)
+(test (let () (define (func x) (for-each quasiquote (object->let /))) (define (hi) (func #f)) (hi)) #<unspecified>)
 
 (test (let () (define (f) (let ((_x_ (+ _x_ 1.0))) 1)) (f)) 'error)
 (test (let () (define (f) (define _x_ (let-ref (cdr _x_) 'a))) (f)) 'error)
@@ -91461,6 +91513,7 @@ etc
   (lint-test "(throw 'oops \"throw: ~A~%\" x)" "")
   (lint-test "(throw 'oops \"throw: ~A~%\" x y)" " throw: throw has too many arguments: (throw 'oops \"throw: ~A~%\" x y)")
   (lint-test "(error 'oops \"error: ~A ~A~%\" x)" " error: error has too few arguments: (error 'oops \"error: ~A ~A~%\" x)")
+  (lint-test "(catch #f (lambda () 1) (lambda args 2))" " catch (line 0): catch tag #f makes this catch a no-op")
 
   (lint-test "(define (f75) \"a string\")" " f75: returns a string constant: \"a string\"")
   (lint-test "(define (f75) #i(0 1 2 3))"   " f75: returns an int-vector constant: #i(0 1 2 3)")
@@ -91525,6 +91578,9 @@ etc
                listtail: listtail is the same as the built-in function list-tail")
   ;; too tricky!  (lint-test "(define (mdi) (define reader1 (lambda* (quit) (reader1))))" "")
 
+  (lint-test "(truncate (/ x y))"               " truncate: perhaps (truncate (/ x y)) -> (quotient x y)")
+  (lint-test "(- x (* y (quotient x y)))"       "-: perhaps (- x (* y (quotient x y))) -> (remainder x y)")
+  (lint-test "(- x (* (quotient x y) y))"       "-: perhaps (- x (* (quotient x y) y)) -> (remainder x y)")
   (lint-test "(cdr '(a))"                       " cdr: perhaps (cdr '(a)) -> ()")
   (lint-test "(char-upcase #\\a)"               " char-upcase: perhaps (char-upcase #\\a) -> #\\A")
   (lint-test "(char-upper-case? #\\a)"          " char-upper-case?: perhaps (char-upper-case? #\\a) -> #f")
@@ -92107,6 +92163,10 @@ etc
   (test (tree-count 'x '(a x x)) 2)
   (test (tree-count 'x '(a x x) 1) 1)
   (test (tree-count 'x '(x x x) 2) 2)
+  (test (tree-set-memq '(a b) '(1 (2 3 a) 4)) #t)
+  (test (tree-set-memq '(a b) '(1 (2 3 b) 4)) #t)
+  (test (tree-set-memq '(a b) '(1 (2 3 c) 4)) #f)
+  (test (tree-set-memq '(a) ()) #f)
   
   (let ((out-vars (*lint* 'out-vars)))
     (test (out-vars 'hi '(a b) '(+ a b)) '(() ()))
diff --git a/snd-chn.c b/snd-chn.c
index 447f5eb..d28a4e7 100644
--- a/snd-chn.c
+++ b/snd-chn.c
@@ -2341,7 +2341,7 @@ static void make_fft_graph(chan_info *cp, axis_info *fap, graphics_context *ax,
 	      mus_long_t size;
 	      size = hisamp - losamp + 1;
 	      fft_phases = (mus_float_t *)malloc(size * sizeof(mus_float_t));
-	      copy_floats(fft_phases, &(fp->phases[losamp]), size);
+	      mus_copy_floats(fft_phases, &(fp->phases[losamp]), size);
 	      free_phases = true;
 	    }
 	}
@@ -9465,7 +9465,7 @@ If 'data' is a list of numbers, it is treated as an envelope."
 	      lg->data[graph] = (mus_float_t *)calloc(len, sizeof(mus_float_t));
 	      lg->len[graph] = len;
 	    }
-	  copy_floats(lg->data[graph], mus_vct_data(v), len);
+	  mus_copy_floats(lg->data[graph], mus_vct_data(v), len);
 	  if (ymin > ymax)
 	    {
 	      for (i = 0; i < len; i++)
diff --git a/snd-dac.c b/snd-dac.c
index 0eb738b..ed95aa9 100644
--- a/snd-dac.c
+++ b/snd-dac.c
@@ -1578,10 +1578,10 @@ static int fill_dac_buffers(int write_ok)
   framples = snd_dacp->framples;
   /* clear buffers */
   for (i = 0; i < snd_dacp->channels; i++) 
-    clear_floats(dac_buffers[i], framples);
+    mus_clear_floats(dac_buffers[i], framples);
   if (global_rev)
     for (i = 0; i < snd_dacp->channels; i++) 
-      clear_floats(rev_ins[i], framples);
+      mus_clear_floats(rev_ins[i], framples);
 
   if (dac_pausing) 
     cursor_change = false;
@@ -2898,7 +2898,7 @@ If object is a string, it is assumed to be a file name: \n    " play_example "\n
 	Xen_out_of_range_error(S_play, 0, arglist, "too many arguments");
 
       for (i = 0; i < arglist_len; i++) args[i] = Xen_list_ref(arglist, i);
-      vals = mus_optkey_unscramble(S_play, NARGS, keys, args, orig_arg);
+      vals = mus_optkey_unscramble(S_play, arglist_len, NARGS, keys, args, orig_arg);
 
       if (vals > 0)
 	{
diff --git a/snd-edits.c b/snd-edits.c
index 9faa32b..6aab459 100644
--- a/snd-edits.c
+++ b/snd-edits.c
@@ -597,7 +597,7 @@ static mus_float_t previous_xramp_ramp_value(snd_fd *sf)
 
 
 static mus_float_t previous_sound(snd_fd *sf);
-static mus_float_t next_sound(snd_fd *sf);
+mus_float_t next_sound(snd_fd *sf);
 
 
 static mus_float_t end_sample_value(snd_fd *ignore) {return(0.0);}
@@ -611,17 +611,8 @@ static mus_float_t next_sample_value(snd_fd *sf)
 }
 
 
-#define SF_UNSAFE 0
-
 static mus_float_t next_sample_value_unchecked(snd_fd *sf) 
 {
-#if SF_UNSAFE
-  if (sf->loc > sf->last) 
-    {
-      fprintf(stderr, "ran off end somehow\n");
-      abort();
-    }
-#endif
   return(sf->data[sf->loc++] * sf->fscaler);
 }
 
@@ -639,7 +630,8 @@ mus_float_t previous_sample_value_unchecked(snd_fd *sf)
 }
 
 
-static mus_float_t next_sample_value_unscaled(snd_fd *sf) 
+mus_float_t next_sample_value_unscaled(snd_fd *sf);
+mus_float_t next_sample_value_unscaled(snd_fd *sf) 
 {
   if (sf->loc > sf->last) 
     return(next_sound(sf)); 
@@ -649,13 +641,6 @@ static mus_float_t next_sample_value_unscaled(snd_fd *sf)
 mus_float_t next_sample_value_unscaled_and_unchecked(snd_fd *sf);
 mus_float_t next_sample_value_unscaled_and_unchecked(snd_fd *sf) 
 {
-#if SF_UNSAFE
-  if (sf->loc > sf->last) 
-    {
-      fprintf(stderr, "ran off end somehow\n");
-      abort();
-    }
-#endif
   return(sf->data[sf->loc++]);
 }
 
@@ -706,13 +691,6 @@ static mus_float_t next_ramp1(snd_fd *sf)
 static mus_float_t next_ramp1_unchecked(snd_fd *sf)
 {
   mus_float_t val;
-#if SF_UNSAFE
-  if (sf->loc > sf->last) 
-    {
-      fprintf(stderr, "ran off end somehow\n");
-      abort();
-    }
-#endif
   val = sf->data[sf->loc++] * READER_VAL(sf, 0);
   READER_VAL(sf, 0) += READER_INCR(sf, 0);
   return(val);
@@ -5394,7 +5372,7 @@ static void next_sound_1(snd_fd *sf)
 }
 
 
-static mus_float_t next_sound(snd_fd *sf)
+mus_float_t next_sound(snd_fd *sf)
 {
   next_sound_1(sf);
   return(read_sample(sf));
@@ -8296,7 +8274,7 @@ vct *samples_to_vct(mus_long_t beg, mus_long_t len, chan_info *cp, int pos, mus_
 
 	  if (sf->runf == next_sample_value_unscaled)
 	    {
-	      copy_floats(fvals + i, sf->data + sf->loc, dur);
+	      mus_copy_floats(fvals + i, sf->data + sf->loc, dur);
 	      i += dur;
 	    }
 	  else
@@ -8305,7 +8283,7 @@ vct *samples_to_vct(mus_long_t beg, mus_long_t len, chan_info *cp, int pos, mus_
 		{
 		  mus_float_t scl;
 		  scl = sf->fscaler;
-		  copy_floats(fvals + i, sf->data + sf->loc, dur);
+		  mus_copy_floats(fvals + i, sf->data + sf->loc, dur);
 		  left = i + dur;
 		  for (; i < left; i++) fvals[i] *= scl;
 		}
diff --git a/snd-env.c b/snd-env.c
index 18980bb..ff5ed4c 100644
--- a/snd-env.c
+++ b/snd-env.c
@@ -35,7 +35,7 @@ env *copy_env(env *e)
       ne->pts = e->pts;
       ne->data_size = e->pts * 2;
       ne->data = (mus_float_t *)malloc(ne->data_size * sizeof(mus_float_t));
-      copy_floats(ne->data, e->data, ne->data_size);
+      mus_copy_floats(ne->data, e->data, ne->data_size);
       ne->base = e->base;
       return(ne);
     }
diff --git a/snd-fft.c b/snd-fft.c
index eb8587f..b2ce554 100644
--- a/snd-fft.c
+++ b/snd-fft.c
@@ -47,7 +47,7 @@ static void wavelet_transform(mus_float_t *data, mus_long_t num, mus_float_t *cc
 	      data1[ii + nh] += cr[k] * data[jf];
 	    }
 	}
-      copy_floats(data, data1, n);
+      mus_copy_floats(data, data1, n);
     }
 
   if (data1) free(data1);
@@ -742,15 +742,15 @@ void fourier_spectrum(snd_fd *sf, mus_float_t *fft_data, mus_long_t fft_size, mu
     }
 
   if (data_len < fft_size) 
-    clear_floats(fft_data + data_len, fft_size - data_len);
+    mus_clear_floats(fft_data + data_len, fft_size - data_len);
   if (fft_size <= fs_idata_size)
-    clear_floats(fs_idata, fft_size);
+    mus_clear_floats(fs_idata, fft_size);
   else
     {
       if (!fs_idata)
 	fs_idata = (mus_float_t *)malloc(fft_size * sizeof(mus_float_t));
       else fs_idata = (mus_float_t *)realloc(fs_idata, fft_size * sizeof(mus_float_t));
-      clear_floats(fs_idata, fft_size);
+      mus_clear_floats(fs_idata, fft_size);
       fs_idata_size = fft_size;
     }
 
@@ -838,35 +838,35 @@ static void apply_fft(fft_state *fs)
     case WAVELET:
       for (i = 0; i < data_len; i++) fft_data[i] = read_sample(sf);
       if (data_len < fs->size) 
-	clear_floats(fft_data + data_len, fs->size - data_len);
+	mus_clear_floats(fft_data + data_len, fs->size - data_len);
       wavelet_transform(fft_data, fs->size, wavelet_data[cp->wavelet_type], wavelet_sizes[cp->wavelet_type]);
       break;
 
     case HAAR:
       for (i = 0; i < data_len; i++) fft_data[i] = read_sample(sf);
       if (data_len < fs->size) 
-	clear_floats(fft_data + data_len, fs->size - data_len);
+	mus_clear_floats(fft_data + data_len, fs->size - data_len);
       haar_transform(fft_data, fs->size);
       break;
 
     case CEPSTRUM:
       for (i = 0; i < data_len; i++) fft_data[i] = read_sample(sf);
       if (data_len < fs->size) 
-	clear_floats(fft_data + data_len, fs->size - data_len);
+	mus_clear_floats(fft_data + data_len, fs->size - data_len);
       mus_cepstrum(fft_data, fs->size);
       break;
 
     case WALSH:
       for (i = 0; i < data_len; i++) fft_data[i] = read_sample(sf);
       if (data_len < fs->size) 
-	clear_floats(fft_data + data_len, fs->size - data_len);
+	mus_clear_floats(fft_data + data_len, fs->size - data_len);
       walsh_transform(fft_data, fs->size);
       break;
 
     case AUTOCORRELATION:
       for (i = 0; i < data_len; i++) fft_data[i] = read_sample(sf);
       if (data_len < fs->size) 
-	clear_floats(fft_data + data_len, fs->size - data_len);
+	mus_clear_floats(fft_data + data_len, fs->size - data_len);
       mus_autocorrelate(fft_data, fs->size);
       break;
 
@@ -887,7 +887,7 @@ static void apply_fft(fft_state *fs)
 	    mus_long_t len;
 	    v = Xen_to_vct(res);
 	    len = mus_vct_length(v);
-	    copy_floats(fft_data, mus_vct_data(v), len);
+	    mus_copy_floats(fft_data, mus_vct_data(v), len);
 	  }
 	snd_unprotect_at(gc_loc);
 	snd_unprotect_at(sf_loc);
@@ -1303,7 +1303,7 @@ static void one_fft(fft_state *fs)
 	      last_wintype = fs->wintype;
 	      last_zero = fs->pad_zero;
 	    }
-	  copy_floats(fs->window, last_window, fs->size);
+	  mus_copy_floats(fs->window, last_window, fs->size);
 	}
       apply_fft(fs);
     }
@@ -1871,7 +1871,7 @@ void c_convolve(const char *fname, mus_float_t amp, int filec, mus_long_t filehd
 	  else 
 	    {
 	      /* amp == 0.0 means un-normalized output */
-	      copy_floats(pbuf, rl0, data_size);
+	      mus_copy_floats(pbuf, rl0, data_size);
 	    }
 	  progress_report(gcp, .9);
 
@@ -2069,7 +2069,7 @@ return a " S_vct " (obj if it's passed), with the current transform data from sn
 	  if (v1)
 	    fvals = mus_vct_data(v1);
 	  else fvals = (mus_float_t *)malloc(len * sizeof(mus_float_t));
-	  copy_floats(fvals, fp->data, len);
+	  mus_copy_floats(fvals, fp->data, len);
 	  if (v1)
 	    return(v);
 	  else return(xen_make_vct(len, fvals));
diff --git a/snd-gfft.c b/snd-gfft.c
index aa8c168..701d023 100644
--- a/snd-gfft.c
+++ b/snd-gfft.c
@@ -150,9 +150,9 @@ static void get_fft_window_data(void)
   mus_make_fft_window_with_window(fft_window(ss), GRAPH_SIZE, 
 				  fft_window_beta(ss) * fft_beta_max(fft_window(ss)), 
 				  fft_window_alpha(ss), graph_data);
-  clear_floats(graph_fftr, GRAPH_SIZE * 2);
-  clear_floats(graph_ffti, GRAPH_SIZE * 2);
-  copy_floats(graph_fftr, graph_data, GRAPH_SIZE);
+  mus_clear_floats(graph_fftr, GRAPH_SIZE * 2);
+  mus_clear_floats(graph_ffti, GRAPH_SIZE * 2);
+  mus_copy_floats(graph_fftr, graph_data, GRAPH_SIZE);
   mus_spectrum(graph_fftr, graph_ffti, NULL, GRAPH_SIZE * 2, MUS_SPECTRUM_IN_DB);
   for (i = 0; i < GRAPH_SIZE; i++)
     graph_fftr[i] = (graph_fftr[i] + 80.0) / 80.0; /* min dB -80.0 */
diff --git a/snd-help.c b/snd-help.c
index 4c11bb0..86c685b 100644
--- a/snd-help.c
+++ b/snd-help.c
@@ -3598,15 +3598,15 @@ and its value is returned."
 			    subject = (char *)s7_symbol_name(s7_car(x));
 			    url = snd_url(subject);
 			    if (url)
-			      snprintf(str, 256, "%s is defined at line %lld of %s, and documented at %s",
+			      snprintf(str, 256, "%s is defined at line %" PRId64 " of %s, and documented at %s",
 				       subject, 
-				       (long long int)s7_integer(s7_car(s7_cdr(s7_cdr(x)))),
+				       (int64_t)s7_integer(s7_car(s7_cdr(s7_cdr(x)))),
 				       s7_string(s7_car(s7_cdr(x))),
 				       url);
 			    else 
-			      snprintf(str, 256, "%s is defined at line %lld of %s",
+			      snprintf(str, 256, "%s is defined at line %" PRId64 " of %s",
 				       subject, 
-				       (long long int)s7_integer(s7_car(s7_cdr(s7_cdr(x)))),
+				       (int64_t)s7_integer(s7_car(s7_cdr(s7_cdr(x)))),
 				       s7_string(s7_car(s7_cdr(x))));
 			  }
 		      }
diff --git a/snd-io.c b/snd-io.c
index 1846fbf..8af323a 100644
--- a/snd-io.c
+++ b/snd-io.c
@@ -683,7 +683,7 @@ snd_data *make_snd_data_buffer(mus_float_t *data, int len, int ctr)
    *   C > (make-region 1000 2000) (insert-region (cursor)) C-v hits this empty slot and gets confused about the previously final sample value 
    */
 
-  copy_floats(sf->buffered_data, data, len);
+  mus_copy_floats(sf->buffered_data, data, len);
   sf->buffered_data[len] = 0.0;
   sf->edit_ctr = ctr;
   sf->copy = false;
diff --git a/snd-lint.scm b/snd-lint.scm
index 12f0ded..8e7f3d2 100644
--- a/snd-lint.scm
+++ b/snd-lint.scm
@@ -109,7 +109,7 @@
      beats-per-measure beats-per-minute bes-i0 bes-i1 bes-in bes-j0 bes-j1 bes-jn bes-k0 bes-k1 bes-kn bes-y0 bes-y1 bes-yn
      bold-peaks-font channel-amp-envs channel-data channel-properties channel-property channel-style
      channel-sync channel-widgets channels channels-equal? channels=? chans clipping
-     clm-default-frequency clm-table-size color->list color-cutoff color-inverted color-scale
+     clm-table-size color->list color-cutoff color-inverted color-scale
      color? colormap colormap-name colormap-ref colormap-size colormap? comb-bank?
      comb? combined-data-color comment contrast-control contrast-control-amp contrast-control-bounds contrast-control?
      contrast-enhancement convolve? count-matches current-font
diff --git a/snd-main.c b/snd-main.c
index d0217f2..d93b985 100644
--- a/snd-main.c
+++ b/snd-main.c
@@ -582,7 +582,6 @@ static void save_options(FILE *fd)
   if (mus_file_buffer_size() != MUS_DEFAULT_FILE_BUFFER_SIZE) pss_sd(fd, S_mus_file_buffer_size, mus_file_buffer_size());
   if (mus_array_print_length() != MUS_DEFAULT_ARRAY_PRINT_LENGTH) pss_sd(fd, S_mus_array_print_length, mus_array_print_length());
   if (clm_default_table_size_c() != MUS_CLM_DEFAULT_TABLE_SIZE) pss_sod(fd, S_clm_table_size, clm_default_table_size_c());
-  if (fneq(clm_default_frequency_c(), MUS_CLM_DEFAULT_FREQUENCY)) pss_sf(fd, S_clm_default_frequency, clm_default_frequency_c());
 
   {
     int srate = 0, chans = 0;
diff --git a/snd-mix.c b/snd-mix.c
index 6e22ab7..4955895 100644
--- a/snd-mix.c
+++ b/snd-mix.c
@@ -6,7 +6,7 @@ static void mix_set_file_name(int id, int chans, const char *name);
 static bool mix_vct_untagged(vct *v, chan_info *cp, mus_long_t beg, const char *origin)
 {
   mus_float_t *data, *vdata;
-  int i, len;
+  int len;
   snd_fd *sf;
   bool result = false;
 
@@ -16,7 +16,7 @@ static bool mix_vct_untagged(vct *v, chan_info *cp, mus_long_t beg, const char *
 
   sf = init_sample_read(beg, cp, READ_FORWARD);
   samples_to_vct_with_reader(len, data, sf);
-  for (i = 0; i < len; i++) data[i] += vdata[i];
+  mus_add_floats(data, vdata, len);
   free_snd_fd(sf);
 
   result = change_samples(beg, len, data, cp, origin, cp->edit_ctr, -1.0); /* cp->edit_ctr since mix-vct has no edpos arg, similarly mix */
@@ -27,6 +27,9 @@ static bool mix_vct_untagged(vct *v, chan_info *cp, mus_long_t beg, const char *
 }
 
 
+mus_float_t next_sample_value_unscaled(snd_fd *sf);
+mus_float_t next_sound(snd_fd *sf);
+
 static bool mix_file_untagged(const char *filename, int in_chan, chan_info *cp, mus_long_t beg, mus_long_t num, file_delete_t auto_delete, const char *origin)
 {
   file_info *ihdr, *ohdr;
@@ -100,19 +103,26 @@ static bool mix_file_untagged(const char *filename, int in_chan, chan_info *cp,
   lseek(ofd, ohdr->data_location, SEEK_SET);
   lseek(ifd, ihdr->data_location, SEEK_SET);
   mus_file_read_chans(ifd, 0, size, in_chans, data, data);
-  for (i = 0, j = 0; i < num; i++)
+
+  for (i = 0; i < num; i += size)
     {
-      if (j == size)
+      mus_long_t kdur;
+      kdur = num - i;
+      if (kdur > size) kdur = size;
+      if (sf->runf == next_sample_value_unscaled)
+	{
+	  for (j = 0; j < kdur; j++)
+	    chandata[j] += (sf->loc > sf->last) ? next_sound(sf) : sf->data[sf->loc++];
+	}
+      else
 	{
-	  err = mus_file_write(ofd, 0, size - 1, 1, &chandata);
-	  mus_file_read_chans(ifd, i, size, in_chans, data, data);
-	  j = 0;
-	  if (err != MUS_NO_ERROR) break;
+	  for (j = 0; j < kdur; j++)
+	    chandata[j] += read_sample(sf);
 	}
-      chandata[j] += read_sample(sf);
-      j++;
+      err = mus_file_write(ofd, 0, kdur - 1, 1, &chandata);
+      mus_file_read_chans(ifd, i, size, in_chans, data, data);
+      if (err != MUS_NO_ERROR) break;
     }
-  if (j > 0) mus_file_write(ofd, 0, j - 1, 1, &chandata);
   
   close_temp_file(ofile, ofd, ohdr->type, num * mus_bytes_per_sample(ohdr->sample_type));
   mus_file_close(ifd);
diff --git a/snd-motif.c b/snd-motif.c
index 503c913..9f0b27a 100644
--- a/snd-motif.c
+++ b/snd-motif.c
@@ -585,8 +585,8 @@ static int attach_all_sides(Arg *args, int n)
 static void widget_int_to_text(Widget w, int val)
 {
   char *str;
-  str = (char *)calloc(8, sizeof(char));
-  snprintf(str, 8, "%d", val);
+  str = (char *)calloc(16, sizeof(char));
+  snprintf(str, 16, "%d", val);
   XmTextFieldSetString(w, str);
   free(str);
 }
@@ -5984,9 +5984,9 @@ static void get_fft_window_data(void)
   mus_make_fft_window_with_window(fft_window(ss), GRAPH_SIZE, 
 				  fft_window_beta(ss) * fft_beta_max(fft_window(ss)), 
 				  fft_window_alpha(ss), graph_data);
-  clear_floats(graph_fftr, GRAPH_SIZE * 2);
-  clear_floats(graph_ffti, GRAPH_SIZE * 2);
-  copy_floats(graph_fftr, graph_data, GRAPH_SIZE);
+  mus_clear_floats(graph_fftr, GRAPH_SIZE * 2);
+  mus_clear_floats(graph_ffti, GRAPH_SIZE * 2);
+  mus_copy_floats(graph_fftr, graph_data, GRAPH_SIZE);
   mus_spectrum(graph_fftr, graph_ffti, NULL, GRAPH_SIZE * 2, MUS_SPECTRUM_IN_DB);
   for (i = 0; i < GRAPH_SIZE; i++)
     graph_fftr[i] = (graph_fftr[i] + 80.0) / 80.0; /* min dB here is -80 */
@@ -6621,14 +6621,14 @@ void set_fft_window_alpha(mus_float_t val)
 
 static void beta_drag_callback(Widget w, XtPointer context, XtPointer info) 
 {
-  char beta_number_buffer[11];
+  char beta_number_buffer[12];
   mus_float_t beta;
   
   beta = (((XmScrollBarCallbackStruct *)info)->value) / 90.0;
   in_set_fft_window_beta(beta);
   chans_field(FCP_BETA, beta);
 
-  snprintf(beta_number_buffer, 11, "beta: %.3f", beta);
+  snprintf(beta_number_buffer, 12, "beta: %.3f", beta);
   set_label(beta_number, beta_number_buffer);
 
   if (fft_window_beta_in_use(fft_window(ss)))
@@ -6643,9 +6643,9 @@ static void beta_drag_callback(Widget w, XtPointer context, XtPointer info)
 
 static void set_beta_scale(mus_float_t val)
 {
-  char beta_number_buffer[11];
+  char beta_number_buffer[12];
   XtVaSetValues(beta_scale, XmNvalue, (int)(val * 90), NULL);
-  snprintf(beta_number_buffer, 11, "beta: %.3f", val);
+  snprintf(beta_number_buffer, 12, "beta: %.3f", val);
   set_label(beta_number, beta_number_buffer);
 }
 
@@ -6677,9 +6677,9 @@ static void chans_spectrum_changed(chan_info *cp)
 
 static void set_spectrum_start_scale(mus_float_t val)
 {
-  char start_number_buffer[11];
+  char start_number_buffer[12];
   XtVaSetValues(start_scale, XmNvalue, (int)(val * 90), NULL);
-  snprintf(start_number_buffer, 11, "start:%.3f", val);
+  snprintf(start_number_buffer, 12, "start:%.3f", val);
   set_label(start_number, start_number_buffer);
 }
 
@@ -6711,11 +6711,11 @@ void set_spectrum_start(mus_float_t val)
 
 static void start_drag_callback(Widget w, XtPointer context, XtPointer info) 
 {
-  char start_number_buffer[11];
+  char start_number_buffer[12];
   mus_float_t start;
   
   start = (((XmScrollBarCallbackStruct *)info)->value) / 90.0;
-  snprintf(start_number_buffer, 11, "start:%.3f", start);
+  snprintf(start_number_buffer, 12, "start:%.3f", start);
   set_label(start_number, start_number_buffer);
 
   in_set_spectrum_start(start);
@@ -6727,9 +6727,9 @@ static void start_drag_callback(Widget w, XtPointer context, XtPointer info)
 
 static void set_spectrum_end_scale(mus_float_t val)
 {
-  char end_number_buffer[11];
+  char end_number_buffer[12];
   XtVaSetValues(end_scale, XmNvalue, (int)(val * 90), NULL);
-  snprintf(end_number_buffer, 11, "end:  %.3f", val);
+  snprintf(end_number_buffer, 12, "end:  %.3f", val);
   set_label(end_number, end_number_buffer);
 }
 
@@ -6759,11 +6759,11 @@ void set_spectrum_end(mus_float_t val)
 
 static void end_drag_callback(Widget w, XtPointer context, XtPointer info) 
 {
-  char end_number_buffer[11];
+  char end_number_buffer[12];
   mus_float_t end;
 
   end = (((XmScrollBarCallbackStruct *)info)->value) / 90.0;
-  snprintf(end_number_buffer, 11, "end:  %.3f", end);
+  snprintf(end_number_buffer, 12, "end:  %.3f", end);
   set_label(end_number, end_number_buffer);
 
   in_set_spectrum_end(end);
@@ -11350,8 +11350,8 @@ static void make_auto_comment(save_as_dialog_info *sd)
 		{
 		  if (sp->nchans > 1)
 		    {
-		      char buf[32];
-		      snprintf(buf, 32, "\n-------- channel %d --------\n", i);
+		      char buf[64];
+		      snprintf(buf, 64, "\n-------- channel %d --------\n", i);
 		      strcat(comment, buf);
 		    }
 		  strcat(comment, edit_strs[i]);
diff --git a/snd-motif.scm b/snd-motif.scm
index be417dc..dca694d 100644
--- a/snd-motif.scm
+++ b/snd-motif.scm
@@ -1754,7 +1754,7 @@
   (define showing-disk-space #f) ; for prefs dialog
   
   (define show-disk-space
-    (let ((documentation "(show-disk-space snd) adds a label to snd's status-area area showing the current free space (for use with after-open-hook: (set! (hook-functions after-open-hook) (list (*motif* 'show-disk-space))))")
+    (let ((documentation "(show-disk-space snd) adds a label to snd's status-area area showing the current free space (for use with after-open-hook: (set! (hook-functions after-open-hook) (list (*motif* 'show-disk-space)))")
 	  (labelled-snds ())
 
 	  (kmg (lambda (num)
diff --git a/snd-region.c b/snd-region.c
index eda5a16..b147809 100644
--- a/snd-region.c
+++ b/snd-region.c
@@ -1929,6 +1929,95 @@ selection is used."
 }
 
 
+static void save_region_to_xen_error(const char *msg, void *data)
+{
+  redirect_snd_error_to(NULL, NULL);
+  Xen_error(Xen_make_error_type("cannot-save"),
+	    Xen_list_2(C_string_to_Xen_string(S_save_region ": can't save ~S"),
+		       C_string_to_Xen_string(msg)));
+}
+
+#define H_save_region "(" S_save_region " region file sample-type header-type comment): save region in file \
+using sample-type (default depends on machine byte order), header-type (" S_mus_next "), and comment"
+
+#if HAVE_SCHEME
+static s7_pointer g_save_region(s7_scheme *sc, s7_pointer args)
+{
+  mus_header_t head_type;
+  mus_sample_t samp_type;
+  int rg;
+  const char *com, *file;
+  char *name;
+  s7_pointer p, fp, res;
+
+  fp = s7_car(args);
+  if (!xen_is_region(fp))
+    return(s7_wrong_type_arg_error(sc, S_save_region, 1, fp, "a region"));
+  rg = Xen_region_to_C_int(fp);
+  if (!(region_ok(rg)))
+    return(snd_no_such_region_error(S_save_region, fp));
+
+  fp = s7_cadr(args);
+  if (fp == Xen_false)
+    Xen_error(Xen_make_error_type("IO-error"),
+	      Xen_list_1(C_string_to_Xen_string(S_save_region ": no output file?")));
+  if (!s7_is_string(fp))
+    return(s7_wrong_type_arg_error(sc, S_save_region, 2, fp, "a string"));
+  file = s7_string(fp);
+  name = mus_expand_filename(file);
+  res = fp;
+
+  p = s7_cddr(args);
+  fp = s7_car(p);
+  if (fp == Xen_false)
+    samp_type = MUS_OUT_SAMPLE_TYPE;
+  else
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_save_selection, 3, fp, "an integer"));
+      samp_type = (mus_sample_t)s7_integer(fp);
+    }
+
+  fp = s7_cadr(p);
+  if (fp == Xen_false)
+    head_type = MUS_NEXT;
+  else
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_save_selection, 4, fp, "an integer"));
+      head_type = (mus_header_t)s7_integer(fp);
+    }
+
+  if (!(mus_header_writable(head_type, samp_type))) 
+    {
+      if (mus_header_writable(MUS_NEXT, samp_type))
+	head_type = MUS_NEXT;
+      else
+	{
+	  if (mus_header_writable(MUS_RIFF, samp_type))
+	    head_type = MUS_RIFF;
+	  else head_type = MUS_RAW;
+	}
+    }
+
+  fp = s7_caddr(p);
+  if (fp == Xen_false)
+    com = NULL;
+  else
+    {
+      if (!s7_is_string(fp))
+	return(s7_wrong_type_arg_error(sc, S_save_selection, 5, fp, "a string"));
+      com = s7_string(fp);
+    }
+  
+  redirect_snd_error_to(save_region_to_xen_error, NULL); /* could perhaps pass name here for free in case of error */
+  save_region(rg, name, samp_type, head_type, com);
+  redirect_snd_error_to(NULL, NULL);
+
+  if (name) free(name);
+  return(res);
+}
+#else
 static Xen kw_header_type, kw_comment, kw_file, kw_sample_type;
 
 static void init_region_keywords(void)
@@ -1939,24 +2028,11 @@ static void init_region_keywords(void)
   kw_file = Xen_make_keyword("file");
 }
 
-
-static void save_region_to_xen_error(const char *msg, void *data)
-{
-  redirect_snd_error_to(NULL, NULL);
-  Xen_error(Xen_make_error_type("cannot-save"),
-	    Xen_list_2(C_string_to_Xen_string(S_save_region ": can't save ~S"),
-		       C_string_to_Xen_string(msg)));
-}
-
-
 static Xen g_save_region(Xen n, Xen arg1, Xen arg2, Xen arg3, Xen arg4, Xen arg5, Xen arg6, Xen arg7, Xen arg8)
 {
-  #define H_save_region "(" S_save_region " region file sample-type header-type comment): save region in file \
-using sample-type (default depends on machine byte order), header-type (" S_mus_next "), and comment"
-
   char *name = NULL;
   const char *file = NULL, *com = NULL;
-  int rg;
+  int rg, true_args;
   mus_sample_t sample_type = MUS_OUT_SAMPLE_TYPE;
   mus_header_t header_type = MUS_NEXT;
   Xen args[8]; 
@@ -1969,14 +2045,16 @@ using sample-type (default depends on machine byte order), header-type (" S_mus_
   keys[2] = kw_header_type;
   keys[3] = kw_comment;
   args[0] = arg1; args[1] = arg2; args[2] = arg3; args[3] = arg4; args[4] = arg5; args[5] = arg6; args[6] = arg7; args[7] = arg8; 
-
+  for (true_args = 0; true_args < 8; true_args++)
+    if (!Xen_is_bound(args[true_args]))
+      break;
   Xen_check_type(xen_is_region(n), n, 1, S_save_region, "a region id");
 
   rg = Xen_region_to_C_int(n);
   if (!(region_ok(rg)))
     return(snd_no_such_region_error(S_save_region, n));
 
-  vals = mus_optkey_unscramble(S_save_region, 4, keys, args, orig_arg);
+  vals = mus_optkey_unscramble(S_save_region, true_args, 4, keys, args, orig_arg);
   if (vals > 0)
     {
       file = mus_optkey_to_string(keys[0], S_save_region, orig_arg[0], NULL);
@@ -2010,7 +2088,7 @@ using sample-type (default depends on machine byte order), header-type (" S_mus_
   if (name) free(name);
   return(args[orig_arg[0] - 1]); /* -> filename, parallel save-selection */
 }
-
+#endif
 
 static Xen g_mix_region(Xen reg_n, Xen chn_samp_n, Xen snd_n, Xen chn_n, Xen reg_chn)
 {
@@ -2173,7 +2251,6 @@ Xen_wrap_1_arg(g_region_chans_w, g_region_chans)
 Xen_wrap_1_arg(g_region_home_w, g_region_home)
 Xen_wrap_1_arg(g_region_maxamp_w, g_region_maxamp)
 Xen_wrap_1_arg(g_region_maxamp_position_w, g_region_maxamp_position)
-Xen_wrap_9_optional_args(g_save_region_w, g_save_region)
 Xen_wrap_1_arg(g_forget_region_w, g_forget_region)
 Xen_wrap_4_optional_args(g_make_region_w, g_make_region)
 Xen_wrap_5_optional_args(g_mix_region_w, g_mix_region)
@@ -2190,6 +2267,8 @@ Xen_wrap_1_arg(g_region_to_integer_w, g_region_to_integer)
 #if HAVE_SCHEME
 static s7_pointer acc_region_graph_style(s7_scheme *sc, s7_pointer args) {return(g_set_region_graph_style(s7_cadr(args)));}
 static s7_pointer acc_max_regions(s7_scheme *sc, s7_pointer args) {return(g_set_max_regions(s7_cadr(args)));}
+#else
+Xen_wrap_9_optional_args(g_save_region_w, g_save_region)
 #endif
 
 
@@ -2209,12 +2288,13 @@ void g_init_regions(void)
 #endif
 
   init_xen_region();
+#if (!HAVE_SCHEME)
   init_region_keywords();
+#endif
 
   Xen_define_typed_procedure(S_restore_region,         g_restore_region_w,         0, 0, 1, "internal func used in save-state, restores a region",
 			     s7_make_signature(s7, 11, i, i, i, i, i, r, s, s, s, s, p));
   Xen_define_typed_procedure(S_insert_region,          g_insert_region_w,          2, 2, 0, H_insert_region,   s7_make_signature(s7, 5, rg, rg, i, t, t));
-  Xen_define_typed_procedure(S_save_region,            g_save_region_w,            2, 7, 0, H_save_region,     s7_make_circular_signature(s7, 0, 1, t));
   Xen_define_typed_procedure(S_forget_region,          g_forget_region_w,          1, 0, 0, H_forget_region,   s7_make_signature(s7, 2, rg, rg));
   Xen_define_typed_procedure(S_make_region,            g_make_region_w,            0, 4, 0, H_make_region,     s7_make_signature(s7, 5, rg, i, i, t, t));
   Xen_define_typed_procedure(S_mix_region,             g_mix_region_w,             1, 4, 0, H_mix_region,      s7_make_signature(s7, 6, t, rg, i, t, t, t));
@@ -2247,6 +2327,10 @@ void g_init_regions(void)
 
   s7_symbol_set_documentation(s7, ss->max_regions_symbol, "*max-regions*: max number of regions saved on the region list");
   s7_symbol_set_documentation(s7, ss->region_graph_style_symbol, "*region-graph-style*: graph style of the region dialog graph (graph-lines etc)");
+
+  s7_define_safe_function_star(s7, S_save_region, g_save_region, "region file sample-type header-type comment", H_save_region);
+#else
+  Xen_define_typed_procedure(S_save_region,            g_save_region_w,            2, 7, 0, H_save_region,     s7_make_circular_signature(s7, 0, 1, t));
 #endif
 }
 
diff --git a/snd-select.c b/snd-select.c
index 49c4c33..8f9be90 100644
--- a/snd-select.c
+++ b/snd-select.c
@@ -1646,6 +1646,108 @@ If sync is set, all chans are included.  The new region id is returned (if " S_s
 }
 
 
+#define H_save_selection "(" S_save_selection " file srate sample-type header-type comment channel): \
+save the current selection in file using the indicated file attributes.  If channel is given, save only that channel."
+
+#if HAVE_SCHEME
+static s7_pointer g_save_selection(s7_scheme *sc, s7_pointer args)
+{
+  mus_header_t head_type;
+  mus_sample_t samp_type;
+  int sr, chn;
+  io_error_t io_err;
+  const char *com, *file;
+  char *fname;
+  s7_pointer p, fp, res;
+
+  if (!(selection_is_active()))
+    return(snd_no_active_selection_error(S_save_selection));
+
+  fp = s7_car(args);
+  if (fp == Xen_false)
+    Xen_error(Xen_make_error_type("IO-error"), Xen_list_1(C_string_to_Xen_string(S_save_selection ": no output file?")));
+  if (!s7_is_string(fp))
+    return(s7_wrong_type_arg_error(sc, S_save_selection, 1, fp, "a string"));
+  file = s7_string(fp);
+  res = fp;
+
+  fp = s7_cadr(args);
+  if (fp == Xen_false)
+    sr = selection_srate();
+  else
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_save_selection, 2, fp, "an integer"));
+      sr = s7_integer(fp);
+      if (sr <= 0)
+	Xen_error(Xen_make_error_type("cannot-save"),
+		  Xen_list_2(C_string_to_Xen_string(S_save_selection ": srate (~A) can't be <= 0"), fp));
+    }
+
+  p = s7_cddr(args);
+  fp = s7_car(p);
+  if (fp == Xen_false)
+    samp_type = MUS_UNKNOWN_SAMPLE;
+  else
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_save_selection, 3, fp, "an integer"));
+      samp_type = (mus_sample_t)s7_integer(fp);
+    }
+
+  fp = s7_cadr(p);
+  if (fp == Xen_false)
+    head_type = MUS_UNKNOWN_HEADER;
+  else
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_save_selection, 4, fp, "an integer"));
+      head_type = (mus_header_t)s7_integer(fp);
+    }
+  if ((head_type != MUS_UNKNOWN_HEADER) && (!(mus_header_writable(head_type, MUS_IGNORE_SAMPLE))))
+    Xen_error(Xen_make_error_type("cannot-save"),
+	      Xen_list_2(C_string_to_Xen_string(S_save_selection ": can't write a ~A header"),
+			 C_string_to_Xen_string(mus_header_type_name(head_type))));
+
+  if ((head_type != MUS_UNKNOWN_HEADER) && (samp_type != MUS_UNKNOWN_SAMPLE) && (!(mus_header_writable(head_type, samp_type))))
+    Xen_error(Xen_make_error_type("cannot-save"),
+	      Xen_list_3(C_string_to_Xen_string(S_save_selection ": can't write ~A data to a ~A header"),
+			 C_string_to_Xen_string(mus_sample_type_name(samp_type)),
+			 C_string_to_Xen_string(mus_header_type_name(head_type))));
+
+  p = s7_cddr(p);
+  fp = s7_car(p);
+  if (fp == Xen_false)
+    com = NULL;
+  else
+    {
+      if (!s7_is_string(fp))
+	return(s7_wrong_type_arg_error(sc, S_save_selection, 5, fp, "a string"));
+      com = s7_string(fp);
+    }
+  
+  fp = s7_cadr(p);
+  if (fp == Xen_false)
+    chn = SAVE_ALL_CHANS;
+  else
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_save_selection, 6, fp, "an integer"));
+      chn = s7_integer(fp);
+    }
+
+  fname = mus_expand_filename(file);
+  io_err = save_selection(fname, sr, samp_type, head_type, com, chn);
+
+  if (fname) free(fname);
+  if ((io_err != IO_NO_ERROR) &&
+      (io_err != IO_INTERRUPTED) &&
+      (io_err != IO_SAVE_HOOK_CANCELLATION))
+    Xen_error(Xen_make_error_type("cannot-save"),
+	      Xen_list_3(C_string_to_Xen_string(S_save_selection ": can't save ~S, ~A"), res, C_string_to_Xen_string(snd_open_strerror())));
+  return(res);
+}
+#else
 static Xen kw_header_type, kw_comment, kw_file, kw_srate, kw_channel, kw_sample_type;
 
 static void init_selection_keywords(void)
@@ -1658,12 +1760,8 @@ static void init_selection_keywords(void)
   kw_channel = Xen_make_keyword("channel");
 }
 
-
 static Xen g_save_selection(Xen arglist)
 {
-  #define H_save_selection "(" S_save_selection " file srate sample-type header-type comment channel): \
-save the current selection in file using the indicated file attributes.  If channel is given, save only that channel."
-
   mus_header_t head_type = MUS_UNKNOWN_HEADER;
   mus_sample_t samp_type = MUS_UNKNOWN_SAMPLE;
   int sr = -1, chn = 0;
@@ -1695,7 +1793,7 @@ save the current selection in file using the indicated file attributes.  If chan
     Xen_out_of_range_error(S_save_selection, 0, arglist, "too many arguments");
   for (i = 0; i < arglist_len; i++) args[i] = Xen_list_ref(arglist, i);
 
-  vals = mus_optkey_unscramble(S_save_selection, 6, keys, args, orig_arg);
+  vals = mus_optkey_unscramble(S_save_selection, arglist_len, 6, keys, args, orig_arg);
   if (vals > 0)
     {
       file = mus_optkey_to_string(keys[0], S_save_selection, orig_arg[0], NULL);
@@ -1739,7 +1837,7 @@ save the current selection in file using the indicated file attributes.  If chan
 			 C_string_to_Xen_string(snd_open_strerror())));
   return(args[orig_arg[0] - 1]);
 }
-
+#endif
 
 Xen g_selection_chans(void)
 {
@@ -1865,7 +1963,6 @@ Xen_wrap_3_optional_args(g_insert_selection_w, g_insert_selection)
 Xen_wrap_4_optional_args(g_mix_selection_w, g_mix_selection)
 Xen_wrap_no_args(g_selection_to_mix_w, g_selection_to_mix)
 Xen_wrap_2_optional_args(g_select_all_w, g_select_all)
-Xen_wrap_any_args(g_save_selection_w, g_save_selection)
 Xen_wrap_no_args(g_show_selection_w, g_show_selection)
 Xen_wrap_no_args(g_unselect_all_w, g_unselect_all)
 #if HAVE_SCHEME
@@ -1873,6 +1970,7 @@ Xen_wrap_no_args(g_unselect_all_w, g_unselect_all)
 #define g_set_selection_framples_w g_set_selection_framples_reversed
 #define g_set_selection_member_w g_set_selection_member_reversed
 #else
+Xen_wrap_any_args(g_save_selection_w, g_save_selection)
 Xen_wrap_3_optional_args(g_set_selection_position_w, g_set_selection_position)
 Xen_wrap_3_optional_args(g_set_selection_framples_w, g_set_selection_framples)
 Xen_wrap_3_optional_args(g_set_selection_member_w, g_set_selection_member)
@@ -1890,7 +1988,9 @@ void g_init_selection(void)
   t = s7_t(s7);
 #endif
 
+#if (!HAVE_SCHEME)
   init_selection_keywords();
+#endif
   init_xen_selection();
 
   Xen_define_typed_dilambda(S_selection_position, g_selection_position_w, H_selection_position, S_set S_selection_position, g_set_selection_position_w, 0, 2, 1, 2,
@@ -1912,6 +2012,10 @@ void g_init_selection(void)
   Xen_define_typed_procedure(S_insert_selection, g_insert_selection_w, 0, 3, 0, H_insert_selection,  s7_make_signature(s7, 4, b, i, t, t));
   Xen_define_typed_procedure(S_mix_selection,    g_mix_selection_w,    0, 4, 0, H_mix_selection,     s7_make_signature(s7, 5, t, i, t, t, i));
   Xen_define_typed_procedure(S_selection_to_mix, g_selection_to_mix_w, 0, 0, 0, H_selection_to_mix,  s7_make_signature(s7, 1, p));
-  Xen_define_typed_procedure(S_save_selection,   g_save_selection_w,   0, 0, 1, H_save_selection,    s7_make_circular_signature(s7, 0, 1, t));
   Xen_define_typed_procedure(S_show_selection,   g_show_selection_w,   0, 0, 0, H_show_selection,    s7_make_signature(s7, 1, b));
+#if HAVE_SCHEME
+  s7_define_safe_function_star(s7, S_save_selection, g_save_selection, "file srate sample-type header-type comment channel", H_save_selection);
+#else
+  Xen_define_typed_procedure(S_save_selection,   g_save_selection_w,   0, 0, 1, H_save_selection,    s7_make_circular_signature(s7, 0, 1, t));
+#endif
 }
diff --git a/snd-sig.c b/snd-sig.c
index e1a0484..24307ad 100644
--- a/snd-sig.c
+++ b/snd-sig.c
@@ -1749,9 +1749,20 @@ static char *clm_channel(chan_info *cp, mus_any *gen, mus_long_t beg, mus_long_t
     }
   else
     {
+      mus_float_t (*runf1)(mus_any *gen, mus_float_t arg);
       samples_to_vct_with_reader(dur, idata, sf);
-      for (k = 0; k < dur; k++)
-	idata[k] = runf(gen, idata[k], 0.0);
+
+      runf1 = mus_run1_function(gen);
+      if (runf1)
+	{
+	  for (k = 0; k < dur; k++)
+	    idata[k] = runf1(gen, idata[k]);
+	}
+      else
+	{
+	  for (k = 0; k < dur; k++)
+	    idata[k] = runf(gen, idata[k], 0.0);
+	}
       j = (int)dur;
     }
 
@@ -1965,6 +1976,8 @@ static char *convolution_filter(chan_info *cp, int order, env *e, snd_fd *sf, mu
   return(NULL);
 }
 
+mus_float_t next_sample_value_unscaled(snd_fd *sf);
+mus_float_t next_sound(snd_fd *sf);
 
 static char *direct_filter(chan_info *cp, int order, env *e, snd_fd *sf, mus_long_t beg, mus_long_t dur, 
 			   const char *origin, bool truncate,
@@ -1984,6 +1997,7 @@ static char *direct_filter(chan_info *cp, int order, env *e, snd_fd *sf, mus_lon
   io_error_t io_err = IO_NO_ERROR;
   mus_any *g = NULL;
   mus_float_t (*runf)(mus_any *gen, mus_float_t arg1, mus_float_t arg2);
+  mus_float_t (*runf1)(mus_any *gen, mus_float_t arg);
   
   if (!(is_editable(cp))) return(NULL);
   sp = cp->sound;
@@ -2053,32 +2067,65 @@ static char *direct_filter(chan_info *cp, int order, env *e, snd_fd *sf, mus_lon
     dur -= order;
 
   runf = mus_run_function(g);
-
+  runf1 = mus_run1_function(g);
   if (!temp_file)
     {
-      for (j = 0; j < dur; j++)
-	idata[j] = runf(g, read_sample(sf), 0.0);
+      if (sf->runf == next_sample_value_unscaled)
+	{
+	  if (runf1)
+	    {
+	      for (j = 0; j < dur; j++)
+		idata[j] = runf1(g, (sf->loc > sf->last) ? next_sound(sf) : sf->data[sf->loc++]);
+	    }
+	  else
+	    {
+	      for (j = 0; j < dur; j++)
+		idata[j] = runf(g, (sf->loc > sf->last) ? next_sound(sf) : sf->data[sf->loc++], 0.0);
+	    }
+	}
+      else
+	{
+	  for (j = 0; j < dur; j++)
+	    idata[j] = runf(g, read_sample(sf), 0.0);
+	}
     }
   else
     {
-      for (offk = 0; offk < dur; offk++)
+      for (offk = 0; offk < dur; offk += MAX_BUFFER_SIZE)
 	{
-	  idata[j] = runf(g, read_sample(sf), 0.0);
-	  j++;
-	  if (j == MAX_BUFFER_SIZE)
+	  mus_long_t kdur;
+	  kdur = dur - offk;
+	  if (kdur > MAX_BUFFER_SIZE) kdur = MAX_BUFFER_SIZE;
+
+	  if (sf->runf == next_sample_value_unscaled)
 	    {
-	      err = mus_file_write(ofd, 0, j - 1, 1, data);
-	      j = 0;
-	      if (err != MUS_NO_ERROR) break;
-	      if (reporting) 
+	      if (runf1)
 		{
-		  progress_report(cp, (mus_float_t)((double)offk / (double)dur));
-		  if (ss->stopped_explicitly) return(NULL);
-		  if (!(sp->active))
-		    {
-		      ss->stopped_explicitly = true;
-		      break;
-		    }
+		  for (j = 0; j < kdur; j++)
+		    idata[j] = runf1(g, (sf->loc > sf->last) ? next_sound(sf) : sf->data[sf->loc++]);
+		}
+	      else
+		{
+		  for (j = 0; j < kdur; j++)
+		    idata[j] = runf(g, (sf->loc > sf->last) ? next_sound(sf) : sf->data[sf->loc++], 0.0);
+		}
+	    }
+	  else
+	    {
+	      for (j = 0; j < kdur; j++)
+		idata[j] = runf(g, read_sample(sf), 0.0);
+	    }
+
+	  err = mus_file_write(ofd, 0, j - 1, 1, data);
+	  if (err != MUS_NO_ERROR) break;
+	  if (reporting) 
+	    {
+	      progress_report(cp, (mus_float_t)((double)offk / (double)dur));
+	      if (ss->stopped_explicitly) return(NULL);
+	      if (!(sp->active))
+		{
+		  ss->stopped_explicitly = true;
+		  break;
 		}
 	    }
 	}
@@ -2191,7 +2238,8 @@ static char *filter_channel(chan_info *cp, int order, env *e, mus_long_t beg, mu
   sf = init_sample_read_any(beg, cp, READ_FORWARD, edpos);
 
   if ((!over_selection) &&
-      ((order == 0) || (order >= 128)))
+      ((order == 0) || 
+       (order >= 128)))
     errstr = convolution_filter(cp, order, e, sf, beg, dur, origin, coeffs);
   else  errstr = direct_filter(cp, order, e, sf, beg, dur, origin, truncate, over_selection, NULL, coeffs);
 
@@ -3472,8 +3520,8 @@ static Xen map_channel_to_buffer(chan_info *cp, snd_fd *sf, Xen proc, mus_long_t
 
   body = s7_closure_body(s7, proc);
   if ((s7_is_pair(body)) &&
-      (s7_is_pair(s7_closure_args(s7, proc))) &&
-      (!s7_tree_memq(s7, s7_make_symbol(s7, "set!"), body)))
+      (s7_is_pair(s7_closure_args(s7, proc))))
+    /* (!s7_tree_memq(s7, s7_make_symbol(s7, "set!"), body))) why this? */
     {
       s7_pointer arg;
       if (s7_is_null(s7, s7_cdr(body)))
@@ -3600,7 +3648,6 @@ static Xen map_channel_to_buffer(chan_info *cp, snd_fd *sf, Xen proc, mus_long_t
     }
   else
     {
-      /* presumably "proc" is something like abs */
       arg_list = Xen_list_1(Xen_false);
       gc_loc = s7_gc_protect(s7, arg_list);
       use_apply = true;
@@ -3807,7 +3854,6 @@ static Xen g_map_chan_1(Xen proc_and_list, Xen s_beg, Xen s_end, Xen org, Xen sn
   return(res);
 }
 
-
 static Xen g_sp_scan(Xen proc_and_list, Xen s_beg, Xen s_end, Xen snd, Xen chn, const char *caller, bool counting, Xen edpos, int arg_pos, Xen s_dur)
 {
   chan_info *cp;
@@ -3875,8 +3921,8 @@ static Xen g_sp_scan(Xen proc_and_list, Xen s_beg, Xen s_end, Xen snd, Xen chn,
 
   body = s7_closure_body(s7, proc);
   if ((s7_is_pair(body)) &&
-      (s7_is_pair(s7_closure_args(s7, proc))) &&
-      (!s7_tree_memq(s7, s7_make_symbol(s7, "set!"), body)))
+      (s7_is_pair(s7_closure_args(s7, proc))))
+      /* (!s7_tree_memq(s7, s7_make_symbol(s7, "set!"), body))) */
     {
       s7_pointer arg, expr;
 
@@ -3897,17 +3943,19 @@ static Xen g_sp_scan(Xen proc_and_list, Xen s_beg, Xen s_end, Xen snd, Xen chn,
 
       e = s7_sublet(s7, s7_closure_let(s7, proc), s7_nil(s7));
 
-      if (s7_is_null(s7, s7_cdr(body)))
 	{
 	  s7_pointer res, yp, old_e, y, val;
 	  s7_function func;
-	  res = s7_car(body);
 
 	  old_e = s7_set_curlet(s7, e);                  /* new env for scan lambda */
 	  y = s7_make_mutable_real(s7, 1.5);             /* slot for the scan lambda arg */
 	  yp = s7_make_slot(s7, e, arg, y);
 	  val = y;
-	  func = s7_optimize(s7, body);
+	  res = s7_car(body);
+
+	  if (s7_is_null(s7, s7_cdr(body)))
+	    func = s7_optimize(s7, body);
+	  else func = s7_optimize(s7, s7_cons(s7, s7_cons(s7, s7_make_symbol(s7, "begin"), body), s7_nil(s7)));
 	  if (func)
 	    {
 	      for (kp = 0; kp < num; kp++)
@@ -3942,9 +3990,7 @@ static Xen g_sp_scan(Xen proc_and_list, Xen s_beg, Xen s_end, Xen snd, Xen chn,
       use_apply = false;
 
       if (s7_is_null(s7, s7_cdr(body)))
-	{
-	  body = s7_car(body);
-	}
+	body = s7_car(body);
       else
 	{
 	  body = s7_cons(s7, s7_make_symbol(s7, "begin"), body);
@@ -4645,7 +4691,7 @@ static mus_float_t *load_mus_float_ts(Xen scalers, int *result_len, const char *
   
   scls = (mus_float_t *)calloc(len, sizeof(mus_float_t));
   if (v)
-    copy_floats(scls, mus_vct_data(v), len);
+    mus_copy_floats(scls, mus_vct_data(v), len);
   else
     {
       if (Xen_is_list(scalers))
@@ -5133,16 +5179,16 @@ If sign is -1, perform inverse fft.  Incoming data is in " S_vct "s."
       rl = (mus_float_t *)calloc(n2, sizeof(mus_float_t));
       im = (mus_float_t *)calloc(n2, sizeof(mus_float_t));
       need_free = true;
-      copy_floats(rl, mus_vct_data(v1), n);
-      copy_floats(im, mus_vct_data(v2), n);
+      mus_copy_floats(rl, mus_vct_data(v1), n);
+      mus_copy_floats(im, mus_vct_data(v2), n);
     }
 
   mus_fft(rl, im, n2, isign);
 
   if (need_free)
     {
-      copy_floats(mus_vct_data(v1), rl, n);
-      copy_floats(mus_vct_data(v2), im, n);
+      mus_copy_floats(mus_vct_data(v1), rl, n);
+      mus_copy_floats(mus_vct_data(v2), im, n);
       free(rl);
       free(im);
     }
@@ -5193,7 +5239,7 @@ magnitude spectrum of data (a " S_vct "), in data if in-place, using fft-window
       rdat = (mus_float_t *)malloc(n * sizeof(mus_float_t));
       if (n < mus_vct_length(v))
 	for (i = 0; i < n; i++) rdat[i] = vdata[i];
-      else copy_floats(rdat, vdata, mus_vct_length(v));
+      else mus_copy_floats(rdat, vdata, mus_vct_length(v));
     }
   else rdat = mus_vct_data(v);
 
@@ -5987,11 +6033,11 @@ static mus_float_t saved_min(int ch, int nn)
 static mus_float_t get_peak(int choice, int fft_size, int n, mus_float_t *phases, mus_float_t *rl, mus_float_t *im)
 {
   int i, m;
-  mus_float_t pi2, mx_sin, mx_cos;
+  mus_float_t pi2, mx_sin;
   
   pi2 = M_PI / 2.0;
-  clear_floats(rl, fft_size);
-  clear_floats(im, fft_size);
+  mus_clear_floats(rl, fft_size);
+  mus_clear_floats(im, fft_size);
   
   for (m = 0; m < n; m++)
     {
@@ -6019,51 +6065,17 @@ static mus_float_t get_peak(int choice, int fft_size, int n, mus_float_t *phases
     }
   
   mus_fft(rl, im, fft_size, -1);
-  /* real part is sine reconstruction, imaginary part is cosine, we're interested in both! */
+  /* real part is sine reconstruction, imaginary part is cosine, we were originally interested in both */
   /*   we could also add and subtract the 2 to get 2 more cases "for free", amp sqrt(2), phase asin(cos(0)/sqrt(2)) */
   /*   and repeat this with a shift (rotation from i) for 2n other cases */
   /*   resultant amp is between 0 and 2 (cosine) */
   
-  mx_sin = fabs(rl[0]);
-  mx_cos = fabs(im[0]);
+  mus_abs_floats(rl, fft_size);
+  mx_sin = rl[0];
   for (i = 1; i < fft_size; i++)
-    {
-      mus_float_t mxtemp;
-      mxtemp = fabs(rl[i]);
-      if (mxtemp > mx_sin)
-	mx_sin = mxtemp;
-      mxtemp = fabs(im[i]);
-      if (mxtemp > mx_cos)
-	mx_cos = mxtemp;
-    }
-  
-  if (mx_sin <= mx_cos)
-    return(mx_sin);
-  
-  /* use the cosine case, but make it sine-based with 0.0 initial phase for the fundamental */
-  for (m = 1; m < n; m++)
-    {
-      int bin;
-      if (choice == ALL)
-	bin = m + 1;
-      else
-	{
-	  if (choice == ODD)
-	    bin = (m * 2) + 1;
-	  else 
-	    {
-	      if (choice == EVEN)
-		{
-		  bin = m * 2;
-		  if (bin == 0) bin = 1;
-		}
-	      else bin = primes[m];
-	    }
-	}
-      phases[m] += (0.5 * (bin - 1));
-    }
-  
-  return(mx_cos);
+    mx_sin = (rl[i] > mx_sin) ? rl[i] : mx_sin;
+
+  return(mx_sin);
 }
   
 
diff --git a/snd-snd.c b/snd-snd.c
index 0bf13ac..b994cf2 100644
--- a/snd-snd.c
+++ b/snd-snd.c
@@ -931,8 +931,8 @@ peak_env_info *copy_peak_env_info(peak_env_info *old_ep, bool reversed)
 	}
       else
 	{
-	  copy_floats(new_ep->data_min, old_ep->data_min, new_ep->peak_env_size);
-	  copy_floats(new_ep->data_max, old_ep->data_max, new_ep->peak_env_size);
+	  mus_copy_floats(new_ep->data_min, old_ep->data_min, new_ep->peak_env_size);
+	  mus_copy_floats(new_ep->data_max, old_ep->data_max, new_ep->peak_env_size);
 	}
 
       new_ep->completed = true;
@@ -1125,8 +1125,8 @@ void peak_env_insert_zeros(chan_info *cp, mus_long_t beg, mus_long_t num, int po
 	  i = (int)ceil(end / new_ep->samps_per_bin);
 	  bins = new_ep->peak_env_size - i;
 	  if (old_ep->peak_env_size < bins) bins = old_ep->peak_env_size;
-	  copy_floats(&(new_ep->data_min[i]), old_ep->data_min, bins);
-	  copy_floats(&(new_ep->data_max[i]), old_ep->data_max, bins);
+	  mus_copy_floats(&(new_ep->data_min[i]), old_ep->data_min, bins);
+	  mus_copy_floats(&(new_ep->data_max[i]), old_ep->data_max, bins);
 	}
       else
 	{
@@ -1135,16 +1135,16 @@ void peak_env_insert_zeros(chan_info *cp, mus_long_t beg, mus_long_t num, int po
 	      /* copy start */
 	      bins = (int)floor(beg / old_ep->samps_per_bin);
 	      if (bins > old_ep->peak_env_size) bins = old_ep->peak_env_size;
-	      copy_floats(new_ep->data_min, old_ep->data_min, bins);
-	      copy_floats(new_ep->data_max, old_ep->data_max, bins);
+	      mus_copy_floats(new_ep->data_min, old_ep->data_min, bins);
+	      mus_copy_floats(new_ep->data_max, old_ep->data_max, bins);
 	    }
 	  else
 	    {
 	      i = (int)floor(beg / old_ep->samps_per_bin);
 	      if (i > 0)
 		{
-		  copy_floats(new_ep->data_min, old_ep->data_min, i);
-		  copy_floats(new_ep->data_max, old_ep->data_max, i);
+		  mus_copy_floats(new_ep->data_min, old_ep->data_min, i);
+		  mus_copy_floats(new_ep->data_max, old_ep->data_max, i);
 		}
 	      if (i < new_ep->peak_env_size)
 		{
@@ -1162,8 +1162,8 @@ void peak_env_insert_zeros(chan_info *cp, mus_long_t beg, mus_long_t num, int po
 		  bins = new_ep->peak_env_size - j;
 		  if ((i + bins) >= old_ep->peak_env_size)
 		    bins = old_ep->peak_env_size - i;
-		  copy_floats(&(new_ep->data_min[j]), &(old_ep->data_min[i]), bins);
-		  copy_floats(&(new_ep->data_max[j]), &(old_ep->data_max[i]), bins);
+		  mus_copy_floats(&(new_ep->data_min[j]), &(old_ep->data_min[i]), bins);
+		  mus_copy_floats(&(new_ep->data_max[j]), &(old_ep->data_max[i]), bins);
 		}
 	    }
 	}
@@ -3980,12 +3980,80 @@ static void init_sound_keywords(void)
   kw_comment = Xen_make_keyword("comment");
 }
 
+#define H_open_raw_sound "(" S_open_raw_sound " file channels srate sample-type): \
+open file assuming the data matches the attributes indicated unless the file actually has a header"
 
-static Xen g_open_raw_sound(Xen arglist)
+#if HAVE_SCHEME
+static s7_pointer g_open_raw_sound(s7_scheme *sc, s7_pointer args)
 {
-  #define H_open_raw_sound "(" S_open_raw_sound " file channels srate sample-type): \
-open file assuming the data matches the attributes indicated unless the file actually has a header"
+  const char *file;
+  char *fullname;
+  snd_info *sp;
+  bool file_exists;
+  int os = 1, oc = 1;
+  mus_sample_t ofr = MUS_BSHORT;
+  s7_pointer p, fp;
 
+  mus_header_raw_defaults(&os, &oc, &ofr);
+  
+  fp = s7_car(args);
+  if (!s7_is_string(fp))
+    Xen_error(NO_SUCH_FILE,
+	      Xen_list_1(C_string_to_Xen_string(S_open_raw_sound ": no output file?")));
+  file = s7_string(fp);
+  fullname = mus_expand_filename(file);
+  file_exists = mus_file_probe(fullname);
+  free(fullname);
+  if (!file_exists)
+    return(snd_no_such_file_error(S_open_raw_sound, fp));
+  
+  fp = s7_cadr(args);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_open_raw_sound, 2, fp, "an integer"));
+      oc = s7_integer(fp);
+      if ((oc < 0) ||
+	  (oc > MUS_MAX_CHANS))
+	Xen_out_of_range_error(S_open_raw_sound, 2, fp, "too many channels requested");
+      set_fallback_chans(oc);
+    }
+
+  p = s7_cddr(args);
+
+  fp = s7_car(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_open_raw_sound, 3, fp, "an integer"));
+      os = s7_integer(fp);
+      set_fallback_srate(os);
+    }
+
+  fp = s7_cadr(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_open_raw_sound, 4, fp, "an integer"));
+      ofr = (mus_sample_t)s7_integer(fp);
+      set_fallback_sample_type(ofr);
+    }
+
+  mus_header_set_raw_defaults(os, oc, ofr);
+  ss->reloading_updated_file = -1;
+  ss->open_requestor = FROM_OPEN_RAW_SOUND;
+  sp = snd_open_file(file, FILE_READ_WRITE);
+  set_fallback_chans(0);
+  set_fallback_srate(0);
+  set_fallback_sample_type(MUS_UNKNOWN_SAMPLE);
+  ss->reloading_updated_file = 0;
+  if (sp) 
+    return(C_int_to_Xen_sound(sp->index));
+  return(Xen_false);
+}
+#else
+static Xen g_open_raw_sound(Xen arglist)
+{
   const char *file = NULL;
   char *fullname;
   snd_info *sp;
@@ -4010,7 +4078,7 @@ open file assuming the data matches the attributes indicated unless the file act
     Xen_out_of_range_error(S_open_raw_sound, 0, arglist, "too many arguments");
 
   for (i = 0; i < arglist_len; i++) args[i] = Xen_list_ref(arglist, i);
-  vals = mus_optkey_unscramble(S_open_raw_sound, 4, keys, args, orig_arg);
+  vals = mus_optkey_unscramble(S_open_raw_sound, arglist_len, 4, keys, args, orig_arg);
 
   if (vals > 0)
     {
@@ -4054,7 +4122,7 @@ open file assuming the data matches the attributes indicated unless the file act
     return(C_int_to_Xen_sound(sp->index));
   return(Xen_false);
 }
-
+#endif
 
 #if HAVE_SCHEME
   #define read_only_example "You can make it writable via: (set! (" S_read_only ") #f)"
@@ -4139,7 +4207,7 @@ Omitted arguments take their value from the sound being saved.\n  " save_as_exam
     Xen_out_of_range_error(S_save_sound_as, 0, arglist, "too many arguments");
 
   for (i = 0; i < arglist_len; i++) args[i] = Xen_list_ref(arglist, i);
-  vals = mus_optkey_unscramble(S_save_sound_as, 8, keys, args, orig_arg);
+  vals = mus_optkey_unscramble(S_save_sound_as, arglist_len, 8, keys, args, orig_arg);
 
   if (vals > 0)
     {
@@ -4278,9 +4346,6 @@ Omitted arguments take their value from the sound being saved.\n  " save_as_exam
   return(args[orig_arg[0] - 1]);
 }
 
-
-static Xen g_new_sound(Xen arglist)
-{
   #if HAVE_SCHEME
     #define new_sound_example "(" S_new_sound " \"test.snd\" 1 22050 " S_mus_bshort " " S_mus_next " \"no comment\" 1000)"
   #endif
@@ -4295,6 +4360,139 @@ static Xen g_new_sound(Xen arglist)
 creates a new sound file with the indicated attributes; if any are omitted, the corresponding default-output variable is used. \
 The 'size' argument sets the number of samples (zeros) in the newly created sound. \n  " new_sound_example
 
+#if HAVE_SCHEME
+static s7_pointer g_new_sound(s7_scheme *sc, s7_pointer args)
+{
+  snd_info *sp = NULL; 
+  mus_header_t ht;
+  mus_sample_t df;
+  char *str;
+  int sr, ch, chan;
+  mus_long_t size, len;
+  const char *com, *file;
+  io_error_t io_err;
+  s7_pointer p, fp;
+
+  fp = s7_car(args);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_string(fp))
+	return(s7_wrong_type_arg_error(sc, S_new_sound, 1, fp, "a string (a filename)"));
+      file = s7_string(fp);
+      str = mus_expand_filename(file);
+      if (!str)
+	Xen_out_of_range_error(S_new_sound, 1, fp, "bad file name?");
+    }
+  else str = snd_tempnam();
+  mus_sound_forget(str);
+
+  fp = s7_cadr(args);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_new_sound, 2, fp, "an integer (channels)"));
+      ch = s7_integer(fp);
+      if (ch <= 0)
+	Xen_out_of_range_error(S_new_sound, 2, fp, "channels <= 0?");
+    }
+  else ch = default_output_chans(ss);
+
+  p = s7_cddr(args);
+  fp = s7_car(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_new_sound, 3, fp, "an integer (srate)"));
+      sr = s7_integer(fp);
+      if (sr <= 0)
+	Xen_out_of_range_error(S_new_sound, 3, fp, "srate <= 0?");
+    }
+  else sr = default_output_srate(ss);
+
+  fp = s7_cadr(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_new_sound, 4, fp, "an integer (sample type)"));
+      df = (mus_sample_t)s7_integer(fp);
+      if (!(mus_is_sample_type(df)))
+	Xen_out_of_range_error(S_new_sound, 4, fp, "invalid sample type");
+    }
+  else df = default_output_sample_type(ss);
+
+  p = s7_cddr(p);
+  fp = s7_car(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_new_sound, 5, fp, "an integer (header type)"));
+      ht = (mus_header_t)s7_integer(fp);
+      if (!(mus_is_header_type(ht)))
+	Xen_out_of_range_error(S_new_sound, 5, fp, "invalid header type");
+      if (!(mus_header_writable(ht, df)))
+	Xen_error(BAD_HEADER,
+		  Xen_list_3(C_string_to_Xen_string(S_new_sound ": can't write ~A data to a ~A header"),
+			     C_string_to_Xen_string(mus_sample_type_short_name(df)),
+			     C_string_to_Xen_string(mus_header_type_name(ht))));
+    }
+  else ht = default_output_header_type(ss);
+
+  fp = s7_cadr(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_string(fp))
+	return(s7_wrong_type_arg_error(sc, S_new_sound, 6, fp, "a string"));
+      com = s7_string(fp);
+    }
+  else com = NULL;
+  
+  fp = s7_caddr(p);
+  if (fp != Xen_false)
+    {
+      if (!s7_is_integer(fp))
+	return(s7_wrong_type_arg_error(sc, S_new_sound, 7, fp, "an integer (initial file size)"));
+      len = s7_integer(fp);
+      if (len < 0)
+	Xen_out_of_range_error(S_new_sound, 7, fp, "size < 0?");
+    }
+  else len = 1;
+
+  io_err = snd_write_header(str, ht, sr, ch, len * ch, df, com, NULL); /* last arg is loop info */
+  if (io_err != IO_NO_ERROR)
+    {
+      s7_pointer filep;
+      filep = s7_make_string(sc, str);
+      if (str) {free(str); str = NULL;}
+      Xen_error(Xen_make_error_type("IO-error"),
+		Xen_list_3(C_string_to_Xen_string(S_new_sound ": ~S, ~A"),
+			   filep,
+			   C_string_to_Xen_string(snd_io_strerror())));
+    }
+
+  chan = snd_reopen_write(str);
+  lseek(chan, mus_header_data_location(), SEEK_SET);
+
+  size = ch * mus_samples_to_bytes(df, len);
+  if (size > 0)
+    {
+      unsigned char *buf;
+      buf = (unsigned char *)calloc(size, sizeof(unsigned char));
+      if (write(chan, buf, size) != size) fprintf(stderr, "new-sound %s write error", str);
+      free(buf);
+    }
+
+  snd_close(chan, str);
+  ss->open_requestor = FROM_NEW_SOUND;
+
+  sp = sound_is_silence(snd_open_file(str, FILE_READ_WRITE));
+
+  if (str) free(str);
+  if (sp) return(C_int_to_Xen_sound(sp->index));
+  return(Xen_false);
+}
+#else
+static Xen g_new_sound(Xen arglist)
+{
   snd_info *sp = NULL; 
   mus_header_t ht;
   mus_sample_t df;
@@ -4322,7 +4520,7 @@ The 'size' argument sets the number of samples (zeros) in the newly created soun
     Xen_out_of_range_error(S_open_raw_sound, 0, arglist, "too many arguments");
 
   for (i = 0; i < arglist_len; i++) args[i] = Xen_list_ref(arglist, i);
-  vals = mus_optkey_unscramble(S_new_sound, 7, keys, args, orig_arg);
+  vals = mus_optkey_unscramble(S_new_sound, arglist_len, 7, keys, args, orig_arg);
 
   ht = default_output_header_type(ss);
   df = default_output_sample_type(ss);
@@ -4402,7 +4600,7 @@ The 'size' argument sets the number of samples (zeros) in the newly created soun
   if (sp) return(C_int_to_Xen_sound(sp->index));
   return(Xen_false);
 }
-
+#endif
 
 static Xen g_speed_control_style(Xen snd)
 {
@@ -5762,9 +5960,7 @@ Xen_wrap_1_optional_arg(g_close_sound_w, g_close_sound)
 Xen_wrap_1_optional_arg(g_update_sound_w, g_update_sound)
 Xen_wrap_1_optional_arg(g_save_sound_w, g_save_sound)
 Xen_wrap_1_arg(g_open_sound_w, g_open_sound)
-Xen_wrap_any_args(g_open_raw_sound_w, g_open_raw_sound)
 Xen_wrap_1_arg(g_view_sound_w, g_view_sound)
-Xen_wrap_any_args(g_new_sound_w, g_new_sound)
 Xen_wrap_1_optional_arg(g_revert_sound_w, g_revert_sound)
 Xen_wrap_any_args(g_save_sound_as_w, g_save_sound_as)
 Xen_wrap_4_optional_args(g_apply_controls_w, g_apply_controls)
@@ -5853,6 +6049,8 @@ Xen_wrap_2_optional_args(g_status_report_w, g_status_report)
 #define g_set_speed_control_style_w g_set_speed_control_style_reversed
 #define g_set_speed_control_tones_w g_set_speed_control_tones_reversed
 #else
+Xen_wrap_any_args(g_new_sound_w, g_new_sound)
+Xen_wrap_any_args(g_open_raw_sound_w, g_open_raw_sound)
 Xen_wrap_2_optional_args(g_set_filter_control_envelope_w, g_set_filter_control_envelope)
 Xen_wrap_2_optional_args(g_set_read_only_w, g_set_read_only)
 Xen_wrap_2_optional_args(g_set_sound_properties_w, g_set_sound_properties)
@@ -6007,12 +6205,18 @@ If it returns " PROC_TRUE ", the usual informative status babbling is squelched.
   Xen_define_unsafe_typed_procedure(S_update_sound,   g_update_sound_w,       0, 1, 0, H_update_sound,      s7_make_signature(s7, 2, t, t));
   Xen_define_unsafe_typed_procedure(S_save_sound,     g_save_sound_w,         0, 1, 0, H_save_sound,        s7_make_signature(s7, 2, sd, t));
   Xen_define_unsafe_typed_procedure(S_open_sound,     g_open_sound_w,         1, 0, 0, H_open_sound,        s7_make_signature(s7, 2, sd, s));
-  Xen_define_unsafe_typed_procedure(S_open_raw_sound, g_open_raw_sound_w,     0, 0, 1, H_open_raw_sound,    s7_make_circular_signature(s7, 0, 1, t));
   Xen_define_unsafe_typed_procedure(S_view_sound,     g_view_sound_w,         1, 0, 0, H_view_sound,        s7_make_signature(s7, 2, sd, s));
-  Xen_define_unsafe_typed_procedure(S_new_sound,      g_new_sound_w,          0, 0, 1, H_new_sound,         s7_make_circular_signature(s7, 0, 1, t));
   Xen_define_unsafe_typed_procedure(S_revert_sound,   g_revert_sound_w,       0, 1, 0, H_revert_sound,      s7_make_signature(s7, 2, sd, sd));
   Xen_define_unsafe_typed_procedure(S_save_sound_as,  g_save_sound_as_w,      0, 0, 1, H_save_sound_as,     s7_make_circular_signature(s7, 0, 1, t));
 
+#if HAVE_SCHEME
+  s7_define_function_star(s7, S_new_sound, g_new_sound, "file channels srate sample-type header-type comment size", H_new_sound);
+  s7_define_function_star(s7, S_open_raw_sound, g_open_raw_sound, "file channels srate sample-type", H_open_raw_sound);
+#else
+  Xen_define_unsafe_typed_procedure(S_new_sound,      g_new_sound_w,          0, 0, 1, H_new_sound,         s7_make_circular_signature(s7, 0, 1, t));
+  Xen_define_unsafe_typed_procedure(S_open_raw_sound, g_open_raw_sound_w,     0, 0, 1, H_open_raw_sound,    s7_make_circular_signature(s7, 0, 1, t));
+#endif
+
   Xen_define_typed_procedure(S_apply_controls,         g_apply_controls_w,          0, 4, 0, H_apply_controls,         s7_make_signature(s7, 5, t, t, i, i, i));
   Xen_define_typed_procedure(S_controls_to_channel,    g_controls_to_channel_w,     0, 6, 0, H_controls_to_channel,    s7_make_signature(s7, 7, p, p, i, i, t, t, s));
 
diff --git a/snd-test.scm b/snd-test.scm
index 24f31b2..1e9e82f 100644
--- a/snd-test.scm
+++ b/snd-test.scm
@@ -1,38 +1,39 @@
 ;;; Snd tests
 ;;;
-;;;  test 0: constants                          [374]
-;;;  test 1: defaults                           [1029]
-;;;  test 2: headers                            [1396]
-;;;  test 3: variables                          [1710]
-;;;  test 4: sndlib                             [2263]
-;;;  test 5: simple overall checks              [3994]
-;;;  test 6: float-vectors                      [8610]
-;;;  test 7: colors                             [8870]
-;;;  test 8: clm                                [9342]
+;;;  test 0: constants                          [375]
+;;;  test 1: defaults                           [1022]
+;;;  test 2: headers                            [1375]
+;;;  test 3: variables                          [1689]
+;;;  test 4: sndlib                             [2240]
+;;;  test 5: simple overall checks              [3972]
+;;;  test 6: float-vectors                      [8584]
+;;;  test 7: colors                             [8844]
+;;;  test 8: clm                                [9319]
 ;;;  test 9: mix                                [20981]
-;;;  test 10: marks                             [22699]
+;;;  test 10: marks                             [22700]
 ;;;  test 11: dialogs                           [23617]
-;;;  test 12: extensions                        [23778]
-;;;  test 13: menus, edit lists, hooks, etc     [24023]
-;;;  test 14: all together now                  [25328]
-;;;  test 15: chan-local vars                   [26129]
-;;;  test 16: regularized funcs                 [27788]
-;;;  test 17: dialogs and graphics              [31291]
-;;;  test 18: save and restore                  [31397]
-;;;  test 19: transforms                        [33038]
-;;;  test 20: new stuff                         [35086]
-;;;  test 21: optimizer                         [36261]
+;;;  test 12: extensions                        [23776]
+;;;  test 13: menus, edit lists, hooks, etc     [24013]
+;;;  test 14: all together now                  [25318]
+;;;  test 15: chan-local vars                   [26122]
+;;;  test 16: regularized funcs                 [27784]
+;;;  test 17: dialogs and graphics              [31280]
+;;;  test 18: save and restore                  [31385]
+;;;  test 19: transforms                        [33015]
+;;;  test 20: new stuff                         [35064]
+;;;  test 21: optimizer                         [36238]
 ;;;  test 22: with-sound                        [38591]
-;;;  test 23: X/Xt/Xm                           [41356]
-;;;  test 24: GL                                [44849]
-;;;  test 25: errors                            [44970]
-;;;  test 26: s7                                [46361]
-;;;  test all done                              [46497]
-;;;  test the end                               [46669]
+;;;  test 23: X/Xt/Xm                           [41354]
+;;;  test 24: GL                                [44850]
+;;;  test 25: errors                            [44971]
+;;;  test 26: s7                                [46367]
+;;;  test all done                              [46503]
+;;;  test the end                               [46664]
 
 ;;; (set! (hook-functions *load-hook*) (list (lambda (hook) (format *stderr* "loading ~S...~%" (hook 'name)))))
 
 ;(set! (*s7* 'gc-stats) #t)
+(set! (*s7* 'heap-size) 1024000)
 
 (when (provided? 'pure-s7)
   (define (make-polar mag ang)
@@ -726,8 +727,6 @@
       (snd-display "with-file-monitor set default: ~A" *with-file-monitor*))
   (if (not (eqv? *clm-table-size* 512)) 
       (snd-display "clm-table-size set default: ~A" *clm-table-size*))
-  (if (fneq *clm-default-frequency* 0.0)
-      (snd-display "clm-default-frequency set default: ~A" *clm-default-frequency*))
   (if (not (boolean? *with-verbose-cursor*)) 
       (snd-display "with-verbose-cursor set default: ~A" *with-verbose-cursor*))
   (if (not (boolean? *with-inset-graph*))
@@ -1070,7 +1069,6 @@
 	'channel-style *channel-style* 1
 	'clipping *clipping* #f 
 	'clm-table-size *clm-table-size* 512
-	'clm-default-frequency *clm-default-frequency* 0.0
 	'color-cutoff *color-cutoff* '(0.003 0.001)
 	'color-inverted *color-inverted* #t
 	'color-scale *color-scale* 1.0 
@@ -2014,7 +2012,7 @@
 		       channel-properties channel-property channel-style channel-widgets channels channels-combined
 		       channels-separate channels-superimposed chans clear-listener
 		       clip-hook clipping clm-channel 
-		       clm-table-size clm-default-frequency close-hook close-sound color->list
+		       clm-table-size close-hook close-sound color->list
 		       color-cutoff color-orientation-dialog color-hook color-inverted color-scale
 		       color? colormap colormap-name colormap-ref colormap-size
 		       colormap? comb comb? combined-data-color comment connes-window
@@ -11021,7 +11019,7 @@ EDITS: 2
       (if (or (fneq (car vals) 1.999876644816418)
 	      (fneq (cadr vals) 1.555089933857112))
 	  (snd-display "sin-nx-peak 100: ~A" vals)))
-    (if (not (= (exptmod 3 100 5) 1)) (snd-display "exptmod 3 100 5: ~A" (exptmod 3 100 5)))
+    ;(if (not (= (exptmod 3 100 5) 1)) (snd-display "exptmod 3 100 5: ~A" (exptmod 3 100 5)))
     
     (set! *clm-srate* 22050)
     (let ((samps (seconds->samples 1.0))
@@ -11630,9 +11628,6 @@ EDITS: 2
 	      (fneq (delay gen3) 0.25)
 	      (fneq (delay gen3) 0.0))
 	  (snd-display "delay with float-vector initial-contents confused")))
-    (let ((var (catch #t (lambda () (make-delay :size #f)) (lambda args args))))
-      (if (not (eq? (car var) 'wrong-type-arg))
-	  (snd-display "make-delay bad size #f: ~A" var)))
     (let ((var (catch #t (lambda () (make-delay 3 :initial-element (make-oscil))) (lambda args args))))
       (if (not (eq? (car var) 'wrong-type-arg))
 	  (snd-display "make-delay bad initial element: ~A" var)))
@@ -15323,10 +15318,10 @@ EDITS: 2
     (test-gen-equal (make-env '((0 0) (1 1) (2 0)) :scaler 0.5 :length 10) (make-env '(0 0 1 1 2 0) :scaler 0.5 :length 10) (make-env '((0 0) (1 1) (3 0)) :scaler 0.5 :length 10))
     
     (let ((var (catch #t (lambda () (make-env :envelope ())) (lambda args args))))
-      (if (not (eq? (car var) 'no-data))
+      (if (not (memq (car var) '(no-data wrong-type-arg)))
 	  (snd-display "make-env null env: ~A" var)))
     (let ((var (catch #t (lambda () (make-env :length 1)) (lambda args args))))
-      (if (not (eq? (car var) 'no-data))
+      (if (not (memq (car var) '(no-data wrong-type-arg)))
 	  (snd-display "make-env no env: ~A" var)))
     (let ((var (catch #t (lambda () (make-env :envelope '(0 0) :length -1)) (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
@@ -15344,10 +15339,10 @@ EDITS: 2
       (if (not (eq? (car var) 'mus-error))
 	  (snd-display "make-env bad env 0 1 -1 0: ~A" var)))
     (let ((var (catch #t (lambda () (make-env :envelope '(0 1 1 0) :length 11 :length 10)) (lambda args args))))
-      (if (not (eq? (car var) 'mus-error))
+      (if (not (memq (car var) '(mus-error wrong-type-arg)))
 	  (snd-display "make-env bad end/dur: ~A" var)))
     (let ((var (catch #t (lambda () (make-env :envelope '(0 0 1 1 2 0 1) :duration 1.0)) (lambda args args))))
-      (if (not (eq? (car var) 'bad-type))
+      (if (not (memq (car var) '(bad-type wrong-type-arg)))
 	  (snd-display "make-env odd length env: ~A" var)))
     (let ((var (catch #t (lambda () (make-env :envelope '("hi" 0 1 1 2 0) :duration 1.0)) (lambda args args))))
       (if (not (eq? (car var) 'wrong-type-arg))
@@ -17344,7 +17339,7 @@ EDITS: 2
      '(1 2 4 8))
     
     (let ((var (catch #t (lambda () (make-locsig :channels 0)) (lambda args args))))
-      (if (not (eq? (car var) 'mus-error))
+      (if (not (memq (car var) '(out-of-range mus-error)))
 	  (snd-display "make-locsig bad (0) chans: ~A" var)))
     (let ((var (catch #t (lambda () (make-locsig :channels -2)) (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
@@ -18030,7 +18025,7 @@ EDITS: 2
     (let ((gen (make-granulate :expansion 2.0 :input (make-readin "oboe.snd" 0 4000 1 2048))))
       (print-and-check gen 
 		       "granulate"
-		       "granulate expansion: 2.000 (551/1102), scaler: 0.600, length: 0.150 secs (3308 samps), ramp: 0.060")
+		       "granulate expansion: 2.000 (551/1102), scaler: 0.600, length: 0.150 secs (3308 samps), ramp: 0.400, jitter: 1.000")
       (let ((rd1b (make-readin :file "oboe.snd" :channel 0 :start 4000 :direction 1 :size *clm-file-buffer-size*))
 	    (v0 (make-float-vector 1000)))
 	(let ((gen1 (make-granulate :expansion 2.0
@@ -18687,12 +18682,13 @@ EDITS: 2
       (if (fneq (maxamp) .505) (snd-display "granulate ramped 5: ~A" (maxamp)))
       (let ((mxoff 0.0)
 	    (cur 0.0)
-	    (incr (/ (maxamp) (framples))))
+	    (incr (/ (maxamp) (framples)))
+	    (diff 0.0))
 	(scan-channel (lambda (y) 
-			(let ((diff (abs (- cur y)))) 
-			  (set! mxoff (max mxoff diff))
-			  (set! cur (+ cur incr))
-			  #f)))
+			(set! diff (abs (- cur y)))
+			(set! mxoff (max mxoff diff))
+			(set! cur (+ cur incr))
+			#f))
 	(if (> mxoff .02) (snd-display "granulate ramped 5 mxoff: ~A" mxoff))) ; .0108 actually
       (undo)
       
@@ -18744,12 +18740,13 @@ EDITS: 2
       (if (fneq (maxamp) .201) (snd-display "granulate ramped 7: ~A" (maxamp)))
       (let ((mxoff 0.0)
 	    (cur 0.0)
-	    (incr (/ (maxamp) (framples))))
+	    (incr (/ (maxamp) (framples)))
+	    (diff 0.0))
 	(scan-channel (lambda (y) 
-			(let ((diff (abs (- cur y)))) 
-			  (set! mxoff (max mxoff diff))
-			  (set! cur (+ cur incr))
-			  #f)))
+			(set! diff (abs (- cur y)))
+			(set! mxoff (max mxoff diff))
+			(set! cur (+ cur incr))
+			#f))
 	(if (> mxoff .01) (snd-display "granulate ramped 7 mxoff: ~A" mxoff))) ; .0097 actually
       (undo)
       
@@ -18765,12 +18762,13 @@ EDITS: 2
       (if (fneq (maxamp) .501) (snd-display "granulate ramped 8: ~A" (maxamp)))
       (let ((cur (sample 2000)))
 	(let ((mxoff 0.0)
-	      (incr (/ (- (maxamp) cur) (- (framples) 2000))))
+	      (incr (/ (- (maxamp) cur) (- (framples) 2000)))
+	      (diff 0.0))
 	  (scan-channel (lambda (y) 
-			  (let ((diff (abs (- cur y)))) 
-			    (set! mxoff (max mxoff diff))
-			    (set! cur (+ cur incr))
-			    #f))
+			  (set! diff (abs (- cur y)))
+			  (set! mxoff (max mxoff diff))
+			  (set! cur (+ cur incr))
+			  #f)
 			2000)
 	  (if (> mxoff .001) (snd-display "granulate ramped 8 mxoff: ~A" mxoff))))
       (undo)
@@ -19438,15 +19436,15 @@ EDITS: 2
       (let ((tag (catch #t 
 		   (lambda () (make-phase-vocoder #f 512 4 256 1.0 (lambda (a b c) #f) #f #f)) 
 		   (lambda args args))))
-	(if (not (eq? (car tag) 'bad-arity)) (snd-display "make-phase-vocoder bad analyze func: ~A" tag)))
+	(if (not (memq (car tag) '(wrong-type-arg bad-arity))) (snd-display "make-phase-vocoder bad analyze func: ~A" tag)))
       (let ((tag (catch #t
 		   (lambda () (make-phase-vocoder #f 512 4 256 1.0 (lambda (a b) 0.0) (lambda (a b c) #f) #f)) 
 		   (lambda args args))))
-	(if (not (eq? (car tag) 'bad-arity)) (snd-display "make-phase-vocoder bad edit func: ~A" tag)))
+	(if (not (memq (car tag) '(wrong-type-arg bad-arity))) (snd-display "make-phase-vocoder bad edit func: ~A" tag)))
       (let ((tag (catch #t 
 		   (lambda () (make-phase-vocoder #f 512 4 256 1.0 (lambda (a b) 0.0) (lambda (a) #f) (lambda (a b) 0)))
 		   (lambda args args))))
-	(if (not (eq? (car tag) 'bad-arity)) (snd-display "make-phase-vocoder bad synthesize func: ~A" tag)))
+	(if (not (memq (car tag) '(wrong-type-arg bad-arity))) (snd-display "make-phase-vocoder bad synthesize func: ~A" tag)))
       (let* ((geno (make-phase-vocoder (lambda (dir) 0.0)))
 	     (genx (make-phase-vocoder :input (lambda (dir) 0.0))))
 	(if (equal? geno genx) (snd-display "phase-vocoder equal? ~A ~A" geno genx))
@@ -19710,7 +19708,7 @@ EDITS: 2
 		       (lambda () (make-filter :xcoeffs #r(0 1 2))) (lambda () (make-fir-filter :xcoeffs #r(0 1 2))) 
 		       (lambda () (make-filtered-comb :filter (make-one-zero .5 .5)))
 		       make-formant make-granulate
-		       (lambda () (make-iir-filter :xcoeffs #r(0 1 2))) make-locsig 
+		       (lambda () (make-iir-filter :ycoeffs #r(0 1 2))) make-locsig 
 		       make-notch make-one-pole (lambda () (make-one-pole-all-pass 1 .5)) make-one-zero make-oscil 
 		       make-pulse-train make-rand make-rand-interp make-sawtooth-wave
 		       make-square-wave make-src make-table-lookup make-triangle-wave
@@ -19757,41 +19755,44 @@ EDITS: 2
 			       'mus-location 'mus-order 'mus-phase 'mus-ramp 'mus-scaler 'mus-xcoeffs 'mus-ycoeffs)))
       (for-each
        (lambda (make runp ques arg name)
-	 (let ((gen (make)))
-	   (if (not (ques gen)) (snd-display "~A: ~A -> ~A?" name make gen))
-	   (let ((tag (catch #t (lambda () (if arg (runp gen arg) (runp gen))) (lambda args args))))
-	     (if (not (or (number? tag)
-			  (float-vector? tag)))
-		 (snd-display "~A: ~A ~A ~A: ~A" name runp gen arg tag)))
-	   (for-each
-	    (lambda (func genname)
-	      (let ((tag (catch #t (lambda () (func #f)) (lambda args (car args)))))
-		(if (not (eq? tag 'wrong-type-arg))
-		    (snd-display "generic func with #f: (~A #f) -> ~A" genname tag)))
-	      (let ((g1 (make-oscil))
-		    (g2 (make-one-pole .1 .9)))
-		(let ((tag (catch #t (lambda () (func g1)) (lambda args (car args)))))
-		  (if (and (symbol? tag)
-			   (not (eq? tag 'wrong-type-arg))
-			   (not (eq? tag 'mus-error)))
-		      (snd-display "generic ~A of oscil: ~A" genname tag)))
-		(let ((tag (catch #t (lambda () (func g2)) (lambda args (car args)))))
-		  (if (and (symbol? tag)
-			   (not (eq? tag 'wrong-type-arg))
-			   (not (eq? tag 'mus-error)))
-		      (snd-display "generic ~A of delay: ~A" genname tag))))
-	      (let ((tag (catch #t (lambda () (func gen)) (lambda args (car args)))))
-		(if (and (not (symbol? tag))
-			 (dilambda? func)
-			 (or (not (eq? genname 'mus-data))
-			     (float-vector? tag)))
-		    (let ((tag1 (catch #t (lambda () (set! (func gen) tag)) (lambda args (car args)))))
-		      (if (and (symbol? tag1)
-			       (not (eq? tag1 'mus-error))
-			       (not (eq? tag1 'out-of-range)))
-			  (snd-display "~A set ~A ~A ~A -> ~A" name genname gen tag tag1))))))
-	    generic-procs generic-names)
-	   (mus-reset gen)))
+	 (catch #t
+	   (lambda ()
+	     (let ((gen (make)))
+	       (if (not (ques gen)) (snd-display "~A: ~A -> ~A?" name make gen))
+	       (let ((tag (catch #t (lambda () (if arg (runp gen arg) (runp gen))) (lambda args args))))
+		 (if (not (or (number? tag)
+			      (float-vector? tag)))
+		     (snd-display "~A: ~A ~A ~A: ~A" name runp gen arg tag)))
+	       (for-each
+		(lambda (func genname)
+		  (let ((tag (catch #t (lambda () (func #f)) (lambda args (car args)))))
+		    (if (not (eq? tag 'wrong-type-arg))
+			(snd-display "generic func with #f: (~A #f) -> ~A" genname tag)))
+		  (let ((g1 (make-oscil))
+			(g2 (make-one-pole .1 .9)))
+		    (let ((tag (catch #t (lambda () (func g1)) (lambda args (car args)))))
+		      (if (and (symbol? tag)
+			       (not (eq? tag 'wrong-type-arg))
+			       (not (eq? tag 'mus-error)))
+			  (snd-display "generic ~A of oscil: ~A" genname tag)))
+		    (let ((tag (catch #t (lambda () (func g2)) (lambda args (car args)))))
+		      (if (and (symbol? tag)
+			       (not (eq? tag 'wrong-type-arg))
+			       (not (eq? tag 'mus-error)))
+			  (snd-display "generic ~A of delay: ~A" genname tag))))
+		  (let ((tag (catch #t (lambda () (func gen)) (lambda args (car args)))))
+		    (if (and (not (symbol? tag))
+			     (dilambda? func)
+			     (or (not (eq? genname 'mus-data))
+				 (float-vector? tag)))
+			(let ((tag1 (catch #t (lambda () (set! (func gen) tag)) (lambda args (car args)))))
+			  (if (and (symbol? tag1)
+				   (not (eq? tag1 'mus-error))
+				   (not (eq? tag1 'out-of-range)))
+			      (snd-display "~A set ~A ~A ~A -> ~A" name genname gen tag tag1))))))
+		generic-procs generic-names)
+	       (mus-reset gen)))
+	   (lambda args #f)))
        make-procs gen-procs ques-procs gen-args func-names)
       
       (let ((make-procs (list
@@ -19805,7 +19806,7 @@ EDITS: 2
 			 (lambda () (make-fir-filter :xcoeffs #r(0 1 2))) 
 			 (lambda () (make-formant :radius .1 :frequency 440.0)) 
 			 (lambda () (make-granulate (lambda (dir) 1.0)))
-			 (lambda () (make-iir-filter :xcoeffs #r(0 1 2))) 
+			 (lambda () (make-iir-filter :ycoeffs #r(0 1 2))) 
 			 make-locsig 
 			 make-notch 
 			 (lambda () (make-one-pole .3 .7))
@@ -19875,119 +19876,141 @@ EDITS: 2
 	 make-procs gen-procs func-names))
       
       (when (and all-args (= clmtest 0))
-	(for-each
-	 (lambda (make runp)
-	   (catch #t 
-	     (lambda ()
-	       (let ((gen (make)))
-		 ;; run args
-		 (for-each 
-		  (lambda (arg1)
-		    ;; how did this ever work??
-		    (catch #t (lambda () (runp gen arg1)) (lambda args (car args)))
-		    (for-each
-		     (lambda (arg2)
-		       (catch #t (lambda () (runp gen arg1 arg2)) (lambda args (car args))))
-		     (list 1.5 "/hiho" (list 0 1) 1234 (make-float-vector 3) (make-color-with-catch .95 .95 .95) #i(0 1) 3/4 'mus-error 0+i (make-delay 32)
-			   (lambda () #t) (curlet) (make-float-vector '(2 3)) :order 0 1 -1 #f #t #\c 0.0 1.0 -1.0 (vector 0 2)
-			   () 3 4 2 8 16 32 64 #() '(1 . 2) (expt 2.0 21.5) (expt 2.0 -18.0)
-			   )))
-		  (list 1.5 "/hiho" (list 0 1) 1234 (make-float-vector 3) (make-color-with-catch .95 .95 .95) #i(0 1) 3/4 'mus-error 0+i (make-delay 32)
+	(let ((a1 (list 1.5 "/hiho" (list 0 1) 1234 (make-float-vector 3) (make-color-with-catch .95 .95 .95) #i(0 1) 3/4 'mus-error 0+i (make-delay 32)
+			(lambda () #t) (curlet) (make-float-vector '(2 3)) :order 0 1 -1 #f #t #\c 0.0 1.0 -1.0 (vector 0 2)
+			() 3 4 2 8 16 32 64 #() '(1 . 2) (expt 2.0 21.5) (expt 2.0 -18.0)))
+	      (a2 (list 1.5 "/hiho" (list 0 1) 1234 (make-float-vector 3) (make-color-with-catch .95 .95 .95) #i(0 1) 3/4 'mus-error 0+i (make-delay 32)
 			(lambda () #t) (curlet) (make-float-vector '(2 3)) :order 0 1 -1 #f #t #\c 0.0 1.0 -1.0 (vector 0 1)
-			() 3 4 2 8 16 32 64 #() '(1 . 2) (expt 2.0 21.5) (expt 2.0 -18.0)
-			))
-		 
-		 ;; generic args
-		 (for-each
-		  (lambda (func name)
-		    (catch #t
-		      (lambda ()
-			(let ((default-value (func gen)))
-			  (for-each
-			   (lambda (arg1)
-			     (catch #t
-			       (lambda ()
-				 (func gen)
-				 (set! (func gen) arg1))
-			       (lambda args #f)))
-			   (list 1.5 "/hiho" (list 0 1) 1234 (make-float-vector 3) #i(0 1) 3/4 'mus-error 0+i
-				 (lambda () #t) (make-float-vector '(2 3)) :order 0 1 -1 #f #t #\c 0.0 1.0 -1.0 
-				 () 3 4 64 -64 #() '(1 . 2) (expt 2.0 21.5) (expt 2.0 -18.0)
-				 (lambda (a) a)))
-			  (if (not (equal? (func gen) default-value))
-			      (catch #t
-				(lambda ()
-				  (set! (func gen) default-value))
-				(lambda args #f)))))
-		      (lambda args #f)))
-		  generic-procs generic-names)
-		 (mus-reset gen)))
-	     (lambda args (car args))))
-	 make-procs gen-procs)
-	
-	(let-temporarily ((*clm-srate* 100))
+			() 3 4 2 8 16 32 64 #() '(1 . 2) (expt 2.0 21.5) (expt 2.0 -18.0)))
+	      (a3 (list 1.5 "/hiho" (list 0 1) 1234 (make-float-vector 3) #i(0 1) 3/4 'mus-error 0+i
+			(lambda () #t) (make-float-vector '(2 3)) :order 0 1 -1 #f #t #\c 0.0 1.0 -1.0 
+			() 3 4 64 -64 #() '(1 . 2) (expt 2.0 21.5) (expt 2.0 -18.0)
+			(lambda (a) a))))
 	  (for-each
-	   (lambda (n)
-	     (set! *clm-srate* n)
-	     (for-each 
-	      (lambda (g name)
-		(let ((tag (catch #t (lambda () (g :frequency 440.0)) (lambda args (car args)))))
-		  (if (not (memq tag '(wrong-type-arg out-of-range)))
-		      (snd-display "key-check ~A: ~A -> ~A" n name tag))))
-	      (list make-oscil make-asymmetric-fm 
-		    make-triangle-wave make-square-wave make-pulse-train make-sawtooth-wave
-		    make-rand make-rand-interp)
-	      '(oscil asymmetric-fm 
-		triangle-wave square-wave pusle-train sawtooth-wave
-		rand rand-interp)))
-	   '(100 1)))
-	
-	(let ((random-args (vector
-			    (expt 2.0 21.5) (expt 2.0 -18.0)
-			    1.5 "/hiho" (list 0 1) 1234 (make-float-vector 3) (make-color-with-catch .1 .2 .3)  #i(0 1) 3/4 0+i (make-delay 32)
-			    (lambda () 0.0) (lambda (dir) 1.0) (lambda (a b c) 1.0) 0 1 -1 #f #t #\c 0.0 1.0 -1.0 () 32 '(1 . 2))))
-	  (define (random-gen args)
-	    (let ((gen-make-procs (list make-all-pass make-asymmetric-fm make-moving-average make-moving-max make-moving-norm
-					make-table-lookup make-triangle-wave
-					make-comb ;make-convolve
-					make-delay make-env make-fft-window
-					make-filter make-filtered-comb make-fir-filter make-formant
-					make-iir-filter make-locsig make-notch make-one-pole make-one-pole-all-pass make-one-zero make-oscil
-					make-pulse-train make-rand make-rand-interp make-sawtooth-wave make-polyshape make-polywave
-					make-square-wave ;make-src
-					make-two-pole make-two-zero make-wave-train
-					make-ssb-am)))
-	      (for-each
-	       (lambda (n)
-		 (let ((gen (catch #t
-			      (lambda () (apply n args))
-			      (lambda args (car args)))))
-		   (if (mus-generator? gen)
-		       (for-each
-			(lambda (arg)
-			  (catch #t
-			    (lambda () (gen arg))
-			    (lambda args (car args))))
-			random-args))))
-	       gen-make-procs)))
+	   (lambda (make runp)
+	     (catch #t 
+	       (lambda ()
+		 (let ((gen (make)))
+		   ;; run args
+		   (for-each 
+		    (lambda (arg1)
+		      ;; how did this ever work??
+		      (catch #t (lambda () (runp gen arg1)) (lambda args (car args)))
+		      (for-each
+		       (lambda (arg2)
+			 (catch #t (lambda () (runp gen arg1 arg2)) (lambda args (car args))))
+		       a1))
+		    a2)
+		   
+		   ;; generic args
+		   (for-each
+		    (lambda (func name)
+		      (catch #t
+			(lambda ()
+			  (let ((default-value (func gen)))
+			    (for-each
+			     (lambda (arg1)
+			       (catch #t
+				 (lambda ()
+				   (func gen)
+				   (set! (func gen) arg1))
+				 (lambda args #f)))
+			     a3)
+			    (if (not (equal? (func gen) default-value))
+				(catch #t
+				  (lambda ()
+				    (set! (func gen) default-value))
+				  (lambda args #f)))))
+			(lambda args #f)))
+		    generic-procs generic-names)
+		   (mus-reset gen)))
+	       (lambda args (car args))))
+	   make-procs gen-procs)
+	
+	  (let-temporarily ((*clm-srate* 100))
+	    (for-each
+	     (lambda (n)
+	       (set! *clm-srate* n)
+	       (for-each 
+		(lambda (g name)
+		  (let ((tag (catch #t (lambda () (g :frequency 440.0)) (lambda args (car args)))))
+		    (if (not (memq tag '(wrong-type-arg out-of-range)))
+			(snd-display "key-check ~A: ~A -> ~A" n name tag))))
+		(list make-oscil make-asymmetric-fm 
+		      make-triangle-wave make-square-wave make-pulse-train make-sawtooth-wave
+		      make-rand make-rand-interp)
+		'(oscil asymmetric-fm 
+			triangle-wave square-wave pusle-train sawtooth-wave
+			rand rand-interp)))
+	     '(100 1)))
 	  
-	  (random-gen ())
-	  (for-each
-	   (lambda (arg1)
-	     (random-gen (list arg1))
-	     (for-each 
-	      (lambda (arg2)
-		(random-gen (list arg1 arg2))
-		(for-each 
-		 (lambda (arg3)
-		   (random-gen (list arg1 arg2 arg3))
+	  (let ((random-args (vector
+			      (expt 2.0 21.5) (expt 2.0 -18.0)
+			      1.5 "/hiho" (list 0 1) 1234 (make-float-vector 3) (make-color-with-catch .1 .2 .3)  #i(0 1) 3/4 0+i (make-delay 32)
+			      (lambda () 0.0) (lambda (dir) 1.0) (lambda (a b c) 1.0) 0 1 -1 #f #t #\c 0.0 1.0 -1.0 () 32 '(1 . 2))))
+	    (define random-gen
+	      (let ((gen-make-procs (list make-all-pass make-asymmetric-fm make-moving-average make-moving-max make-moving-norm
+					  make-table-lookup make-triangle-wave
+					  make-comb ;make-convolve
+					  make-delay make-env make-fft-window
+					  make-filter make-filtered-comb make-fir-filter make-formant
+					  make-iir-filter make-locsig make-notch make-one-pole make-one-pole-all-pass make-one-zero make-oscil
+					  make-pulse-train make-rand make-rand-interp make-sawtooth-wave make-polyshape make-polywave
+					  make-square-wave ;make-src
+					  make-two-pole make-two-zero make-wave-train
+					  make-ssb-am)))
+		(lambda (args)
+		  (for-each
+		   (lambda (n)
+		     (let ((gen (catch #t
+				  (lambda () (apply n args))
+				  (lambda args (car args)))))
+		       (if (mus-generator? gen)
+			   (for-each
+			    (lambda (arg)
+			      (catch #t
+				(lambda () (gen arg))
+				(lambda args (car args))))
+			    random-args))))
+		   gen-make-procs))))
+	    
+	    (random-gen ())
+	    (let ((a1 (list #f))
+		  (a2 (list #f #f))
+		  (a3 (list #f #f #f))
+		  (a4 (list #f #f #f #f)))
+	      (let ((a22 (cdr a2))
+		    (a32 (cdr a3))
+		    (a42 (cdr a4))
+		    (a33 (cddr a3))
+		    (a43 (cddr a4))
+		    (a44 (cdddr a4)))
+		(for-each
+		 (lambda (arg1)
+		   (set-car! a1 arg1)
+		   (set-car! a2 arg1)
+		   (set-car! a3 arg1)
+		   (set-car! a4 arg1)
+		   (random-gen a1)
 		   (for-each 
-		    (lambda (arg4)
-		      (random-gen (list arg1 arg2 arg3 arg4)))
+		    (lambda (arg2)
+		      (set-car! a22 arg2)
+		      (set-car! a32 arg2)
+		      (set-car! a42 arg2)
+		      (random-gen a2)
+		      (for-each 
+		       (lambda (arg3)
+			 (set-car! a33 arg3)
+			 (set-car! a43 arg3)
+			 (random-gen a3)
+			 (for-each 
+			  (lambda (arg4)
+			    (set-car! a44 arg4)
+			    (random-gen a4))
+			  random-args))
+		       random-args))
 		    random-args))
-		 random-args))
-	      random-args))
-	   random-args))))
+		 random-args)))))))
       
     (do ((ov (make-float-vector 10))
 	 (tv #r(.1 .1 .2 .2 1.5 1.5 1.5 1.5 0.1 0.01))
@@ -20112,7 +20135,7 @@ EDITS: 2
 	 (let ((tag (catch #t
 			   (lambda () (apply make arglist))
 			   (lambda args (car args)))))
-	   (if (not (eq? tag 'mus-error))
+	   (if (not (memq tag '(mus-error wrong-type-arg)))
 	       (snd-display "long arglist to ~A: ~A" name tag))))
        (list make-wave-train make-polyshape make-delay make-moving-average make-moving-max make-moving-norm make-comb make-filtered-comb make-notch
 	     make-rand make-rand-interp make-table-lookup make-env
@@ -20665,7 +20688,7 @@ EDITS: 2
 		     :make-wrapper (lambda (g)
 				     (set! (g 'frequency) (hz->radians (g 'frequency)))
 				     g))
-	(frequency *clm-default-frequency*) (ratio 1.0) (r 0.5) (angle 0.0) fm)
+	(frequency 0.0) (ratio 1.0) (r 0.5) (angle 0.0) fm)
       
       (define* (old-rxyk!sin gen (fm 0.0))
 	(set! (gen 'fm) fm)
@@ -20682,7 +20705,7 @@ EDITS: 2
 				     (set! (g 'frequency) (hz->radians (g 'frequency)))
 				     (set! (g 'ar) (/ 1.0 (exp (abs (g 'r)))))
 				     g))
-	(frequency *clm-default-frequency*) (ratio 1.0) (r 0.5) (angle 0.0) fm ar)
+	(frequency 0.0) (ratio 1.0) (r 0.5) (angle 0.0) fm ar)
       
       (define* (old-rxyk!cos gen (fm 0.0))
 	(set! (gen 'fm) fm)
@@ -20951,6 +20974,91 @@ EDITS: 2
       (table-lookup o 1.0)
       (if (equal? o p)
 	  (snd-display "table-lookup run ~A == ~A~%" o p)))
+
+    ;; object->let 
+    (object->let (make-polywave 440.0 :partials '(1 1) :type mus-chebyshev-first-kind))
+    (object->let (make-polyshape 440.0 :coeffs (partials->polynomial '(1 1))))
+    (object->let (make-move-sound (list 0 1000 1 0
+					(make-delay 32) 
+					(make-env '(0 0 1 1) :length 1001) 
+					(make-env '(0 0 1 1) :length 1001)
+					(vector (make-delay 32)) 
+					(vector (make-env '(0 0 1 1) :length 1001)) 
+					#f
+					(vector 0 1)) (make-float-vector 100)))
+    (object->let (make-phase-vocoder #f 512 4 256 1.0))
+    (object->let (make-phase-vocoder (lambda (dir) (next-sample reader))
+				     512 4 256 1.0
+				     (lambda (v infunc)
+				       (set! incalls (+ incalls 1)))
+				     #f ;no change to edits
+				     (lambda (v)
+				       (set! outcalls (+ outcalls 1))
+				       0.0)
+				     ))
+    (object->let (make-ssb-am 100.0 8))
+    (object->let (make-sample->file "fmv.snd" 2 mus-lshort mus-riff))
+    (object->let (make-frample->file "fmv.snd" 2 mus-lshort mus-riff))
+    (object->let (make-locsig))
+    (object->let (make-locsig :reverb .1 :distance 2.0 :degree 46))
+    (object->let (make-granulate :expansion .5 :scaler .4 :ramp .3))
+    (object->let (make-rand 100))
+    (object->let (make-rand-interp 100 :amplitude .1))
+    (object->let (make-rand-interp 100 :amplitude .1 :envelope '(0 0 1 1)))
+    (object->let (make-rand 100 :amplitude .1 :envelope '(0 0 1 1) :size 8))
+    (object->let (make-one-pole-all-pass 8 .5))
+    (object->let (make-pulsed-env '(0 0 1 1 2 0) .0004 2205))
+    (object->let (make-convolve :filter #r(0 1 2) :input (lambda (dir) 1.0))) 
+    (object->let (make-env '(0 0 1 1) :length 11 :scaler .5))
+    (object->let (make-env '(0 0 1 1) :length 11 :scaler .1 :offset .1 :base 3.0))
+    (object->let (make-src :srate .5))
+    (object->let (make-src :srate 2.0 :input (make-readin "oboe.snd" 0 10000)))
+    (object->let (make-file->sample "oboe.snd"))
+    (object->let (make-file->frample"4.aiff"))
+    (object->let (make-readin :file "oboe.snd"))
+    (object->let (make-readin :start 123 :channel 2 :file "4.aiff"))
+    (object->let (make-comb-bank (vector (make-comb .5 3) (make-comb .2 4))))
+    (object->let (make-all-pass-bank (vector (make-all-pass -.5 .5 3) (make-all-pass -.2 .2 10) (make-all-pass -.7 .1 11))))
+    (object->let (make-filtered-comb-bank (vector (make-filtered-comb .5 3))))
+    (object->let (make-wave-train 440.0 0.0 #r(0 0 0)))
+    (object->let (make-table-lookup :wave #r(0 1 2 1 0)))
+    (object->let (make-moving-max 3))
+    (object->let (make-moving-average 3))
+    (object->let (make-moving-norm 3 :scaler 0.5))
+    (object->let  (make-filtered-comb .4 5 :filter (make-one-zero .3 .7)))
+    (object->let (make-all-pass .1 .9 3))
+    (object->let (make-delay 3))
+    (object->let (make-notch :initial-contents #r(0 1 2 3) :scaler .1 :type 3))
+    (object->let (make-comb :size 3 :scaler .1))
+    (object->let (make-formant 1000 .5))
+    (object->let (make-firmant 1000 .5))
+    (object->let (make-formant-bank (vector (make-formant 440.0 .5))))
+    (object->let (make-formant-bank (vector (make-formant 440.0 .5) (make-formant 1000.0 .2) (make-formant 34.0 .1)) #r(.5 .3 .4)))
+    (object->let (make-oscil 440)) 
+    (object->let (let ((o (make-oscil 440))) (oscil o) o))
+    (object->let (make-nsin 100.0 3))
+    (object->let (make-nsin :n 4 :frequency 100))
+    (object->let (make-ncos 100.0 3))
+    (object->let (make-nrxysin :n 3 :frequency 100 :r .1))
+    (object->let (make-nrxysin :n 4 :frequency 100 :ratio .1))
+    (object->let (make-nrxycos :n 4 :frequency 100 :ratio .1))
+    (object->let (make-oscil-bank #r(0.0 0.0) #r(0.0 0.0) #r(0.0 0.0)))
+    (object->let (make-oscil-bank #r(100 200 300) #r(0.0 1.0 2.0) #r(0.5 0.25 0.125)))
+    (object->let (make-rxyk!sin :frequency 100))
+    (object->let (make-rxyk!cos :frequency 100 :r .1 :ratio .6))
+    (object->let (make-asymmetric-fm 100))
+    (object->let (make-asymmetric-fm 100 :r .3 :ratio 2.0))
+    (object->let (make-square-wave 100 :amplitude .5 :initial-phase 1.0))
+    (object->let (make-sawtooth-wave 100 :amplitude .25))
+    (object->let (make-triangle-wave))
+    (object->let (make-pulse-train 100))
+    (object->let (make-fir-filter :order 3 :xcoeffs #r(1.0 0.5 0.25)))
+    (object->let (make-iir-filter :order 4 :ycoeffs #r(1.0 0.5 0.25 -0.1)))
+    (object->let (make-filter 3 #r(1.0 0.5 0.2) #r(0.2 0.3 0.4)))
+    (object->let (make-one-zero .3 .2))
+    (object->let (make-one-pole .3 .2))
+    (object->let (make-two-zero :frequency 1000 :radius .5))
+    (object->let (make-two-pole :frequency 1000 :radius .5))
     ))
 
 
@@ -28726,11 +28834,14 @@ EDITS: 2
 	    (if (= (framples ind) 0) (snd-display "map-channel #f framples after undo: ~A" (framples ind)))
 	    (let ((tag (catch #t (lambda () (map-channel (lambda (y) (copy "hiho")))) (lambda args (car args)))))
 	      (if (not (memq tag '(bad-type wrong-type-arg))) (snd-display "map-channel bad-type: ~A" tag)))
+#|
+	    ;; TODO: this does not unwind the C stack past the scan-channel call?
 	    (let* ((ctr 0)
 		   (tag (catch #t (lambda () (scan-channel (lambda (y) (set! ctr (+ ctr 1)) (asdf)))) (lambda args (car args)))))
 	      (if (not (= ctr 1)) (snd-display "scan-channel error exit: ~A" ctr))
 	      (if (not (memq tag '(unbound-variable syntax-error error)))
 		  (snd-display "scan-channel unbound: ~A" tag)))
+|#
 	    (let ((val (scan-channel (lambda (y) #f)))) (if val (snd-display "scan-channel func #f: ~A" val)))
 	    (let ((val (scan-channel (lambda (y) #f) 1234))) (if val (snd-display "scan-channel func #f with beg: ~A" val)))
 	    (let ((val (scan-channel (lambda (y) #f) 1234 4321))) (if val (snd-display "scan-channel func #f with beg+dur: ~A" val)))
@@ -29916,36 +30027,31 @@ EDITS: 2
 	  
 	  ;; recursion tests
 	  (let ((ind (open-sound "oboe.snd")))
-	    (for-each
-	     (lambda (n)
-	       (let ((val (scan-channel (lambda (y) (scan-channel (lambda (n5) (> n5 .1)))))))
-		 (if (not (eqv? val 0))
-		     (snd-display "scan-channel in scan-channel (opt ~A): ~A" n val)))
-	       (let ((hi (make-float-vector 3)))
-		 (fill-float-vector hi (if (scan-channel (lambda (y) (> y .1)))
-					   1.0 0.0))
-		 (if (not (mus-arrays-equal? hi #r(1.0 1.0 1.0))) (snd-display "fill-float-vector with scan-channel (opt ~A): ~A" n hi)))
-	       (let ((val (scan-channel (lambda (y) (scan-channel (lambda (n6) (> n6 .1)))))))
-		 (if (not (= val 0)) (snd-display "find with find: ~A" val)))
-	       (let ((val (scan-channel (lambda (y) (scan-channel (lambda (n7) (> n7 .1)))))))
-		 (if (not (= val 0)) (snd-display "find with scan-channel: ~A" val)))
-	       (let ((mx (maxamp ind 0)))
-		 (let ((val (scan-channel (lambda (y) (map-channel (lambda (n) (* n 2.0))) #t))))
-		   (if (not (eqv? val 0)) (snd-display "scan-channel with map-channel: ~A" val)))
-		 (if (fneq mx (/ (maxamp ind 0) 2)) (snd-display "scan+map max: ~A ~A" mx (maxamp ind 0)))
-		 (if (not (= (edit-position ind 0) 1)) (snd-display "scan+map edit-pos: ~A" (edit-position ind 0)))
-		 (revert-sound ind)
-		 (map-channel (let ((ctr 0)) 
-				(lambda (y) 
-				  (if (= ctr 0) (map-channel (lambda (n) (* n 2.0)))) 
-				  (set! ctr 1) 
-				  y))
-			      0 3)
-		 (if (fneq mx (maxamp ind 0)) (snd-display "map+map max 2: ~A ~A" mx (maxamp ind 0)))
-		 (if (not (= (edit-position ind 0) 2)) (snd-display "map+map edit-pos: ~A" (edit-position ind 0)))
-		 (if (fneq mx (/ (maxamp ind 0 1) 2)) (snd-display "map+map max 1: ~A ~A" mx (maxamp ind 0 1))))
-	       (revert-sound ind))
-	     '(0 5))
+	    (let ((val (scan-channel (lambda (y) (scan-channel (lambda (n5) (> n5 .1)))))))
+	      (if (not (eqv? val 0))
+		  (snd-display "scan-channel in scan-channel: ~A" val)))
+	    (let ((hi (make-float-vector 3)))
+	      (fill-float-vector hi (if (scan-channel (lambda (y) (> y .1))) 1.0 0.0))
+	      (if (not (mus-arrays-equal? hi #r(1.0 1.0 1.0))) (snd-display "fill-float-vector with scan-channel: ~A" hi)))
+	    (let ((val (scan-channel (lambda (y) (scan-channel (lambda (n6) (> n6 .1)))))))
+	      (if (not (= val 0)) (snd-display "find with find: ~A" val)))
+	    (let ((val (scan-channel (lambda (y) (scan-channel (lambda (n7) (> n7 .1)))))))
+	      (if (not (= val 0)) (snd-display "find with scan-channel: ~A" val)))
+	    (let ((mx (maxamp ind 0)))
+	      (let ((val (scan-channel (lambda (y) (map-channel (lambda (n) (* n 2.0))) #t))))
+		(if (not (eqv? val 0)) (snd-display "scan-channel with map-channel: ~A" val)))
+	      (if (fneq mx (/ (maxamp ind 0) 2)) (snd-display "scan+map max: ~A ~A" mx (maxamp ind 0)))
+	      (if (not (= (edit-position ind 0) 1)) (snd-display "scan+map edit-pos: ~A" (edit-position ind 0)))
+	      (revert-sound ind)
+	      (map-channel (let ((ctr 0)) 
+			     (lambda (y) 
+			       (if (= ctr 0) (map-channel (lambda (n) (* n 2.0)))) 
+			       (set! ctr 1) 
+			       y))
+			   0 3)
+	      (if (fneq mx (maxamp ind 0)) (snd-display "map+map max 2: ~A ~A" mx (maxamp ind 0)))
+	      (if (not (= (edit-position ind 0) 2)) (snd-display "map+map edit-pos: ~A" (edit-position ind 0)))
+	      (if (fneq mx (/ (maxamp ind 0 1) 2)) (snd-display "map+map max 1: ~A ~A" mx (maxamp ind 0 1))))
 	    (close-sound ind))
 	  
 	  (let ((ind (open-sound "oboe.snd")))
@@ -38159,351 +38265,353 @@ EDITS: 1
     )
   
   (when all-args
-    (let-temporarily ((*clm-file-buffer-size* 100))
-      (set! *mus-float-equal-fudge-factor* 1e-4)
-      (define v-1 (make-float-vector 100 .25)) 
-      (do ((i 0 (+ i 1)) (x 0.0 (+ x .01))) ((= i 100)) (float-vector-set! v-1 i x))
-      (define v0 (make-float-vector 10))
-      
-      (define (try str)
-	(eval-string
-	 (call-with-output-string
-	  (lambda (p)
-	    (for-each (lambda (line)
-			(apply format p line))
-		      (vector 
-		       `("(let ()~%")
-		       `("  (let ((o (make-oscil 1000.0))~%")
-		       `("        (o1 (make-oscil 1000.0))~%")
-		       `("        (o2 (make-oscil 1000.0))~%")
-		       `("        (o3 (make-oscil 1000.0))~%")
-		       `("        (o4 (make-oscil 1000.0))~%")
-		       `("        (oscs (vector (make-oscil 400.0) (make-oscil 500.0) (make-oscil 600.0)))~%")
-		       `("        (e1 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e2 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e3 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e4 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (x 3.14)~%")
-		       `("        (y -0.5)~%")
-		       `("        (z 0.1)~%")
-		       `("        (k 1)~%")
-		       `("        (i 0)~%")
-		       `("        (v (make-float-vector 10)))~%")
-		       `("    (set! (v0 0) ~A) (set! i (+ i 1))~%" ,str)
-		       `("    (set! (v0 1) ~A) (set! i (+ i 1))~%" ,str)
-		       `("    (set! (v0 2) ~A) (set! i (+ i 1))~%" ,str)
-		       `("    (set! (v0 3) ~A) (set! i (+ i 1))~%" ,str)
-		       `("    (set! (v0 4) ~A) (set! i (+ i 1))~%" ,str)
-		       `("    (set! (v0 5) ~A) (set! i (+ i 1))~%" ,str)
-		       `("    (set! (v0 6) ~A) (set! i (+ i 1))~%" ,str)
-		       `("    (set! (v0 7) ~A) (set! i (+ i 1))~%" ,str)
-		       `("    (set! (v0 8) ~A) (set! i (+ i 1))~%" ,str)
-		       `("    (set! (v0 9) ~A))~%" ,str)
-		       `("(define (tester-1)~%")
-		       `("  (let ((o (make-oscil 1000.0))~%")
-		       `("        (o1 (make-oscil 1000.0))~%")
-		       `("        (o2 (make-oscil 1000.0))~%")
-		       `("        (o3 (make-oscil 1000.0))~%")
-		       `("        (o4 (make-oscil 1000.0))~%")
-		       `("        (oscs (vector (make-oscil 400.0) (make-oscil 500.0) (make-oscil 600.0)))~%")
-		       `("        (e1 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e2 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e3 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e4 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (x 3.14)~%")
-		       `("        (y -0.5)~%")
-		       `("        (z 0.1)~%")
-		       `("        (k 1)~%")
-		       `("        (v (make-float-vector 10)))~%")
-		       `("    (do ((i 0 (+ i 1)))~%")
-		       `("        ((= i 10) v)~%")
-		       `("      (set! (v i) ~A))))~%~%" ,str)
-		       `("(define (tester-2)~%")
-		       `("  (let ((o (make-oscil 1000.0))~%")
-		       `("        (o1 (make-oscil 1000.0))~%")
-		       `("        (o2 (make-oscil 1000.0))~%")
-		       `("        (o3 (make-oscil 1000.0))~%")
-		       `("        (o4 (make-oscil 1000.0))~%")
-		       `("        (oscs (vector (make-oscil 400.0) (make-oscil 500.0) (make-oscil 600.0)))~%")
-		       `("        (e1 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e2 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e3 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e4 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (x 3.14)~%")
-		       `("        (y -0.5)~%")
-		       `("        (z 0.1)~%")
-		       `("        (k 1)~%")
-		       `("        (v (make-float-vector 10)))~%")
-		       `("    (with-sound (v :clipped #f :to-snd #f)~%")
-		       `("      (do ((i 0 (+ i 1)))~%")
-		       `("          ((= i 10) v)~%")
-		       `("        (outa i ~A)))~%" ,str)
-		       `("     v))~%~%")
-		       `("(define (tester-3)~%")
-		       `("  (let ((o (make-oscil 1000.0))~%")
-		       `("        (o1 (make-oscil 1000.0))~%")
-		       `("        (o2 (make-oscil 1000.0))~%")
-		       `("        (o3 (make-oscil 1000.0))~%")
-		       `("        (o4 (make-oscil 1000.0))~%")
-		       `("        (oscs (vector (make-oscil 400.0) (make-oscil 500.0) (make-oscil 600.0)))~%")
-		       `("        (e1 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e2 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e3 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e4 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (x 3.14)~%")
-		       `("        (y -0.5)~%")
-		       `("        (z 0.1)~%")
-		       `("        (k 1)~%")
-		       `("        (v (make-float-vector 10)))~%")
-		       `("    (with-sound (v :clipped #f :to-snd #f)~%")
-		       `("      (do ((i 0 (+ i 1)))~%")
-		       `("          ((= i 10) v)~%")
-		       `("        (outa i ~A)))~%" ,str)
-		       `("    ;(file->array \"try-test.snd\" 0 0 10 v)~%")
-		       `("    v))~%~%")
-		       `("(define (tester-4)~%")
-		       `("  (let ((o (make-oscil 1000.0))~%")
-		       `("        (o1 (make-oscil 1000.0))~%")
-		       `("        (o2 (make-oscil 1000.0))~%")
-		       `("        (o3 (make-oscil 1000.0))~%")
-		       `("        (o4 (make-oscil 1000.0))~%")
-		       `("        (oscs (vector (make-oscil 400.0) (make-oscil 500.0) (make-oscil 600.0)))~%")
-		       `("        (e1 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e2 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e3 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e4 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (v (make-float-vector 10))~%")
-		       `("        (x 3.14)~%")
-		       `("        (y -0.5)~%")
-		       `("        (k 1)~%")
-		       `("        (z 0.1))~%")
-		       `("    (do ((i 0 (+ i 1))~%")
-		       `("         (lst (make-list 10)))~%")
-		       `("        ((= i 10) (apply float-vector lst))~%")
-		       `("      (set! (lst i) ~A))))~%~%" ,str)
-		       `("(define (tester-5)~%")
-		       `("  (let ((o (make-oscil 1000.0))~%")
-		       `("        (o1 (make-oscil 1000.0))~%")
-		       `("        (o2 (make-oscil 1000.0))~%")
-		       `("        (o3 (make-oscil 1000.0))~%")
-		       `("        (o4 (make-oscil 1000.0))~%")
-		       `("        (oscs (vector (make-oscil 400.0) (make-oscil 500.0) (make-oscil 600.0)))~%")
-		       `("        (e1 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e2 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e3 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e4 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (y -0.5)~%")
-		       `("        (k 1)~%")
-		       `("        (z 0.1)~%")
-		       `("        (v (make-float-vector 10)))~%")
-		       `("    (with-sound (v :clipped #f :to-snd #f)~%")
-		       `("      (do ((i 0 (+ i 1))~%")
-		       `("           (x 0.0 (+ x 0.1)))~%")
-		       `("          ((= i 10) v)~%")
-		       `("        (outa i ~A)))~%" ,str)
-		       `("    ;(file->array \"try-test.snd\" 0 0 10 v)~%")
-		       `("    v))~%~%")
-		       `("(define (tester-6)~%")
-		       `("  (let ((o (make-oscil 1000.0))~%")
-		       `("        (o1 (make-oscil 1000.0))~%")
-		       `("        (o2 (make-oscil 1000.0))~%")
-		       `("        (o3 (make-oscil 1000.0))~%")
-		       `("        (o4 (make-oscil 1000.0))~%")
-		       `("        (oscs (vector (make-oscil 400.0) (make-oscil 500.0) (make-oscil 600.0)))~%")
-		       `("        (e1 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e2 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e3 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e4 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (k 1)~%")
-		       `("        (v (make-float-vector 10)))~%")
-		       `("    (do ((i 0 (+ i 1))~%")
-		       `("         (y -0.5)~%")
-		       `("         (z 0.1)~%")
-		       `("         (x 0.0 (+ x 0.1)))~%")
-		       `("        ((= i 10) v)~%")
-		       `("      (set! (v i) ~A))))~%~%" ,str)
-		       
-		       `("(define (tester-7)~%")
-		       `("  (let ((o (make-oscil 1000.0))~%")
-		       `("        (o1 (make-oscil 1000.0))~%")
-		       `("        (o2 (make-oscil 1000.0))~%")
-		       `("        (o3 (make-oscil 1000.0))~%")
-		       `("        (o4 (make-oscil 1000.0))~%")
-		       `("        (oscs (vector (make-oscil 400.0) (make-oscil 500.0) (make-oscil 600.0)))~%")
-		       `("        (e1 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e2 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e3 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e4 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (x 3.14)~%")
-		       `("        (y -0.5)~%")
-		       `("        (k 1)~%")
-		       `("        (z 0.1)~%")
-		       `("        (v (make-float-vector 10)))~%")
-		       `("    (do ((i 0 (+ i 1)))~%")
-		       `("        ((= i 10) v)~%")
-		       `("      (let ((zz ~A))~%" ,str)
-		       `("        (set! (v i) (oscil o zz))))))~%")
-		       `("(define (tester-8)~%")
-		       `("  (let ((o (make-oscil 1000.0))~%")
-		       `("        (o1 (make-oscil 1000.0))~%")
-		       `("        (o2 (make-oscil 1000.0))~%")
-		       `("        (o3 (make-oscil 1000.0))~%")
-		       `("        (o4 (make-oscil 1000.0))~%")
-		       `("        (oscs (vector (make-oscil 400.0) (make-oscil 500.0) (make-oscil 600.0)))~%")
-		       `("        (e1 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e2 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e3 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e4 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (x 3.14)~%")
-		       `("        (y -0.5)~%")
-		       `("        (z 0.1)~%")
-		       `("        (k 1)~%")
-		       `("        (v (make-float-vector 10)))~%")
-		       `("    (with-sound (v :clipped #f :to-snd #f)~%")
-		       `("      (do ((i 0 (+ i 1)))~%")
-		       `("          ((= i 10) v)~%")
-		       `("        (let ((zz ~A))~%" ,str)
-		       `("          (outa i (oscil o zz)))))~%")
-		       `("     v))~%~%")
-		       
-		       `("(define (tester-9)~%")
-		       `("  (let ((o (make-oscil 1000.0))~%")
-		       `("        (o1 (make-oscil 1000.0))~%")
-		       `("        (o2 (make-oscil 1000.0))~%")
-		       `("        (o3 (make-oscil 1000.0))~%")
-		       `("        (o4 (make-oscil 1000.0))~%")
-		       `("        (oscs (vector (make-oscil 400.0) (make-oscil 500.0) (make-oscil 600.0)))~%")
-		       `("        (e1 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e2 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e3 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e4 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (x 3.14)~%")
-		       `("        (y -0.5)~%")
-		       `("        (z 0.1)~%")
-		       `("        (k 1)~%")
-		       `("        (v (make-float-vector 10)))~%")
-		       `("    (do ((i 0 (+ i 1)))~%")
-		       `("        ((= i 10) v)~%")
-		       `("      (let ((zz ~A))~%" ,str)
-		       `("        (set! (v i) (* (env e1) (oscil o zz)))))))~%")
-		       `("(define (tester-10)~%")
-		       `("  (let ((o (make-oscil 1000.0))~%")
-		       `("        (o1 (make-oscil 1000.0))~%")
-		       `("        (o2 (make-oscil 1000.0))~%")
-		       `("        (o3 (make-oscil 1000.0))~%")
-		       `("        (o4 (make-oscil 1000.0))~%")
-		       `("        (oscs (vector (make-oscil 400.0) (make-oscil 500.0) (make-oscil 600.0)))~%")
-		       `("        (e1 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e2 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e3 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e4 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (x 3.14)~%")
-		       `("        (y -0.5)~%")
-		       `("        (z 0.1)~%")
-		       `("        (k 1)~%")
-		       `("        (v (make-float-vector 10)))~%")
-		       `("    (with-sound (v :clipped #f :to-snd #f)~%")
-		       `("      (do ((i 0 (+ i 1)))~%")
-		       `("          ((= i 10) v)~%")
-		       `("        (let ((zz ~A))~%" ,str)
-		       `("          (outa i (* (env e1) (oscil o zz))))))~%")
-		       `("     v))~%~%")
-		       
-		       `("(define (tester-11)~%")
-		       `("  (let ((o (make-oscil 1000.0))~%")
-		       `("        (o1 (make-oscil 1000.0))~%")
-		       `("        (o2 (make-oscil 1000.0))~%")
-		       `("        (o3 (make-oscil 1000.0))~%")
-		       `("        (o4 (make-oscil 1000.0))~%")
-		       `("        (oscs (vector (make-oscil 400.0) (make-oscil 500.0) (make-oscil 600.0)))~%")
-		       `("        (e1 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e2 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e3 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e4 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (y -0.5)~%")
-		       `("        (z 0.1)~%")
-		       `("        (k 1)~%")
-		       `("        (v (make-float-vector 10)))~%")
-		       `("    (do ((i 0 (+ i 1)))~%")
-		       `("        ((= i 10) v)~%")
-		       `("      (let ((x (oscil o)))~%")
-		       `("        (set! (v i) ~A)))))~%" ,str)
-		       `("(define (tester-12)~%")
-		       `("  (let ((o (make-oscil 1000.0))~%")
-		       `("        (o1 (make-oscil 1000.0))~%")
-		       `("        (o2 (make-oscil 1000.0))~%")
-		       `("        (o3 (make-oscil 1000.0))~%")
-		       `("        (o4 (make-oscil 1000.0))~%")
-		       `("        (oscs (vector (make-oscil 400.0) (make-oscil 500.0) (make-oscil 600.0)))~%")
-		       `("        (e1 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e2 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e3 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (e4 (make-env '(0 .1 1 1) :length 100))~%")
-		       `("        (y -0.5)~%")
-		       `("        (z 0.1)~%")
-		       `("        (k 1)~%")
-		       `("        (v (make-float-vector 10)))~%")
-		       `("    (with-sound (v :clipped #f :to-snd #f)~%")
-		       `("      (do ((i 0 (+ i 1)))~%")
-		       `("          ((= i 10) v)~%")
-		       `("        (let ((x (oscil o)))~%")
-		       `("          (outa i ~A))))~%" ,str)
-		       `("     v))~%~%")
-		       
-		       `("(let ((v1 (tester-1))~%")
-		       `("      (v2 (tester-2))~%")
-		       `("      (v3 (tester-3))~%")
-		       `("      (v4 (tester-4))~%")
-		       `("      (v5 (tester-5))~%")
-		       `("      (v6 (tester-6))~%")
-		       `("      (v7 (tester-7))~%")
-		       `("      (v8 (tester-8))~%")
-		       `("      (v9 (tester-9))~%")
-		       `("      (v10 (tester-10))~%")
-		       `("      (v11 (tester-11))~%")
-		       `("      (v12 (tester-12)))~%")
-		       `("  (if (or (not (mus-arrays-equal? v0 v1)) (not (mus-arrays-equal? v1 v2)) (not (mus-arrays-equal? v1 v3)) (not (mus-arrays-equal? v1 v4)))~%")
-		       `("      (format *stderr* \"~A:~~%     no do: ~~A~~%   float-vector-set: ~~A~~%    outa->v:~~A~~%    outa:   ~~A~~%    list:   ~~A~~%\" v0 v1 v2 v3 v4))~%" ,str)
-		       `("  (if (not (mus-arrays-equal? v5 v6))~%")
-		       `("      (format *stderr* \"dox ~A:~~%   float-vector-set: ~~A~~%    outa->v:~~A~~%\" v5 v6))~%" ,str)
-		       `("  (if (not (mus-arrays-equal? v7 v8))~%")
-		       `("      (format *stderr* \"let ~A:~~%    ~~A~~%    ~~A~~%\" v7 v8))~%" ,str)
-		       `("  (if (not (mus-arrays-equal? v9 v10))~%")
-		       `("      (format *stderr* \"env let ~A:~~%    ~~A~~%    ~~A~~%\" v9 v10))~%~%" ,str)
-		       `("  (if (not (mus-arrays-equal? v11 v12))~%")
-		       `("      (format *stderr* \"letx ~A:~~%    ~~A~~%    ~~A~~%\" v11 v12))))~%~%" ,str)))))))
-	
-      (let ((args1 #(1.5 (oscil o1) (env e1) x i (oscil o) (- 1.0 x) (oscil (vector-ref oscs k))))
-	    (args2 #(1.5 (oscil o2) (env e2) y i (float-vector-ref v-1 i)))
-	    (args3 #(1.5 (oscil o3) (env e3) z i (cos x))))
+    (let-temporarily ((*clm-file-buffer-size* 16)
+		      (*clm-table-size* 16)
+		      (*clm-clipped* #f))
+      (define (vequal v1 v2)
+	(or (morally-equal? v1 v2)
+	    (float-vector-equal? v1 v2 1e-5))) ; "relative" equality: diff/mx
+      
+      (define (checkout str V v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12)
+	(if (not (and (vequal V v1)
+		      (vequal v1 v2)
+		      (vequal v1 v3)
+		      (vequal v1 v4)))
+	    (format *stderr* "~S:~%    no do:  ~A~%    fv-set: ~A~%    outa->v:~A~%    outa:   ~A~%    list:   ~A~%" str V v1 v2 v3 v4))
+	(if (not (vequal v5 v6)) (format *stderr* "dox ~S:~%   fv-set: ~A~%    outa->v:~A~%" str v5 v6))
+	(if (not (vequal v7 v8)) (format *stderr* "let ~S:~%    ~A~%    ~A~%" str v7 v8))
+	(if (not (vequal v9 v10)) (format *stderr* "env let ~S:~%    ~A~%    ~A~%" str v9 v10))
+	(if (not (vequal v11 v12)) (format *stderr* "letx ~S:~%    ~A~%    ~A~%" str v11 v12)))
+      
+      (define (checkout-1 str V v1 v2 v3 v4 v5 v6 v11 v12)
+	(if (not (and (vequal V v1)
+		      (vequal v1 v2)
+		      (vequal v1 v3)
+		      (vequal v1 v4)))
+	    (format *stderr* "~S:~%    no do:  ~A~%    fv-set: ~A~%    outa->v:~A~%    outa:   ~A~%    list:   ~A~%" str V v1 v2 v3 v4))
+	(if (not (vequal v5 v6)) (format *stderr* "dox ~S:~%   fv-set: ~A~%    outa->v:~A~%" str v5 v6))
+	(if (not (vequal v11 v12)) (format *stderr* "letx ~S:~%    ~A~%    ~A~%" str v11 v12)))
+      
+      (define F (make-env (float-vector 0.0 .1 1.0 1.0) :length 100))
+      (define K (float-vector 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0))
+      (define V (make-float-vector 10))
+      (define (Z) (mus-copy F))
+
+      (define G #f)
+      (define I #f)
+      (define (O) (vector #f (mus-copy I) #f))
+      (define (Q) (mus-copy G))
+      
+      (define (try1 form gen)
+	(let ((make-gen (string->symbol (string-append "make-" (symbol->string gen)))))
+	  (let ((body
+		 `(let ()
+		    (define (tester-1)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1) (v (make-float-vector 10)))
+			(do ((i 0 (+ i 1))) ((= i 10) v)
+			  (float-vector-set! v i ,form))))
+		    
+		    (define (tester-2)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1))
+			(set! *output* (make-float-vector 10))
+			(do ((i 0 (+ i 1))) ((= i 10) *output*)
+			  (outa i ,form))))
+		    
+		    (define (tester-3)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1))
+			(set! *output* (make-float-vector 10))
+			(do ((i 0 (+ i 1))) ((= i 10) *output*)
+			  (out-any i ,form 0))))
+		    
+		    (define (tester-4)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1))
+			(do ((i 0 (+ i 1)) (lst ())) ((= i 10) (apply float-vector (reverse! lst)))
+			  (set! lst (cons ,form lst)))))
+		    
+		    (define (tester-5)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (y -0.5) (k 1) (v (make-float-vector 10)))
+			(set! *output* (make-sample->file "test.snd" 1 mus-ldouble mus-next "t816"))
+			(do ((i 0 (+ i 1)) (x 0.0 (+ x 0.1))) ((= i 10))
+			  (outa i ,form))
+			(mus-close *output*)
+			(file->array "test.snd" 0 0 10 v)))
+		    
+		    (define (tester-6)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (k 1) (v (make-float-vector 10)))
+			(do ((i 0 (+ i 1)) (y -0.5) (x 0.0 (+ x 0.1))) ((= i 10) v)
+			  (float-vector-set! v i ,form))))
+		    
+		    (define (tester-11)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (y -0.5) (k 1) (v (make-float-vector 10)))
+			(do ((i 0 (+ i 1))) ((= i 10) v)
+			  (let ((x (,gen o)))
+			    (set! (v i) ,form)))))
+		    
+		    (define (tester-12)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (y -0.5) (k 1))
+			(set! *output* (make-float-vector 10))
+			(do ((i 0 (+ i 1))) ((= i 10) *output*)
+			  (let ((x (,gen o)))
+			    (outa i ,form)))))
+		    
+		    (set! G (,make-gen 1000)) 
+		    (set! I (,make-gen 500)) 
+		    
+		    (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1))
+		      (do ((i 0 (+ i 1))) ((= i 10))
+			(set! (V i) ,form)))
+		    
+		    (checkout-1 ',form V (tester-1) (tester-2) (tester-3) (tester-4) (tester-5) (tester-6) (tester-11) (tester-12))
+		    )))
+	    (define the-body (apply lambda () (list (copy body :readable))))
+	    (the-body))))
+      
+      (define (try2 form gen)
+	(let ((make-gen (string->symbol (string-append "make-" (symbol->string gen)))))
+	  (let ((body
+		 `(let ()
+		    (define (tester-1)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1) (v (make-float-vector 10)))
+			(do ((i 0 (+ i 1))) ((= i 10) v)
+			  (float-vector-set! v i ,form))))
+		    
+		    (define (tester-2)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1))
+			(set! *output* (make-float-vector 10))
+			(do ((i 0 (+ i 1))) ((= i 10) *output*)
+			  (outa i ,form))))
+		    
+		    (define (tester-3)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1))
+			(set! *output* (make-float-vector 10))
+			(do ((i 0 (+ i 1))) ((= i 10) *output*)
+			  (out-any i ,form 0))))
+		    
+		    (define (tester-4)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1))
+			(do ((i 0 (+ i 1)) (lst ())) ((= i 10) (apply float-vector (reverse! lst)))
+			  (set! lst (cons ,form lst)))))
+		    
+		    (define (tester-5)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (y -0.5) (k 1) (v (make-float-vector 10)))
+			(set! *output* (make-sample->file "test.snd" 1 mus-ldouble mus-next "t816"))
+			(do ((i 0 (+ i 1)) (x 0.0 (+ x 0.1))) ((= i 10))
+			  (outa i ,form))
+			(mus-close *output*)
+			(file->array "test.snd" 0 0 10 v)))
+		    
+		    (define (tester-6)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (k 1) (v (make-float-vector 10)))
+			(do ((i 0 (+ i 1)) (y -0.5) (x 0.0 (+ x 0.1))) ((= i 10) v)
+			  (float-vector-set! v i ,form))))
+		    
+		    (define (tester-7)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1) (v (make-float-vector 10)))
+			(do ((i 0 (+ i 1))) ((= i 10) v)
+			  (let ((z ,form))
+			    (float-vector-set! v i (,gen o z))))))
+		    
+		    (define (tester-8)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1))
+			(set! *output* (make-float-vector 10))
+			(do ((i 0 (+ i 1))) ((= i 10) *output*)
+			  (let ((z ,form))
+			    (outa i (,gen o z))))))
+		    
+		    (define (tester-9)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1) (v (make-float-vector 10)))
+			(do ((i 0 (+ i 1))) ((= i 10) v)
+			  (let ((z ,form))
+			    (float-vector-set! v i (* (env a) (,gen o z)))))))
+		    
+		    (define (tester-10)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1))
+			(set! *output* (make-float-vector 10))
+			(do ((i 0 (+ i 1))) ((= i 10) *output*)
+			  (let ((z ,form))
+			    (outa i (* (env a) (,gen o z)))))))
+		    
+		    (define (tester-11)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (y -0.5) (k 1) (v (make-float-vector 10)))
+			(do ((i 0 (+ i 1))) ((= i 10) v)
+			  (let ((x (,gen o)))
+			    (set! (v i) ,form)))))
+		    
+		    (define (tester-12)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (y -0.5) (k 1))
+			(set! *output* (make-float-vector 10))
+			(do ((i 0 (+ i 1))) ((= i 10) *output*)
+			  (let ((x (,gen o)))
+			    (outa i ,form)))))
+		    
+		    (set! G (,make-gen 1000)) 
+		    (set! I (,make-gen 500)) 
+		    
+		    (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1))
+		      (do ((i 0 (+ i 1))) ((= i 10))
+			(set! (V i) ,form)))
+		    
+		    (checkout ',form V
+			      (tester-1) (tester-2) (tester-3) (tester-4) (tester-5) (tester-6) 
+			      (tester-7) (tester-8) (tester-9) (tester-10) (tester-11) (tester-12))
+		    )))
+	    (define the-body (apply lambda () (list (copy body :readable))))
+	    (the-body))))
+      
+      (define (try34 form gen)
+	(let ((make-gen (string->symbol (string-append "make-" (symbol->string gen)))))
+	  (let ((body
+		 `(let ()
+		    (define (tester-1)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (z 0.1) (k 1) (v (make-float-vector 10)))
+			(do ((i 0 (+ i 1))) ((= i 10) v)
+			  (float-vector-set! v i ,form))))
+		    
+		    (define (tester-2)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (z 0.1) (k 1))
+			(set! *output* (make-float-vector 10))
+			(do ((i 0 (+ i 1))) ((= i 10) *output*)
+			  (outa i ,form))))
+		    
+		    (define (tester-3)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (z 0.1) (k 1))
+			(set! *output* (make-float-vector 10))
+			(do ((i 0 (+ i 1))) ((= i 10) *output*)
+			  (out-any i ,form 0))))
+		    
+		    (define (tester-4)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (k 1) (z 0.1))
+			(do ((i 0 (+ i 1)) (lst ())) ((= i 10) (apply float-vector (reverse! lst)))
+			  (set! lst (cons ,form lst)))))
+		    
+		    (define (tester-5)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (y -0.5) (k 1) (z 0.1) (v (make-float-vector 10)))
+			(set! *output* (make-sample->file "test.snd" 1 mus-ldouble mus-next "t816"))
+			(do ((i 0 (+ i 1)) (x 0.0 (+ x 0.1))) ((= i 10))
+			  (outa i ,form))
+			(mus-close *output*)
+			(file->array "test.snd" 0 0 10 v)))
+		    
+		    (define (tester-6)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (k 1) (v (make-float-vector 10)))
+			(do ((i 0 (+ i 1)) (y -0.5) (z 0.1) (x 0.0 (+ x 0.1))) ((= i 10) v)
+			  (set! (v i) ,form))))
+		    
+		    (define (tester-7)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (k 1) (z 0.1) (v (make-float-vector 10)))
+			(do ((i 0 (+ i 1))) ((= i 10) v)
+			  (let ((zz ,form))
+			    (float-vector-set! v i (,gen o zz))))))
+		    
+		    (define (tester-8)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (z 0.1) (k 1))
+			(set! *output* (make-float-vector 10))
+			(do ((i 0 (+ i 1))) ((= i 10) *output*)
+			  (let ((zz ,form))
+			    (outa i (,gen o zz))))))
+		    
+		    (define (tester-9)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (z 0.1) (k 1) (v (make-float-vector 10)))
+			(do ((i 0 (+ i 1))) ((= i 10) v)
+			  (let ((zz ,form))
+			    (float-vector-set! v i (* (env a) (,gen o zz)))))))
+		    
+		    (define (tester-10)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (z 0.1) (k 1))
+			(set! *output* (make-float-vector 10))
+			(do ((i 0 (+ i 1))) ((= i 10) *output*)
+			  (let ((zz ,form))
+			    (outa i (* (env a) (,gen o zz)))))))
+		    
+		    (define (tester-11)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (y -0.5) (z 0.1) (k 1) (v (make-float-vector 10)))
+			(do ((i 0 (+ i 1))) ((= i 10) v)
+			  (let ((x (,gen o)))
+			    (float-vector-set! v i ,form)))))
+		    
+		    (define (tester-12)
+		      (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (y -0.5) (z 0.1) (k 1))
+			(set! *output* (make-float-vector 10))
+			(do ((i 0 (+ i 1))) ((= i 10) *output*)
+			  (let ((x (,gen o)))
+			    (outa i ,form)))))
+		    
+		    (set! G (,make-gen 1000)) 
+		    (set! I (,make-gen 500)) 
+		    
+		    (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (z 0.1) (k 1))
+		      (do ((i 0 (+ i 1))) ((= i 10))
+			(float-vector-set! V i ,form)))
+		    
+		    (checkout ',form V
+			      (tester-1) (tester-2) (tester-3) (tester-4) (tester-5) (tester-6) 
+			      (tester-7) (tester-8) (tester-9) (tester-10) (tester-11) (tester-12))
+		    )))
+	    (define the-body (apply lambda () (list (copy body :readable))))
+	    (the-body))))
+      
+      (define (test-gen gen)
+	(define args1 (list 1.5 (list gen 'p) '(env a) 'x 'i (list gen 'o) '(- 1.0 x) (list gen '(vector-ref oscs k))))
+	(define args2 (list 1.5 (list gen 'q) '(env b) 'y 'i '(ina i K)))
+	(define args3 (list 1.5 (list gen 's) '(env c) 'z 'i '(cos x)))
+	(define args4 (list 1.5 (list gen 't) '(env d) 'x 'i))
+	
+	(for-each 
+	 (lambda (a)
+	   (try1 a gen)
+	   (try1 `(,gen o ,a) gen)
+	   (try1 `(abs (,gen o ,a)) gen))
+	 args1)
 	
 	(for-each 
 	 (lambda (a) 
-	   (try (object->string a #f))
-	   (try (format #f "(oscil o ~A)" a))
-	   (try (format #f "(abs (oscil o ~A))" a)))
+	   (for-each 
+	    (lambda (b) 
+	      (try1 `(+ ,a ,b) gen)
+	      (try1 `(- ,a ,b) gen)
+	      (try1 `(* ,a ,b) gen)
+	      (try1 `(cos (+ ,a ,b)) gen)
+	      (try1 `(sin (* ,a ,b)) gen)
+	      (try1 `(abs (* ,a ,b)) gen)
+	      (try1 `(* ,a (abs ,b)) gen)
+	      
+	      (try1 `(,gen o (+ ,a ,b)) gen)
+	      (try1 `(,gen o (* ,a ,b)) gen)
+	      (try1 `(+ ,a (,gen o ,b)) gen)
+	      (try1 `(* ,a (,gen o ,b)) gen)
+	      (try1 `(+ (,gen o ,a) ,b) gen)
+	      (try1 `(* (,gen o ,a) ,b) gen)
+	      (try1 `(* (abs (,gen o ,a)) ,b) gen))
+	    args2))
+	 args1)
+	
+	(for-each 
+	 (lambda (a)
+	   (try2 a gen)
+	   
+	   (try2 `(,gen o ,a) gen)
+	   (try2 `(abs (,gen o ,a)) gen))
 	 args1)
 	
 	(for-each 
 	 (lambda (a) 
 	   (for-each 
 	    (lambda (b) 
-	      (for-each try (vector (format #f "(+ ~A ~A)" a b)
-				    (format #f "(- ~A ~A)" a b)
-				    (format #f "(* ~A ~A)" a b)
-				    (format #f "(cos (+ ~A ~A))" a b)
-				    (format #f "(sin (* ~A ~A))" a b)
-				    (format #f "(abs (* ~A ~A))" a b)
-				    (format #f "(* ~A (abs ~A))" a b)
-				    (format #f "(oscil o (+ ~A ~A))" a b)
-				    (format #f "(oscil o (* ~A ~A))" a b)
-				    (format #f "(+ ~A (oscil o ~A))" a b)
-				    (format #f "(* ~A (oscil o ~A))" a b)
-				    (format #f "(+ (oscil o ~A) ~A)" a b)
-				    (format #f "(* (oscil o ~A) ~A)" a b)
-				    (format #f "(oscil o ~A ~A)" a b)
-				    (format #f "(abs (oscil o ~A ~A))" a b)
-				    (format #f "(* (abs (oscil o ~A)) ~A)" a b))))
+	      (try2 `(+ ,a ,b) gen)
+	      (try2 `(- ,a ,b) gen)
+	      (try2 `(* ,a ,b) gen)
+	      (try2 `(cos (+ ,a ,b)) gen)
+	      (try2 `(sin (* ,a ,b)) gen)
+	      (try2 `(abs (* ,a ,b)) gen)
+	      (try2 `(* ,a (abs ,b)) gen)
+	      
+	      (try2 `(,gen o (+ ,a ,b)) gen)
+	      (try2 `(,gen o (* ,a ,b)) gen)
+	      (try2 `(+ ,a (,gen o ,b)) gen)
+	      (try2 `(* ,a (,gen o ,b)) gen)
+	      (try2 `(+ (,gen o ,a) ,b) gen)
+	      (try2 `(* (,gen o ,a) ,b) gen)
+	      (try2 `(* (abs (,gen o ,a)) ,b) gen))
 	    args2))
 	 args1)
 	
@@ -38513,53 +38621,52 @@ EDITS: 1
 	    (lambda (b)
 	      (for-each
 	       (lambda (a)
-		 (for-each try (vector (format #f "(+ ~A ~A ~A)" a b c)
-				       (format #f "(+ (* ~A ~A) ~A)" a b c)
-				       (format #f "(+ ~A (* ~A ~A))" a b c)
-				       (format #f "(* ~A ~A ~A)" a b c)
-				       (format #f "(* ~A (+ ~A ~A))" a b c)
-				       (format #f "(* (+ ~A ~A) ~A)" a b c)
-				       (format #f "(oscil o (+ ~A ~A ~A))" a b c)
-				       (format #f "(oscil o (* ~A ~A ~A))" a b c)
-				       (format #f "(oscil o (* ~A (+ ~A ~A)))" a b c)
-				       (format #f "(oscil o (+ ~A (* ~A ~A)))" a b c)
-				       (format #f "(oscil o (* (+ ~A ~A) ~A))" a b c)
-				       (format #f "(oscil o (+ (* ~A ~A) ~A))" a b c)
-				       (format #f "(+ ~A (oscil o (+ ~A ~A)))" a b c)
-				       (format #f "(+ ~A (oscil o (* ~A ~A)))" a b c)
-				       (format #f "(* ~A (oscil o (+ ~A ~A)))" a b c)
-				       (format #f "(* ~A (oscil o (* ~A ~A)))" a b c)
-				       
-				       (format #f "(+ ~A ~A (oscil o ~A))" a b c)
-				       (format #f "(* ~A ~A (oscil o ~A))" a b c)
-				       (format #f "(+ (* ~A ~A) (oscil o ~A))" a b c)
-				       (format #f "(* (+ ~A ~A) (oscil o ~A))" a b c)
-				       (format #f "(+ ~A (* ~A (oscil o ~A)))" a b c)
-				       (format #f "(* ~A (+ ~A (oscil o ~A)))" a b c)
-				       
-				       (format #f "(+ ~A (oscil o ~A) ~A)" a b c)
-				       (format #f "(* ~A (oscil o ~A) ~A)" a b c)
-				       (format #f "(+ (* ~A (oscil o ~A)) ~A)" a b c)
-				       (format #f "(* (+ ~A (oscil o ~A)) ~A)" a b c)
-				       (format #f "(+ ~A (* (oscil o ~A) ~A))" a b c)
-				       (format #f "(* ~A (+ (oscil o ~A) ~A))" a b c)
-				       
-				       (format #f "(+ (oscil o ~A) ~A ~A)" a b c)
-				       (format #f "(+ (oscil o ~A) (* ~A ~A))" a b c)
-				       (format #f "(* (oscil o ~A) (+ ~A ~A))" a b c)
-				       (format #f "(* (oscil o ~A) ~A ~A)" a b c)
-				       
-				       (format #f "(+ ~A (abs ~A) ~A)" a b c)
-				       (format #f "(+ ~A (sin ~A) ~A)" a b c)
-				       (format #f "(+ ~A (cos ~A) ~A)" a b c)
-				       (format #f "(* (cos ~A) (oscil o ~A ~A))" a b c)
-				       (format #f "(+ (oscil o ~A ~A) ~A)" a b c)
-				       (format #f "(+ (abs (oscil o ~A ~A)) ~A)" a b c)
-				       (format #f "(+ (cos (oscil o ~A ~A)) ~A)" a b c)
-				       (format #f "(+ (sin (oscil o ~A ~A)) ~A)" a b c))))
+		 (try34 `(+ ,a ,b ,c) gen)
+		 (try34 `(+ (* ,a ,b) ,c) gen)
+		 (try34 `(+ ,a (* ,b ,c)) gen)
+		 (try34 `(* ,a ,b ,c) gen)
+		 (try34 `(* ,a (+ ,b ,c)) gen)
+		 (try34 `(* (+ ,a ,b) ,c) gen)
+		 
+		 (try34 `(,gen o (+ ,a ,b ,c)) gen)
+		 (try34 `(,gen o (* ,a ,b ,c)) gen)
+		 (try34 `(,gen o (* ,a (+ ,b ,c))) gen)
+		 (try34 `(,gen o (+ ,a (* ,b ,c))) gen)
+		 (try34 `(,gen o (* (+ ,a ,b) ,c)) gen)
+		 (try34 `(,gen o (+ (* ,a ,b) ,c)) gen)
+		 (try34 `(+ ,a (,gen o (+ ,b ,c))) gen)
+		 (try34 `(+ ,a (,gen o (* ,b ,c))) gen)
+		 (try34 `(* ,a (,gen o (+ ,b ,c))) gen)
+		 (try34 `(* ,a (,gen o (* ,b ,c))) gen)
+		 
+		 (try34 `(+ ,a ,b (,gen o ,c)) gen)
+		 (try34 `(* ,a ,b (,gen o ,c)) gen)
+		 (try34 `(+ (* ,a ,b) (,gen o ,c)) gen)
+		 (try34 `(* (+ ,a ,b) (,gen o ,c)) gen)
+		 (try34 `(+ ,a (* ,b (,gen o ,c))) gen)
+		 (try34 `(* ,a (+ ,b (,gen o ,c))) gen)
+		 
+		 (try34 `(+ ,a (,gen o ,b) ,c) gen)
+		 (try34 `(* ,a (,gen o ,b) ,c) gen)
+		 (try34 `(+ (* ,a (,gen o ,b)) ,c) gen)
+		 (try34 `(* (+ ,a (,gen o ,b)) ,c) gen)
+		 (try34 `(+ ,a (* (,gen o ,b) ,c)) gen)
+		 (try34 `(* ,a (+ (,gen o ,b) ,c)) gen)
+		 
+		 (try34 `(+ (,gen o ,a) ,b ,c) gen)
+		 (try34 `(+ (,gen o ,a) (* ,b ,c)) gen)
+		 (try34 `(* (,gen o ,a) (+ ,b ,c)) gen)
+		 (try34 `(* (,gen o ,a) ,b ,c) gen)
+		 
+		 (try34 `(+ ,a (abs ,b) ,c) gen)
+		 (try34 `(+ ,a (sin ,b) ,c) gen)
+		 (try34 `(+ ,a (cos ,b) ,c) gen))
 	       args3))
 	    args2))
-	 args1)))))
+	 args1))
+      
+      (test-gen 'oscil)
+      )))
 
 
 
@@ -38786,11 +38893,11 @@ EDITS: 1
   
   (dismiss-all-dialogs)
   
+  ;; start of test 22
   (do ((clmtest 0 (+ 1 clmtest))) ((= clmtest tests)) 
     (log-mem clmtest)
     
 					;    (set! *clm-notehook* (lambda args (display args) (newline)))
-    
     ;; check clm output for bad zero case
     (for-each
      (lambda (type)
@@ -38807,7 +38914,7 @@ EDITS: 1
 	   mus-lfloat   mus-bint     mus-lint    mus-b24int mus-l24int
 	   mus-ubshort  mus-ulshort  mus-ubyte   mus-bfloat mus-bdouble 
 	   mus-ldouble))
-    
+
     (with-sound () (fm-violin 0 .1 440 .1))
     (with-sound (:continue-old-file #t) (fm-violin .2 .1 660 .04))
     (let ((ind (find-sound "test.snd")))
@@ -38973,7 +39080,7 @@ EDITS: 1
       (close-sound ind))
     
     (for-each close-sound (sounds))
-    
+
     (when (file-exists? "ii.scm")
       (time (load "ii.scm"))
       (for-each close-sound (sounds))
@@ -38994,7 +39101,7 @@ EDITS: 1
     (let ((var (make-st1 :two 3)))
       (if (fneq (var 'one) 0.0) (snd-display "st1-one #f (def): ~A" (var 'one)))  
       (if (not (= (var 'two) 3)) (snd-display "st1-two (3): ~A" (var 'two))))
-    
+
     (let ((var (make-st2 :one 1 :two 2)))
       (if (not (= (var 'one) 1)) (snd-display "st2-one: ~A" (var 'one)))
       (if (not (= (var 'two) 2)) (snd-display "st2-two: ~A" (var 'two)))
@@ -44718,6 +44825,12 @@ EDITS: 1
 	
 	(when all-args
 	  ;; ---------------- 3 Args
+	  (let ((a1 (list win 1.5 "/hiho" (list 0 1) 1234 (make-float-vector 3) #i(0 1) 0+i (make-delay 32) (vector 0 1)
+			  :start -1 0 #f #t () #()))
+		(a2 (list win 1.5 "/hiho" (list 0 1) 1234 (make-float-vector 3) #i(0 1) 0+i (make-delay 32) (vector 0 1)
+			  :phase -1 0 #f #t () #()))
+		(a3 (list win 1.5 "/hiho" (list 0 1) 1234 (make-float-vector 3) #i(0 1) 0+i (make-delay 32) (vector 0 1)
+			  :channels -1 0 #f #t () #())))
 	  (for-each 
 	   (lambda (arg1)
 	     (for-each 
@@ -44730,12 +44843,9 @@ EDITS: 1
 			(lambda () (n arg1 arg2 arg3))
 			(lambda args (car args))))
 		    xm-procs3))
-		 (list win 1.5 "/hiho" (list 0 1) 1234 (make-float-vector 3) #i(0 1) 0+i (make-delay 32) (vector 0 1)
-		       :start -1 0 #f #t () #())))
-	      (list win 1.5 "/hiho" (list 0 1) 1234 (make-float-vector 3) #i(0 1) 0+i (make-delay 32) (vector 0 1)
-		    :phase -1 0 #f #t () #())))
-	   (list win 1.5 "/hiho" (list 0 1) 1234 (make-float-vector 3) #i(0 1) 0+i (make-delay 32) (vector 0 1)
-		 :channels -1 0 #f #t () #())))
+		 a1))
+	      a2))
+	   a3)))
 	
 	(let ((struct-accessors #(.pixel .red .green .blue .flags .pad .x .y .width .height .angle1 .angle2 .ptr
 			          .x1 .y1 .x2 .y2 .dashes .dash_offset .clip_mask .clip_y_origin .clip_x_origin .graphics_exposures
@@ -44954,7 +45064,7 @@ EDITS: 1
 			   (eq? (car tag) expected-tag)))
 		 (snd-display "check-error-tag ~A from ~A: ~A" 
 			      expected-tag (procedure-source thunk) tag)))))
-	
+
 	(set-arity-ok 
 	 (lambda (func args)
 	   (let ((arit (if (dilambda? func)
@@ -45039,7 +45149,7 @@ EDITS: 1
 		       start-progress-report stop-player stop-playing swap-channels syncd-marks sync sync-max sound-properties sound-property stdin-prompt
 		       temp-dir text-focus-color tiny-font region-sampler? transform-dialog transform-sample
 		       transform->float-vector transform-framples transform-type with-file-monitor unbind-key undo
-		       update-transform-graph update-time-graph update-lisp-graph update-sound clm-table-size clm-default-frequency
+		       update-transform-graph update-time-graph update-lisp-graph update-sound clm-table-size
 		       with-verbose-cursor view-sound wavelet-type with-inset-graph with-interrupts with-pointer-focus with-smpte-label
 		       with-toolbar with-tooltips with-menu-icons save-as-dialog-src save-as-dialog-auto-comment
 		       time-graph?  time-graph-type wavo-hop wavo-trace window-height window-width window-x window-y
@@ -45159,7 +45269,7 @@ EDITS: 1
 			   mus-feedback mus-feedforward mus-frequency mus-hop
 			   mus-increment mus-length mus-location mus-name mus-phase mus-ramp mus-scaler x-axis-label
 			   filter-control-coeffs locsig-type mus-file-buffer-size 
-			   mus-rand-seed mus-width clm-table-size clm-default-frequency mus-offset mus-reset
+			   mus-rand-seed mus-width clm-table-size mus-offset mus-reset
 			   phase-vocoder-amp-increments phase-vocoder-amps 
 			   phase-vocoder-freqs phase-vocoder-phase-increments phase-vocoder-phases 
 			   html-dir html-program mus-interp-type widget-position widget-size 
@@ -45437,7 +45547,7 @@ EDITS: 1
 					       (lambda ()
 						 (n arg))
 					       (lambda args (car args)))))
-					(if (not (memq tag '(wrong-type-arg no-data no-such-method bad-type error arg-error)))
+					(if (not (memq tag '(wrong-type-arg no-data no-such-method bad-type error arg-error out-of-range)))
 					    (snd-display "clm ~A: tag: ~A arg: ~A" n tag arg))))
 				    (list all-pass asymmetric-fm comb filtered-comb convolve db->linear moving-average moving-max moving-norm
 					  degrees->radians delay env formant firmant granulate hz->radians linear->db even-weight odd-weight
@@ -45468,7 +45578,7 @@ EDITS: 1
 				     (n (make-oscil) float-vector-5)
 				     )
 				   (lambda args (car args)))))
-			    (if (not (memq tag '(wrong-type-arg bad-arity error mus-error)))
+			    (if (not (memq tag '(wrong-type-arg bad-arity error mus-error out-of-range no-data)))
 				(snd-display "clm-1 ~A: ~A" n tag))))
 			(list all-pass array-interp asymmetric-fm comb filtered-comb contrast-enhancement convolution convolve moving-average moving-max moving-norm
 			      convolve-files delay dot-product env-interp file->sample snd->sample filter fir-filter formant firmant
@@ -45796,7 +45906,7 @@ EDITS: 1
 			      with-inset-graph with-interrupts with-pointer-focus window-height beats-per-measure with-smpte-label
 			      with-toolbar with-tooltips with-menu-icons remember-sound-state save-as-dialog-src save-as-dialog-auto-comment
 			      window-width window-x window-y with-gl with-mix-tags x-axis-style beats-per-minute zoom-color mix-tag-height
-			      mix-tag-width with-relative-panes clm-table-size clm-default-frequency mark-tag-width mark-tag-height
+			      mix-tag-width with-relative-panes clm-table-size mark-tag-width mark-tag-height
 			      ))
 	      
 	      
@@ -45842,14 +45952,14 @@ EDITS: 1
 		(for-each (lambda (arg)
 			    (check-error-tag 'mus-error arg))
 			  (vector (lambda () (make-filter :ycoeffs (make-float-vector 4) :order 12))
-				  (lambda () (make-fir-filter :coeffs (make-float-vector 4) :xcoeffs (make-float-vector 4)))
+				  ;(lambda () (make-fir-filter :coeffs (make-float-vector 4) :xcoeffs (make-float-vector 4)))
 				  (lambda () (make-granulate :expansion 32000.0))
 				  (lambda () (make-iir-filter 30 (make-float-vector 3)))
-				  (lambda () (make-iir-filter :coeffs (make-float-vector 4) :ycoeffs (make-float-vector 4)))
+				  ;(lambda () (make-iir-filter :xcoeffs (make-float-vector 4) :ycoeffs (make-float-vector 4)))
 				  (lambda () (make-iir-filter :order 32 :ycoeffs (make-float-vector 4)))
 				  (lambda () (make-locsig 1/0 :channels 2))
 				  (lambda () (make-rand :envelope '(0 0 1 1) :distribution (make-float-vector 10)))
-				  (lambda () (make-rand :envelope '(0 0 1)))
+				  ;(lambda () (make-rand :envelope '(0 0 1)))
 				  (lambda () (mus-file-mix "oboe.snd" (string-append sf-dir "bad_length.aifc")))
 				  (lambda () (mus-sound-chans (string-append sf-dir "bad_field.nist")))
 				  (lambda () (mus-sound-chans (string-append sf-dir "bad_location.nist")))
@@ -45860,7 +45970,7 @@ EDITS: 1
 				  (lambda () (set! (mus-ycoeff (make-filter 3 :xcoeffs float-vector-3 :ycoeffs float-vector-3) 4) 1.0))))
 		(check-error-tag 'no-data (lambda () (make-polyshape 440.0 :partials #r(1 1 -2 1))))
 		(check-error-tag 'no-data (lambda () (make-polyshape 440.0 :partials '(1 1 -2 1))))
-		(check-error-tag 'no-data (lambda () (make-polyshape 440.0 :partials ())))
+		(check-error-tag 'wrong-type-arg (lambda () (make-polyshape 440.0 :partials ())))
 		(check-error-tag 'no-such-channel (lambda () (make-sampler 0 "oboe.snd" -1)))
 		(check-error-tag 'no-such-channel (lambda () (make-sampler 0 "oboe.snd" 1)))
 		(check-error-tag 'no-such-envelope (lambda () (set! (enved-envelope) "not-an-env")))
@@ -45882,7 +45992,7 @@ EDITS: 1
 			  (vector (lambda () (dot-product (make-float-vector 3) (make-float-vector 3) -1))
 				  (lambda () (make-color -0.5 0.0 0.0))
 				  (lambda () (make-color 1.5 0.0 0.0))
-				  (lambda () (make-delay 3 :initial-element 0.0 :initial-contents #r(.1 .2 .3)))
+				  ;(lambda () (make-delay 3 :initial-element 0.0 :initial-contents #r(.1 .2 .3))) -> 'conflicting-arguments
 				  (lambda () (make-delay 3 :max-size 100 :initial-contents #r(.1 .2 .3)))
 				  (lambda () (make-file->frample "oboe.snd" -1))
 				  (lambda () (make-file->frample "oboe.snd" 0))
@@ -45968,8 +46078,7 @@ EDITS: 1
 				    (lambda () (save-sound-as "test.snd" ind :header-type mus-riff :sample-type mus-bshort))
 				    (lambda () (save-sound-as "test.snd" ind :header-type mus-voc :sample-type mus-bshort))))
 		  (check-error-tag 'env-error (lambda () (filter-sound '(0 0 .1 .1 .05 .1 1 1) 32)))
-		  (check-error-tag 'mus-error (lambda () (make-readin 0.0 0.0 0.0 0.0 0.0 0.0 0.0)))
-		  (check-error-tag 'mus-error (lambda () (save-selection "sel0.snd" :not-a-key 3)))
+		  (check-error-tag 'wrong-type-arg (lambda () (save-selection "sel0.snd" :not-a-key 3)))
 		  (check-error-tag 'no-data (lambda () (set! (filter-control-envelope ind) ())))
 		  (for-each (lambda (arg)
 			      (check-error-tag 'no-such-axis arg))
@@ -46159,54 +46268,59 @@ EDITS: 1
 		   '(widget-position widget-size widget-text hide-widget show-widget focus-widget)))
 	      
 	      ;; ---------------- key args
-	      (for-each
-	       (lambda (arg1)
-		 (for-each 
-		  (lambda (arg2)
-		    (for-each 
-		     (lambda (n)
-		       (catch #t
-			 (lambda () (n arg1 arg2))
-			 (lambda args (car args))))
-		     make-procs))
-		  (list 1.5 str-3 (list 0 1) 12 float-vector-3 :wave -1 0 1 #f #t () vector-0 delay-32)))
-	       keyargs)
-	      
-	      (when (and all-args (= test-errors 0))
+	      (let ((a1 (list 1.5 str-3 (list 0 1) 12 float-vector-3 :wave -1 0 1 #f #t () vector-0 delay-32)))
 		(for-each
 		 (lambda (arg1)
 		   (for-each 
 		    (lambda (arg2)
 		      (for-each 
-		       (lambda (arg3)
-			 (for-each 
-			  (lambda (n)
-			    (catch #t
-			      (lambda () (n arg1 arg2 arg3))
-			      (lambda args (car args))))
-			  make-procs))
-		       (list 1.5 str-3 (list 0 1) 12 float-vector-3 :wave -1 0 1 #f #t () vector-0 delay-32)))
-		    keyargs))
-		 (list 1.5 str-3 (list 0 1) 12 float-vector-3 :wave -1 0 1 #f #t () vector-0 delay-32))
+		       (lambda (n)
+			 (catch #t
+			   (lambda () (n arg1 arg2))
+			   (lambda args (car args))))
+		       make-procs))
+		    a1))
+		 keyargs))
+	      
+	      (when (and all-args (= test-errors 0))
+		(let ((a1 (list 1.5 str-3 (list 0 1) 12 float-vector-3 :wave -1 0 1 #f #t () vector-0 delay-32))
+		      (a2 (list 1.5 str-3 (list 0 1) 12 float-vector-3 :wave -1 0 1 #f #t () vector-0 delay-32)))
+		  (for-each
+		   (lambda (arg1)
+		     (for-each 
+		      (lambda (arg2)
+			(for-each 
+			 (lambda (arg3)
+			   (for-each 
+			    (lambda (n)
+			      (catch #t
+				(lambda () (n arg1 arg2 arg3))
+				(lambda args (car args))))
+			    make-procs))
+			 a1))
+		      keyargs))
+		   a2))
 		
-		(for-each
-		 (lambda (arg1)
-		   (for-each 
-		    (lambda (arg2)
-		      (for-each 
-		       (lambda (arg3)
-			 (for-each 
-			  (lambda (arg4)
-			    (for-each 
-			     (lambda (n)
-			       (catch #t
-				 (lambda () (n arg1 arg2 arg3 arg4))
-				 (lambda args (car args))))
-			     make-procs))
-			  keyargs))
-		       (list 1.5 str-3 (list 0 1) 12 float-vector-3 :wave -1 0 1 #f #t () vector-0 delay-32)))
-		    keyargs))
-		 (list 1.5 str-3 (list 0 1) 12 float-vector-3 :wave -1 0 1 #f #t () vector-0 delay-32)))
+		(let ((a1 (list 1.5 str-3 (list 0 1) 12 float-vector-3 :wave -1 0 1 #f #t () vector-0 delay-32))
+		      (a2 (list 1.5 str-3 (list 0 1) 12 float-vector-3 :wave -1 0 1 #f #t () vector-0 delay-32)))
+		  (for-each
+		   (lambda (arg1)
+		     (for-each 
+		      (lambda (arg2)
+			(for-each 
+			 (lambda (arg3)
+			   (for-each 
+			    (lambda (arg4)
+			      (for-each 
+			       (lambda (n)
+				 (catch #t
+				   (lambda () (n arg1 arg2 arg3 arg4))
+				   (lambda args (car args))))
+			       make-procs))
+			    keyargs))
+			 a1))
+		      keyargs))
+		   a2)))
 	      
 	      ;; ---------------- 0 Args
 	      (for-each 
@@ -46244,7 +46358,7 @@ EDITS: 1
 			(lambda () (n arg))
 			(lambda args 
 			  (if (eq? (car args) 'wrong-number-of-args)
-			      (snd-display "procs1 wna: ~A" (procedure-documentation n))))))
+			      (snd-display "procs1 wna: ~A ~A ~A" arg args (procedure-documentation n))))))
 		    procs1))
 		 main-args)
 		(for-each close-sound (sounds))
@@ -46260,7 +46374,7 @@ EDITS: 1
 			   (lambda () (n arg1 arg2))
 			   (lambda args 
 			     (if (eq? (car args) 'wrong-number-of-args)
-				 (snd-display "procs2: ~A" (procedure-documentation n))))))
+				 (snd-display "procs2: ~A ~A ~A ~A" arg1 arg2 args (procedure-documentation n))))))
 		       procs2))
 		    main-args))
 		 main-args)
@@ -46803,4 +46917,28 @@ callgrind_annotate --auto=yes callgrind.out.<pid> > hi
   337,020,228  clm.c:mus_src_to_buffer [/home/bil/motif-snd/snd]
   330,406,288  clm.c:fb_many_with_amps_c1_c2 [/home/bil/motif-snd/snd]
  
+14-Jul-17:
+39,992,822,005
+5,087,369,302  s7.c:eval'2 [/home/bil/motif-snd/snd]
+2,767,363,726  sin.c:sincos
+2,489,931,500  sin.c:__sin_avx
+1,882,891,339  sin.c:__cos_avx
+1,050,059,865  s7.c:gc [/home/bil/motif-snd/snd]
+  971,702,388  s7.c:eval [/home/bil/motif-snd/snd]
+  888,579,240  clm.c:fir_ge_20 [/home/bil/motif-snd/snd]
+  812,154,805  clm.c:mus_src [/home/bil/motif-snd/snd]
+  578,669,563  clm.c:mus_phase_vocoder_with_editors [/home/bil/motif-snd/snd]
+  540,581,915  snd-edits.c:channel_local_maxamp [/home/bil/motif-snd/snd]
+  481,331,424  clm.c:mus_env_linear [/home/bil/motif-snd/snd]
+  476,778,133  sincos.c:sincos
+  471,298,034  io.c:mus_read_any_1 [/home/bil/motif-snd/snd]
+  460,565,829  clm2xen.c:safe_out_any_2_to_mus_xen [/home/bil/motif-snd/snd]
+  400,507,324  s7.c:find_symbol_unchecked.isra.41 [/home/bil/motif-snd/snd]
+  316,839,152  clm.c:fb_one_with_amps_c1_c2 [/home/bil/motif-snd/snd]
+  296,511,570  clm.c:filter_ge_10 [/home/bil/motif-snd/snd]
+  289,431,086  s7.c:s7_make_real [/home/bil/motif-snd/snd]
+  282,377,079  s7.c:opt_dotimes [/home/bil/motif-snd/snd]
+  264,755,736  clm.c:run_hilbert [/home/bil/motif-snd/snd]
+  239,373,538  clm.c:mus_src_to_buffer [/home/bil/motif-snd/snd]
+
 |#
diff --git a/snd-trans.c b/snd-trans.c
index 1321264..30bb473 100644
--- a/snd-trans.c
+++ b/snd-trans.c
@@ -24,13 +24,13 @@
 
 static char write_error_buffer[PRINT_BUFFER_SIZE];
 
-static long long int snd_checked_write(int fd, unsigned char *buf, long long int bytes, const char *filename)
+static int64_t snd_checked_write(int fd, unsigned char *buf, int64_t bytes, const char *filename)
 {
   /* io.c checked_write assumes its file descriptors are around */
   /* can't call mus_error here because we need to clean up first in case of error */
-  long long int bytes_written;
+  int64_t bytes_written;
   mus_long_t kfree;
-  kfree = (long long int)disk_kspace(filename);
+  kfree = (int64_t)disk_kspace(filename);
   if (kfree < 0) 
     {
       snprintf(write_error_buffer, PRINT_BUFFER_SIZE,
@@ -41,7 +41,7 @@ static long long int snd_checked_write(int fd, unsigned char *buf, long long int
   if (kfree < (bytes >> 10))
     { 
       snprintf(write_error_buffer, PRINT_BUFFER_SIZE,
-		   "only %lld bytes left on device (we need %lld bytes)",
+		   "only %lld bytes left on device (we need %" PRId64 " bytes)",
 		   kfree << 10, bytes);
       return(MUS_ERROR);
     }
@@ -49,7 +49,7 @@ static long long int snd_checked_write(int fd, unsigned char *buf, long long int
   if (bytes_written != bytes)
     {
       snprintf(write_error_buffer, PRINT_BUFFER_SIZE,
-		   "write error (wrote %lld of requested %lld bytes): %s",
+		   "write error (wrote %" PRId64 " of requested %" PRId64 " bytes): %s",
 		   bytes_written, bytes, snd_io_strerror());
       return(MUS_ERROR);
     }
diff --git a/snd-xen.c b/snd-xen.c
index 19ab903..c0d12be 100644
--- a/snd-xen.c
+++ b/snd-xen.c
@@ -2650,17 +2650,25 @@ Xen_wrap_1_arg(g_i0_w, g_i0)
 #endif
 
 
-
+#if HAVE_SCHEME
+#if USE_MOTIF
+  void Init_libxm(s7_scheme *sc);
+#else
+  void Init_libxg(s7_scheme *sc);
+#endif
+#if HAVE_GL
+ void Init_libgl(s7_scheme *sc);
+#endif
+#else
 #if USE_MOTIF
   void Init_libxm(void);
 #else
   void Init_libxg(void);
 #endif
-
 #if HAVE_GL
  void Init_libgl(void);
 #endif
-
+#endif
 
 static char *legalize_path(const char *in_str)
 { 
@@ -3048,7 +3056,7 @@ be written, or rely on the default (-1.0 or 1.0 depending on the sign of 'val').
     s7_define_constant(s7, "*motif*", motif = s7_inlet(s7, s7_nil(s7)));
     old_shadow = s7_shadow_rootlet(s7);
     s7_set_shadow_rootlet(s7, motif);
-    Init_libxm();
+    Init_libxm(s7);
     s7_set_shadow_rootlet(s7, old_shadow);
   }
 #else
@@ -3066,7 +3074,7 @@ be written, or rely on the default (-1.0 or 1.0 depending on the sign of 'val').
     s7_define_constant(s7, "*gtk*", gtk = s7_inlet(s7, s7_nil(s7)));
     old_shadow = s7_shadow_rootlet(s7);
     s7_set_shadow_rootlet(s7, gtk);
-    Init_libxg();
+    Init_libxg(s7);
     s7_set_shadow_rootlet(s7, old_shadow);
   }
 #else
@@ -3084,7 +3092,7 @@ be written, or rely on the default (-1.0 or 1.0 depending on the sign of 'val').
     s7_define_constant(s7, "*gl*", gl = s7_inlet(s7, s7_nil(s7)));
     old_shadow = s7_shadow_rootlet(s7);
     s7_set_shadow_rootlet(s7, gl);
-    Init_libgl();
+    Init_libgl(s7);
     s7_set_shadow_rootlet(s7, old_shadow);
   }
 #else
diff --git a/snd-xref.c b/snd-xref.c
index f17f38e..8e54b73 100644
--- a/snd-xref.c
+++ b/snd-xref.c
@@ -1,5 +1,5 @@
 /* Snd help index (generated by make-index.scm) */
-#define HELP_NAMES_SIZE 1584
+#define HELP_NAMES_SIZE 1576
 #if HAVE_SCHEME || HAVE_FORTH
 static const char *help_names[HELP_NAMES_SIZE] = {
   "*#readers*", "abcos", "abcos?", "abort", "absin", "absin?",
@@ -158,114 +158,113 @@ static const char *help_names[HELP_NAMES_SIZE] = {
  "mus-location", "mus-max-malloc", "mus-max-table-size", "mus-name", "mus-offset", "mus-order",
  "mus-oss-set-buffers", "mus-output?", "mus-phase", "mus-ramp", "mus-rand-seed", "mus-random",
  "mus-reset", "mus-run", "mus-sample-type->string", "mus-sample-type-name", "mus-scaler", "mus-sound-chans",
- "mus-sound-close-input", "mus-sound-close-output", "mus-sound-comment", "mus-sound-data-location", "mus-sound-datum-size", "mus-sound-duration",
- "mus-sound-forget", "mus-sound-framples", "mus-sound-header-type", "mus-sound-length", "mus-sound-loop-info", "mus-sound-mark-info",
- "mus-sound-maxamp", "mus-sound-maxamp-exists?", "mus-sound-open-input", "mus-sound-open-output", "mus-sound-path", "mus-sound-preload",
- "mus-sound-prune", "mus-sound-read", "mus-sound-reopen-output", "mus-sound-report-cache", "mus-sound-sample-type", "mus-sound-samples",
- "mus-sound-seek-frample", "mus-sound-srate", "mus-sound-type-specifier", "mus-sound-write", "mus-sound-write-date", "mus-srate",
- "mus-width", "mus-xcoeff", "mus-xcoeffs", "mus-ycoeff", "mus-ycoeffs", "n1cos",
- "n1cos?", "name-click-hook", "nchoosekcos", "nchoosekcos?", "ncos", "ncos2?",
- "ncos4?", "ncos?", "new-sound", "new-sound-dialog", "new-sound-hook", "new-widget-hook",
- "next-sample", "nkssb", "nkssb-interp", "nkssb?", "noddcos", "noddcos?",
- "noddsin", "noddsin?", "noddssb", "noddssb?", "noid", "normalize-channel",
- "normalize-envelope", "normalize-partials", "normalize-sound", "normalized-mix", "notch", "notch-channel",
- "notch-selection", "notch-sound", "notch?", "npcos?", "nrcos", "nrcos?",
- "nrev", "nrsin", "nrsin?", "nrssb", "nrssb-interp", "nrssb?",
- "nrxycos", "nrxycos?", "nrxysin", "nrxysin?", "nsin", "nsin?",
- "nsincos", "nsincos?", "nssb", "nssb?", "nxy1cos", "nxy1cos?",
- "nxy1sin", "nxy1sin?", "nxycos", "nxycos?", "nxysin", "nxysin?",
- "object->let", "object->string", "odd-multiple", "odd-weight", "offset-channel", "offset-sound",
- "one-pole", "one-pole-all-pass", "one-pole-all-pass?", "one-pole?", "one-zero", "one-zero?",
- "open-file-dialog", "open-file-dialog-directory", "open-hook", "open-next-file-in-directory", "open-raw-sound", "open-raw-sound-hook",
- "open-sound", "openlet", "openlet?", "orientation-hook", "oscil", "oscil-bank",
- "oscil-bank?", "oscil?", "out-any", "out-bank", "outa", "outlet",
- "*output*", "output-comment-hook", "overlay-rms-env", "owlet", "pad-channel", "pad-marks",
- "pad-sound", "pair-filename", "pair-line-number", "pan-mix", "pan-mix-float-vector", "partials->polynomial",
- "partials->wave", "pausing", "peak-env-dir", "peaks", "peaks-font", "phase-partials->wave",
- "phase-vocoder", "phase-vocoder?", "piano model", "pink-noise", "pink-noise?", "pins",
- "place-sound", "play", "play-arrow-size", "play-between-marks", "play-hook", "play-mixes",
- "play-often", "play-region-forever", "play-sine", "play-sines", "play-syncd-marks", "play-until-c-g",
- "play-with-envs", "player-home", "player?", "players", "playing", "pluck",
- "polar->rectangular", "polynomial", "polynomial operations", "polyoid", "polyoid-env", "polyoid?",
- "polyshape", "polyshape?", "polywave", "polywave?", "port-filename", "port-line-number",
- "position->x", "position->y", "position-color", "power-env", "pqw", "pqw-vox",
- "preferences-dialog", "previous-sample", "print-dialog", "print-length", "procedure-documentation", "procedure-setter",
- "procedure-signature", "procedure-source", "progress-report", "pulse-train", "pulse-train?", "pulsed-env",
- "pulsed-env?", "r2k!cos", "r2k!cos?", "r2k2cos", "r2k2cos?", "radians->degrees",
- "radians->hz", "ramp-channel", "rand", "rand-interp", "rand-interp?", "rand?",
- "random", "random-state", "random-state?", "rcos", "rcos?", "*read-error-hook*",
- "read-hook", "read-mix-sample", "read-only", "read-region-sample", "read-sample", "read-sample-with-direction",
- "reader-cond", "readin", "readin?", "rectangular->magnitudes", "rectangular->polar", "redo",
- "region->float-vector", "region->integer", "region-chans", "region-framples", "region-graph-style", "region-home",
- "region-maxamp", "region-maxamp-position", "region-play-list", "region-position", "region-rms", "region-sample",
- "region-sampler?", "region-srate", "region?", "regions", "remember-sound-state", "remove-clicks",
- "remove-from-menu", "replace-with-selection", "report-mark-names", "require", "reset-all-hooks", "reset-controls",
- "reset-listener-cursor", "reson", "restore-controls", "*reverb*", "reverb-control-decay", "reverb-control-feedback",
- "reverb-control-length", "reverb-control-length-bounds", "reverb-control-lowpass", "reverb-control-scale", "reverb-control-scale-bounds", "reverb-control?",
- "reverse!", "reverse-by-blocks", "reverse-channel", "reverse-envelope", "reverse-selection", "reverse-sound",
- "revert-sound", "right-sample", "ring-modulate", "rk!cos", "rk!cos?", "rk!ssb",
- "rk!ssb?", "rkcos", "rkcos?", "rkoddssb", "rkoddssb?", "rksin",
- "rksin?", "rkssb", "rkssb?", "rms", "rms, gain, balance gens", "rms-envelope",
- "rootlet", "*rootlet-redefinition-hook*", "round-interp", "round-interp?", "rssb", "rssb-interp",
- "rssb?", "rubber-sound", "rxycos", "rxycos?", "rxyk!cos", "rxyk!cos?",
- "rxyk!sin", "rxyk!sin?", "rxysin", "rxysin?", "sample", "sample->file",
- "sample->file?", "sample-type", "sampler-at-end?", "sampler-home", "sampler-position", "sampler?",
- "samples", "samples->seconds", "sash-color", "save-as-dialog-auto-comment", "save-as-dialog-src", "save-controls",
- "save-dir", "save-edit-history", "save-envelopes", "save-hook", "save-listener", "save-mark-properties",
- "save-marks", "save-mix", "save-region", "save-region-dialog", "save-selection", "save-selection-dialog",
- "save-sound", "save-sound-as", "save-sound-dialog", "save-state", "save-state-file", "save-state-hook",
- "savitzky-golay-filter", "sawtooth-wave", "sawtooth-wave?", "scale-by", "scale-channel", "scale-envelope",
- "scale-mixes", "scale-selection-by", "scale-selection-to", "scale-sound", "scale-tempo", "scale-to",
- "scan-channel", "scanned synthesis", "scentroid", "scratch", "script-arg", "script-args",
- "search-for-click", "search-procedure", "seconds->samples", "select-all", "select-channel", "select-channel-hook",
- "select-sound", "select-sound-hook", "selected-channel", "selected-data-color", "selected-graph-color", "selected-sound",
- "selection", "selection->mix", "selection-chans", "selection-color", "selection-context", "selection-creates-region",
- "selection-framples", "selection-maxamp", "selection-maxamp-position", "selection-member?", "selection-members", "selection-position",
- "selection-rms", "selection-srate", "selection?", "set-samples", "short-file-name", "show-axes",
- "show-controls", "show-disk-space", "show-full-duration", "show-full-range", "show-grid", "show-indices",
- "show-listener", "show-marks", "show-mix-waveforms", "show-selection", "show-selection-transform", "show-sonogram-cursor",
- "show-transform-peaks", "show-widget", "show-y-zero", "silence-all-mixes", "silence-mixes", "sinc-train",
- "sinc-train?", "sinc-width", "sine-env-channel", "sine-ramp", "singer", "smooth-channel",
- "smooth-selection", "smooth-sound", "SMS synthesis", "snap-mark-to-beat", "snap-marks", "snap-mix-to-beat",
- "snd->sample", "snd->sample?", "snd-color", "snd-error", "snd-error-hook", "snd-font",
- "snd-gcs", "snd-help", "snd-hooks", "*snd-opened-sound*", "snd-print", "snd-spectrum",
- "snd-tempnam", "snd-url", "snd-urls", "snd-version", "snd-warning", "snd-warning-hook",
- "sndwarp", "sort!", "sound->amp-env", "sound->integer", "sound-file-extensions", "sound-file?",
- "sound-files-in-directory", "sound-interp", "sound-loop-info", "sound-properties", "sound-property", "sound-widgets",
- "sound?", "soundfont-info", "sounds", "sounds->segment-data", "spectra", "spectral interpolation",
- "spectral-polynomial", "spectro-hop", "spectro-x-angle", "spectro-x-scale", "spectro-y-angle", "spectro-y-scale",
- "spectro-z-angle", "spectro-z-scale", "spectrum", "spectrum->coeffs", "spectrum-end", "spectrum-start",
- "speed-control", "speed-control-bounds", "speed-control-style", "speed-control-tones", "spot-freq", "square-wave",
- "square-wave?", "squelch-update", "squelch-vowels", "srate", "src", "src-channel",
- "src-duration", "src-fit-envelope", "src-mixes", "src-selection", "src-sound", "src?",
- "ssb-am", "ssb-am?", "ssb-bank", "ssb-bank-env", "ssb-fm", "start-dac",
- "start-playing", "start-playing-hook", "start-playing-selection-hook", "start-progress-report", "status-report", "stdin-prompt",
- "stereo->mono", "stereo-flute", "stop-player", "stop-playing", "stop-playing-hook", "stop-playing-selection-hook",
- "stretch-envelope", "stretch-sound-via-dft", "string->byte-vector", "string-position", "sublet", "superimpose-ffts",
- "swap-channels", "swap-selection-channels", "symbol->dynamic-value", "symbol->value", "symbol-access", "symbol-table",
- "sync", "sync-everything", "sync-max", "sync-style", "syncd-marks", "syncd-mixes",
- "syncup", "table-lookup", "table-lookup?", "tanhsin", "tanhsin?", "tap",
- "tap?", "telephone", "temp-dir", "text-focus-color", "time-graph-style", "time-graph-type",
- "time-graph?", "times->samples", "tiny-font", "touch-tone", "trace", "tracking-cursor-style",
- "transform->float-vector", "transform->integer", "transform-dialog", "transform-framples", "transform-graph-style", "transform-graph-type",
- "transform-graph?", "transform-normalization", "transform-sample", "transform-size", "transform-type", "transform?",
- "transpose-mixes", "triangle-wave", "triangle-wave?", "tubebell", "tubular bell", "two-pole",
- "two-pole?", "two-tab", "two-zero", "two-zero?", "type-of", "unbind-key",
- "*unbound-variable-hook*", "unclip-channel", "undo", "undo-hook", "unlet", "unselect-all",
- "update-graphs", "update-hook", "update-lisp-graph", "update-sound", "update-time-graph", "update-transform-graph",
- "upon-save-yourself", "user interface extensions", "variable-display", "variable-graph?", "varlet", "vibrating-uniform-circular-string",
- "view-files-amp", "view-files-amp-env", "view-files-dialog", "view-files-files", "view-files-select-hook", "view-files-selected-files",
- "view-files-sort", "view-files-speed", "view-files-speed-style", "view-mixes-dialog", "view-regions-dialog", "view-sound",
- "voice physical model", "voiced->unvoiced", "volterra-filter", "vox", "wave-train", "wave-train?",
- "wavelet-type", "waveshaping voice", "wavo-hop", "wavo-trace", "weighted-moving-average", "widget-position",
- "widget-size", "widget-text", "window-height", "window-samples", "window-width", "window-x",
- "window-y", "with-background-processes", "with-baffle", "with-file-monitor", "with-gl", "with-inset-graph",
- "with-interrupts", "with-let", "with-local-hook", "with-menu-icons", "with-mix-tags", "with-pointer-focus",
- "with-relative-panes", "with-smpte-label", "with-sound", "with-temporary-selection", "with-toolbar", "with-tooltips",
- "with-tracking-cursor", "with-verbose-cursor", "x->position", "x-axis-label", "x-axis-style", "x-bounds",
- "x-position-slider", "x-zoom-slider", "xb-open", "xramp-channel", "y->position", "y-axis-label",
- "y-bounds", "y-position-slider", "y-zoom-slider", "z-transform", "zecho", "zero+",
- "zero-pad", "zero-phase", "zip-sound", "zipper", "zoom-color", "zoom-focus-style"};
+ "mus-sound-comment", "mus-sound-data-location", "mus-sound-datum-size", "mus-sound-duration", "mus-sound-forget", "mus-sound-framples",
+ "mus-sound-header-type", "mus-sound-length", "mus-sound-loop-info", "mus-sound-mark-info", "mus-sound-maxamp", "mus-sound-maxamp-exists?",
+ "mus-sound-path", "mus-sound-preload", "mus-sound-prune", "mus-sound-report-cache", "mus-sound-sample-type", "mus-sound-samples",
+ "mus-sound-srate", "mus-sound-type-specifier", "mus-sound-write-date", "mus-srate", "mus-width", "mus-xcoeff",
+ "mus-xcoeffs", "mus-ycoeff", "mus-ycoeffs", "n1cos", "n1cos?", "name-click-hook",
+ "nchoosekcos", "nchoosekcos?", "ncos", "ncos2?", "ncos4?", "ncos?",
+ "new-sound", "new-sound-dialog", "new-sound-hook", "new-widget-hook", "next-sample", "nkssb",
+ "nkssb-interp", "nkssb?", "noddcos", "noddcos?", "noddsin", "noddsin?",
+ "noddssb", "noddssb?", "noid", "normalize-channel", "normalize-envelope", "normalize-partials",
+ "normalize-sound", "normalized-mix", "notch", "notch-channel", "notch-selection", "notch-sound",
+ "notch?", "npcos?", "nrcos", "nrcos?", "nrev", "nrsin",
+ "nrsin?", "nrssb", "nrssb-interp", "nrssb?", "nrxycos", "nrxycos?",
+ "nrxysin", "nrxysin?", "nsin", "nsin?", "nsincos", "nsincos?",
+ "nssb", "nssb?", "nxy1cos", "nxy1cos?", "nxy1sin", "nxy1sin?",
+ "nxycos", "nxycos?", "nxysin", "nxysin?", "object->let", "object->string",
+ "odd-multiple", "odd-weight", "offset-channel", "offset-sound", "one-pole", "one-pole-all-pass",
+ "one-pole-all-pass?", "one-pole?", "one-zero", "one-zero?", "open-file-dialog", "open-file-dialog-directory",
+ "open-hook", "open-next-file-in-directory", "open-raw-sound", "open-raw-sound-hook", "open-sound", "openlet",
+ "openlet?", "orientation-hook", "oscil", "oscil-bank", "oscil-bank?", "oscil?",
+ "out-any", "out-bank", "outa", "outlet", "*output*", "output-comment-hook",
+ "overlay-rms-env", "owlet", "pad-channel", "pad-marks", "pad-sound", "pair-filename",
+ "pair-line-number", "pan-mix", "pan-mix-float-vector", "partials->polynomial", "partials->wave", "pausing",
+ "peak-env-dir", "peaks", "peaks-font", "phase-partials->wave", "phase-vocoder", "phase-vocoder?",
+ "piano model", "pink-noise", "pink-noise?", "pins", "place-sound", "play",
+ "play-arrow-size", "play-between-marks", "play-hook", "play-mixes", "play-often", "play-region-forever",
+ "play-sine", "play-sines", "play-syncd-marks", "play-until-c-g", "play-with-envs", "player-home",
+ "player?", "players", "playing", "pluck", "polar->rectangular", "polynomial",
+ "polynomial operations", "polyoid", "polyoid-env", "polyoid?", "polyshape", "polyshape?",
+ "polywave", "polywave?", "port-filename", "port-line-number", "position->x", "position->y",
+ "position-color", "power-env", "pqw", "pqw-vox", "preferences-dialog", "previous-sample",
+ "print-dialog", "print-length", "procedure-documentation", "procedure-setter", "procedure-signature", "procedure-source",
+ "progress-report", "pulse-train", "pulse-train?", "pulsed-env", "pulsed-env?", "r2k!cos",
+ "r2k!cos?", "r2k2cos", "r2k2cos?", "radians->degrees", "radians->hz", "ramp-channel",
+ "rand", "rand-interp", "rand-interp?", "rand?", "random", "random-state",
+ "random-state?", "rcos", "rcos?", "*read-error-hook*", "read-hook", "read-mix-sample",
+ "read-only", "read-region-sample", "read-sample", "read-sample-with-direction", "reader-cond", "readin",
+ "readin?", "rectangular->magnitudes", "rectangular->polar", "redo", "region->float-vector", "region->integer",
+ "region-chans", "region-framples", "region-graph-style", "region-home", "region-maxamp", "region-maxamp-position",
+ "region-play-list", "region-position", "region-rms", "region-sample", "region-sampler?", "region-srate",
+ "region?", "regions", "remember-sound-state", "remove-clicks", "remove-from-menu", "replace-with-selection",
+ "report-mark-names", "require", "reset-all-hooks", "reset-controls", "reset-listener-cursor", "reson",
+ "restore-controls", "*reverb*", "reverb-control-decay", "reverb-control-feedback", "reverb-control-length", "reverb-control-length-bounds",
+ "reverb-control-lowpass", "reverb-control-scale", "reverb-control-scale-bounds", "reverb-control?", "reverse!", "reverse-by-blocks",
+ "reverse-channel", "reverse-envelope", "reverse-selection", "reverse-sound", "revert-sound", "right-sample",
+ "ring-modulate", "rk!cos", "rk!cos?", "rk!ssb", "rk!ssb?", "rkcos",
+ "rkcos?", "rkoddssb", "rkoddssb?", "rksin", "rksin?", "rkssb",
+ "rkssb?", "rms", "rms, gain, balance gens", "rms-envelope", "rootlet", "*rootlet-redefinition-hook*",
+ "round-interp", "round-interp?", "rssb", "rssb-interp", "rssb?", "rubber-sound",
+ "rxycos", "rxycos?", "rxyk!cos", "rxyk!cos?", "rxyk!sin", "rxyk!sin?",
+ "rxysin", "rxysin?", "sample", "sample->file", "sample->file?", "sample-type",
+ "sampler-at-end?", "sampler-home", "sampler-position", "sampler?", "samples", "samples->seconds",
+ "sash-color", "save-as-dialog-auto-comment", "save-as-dialog-src", "save-controls", "save-dir", "save-edit-history",
+ "save-envelopes", "save-hook", "save-listener", "save-mark-properties", "save-marks", "save-mix",
+ "save-region", "save-region-dialog", "save-selection", "save-selection-dialog", "save-sound", "save-sound-as",
+ "save-sound-dialog", "save-state", "save-state-file", "save-state-hook", "savitzky-golay-filter", "sawtooth-wave",
+ "sawtooth-wave?", "scale-by", "scale-channel", "scale-envelope", "scale-mixes", "scale-selection-by",
+ "scale-selection-to", "scale-sound", "scale-tempo", "scale-to", "scan-channel", "scanned synthesis",
+ "scentroid", "scratch", "script-arg", "script-args", "search-for-click", "search-procedure",
+ "seconds->samples", "select-all", "select-channel", "select-channel-hook", "select-sound", "select-sound-hook",
+ "selected-channel", "selected-data-color", "selected-graph-color", "selected-sound", "selection", "selection->mix",
+ "selection-chans", "selection-color", "selection-context", "selection-creates-region", "selection-framples", "selection-maxamp",
+ "selection-maxamp-position", "selection-member?", "selection-members", "selection-position", "selection-rms", "selection-srate",
+ "selection?", "set-samples", "short-file-name", "show-axes", "show-controls", "show-disk-space",
+ "show-full-duration", "show-full-range", "show-grid", "show-indices", "show-listener", "show-marks",
+ "show-mix-waveforms", "show-selection", "show-selection-transform", "show-sonogram-cursor", "show-transform-peaks", "show-widget",
+ "show-y-zero", "silence-all-mixes", "silence-mixes", "sinc-train", "sinc-train?", "sinc-width",
+ "sine-env-channel", "sine-ramp", "singer", "smooth-channel", "smooth-selection", "smooth-sound",
+ "SMS synthesis", "snap-mark-to-beat", "snap-marks", "snap-mix-to-beat", "snd->sample", "snd->sample?",
+ "snd-color", "snd-error", "snd-error-hook", "snd-font", "snd-gcs", "snd-help",
+ "snd-hooks", "*snd-opened-sound*", "snd-print", "snd-spectrum", "snd-tempnam", "snd-url",
+ "snd-urls", "snd-version", "snd-warning", "snd-warning-hook", "sndwarp", "sort!",
+ "sound->amp-env", "sound->integer", "sound-file-extensions", "sound-file?", "sound-files-in-directory", "sound-interp",
+ "sound-loop-info", "sound-properties", "sound-property", "sound-widgets", "sound?", "soundfont-info",
+ "sounds", "sounds->segment-data", "spectra", "spectral interpolation", "spectral-polynomial", "spectro-hop",
+ "spectro-x-angle", "spectro-x-scale", "spectro-y-angle", "spectro-y-scale", "spectro-z-angle", "spectro-z-scale",
+ "spectrum", "spectrum->coeffs", "spectrum-end", "spectrum-start", "speed-control", "speed-control-bounds",
+ "speed-control-style", "speed-control-tones", "spot-freq", "square-wave", "square-wave?", "squelch-update",
+ "squelch-vowels", "srate", "src", "src-channel", "src-duration", "src-fit-envelope",
+ "src-mixes", "src-selection", "src-sound", "src?", "ssb-am", "ssb-am?",
+ "ssb-bank", "ssb-bank-env", "ssb-fm", "start-dac", "start-playing", "start-playing-hook",
+ "start-playing-selection-hook", "start-progress-report", "status-report", "stdin-prompt", "stereo->mono", "stereo-flute",
+ "stop-player", "stop-playing", "stop-playing-hook", "stop-playing-selection-hook", "stretch-envelope", "stretch-sound-via-dft",
+ "string->byte-vector", "string-position", "sublet", "superimpose-ffts", "swap-channels", "swap-selection-channels",
+ "symbol->dynamic-value", "symbol->value", "symbol-access", "symbol-table", "sync", "sync-everything",
+ "sync-max", "sync-style", "syncd-marks", "syncd-mixes", "syncup", "table-lookup",
+ "table-lookup?", "tanhsin", "tanhsin?", "tap", "tap?", "telephone",
+ "temp-dir", "text-focus-color", "time-graph-style", "time-graph-type", "time-graph?", "times->samples",
+ "tiny-font", "touch-tone", "trace", "tracking-cursor-style", "transform->float-vector", "transform->integer",
+ "transform-dialog", "transform-framples", "transform-graph-style", "transform-graph-type", "transform-graph?", "transform-normalization",
+ "transform-sample", "transform-size", "transform-type", "transform?", "transpose-mixes", "triangle-wave",
+ "triangle-wave?", "tubebell", "tubular bell", "two-pole", "two-pole?", "two-tab",
+ "two-zero", "two-zero?", "type-of", "unbind-key", "*unbound-variable-hook*", "unclip-channel",
+ "undo", "undo-hook", "unlet", "unselect-all", "update-graphs", "update-hook",
+ "update-lisp-graph", "update-sound", "update-time-graph", "update-transform-graph", "upon-save-yourself", "user interface extensions",
+ "variable-display", "variable-graph?", "varlet", "vibrating-uniform-circular-string", "view-files-amp", "view-files-amp-env",
+ "view-files-dialog", "view-files-files", "view-files-select-hook", "view-files-selected-files", "view-files-sort", "view-files-speed",
+ "view-files-speed-style", "view-mixes-dialog", "view-regions-dialog", "view-sound", "voice physical model", "voiced->unvoiced",
+ "volterra-filter", "vox", "wave-train", "wave-train?", "wavelet-type", "waveshaping voice",
+ "wavo-hop", "wavo-trace", "weighted-moving-average", "widget-position", "widget-size", "widget-text",
+ "window-height", "window-samples", "window-width", "window-x", "window-y", "with-background-processes",
+ "with-baffle", "with-file-monitor", "with-gl", "with-inset-graph", "with-interrupts", "with-let",
+ "with-local-hook", "with-menu-icons", "with-mix-tags", "with-pointer-focus", "with-relative-panes", "with-smpte-label",
+ "with-sound", "with-temporary-selection", "with-toolbar", "with-tooltips", "with-tracking-cursor", "with-verbose-cursor",
+ "x->position", "x-axis-label", "x-axis-style", "x-bounds", "x-position-slider", "x-zoom-slider",
+ "xb-open", "xramp-channel", "y->position", "y-axis-label", "y-bounds", "y-position-slider",
+ "y-zoom-slider", "z-transform", "zecho", "zero+", "zero-pad", "zero-phase",
+ "zip-sound", "zipper", "zoom-color", "zoom-focus-style"};
 #endif
 #if HAVE_RUBY
 static const char *help_names[HELP_NAMES_SIZE] = {
@@ -425,114 +424,113 @@ static const char *help_names[HELP_NAMES_SIZE] = {
  "mus_location", "mus_max_malloc", "mus_max_table_size", "mus_name", "mus_offset", "mus_order",
  "mus_oss_set_buffers", "mus_output?", "mus_phase", "mus_ramp", "mus_rand_seed", "mus_random",
  "mus_reset", "mus_run", "mus_sample_type2string", "mus_sample_type_name", "mus_scaler", "mus_sound_chans",
- "mus_sound_close_input", "mus_sound_close_output", "mus_sound_comment", "mus_sound_data_location", "mus_sound_datum_size", "mus_sound_duration",
- "mus_sound_forget", "mus_sound_framples", "mus_sound_header_type", "mus_sound_length", "mus_sound_loop_info", "mus_sound_mark_info",
- "mus_sound_maxamp", "mus_sound_maxamp_exists?", "mus_sound_open_input", "mus_sound_open_output", "mus_sound_path", "mus_sound_preload",
- "mus_sound_prune", "mus_sound_read", "mus_sound_reopen_output", "mus_sound_report_cache", "mus_sound_sample_type", "mus_sound_samples",
- "mus_sound_seek_frample", "mus_sound_srate", "mus_sound_type_specifier", "mus_sound_write", "mus_sound_write_date", "mus_srate",
- "mus_width", "mus_xcoeff", "mus_xcoeffs", "mus_ycoeff", "mus_ycoeffs", "n1cos",
- "n1cos?", "name_click_hook", "nchoosekcos", "nchoosekcos?", "ncos", "ncos2?",
- "ncos4?", "ncos?", "new_sound", "new_sound_dialog", "new_sound_hook", "new_widget_hook",
- "next_sample", "nkssb", "nkssb_interp", "nkssb?", "noddcos", "noddcos?",
- "noddsin", "noddsin?", "noddssb", "noddssb?", "noid", "normalize_channel",
- "normalize_envelope", "normalize_partials", "normalize_sound", "normalized_mix", "notch", "notch_channel",
- "notch_selection", "notch_sound", "notch?", "npcos?", "nrcos", "nrcos?",
- "nrev", "nrsin", "nrsin?", "nrssb", "nrssb_interp", "nrssb?",
- "nrxycos", "nrxycos?", "nrxysin", "nrxysin?", "nsin", "nsin?",
- "nsincos", "nsincos?", "nssb", "nssb?", "nxy1cos", "nxy1cos?",
- "nxy1sin", "nxy1sin?", "nxycos", "nxycos?", "nxysin", "nxysin?",
- "object2let", "object2string", "odd_multiple", "odd_weight", "offset_channel", "offset_sound",
- "one_pole", "one_pole_all_pass", "one_pole_all_pass?", "one_pole?", "one_zero", "one_zero?",
- "open_file_dialog", "open_file_dialog_directory", "open_hook", "open_next_file_in_directory", "open_raw_sound", "open_raw_sound_hook",
- "open_sound", "openlet", "openlet?", "orientation_hook", "oscil", "oscil_bank",
- "oscil_bank?", "oscil?", "out_any", "out_bank", "outa", "outlet",
- "_output_", "output_comment_hook", "overlay_rms_env", "owlet", "pad_channel", "pad_marks",
- "pad_sound", "pair_filename", "pair_line_number", "pan_mix", "pan_mix_float_vector", "partials2polynomial",
- "partials2wave", "pausing", "peak_env_dir", "peaks", "peaks_font", "phase_partials2wave",
- "phase_vocoder", "phase_vocoder?", "piano_model", "pink_noise", "pink_noise?", "pins",
- "place_sound", "play", "play_arrow_size", "play_between_marks", "play_hook", "play_mixes",
- "play_often", "play_region_forever", "play_sine", "play_sines", "play_syncd_marks", "play_until_c_g",
- "play_with_envs", "player_home", "player?", "players", "playing", "pluck",
- "polar2rectangular", "polynomial", "polynomial_operations", "polyoid", "polyoid_env", "polyoid?",
- "polyshape", "polyshape?", "polywave", "polywave?", "port_filename", "port_line_number",
- "position2x", "position2y", "position_color", "power_env", "pqw", "pqw_vox",
- "preferences_dialog", "previous_sample", "print_dialog", "print_length", "procedure_documentation", "procedure_setter",
- "procedure_signature", "procedure_source", "progress_report", "pulse_train", "pulse_train?", "pulsed_env",
- "pulsed_env?", "r2k!cos", "r2k!cos?", "r2k2cos", "r2k2cos?", "radians2degrees",
- "radians2hz", "ramp_channel", "rand", "rand_interp", "rand_interp?", "rand?",
- "random", "random_state", "random_state?", "rcos", "rcos?", "_read_error_hook_",
- "read_hook", "read_mix_sample", "read_only", "read_region_sample", "read_sample", "read_sample_with_direction",
- "reader_cond", "readin", "readin?", "rectangular2magnitudes", "rectangular2polar", "redo_edit",
- "region2float_vector", "region2integer", "region_chans", "region_framples", "region_graph_style", "region_home",
- "region_maxamp", "region_maxamp_position", "region_play_list", "region_position", "region_rms", "region_sample",
- "region_sampler?", "region_srate", "region?", "regions", "remember_sound_state", "remove_clicks",
- "remove_from_menu", "replace_with_selection", "report_mark_names", "require", "reset_all_hooks", "reset_controls",
- "reset_listener_cursor", "reson", "restore_controls", "_reverb_", "reverb_control_decay", "reverb_control_feedback",
- "reverb_control_length", "reverb_control_length_bounds", "reverb_control_lowpass", "reverb_control_scale", "reverb_control_scale_bounds", "reverb_control?",
- "reverse!", "reverse_by_blocks", "reverse_channel", "reverse_envelope", "reverse_selection", "reverse_sound",
- "revert_sound", "right_sample", "ring_modulate", "rk!cos", "rk!cos?", "rk!ssb",
- "rk!ssb?", "rkcos", "rkcos?", "rkoddssb", "rkoddssb?", "rksin",
- "rksin?", "rkssb", "rkssb?", "rms", "rms__gain__balance_gens", "rms_envelope",
- "rootlet", "_rootlet_redefinition_hook_", "round_interp", "round_interp?", "rssb", "rssb_interp",
- "rssb?", "rubber_sound", "rxycos", "rxycos?", "rxyk!cos", "rxyk!cos?",
- "rxyk!sin", "rxyk!sin?", "rxysin", "rxysin?", "sample", "sample2file",
- "sample2file?", "sample_type", "sampler_at_end?", "sampler_home", "sampler_position", "sampler?",
- "samples", "samples2seconds", "sash_color", "save_as_dialog_auto_comment", "save_as_dialog_src", "save_controls",
- "save_dir", "save_edit_history", "save_envelopes", "save_hook", "save_listener", "save_mark_properties",
- "save_marks", "save_mix", "save_region", "save_region_dialog", "save_selection", "save_selection_dialog",
- "save_sound", "save_sound_as", "save_sound_dialog", "save_state", "save_state_file", "save_state_hook",
- "savitzky_golay_filter", "sawtooth_wave", "sawtooth_wave?", "scale_by", "scale_channel", "scale_envelope",
- "scale_mixes", "scale_selection_by", "scale_selection_to", "scale_sound", "scale_tempo", "scale_to",
- "scan_channel", "scanned_synthesis", "scentroid", "scratch", "script_arg", "script_args",
- "search_for_click", "search_procedure", "seconds2samples", "select_all", "select_channel", "select_channel_hook",
- "select_sound", "select_sound_hook", "selected_channel", "selected_data_color", "selected_graph_color", "selected_sound",
- "selection", "selection2mix", "selection_chans", "selection_color", "Selection_context", "selection_creates_region",
- "selection_framples", "selection_maxamp", "selection_maxamp_position", "selection_member?", "selection_members", "selection_position",
- "selection_rms", "selection_srate", "selection?", "set_samples", "short_file_name", "show_axes",
- "show_controls", "show_disk_space", "show_full_duration", "show_full_range", "show_grid", "show_indices",
- "show_listener", "show_marks", "show_mix_waveforms", "show_selection", "show_selection_transform", "show_sonogram_cursor",
- "show_transform_peaks", "show_widget", "show_y_zero", "silence_all_mixes", "silence_mixes", "sinc_train",
- "sinc_train?", "sinc_width", "sine_env_channel", "sine_ramp", "singer", "smooth_channel",
- "smooth_selection", "smooth_sound", "SMS_synthesis", "snap_mark_to_beat", "snap_marks", "snap_mix_to_beat",
- "snd2sample", "snd2sample?", "snd_color", "snd_error", "snd_error_hook", "snd_font",
- "snd_gcs", "snd_help", "snd_hooks", "_snd_opened_sound_", "snd_print", "snd_spectrum",
- "snd_tempnam", "snd_url", "snd_urls", "snd_version", "snd_warning", "snd_warning_hook",
- "sndwarp", "sort!", "sound2amp_env", "sound2integer", "sound_file_extensions", "sound_file?",
- "sound_files_in_directory", "sound_interp", "sound_loop_info", "sound_properties", "sound_property", "sound_widgets",
- "sound?", "soundfont_info", "sounds", "sounds2segment_data", "spectra", "spectral_interpolation",
- "spectral_polynomial", "spectro_hop", "spectro_x_angle", "spectro_x_scale", "spectro_y_angle", "spectro_y_scale",
- "spectro_z_angle", "spectro_z_scale", "spectrum", "spectrum2coeffs", "spectrum_end", "spectrum_start",
- "speed_control", "speed_control_bounds", "speed_control_style", "speed_control_tones", "spot_freq", "square_wave",
- "square_wave?", "squelch_update", "squelch_vowels", "srate", "src", "src_channel",
- "src_duration", "src_fit_envelope", "src_mixes", "src_selection", "src_sound", "src?",
- "ssb_am", "ssb_am?", "ssb_bank", "ssb_bank_env", "ssb_fm", "start_dac",
- "start_playing", "start_playing_hook", "start_playing_selection_hook", "start_progress_report", "status_report", "stdin_prompt",
- "stereo2mono", "stereo_flute", "stop_player", "stop_playing", "stop_playing_hook", "stop_playing_selection_hook",
- "stretch_envelope", "stretch_sound_via_dft", "string2byte_vector", "string_position", "sublet", "superimpose_ffts",
- "swap_channels", "swap_selection_channels", "symbol2dynamic_value", "symbol2value", "symbol_access", "symbol_table",
- "sync", "sync_everything", "sync_max", "sync_style", "syncd_marks", "syncd_mixes",
- "syncup", "table_lookup", "table_lookup?", "tanhsin", "tanhsin?", "tap",
- "tap?", "telephone", "temp_dir", "text_focus_color", "time_graph_style", "time_graph_type",
- "time_graph?", "times2samples", "tiny_font", "touch_tone", "trace", "tracking_cursor_style",
- "transform2float_vector", "transform2integer", "transform_dialog", "transform_framples", "transform_graph_style", "transform_graph_type",
- "transform_graph?", "transform_normalization", "transform_sample", "transform_size", "transform_type", "transform?",
- "transpose_mixes", "triangle_wave", "triangle_wave?", "tubebell", "tubular_bell", "two_pole",
- "two_pole?", "two_tab", "two_zero", "two_zero?", "type_of", "unbind_key",
- "_unbound_variable_hook_", "unclip_channel", "undo", "undo_hook", "unlet", "unselect_all",
- "update_graphs", "update_hook", "update_lisp_graph", "update_sound", "update_time_graph", "update_transform_graph",
- "upon_save_yourself", "user_interface_extensions", "variable_display", "variable_graph?", "varlet", "vibrating_uniform_circular_string",
- "view_files_amp", "view_files_amp_env", "view_files_dialog", "view_files_files", "view_files_select_hook", "view_files_selected_files",
- "view_files_sort", "view_files_speed", "view_files_speed_style", "view_mixes_dialog", "view_regions_dialog", "view_sound",
- "voice_physical_model", "voiced2unvoiced", "volterra_filter", "vox", "wave_train", "wave_train?",
- "wavelet_type", "waveshaping_voice", "wavo_hop", "wavo_trace", "weighted_moving_average", "widget_position",
- "widget_size", "widget_text", "window_height", "window_samples", "window_width", "window_x",
- "window_y", "with_background_processes", "with_baffle", "with_file_monitor", "with_gl", "with_inset_graph",
- "with_interrupts", "with_let", "with_local_hook", "with_menu_icons", "with_mix_tags", "with_pointer_focus",
- "with_relative_panes", "with_smpte_label", "with_sound", "with_temporary_selection", "with_toolbar", "with_tooltips",
- "with_tracking_cursor", "with_verbose_cursor", "x2position", "x_axis_label", "x_axis_style", "x_bounds",
- "x_position_slider", "x_zoom_slider", "xb_open", "xramp_channel", "y2position", "y_axis_label",
- "y_bounds", "y_position_slider", "y_zoom_slider", "z_transform", "zecho", "zero_",
- "zero_pad", "zero_phase", "zip_sound", "zipper", "zoom_color", "zoom_focus_style"};
+ "mus_sound_comment", "mus_sound_data_location", "mus_sound_datum_size", "mus_sound_duration", "mus_sound_forget", "mus_sound_framples",
+ "mus_sound_header_type", "mus_sound_length", "mus_sound_loop_info", "mus_sound_mark_info", "mus_sound_maxamp", "mus_sound_maxamp_exists?",
+ "mus_sound_path", "mus_sound_preload", "mus_sound_prune", "mus_sound_report_cache", "mus_sound_sample_type", "mus_sound_samples",
+ "mus_sound_srate", "mus_sound_type_specifier", "mus_sound_write_date", "mus_srate", "mus_width", "mus_xcoeff",
+ "mus_xcoeffs", "mus_ycoeff", "mus_ycoeffs", "n1cos", "n1cos?", "name_click_hook",
+ "nchoosekcos", "nchoosekcos?", "ncos", "ncos2?", "ncos4?", "ncos?",
+ "new_sound", "new_sound_dialog", "new_sound_hook", "new_widget_hook", "next_sample", "nkssb",
+ "nkssb_interp", "nkssb?", "noddcos", "noddcos?", "noddsin", "noddsin?",
+ "noddssb", "noddssb?", "noid", "normalize_channel", "normalize_envelope", "normalize_partials",
+ "normalize_sound", "normalized_mix", "notch", "notch_channel", "notch_selection", "notch_sound",
+ "notch?", "npcos?", "nrcos", "nrcos?", "nrev", "nrsin",
+ "nrsin?", "nrssb", "nrssb_interp", "nrssb?", "nrxycos", "nrxycos?",
+ "nrxysin", "nrxysin?", "nsin", "nsin?", "nsincos", "nsincos?",
+ "nssb", "nssb?", "nxy1cos", "nxy1cos?", "nxy1sin", "nxy1sin?",
+ "nxycos", "nxycos?", "nxysin", "nxysin?", "object2let", "object2string",
+ "odd_multiple", "odd_weight", "offset_channel", "offset_sound", "one_pole", "one_pole_all_pass",
+ "one_pole_all_pass?", "one_pole?", "one_zero", "one_zero?", "open_file_dialog", "open_file_dialog_directory",
+ "open_hook", "open_next_file_in_directory", "open_raw_sound", "open_raw_sound_hook", "open_sound", "openlet",
+ "openlet?", "orientation_hook", "oscil", "oscil_bank", "oscil_bank?", "oscil?",
+ "out_any", "out_bank", "outa", "outlet", "_output_", "output_comment_hook",
+ "overlay_rms_env", "owlet", "pad_channel", "pad_marks", "pad_sound", "pair_filename",
+ "pair_line_number", "pan_mix", "pan_mix_float_vector", "partials2polynomial", "partials2wave", "pausing",
+ "peak_env_dir", "peaks", "peaks_font", "phase_partials2wave", "phase_vocoder", "phase_vocoder?",
+ "piano_model", "pink_noise", "pink_noise?", "pins", "place_sound", "play",
+ "play_arrow_size", "play_between_marks", "play_hook", "play_mixes", "play_often", "play_region_forever",
+ "play_sine", "play_sines", "play_syncd_marks", "play_until_c_g", "play_with_envs", "player_home",
+ "player?", "players", "playing", "pluck", "polar2rectangular", "polynomial",
+ "polynomial_operations", "polyoid", "polyoid_env", "polyoid?", "polyshape", "polyshape?",
+ "polywave", "polywave?", "port_filename", "port_line_number", "position2x", "position2y",
+ "position_color", "power_env", "pqw", "pqw_vox", "preferences_dialog", "previous_sample",
+ "print_dialog", "print_length", "procedure_documentation", "procedure_setter", "procedure_signature", "procedure_source",
+ "progress_report", "pulse_train", "pulse_train?", "pulsed_env", "pulsed_env?", "r2k!cos",
+ "r2k!cos?", "r2k2cos", "r2k2cos?", "radians2degrees", "radians2hz", "ramp_channel",
+ "rand", "rand_interp", "rand_interp?", "rand?", "random", "random_state",
+ "random_state?", "rcos", "rcos?", "_read_error_hook_", "read_hook", "read_mix_sample",
+ "read_only", "read_region_sample", "read_sample", "read_sample_with_direction", "reader_cond", "readin",
+ "readin?", "rectangular2magnitudes", "rectangular2polar", "redo_edit", "region2float_vector", "region2integer",
+ "region_chans", "region_framples", "region_graph_style", "region_home", "region_maxamp", "region_maxamp_position",
+ "region_play_list", "region_position", "region_rms", "region_sample", "region_sampler?", "region_srate",
+ "region?", "regions", "remember_sound_state", "remove_clicks", "remove_from_menu", "replace_with_selection",
+ "report_mark_names", "require", "reset_all_hooks", "reset_controls", "reset_listener_cursor", "reson",
+ "restore_controls", "_reverb_", "reverb_control_decay", "reverb_control_feedback", "reverb_control_length", "reverb_control_length_bounds",
+ "reverb_control_lowpass", "reverb_control_scale", "reverb_control_scale_bounds", "reverb_control?", "reverse!", "reverse_by_blocks",
+ "reverse_channel", "reverse_envelope", "reverse_selection", "reverse_sound", "revert_sound", "right_sample",
+ "ring_modulate", "rk!cos", "rk!cos?", "rk!ssb", "rk!ssb?", "rkcos",
+ "rkcos?", "rkoddssb", "rkoddssb?", "rksin", "rksin?", "rkssb",
+ "rkssb?", "rms", "rms__gain__balance_gens", "rms_envelope", "rootlet", "_rootlet_redefinition_hook_",
+ "round_interp", "round_interp?", "rssb", "rssb_interp", "rssb?", "rubber_sound",
+ "rxycos", "rxycos?", "rxyk!cos", "rxyk!cos?", "rxyk!sin", "rxyk!sin?",
+ "rxysin", "rxysin?", "sample", "sample2file", "sample2file?", "sample_type",
+ "sampler_at_end?", "sampler_home", "sampler_position", "sampler?", "samples", "samples2seconds",
+ "sash_color", "save_as_dialog_auto_comment", "save_as_dialog_src", "save_controls", "save_dir", "save_edit_history",
+ "save_envelopes", "save_hook", "save_listener", "save_mark_properties", "save_marks", "save_mix",
+ "save_region", "save_region_dialog", "save_selection", "save_selection_dialog", "save_sound", "save_sound_as",
+ "save_sound_dialog", "save_state", "save_state_file", "save_state_hook", "savitzky_golay_filter", "sawtooth_wave",
+ "sawtooth_wave?", "scale_by", "scale_channel", "scale_envelope", "scale_mixes", "scale_selection_by",
+ "scale_selection_to", "scale_sound", "scale_tempo", "scale_to", "scan_channel", "scanned_synthesis",
+ "scentroid", "scratch", "script_arg", "script_args", "search_for_click", "search_procedure",
+ "seconds2samples", "select_all", "select_channel", "select_channel_hook", "select_sound", "select_sound_hook",
+ "selected_channel", "selected_data_color", "selected_graph_color", "selected_sound", "selection", "selection2mix",
+ "selection_chans", "selection_color", "Selection_context", "selection_creates_region", "selection_framples", "selection_maxamp",
+ "selection_maxamp_position", "selection_member?", "selection_members", "selection_position", "selection_rms", "selection_srate",
+ "selection?", "set_samples", "short_file_name", "show_axes", "show_controls", "show_disk_space",
+ "show_full_duration", "show_full_range", "show_grid", "show_indices", "show_listener", "show_marks",
+ "show_mix_waveforms", "show_selection", "show_selection_transform", "show_sonogram_cursor", "show_transform_peaks", "show_widget",
+ "show_y_zero", "silence_all_mixes", "silence_mixes", "sinc_train", "sinc_train?", "sinc_width",
+ "sine_env_channel", "sine_ramp", "singer", "smooth_channel", "smooth_selection", "smooth_sound",
+ "SMS_synthesis", "snap_mark_to_beat", "snap_marks", "snap_mix_to_beat", "snd2sample", "snd2sample?",
+ "snd_color", "snd_error", "snd_error_hook", "snd_font", "snd_gcs", "snd_help",
+ "snd_hooks", "_snd_opened_sound_", "snd_print", "snd_spectrum", "snd_tempnam", "snd_url",
+ "snd_urls", "snd_version", "snd_warning", "snd_warning_hook", "sndwarp", "sort!",
+ "sound2amp_env", "sound2integer", "sound_file_extensions", "sound_file?", "sound_files_in_directory", "sound_interp",
+ "sound_loop_info", "sound_properties", "sound_property", "sound_widgets", "sound?", "soundfont_info",
+ "sounds", "sounds2segment_data", "spectra", "spectral_interpolation", "spectral_polynomial", "spectro_hop",
+ "spectro_x_angle", "spectro_x_scale", "spectro_y_angle", "spectro_y_scale", "spectro_z_angle", "spectro_z_scale",
+ "spectrum", "spectrum2coeffs", "spectrum_end", "spectrum_start", "speed_control", "speed_control_bounds",
+ "speed_control_style", "speed_control_tones", "spot_freq", "square_wave", "square_wave?", "squelch_update",
+ "squelch_vowels", "srate", "src", "src_channel", "src_duration", "src_fit_envelope",
+ "src_mixes", "src_selection", "src_sound", "src?", "ssb_am", "ssb_am?",
+ "ssb_bank", "ssb_bank_env", "ssb_fm", "start_dac", "start_playing", "start_playing_hook",
+ "start_playing_selection_hook", "start_progress_report", "status_report", "stdin_prompt", "stereo2mono", "stereo_flute",
+ "stop_player", "stop_playing", "stop_playing_hook", "stop_playing_selection_hook", "stretch_envelope", "stretch_sound_via_dft",
+ "string2byte_vector", "string_position", "sublet", "superimpose_ffts", "swap_channels", "swap_selection_channels",
+ "symbol2dynamic_value", "symbol2value", "symbol_access", "symbol_table", "sync", "sync_everything",
+ "sync_max", "sync_style", "syncd_marks", "syncd_mixes", "syncup", "table_lookup",
+ "table_lookup?", "tanhsin", "tanhsin?", "tap", "tap?", "telephone",
+ "temp_dir", "text_focus_color", "time_graph_style", "time_graph_type", "time_graph?", "times2samples",
+ "tiny_font", "touch_tone", "trace", "tracking_cursor_style", "transform2float_vector", "transform2integer",
+ "transform_dialog", "transform_framples", "transform_graph_style", "transform_graph_type", "transform_graph?", "transform_normalization",
+ "transform_sample", "transform_size", "transform_type", "transform?", "transpose_mixes", "triangle_wave",
+ "triangle_wave?", "tubebell", "tubular_bell", "two_pole", "two_pole?", "two_tab",
+ "two_zero", "two_zero?", "type_of", "unbind_key", "_unbound_variable_hook_", "unclip_channel",
+ "undo", "undo_hook", "unlet", "unselect_all", "update_graphs", "update_hook",
+ "update_lisp_graph", "update_sound", "update_time_graph", "update_transform_graph", "upon_save_yourself", "user_interface_extensions",
+ "variable_display", "variable_graph?", "varlet", "vibrating_uniform_circular_string", "view_files_amp", "view_files_amp_env",
+ "view_files_dialog", "view_files_files", "view_files_select_hook", "view_files_selected_files", "view_files_sort", "view_files_speed",
+ "view_files_speed_style", "view_mixes_dialog", "view_regions_dialog", "view_sound", "voice_physical_model", "voiced2unvoiced",
+ "volterra_filter", "vox", "wave_train", "wave_train?", "wavelet_type", "waveshaping_voice",
+ "wavo_hop", "wavo_trace", "weighted_moving_average", "widget_position", "widget_size", "widget_text",
+ "window_height", "window_samples", "window_width", "window_x", "window_y", "with_background_processes",
+ "with_baffle", "with_file_monitor", "with_gl", "with_inset_graph", "with_interrupts", "with_let",
+ "with_local_hook", "with_menu_icons", "with_mix_tags", "with_pointer_focus", "with_relative_panes", "with_smpte_label",
+ "with_sound", "with_temporary_selection", "with_toolbar", "with_tooltips", "with_tracking_cursor", "with_verbose_cursor",
+ "x2position", "x_axis_label", "x_axis_style", "x_bounds", "x_position_slider", "x_zoom_slider",
+ "xb_open", "xramp_channel", "y2position", "y_axis_label", "y_bounds", "y_position_slider",
+ "y_zoom_slider", "z_transform", "zecho", "zero_", "zero_pad", "zero_phase",
+ "zip_sound", "zipper", "zoom_color", "zoom_focus_style"};
 #endif
 #if (!HAVE_EXTENSION_LANGUAGE)
 static const char **help_names = NULL;
@@ -772,13 +770,11 @@ static const char *help_urls[HELP_NAMES_SIZE] = {
  "extsnd.html#musosssetbuffers", "sndclm.html#mus-output?", "sndclm.html#mus-phase", "sndclm.html#mus-ramp",
  "sndclm.html#mus-rand-seed", "sndclm.html#mus-random", "sndclm.html#mus-reset", "sndclm.html#mus-run",
  "extsnd.html#mussampletypetostring", "extsnd.html#mussampletypename", "sndclm.html#mus-scaler", "extsnd.html#mussoundchans",
- "extsnd.html#mussoundcloseinput", "extsnd.html#mussoundcloseoutput", "extsnd.html#mussoundcomment", "extsnd.html#mussounddatalocation",
- "extsnd.html#mussounddatumsize", "extsnd.html#mussoundduration", "extsnd.html#mussoundforget", "extsnd.html#mussoundframples",
- "extsnd.html#mussoundheadertype", "extsnd.html#mussoundlength", "extsnd.html#mussoundloopinfo", "extsnd.html#mussoundmarkinfo",
- "extsnd.html#mussoundmaxamp", "extsnd.html#mussoundmaxampexists", "extsnd.html#mussoundopeninput", "extsnd.html#mussoundopenoutput",
- "extsnd.html#mussoundpath", "extsnd.html#mussoundpreload", "extsnd.html#mussoundprune", "extsnd.html#mussoundread",
- "extsnd.html#mussoundreopenoutput", "extsnd.html#mussoundreportcache", "extsnd.html#mussoundsampletype", "extsnd.html#mussoundsamples",
- "extsnd.html#mussoundseekframple", "extsnd.html#mussoundsrate", "extsnd.html#mussoundtypespecifier", "extsnd.html#mussoundwrite",
+ "extsnd.html#mussoundcomment", "extsnd.html#mussounddatalocation", "extsnd.html#mussounddatumsize", "extsnd.html#mussoundduration",
+ "extsnd.html#mussoundforget", "extsnd.html#mussoundframples", "extsnd.html#mussoundheadertype", "extsnd.html#mussoundlength",
+ "extsnd.html#mussoundloopinfo", "extsnd.html#mussoundmarkinfo", "extsnd.html#mussoundmaxamp", "extsnd.html#mussoundmaxampexists",
+ "extsnd.html#mussoundpath", "extsnd.html#mussoundpreload", "extsnd.html#mussoundprune", "extsnd.html#mussoundreportcache",
+ "extsnd.html#mussoundsampletype", "extsnd.html#mussoundsamples", "extsnd.html#mussoundsrate", "extsnd.html#mussoundtypespecifier",
  "extsnd.html#mussoundwritedate", "sndclm.html#mussrate", "sndclm.html#mus-width", "sndclm.html#mus-xcoeff",
  "sndclm.html#mus-xcoeffs", "sndclm.html#mus-ycoeff", "sndclm.html#mus-ycoeffs", "sndclm.html#n1cos",
  "sndclm.html#n1cos?", "extsnd.html#nameclickhook", "sndclm.html#nchoosekcos", "sndclm.html#nchoosekcos?",
@@ -1752,7 +1748,6 @@ static const char *snd_names[11596] = {
     "*clm-array-print-length*", "ws.scm",
     "*clm-channels*", "ws.scm",
     "*clm-clipped*", "ws.scm",
-    "*clm-default-frequency*", "ws.scm",
     "*clm-delete-reverb*", "ws.scm",
     "*clm-file-buffer-size*", "ws.scm",
     "*clm-file-name*", "ws.scm",
@@ -4093,7 +4088,6 @@ static const char *snd_names[11596] = {
     "exponentially-weighted-moving-average?", "generators.scm",
     "expsnd", "examp.scm",
     "expsrc", "examp.scm",
-    "exptmod", "numerics.scm",
     "fabs", "libm.scm",
     "factorial", "numerics.scm",
     "factorize", "primes.scm",
@@ -5112,6 +5106,7 @@ static const char *snd_names[11596] = {
     "gsl_multifit_linear_lcorner2", "libgsl.scm",
     "gsl_multifit_linear_lcurve", "libgsl.scm",
     "gsl_multifit_linear_lreg", "libgsl.scm",
+    "gsl_multifit_linear_rank", "libgsl.scm",
     "gsl_multifit_linear_rcond", "libgsl.scm",
     "gsl_multifit_linear_residuals", "libgsl.scm",
     "gsl_multifit_linear_solve", "libgsl.scm",
@@ -6294,6 +6289,7 @@ static const char *snd_names[11596] = {
     "jjcos", "generators.scm",
     "jjcos?", "generators.scm",
     "jl-reverb", "clm-ins.scm",
+    "jn", "libm.scm",
     "jncos", "generators.scm",
     "jncos?", "generators.scm",
     "jpcos", "generators.scm",
diff --git a/snd.h b/snd.h
index 7a45b93..322d312 100644
--- a/snd.h
+++ b/snd.h
@@ -21,6 +21,8 @@
 #include <time.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <stdint.h>
+#include <inttypes.h>
 
 #include "_sndlib.h"
 #include "xen.h"
@@ -53,11 +55,11 @@
 
 #include "snd-strings.h"
 
-#define SND_DATE "27-June-17"
+#define SND_DATE "3-Aug-17"
 #ifndef SND_VERSION
-#define SND_VERSION "17.5"
+#define SND_VERSION "17.6"
 #endif
 #define SND_MAJOR_VERSION "17"
-#define SND_MINOR_VERSION "5"
+#define SND_MINOR_VERSION "6"
 
 #endif
diff --git a/sndclm.html b/sndclm.html
index 90c8559..5b75f04 100644
--- a/sndclm.html
+++ b/sndclm.html
@@ -491,7 +491,7 @@ in the function definitions to indicate that the argument names are
 keywords, but the keywords themselves are optional.
 Take the make-oscil call, defined as:</p>
 <pre class="indented">
-make-oscil (frequency *clm-default-frequency*) (initial-phase 0.0)
+make-oscil (frequency 0.0) (initial-phase 0.0)
 </pre>
 <p>This says that make-oscil has two optional arguments, frequency (in Hz), and
 initial-phase (in radians).  The keywords associated with these values are
@@ -730,7 +730,7 @@ away in a macro:
 <div class="innerheader" id="oscildoc">oscil</div>
 
 <pre class="indented">
-<em class=def id="make-oscil">make-oscil</em> (frequency *clm-default-frequency*) (initial-phase 0.0)
+<em class=def id="make-oscil">make-oscil</em> (frequency 0.0) (initial-phase 0.0)
 <em class=def id="oscil">oscil</em> os (fm-input 0.0) (pm-input 0.0)
 <em class=def id="oscil?">oscil?</em> os
 
@@ -1264,7 +1264,12 @@ Say we want  a ramp moving from .3 to .5 during 1 second.
 </pre>
 <p>
 I find the second version easier to read.  The first is handy if you have a
-bunch of stored envelopes.  To specify the breakpoints, you can also use the form '((0 0) (100 1)).
+bunch of stored envelopes.  To specify the breakpoints, you can also use the form <code>'((0 0) (100 1))</code>.
+I used "scaler" decades ago because I didn't like the spelling "scalar".  According
+to the OED, "scalar" goes back to the 17th century, and derives from "scala", a ladder, ultimately from
+Latin.  "scaler" is also old, and refers to one who scales a mountain or a fish.  Well, I still
+like "scaler" better:  We're staring at a "peak"! "gain" looks like an escapee from the EE lab.  "volume" is too specific.
+Maybe "scl" or "*"?
 </p>
 
 <img src="pix/pyr.png" alt="an envelope">
@@ -1621,7 +1626,7 @@ step envelope in pitch: <a href="#rxyk!cos">brassy</a> in generators.scm
 
 <pre class="indented">
 <em class=def id="make-table-lookup">make-table-lookup</em> 
-        (frequency *clm-default-frequency*) ; table repetition rate in Hz
+        (frequency 0.0) ; table repetition rate in Hz
         (initial-phase 0.0)                 ; starting point in radians (pi = mid-table)
         wave                                ; a float-vector containing the signal
         (size *clm-table-size*)             ; table size if wave not specified
@@ -2003,7 +2008,7 @@ See also <a href="sndscm.html#granidoc">grani</a>.
 
 <pre class="indented">
 <em class=def id="make-polywave">make-polywave</em> 
-         (frequency *clm-default-frequency*) 
+         (frequency 0.0) 
          (partials '(1 1))                   ; a list of harmonic numbers and their associated amplitudes
          (type mus-chebyshev-first-kind)     ; Chebyshev polynomial choice
          xcoeffs ycoeffs                     ; tn/un for tu-sum case
@@ -2012,7 +2017,7 @@ See also <a href="sndscm.html#granidoc">grani</a>.
 <em class=def id="polywave?">polywave?</em> w
 
 <em class=def id="make-polyshape">make-polyshape</em> 
-        (frequency *clm-default-frequency*) 
+        (frequency 0.0) 
         (initial-phase 0.0) 
         coeffs 
         (partials '(1 1)) 
@@ -2245,7 +2250,7 @@ Here is a somewhat low-level example:
 </p>
 
 <pre class="indented">
-(define* (make-band-limited-triangle-wave (frequency *clm-default-frequency*) (order 1))
+(define* (make-band-limited-triangle-wave (frequency 0.0) (order 1))
   (do ((freqs ())
        (i 1 (+ i 1))
        (j 1 (+ j 2)))
@@ -2756,19 +2761,19 @@ See also <a href="#polyoid">polyoid and noid</a> in generators.scm.
 <div class="innerheader" id="sawtoothdoc">sawtooth-wave, triangle-wave, pulse-train, square-wave</div>
 
 <pre class="indented">
-<em class=def id="make-triangle-wave">make-triangle-wave</em> (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase pi)
+<em class=def id="make-triangle-wave">make-triangle-wave</em> (frequency 0.0) (amplitude 1.0) (initial-phase pi)
 <em class=def id="triangle-wave">triangle-wave</em> s (fm 0.0)
 <em class=def id="triangle-wave?">triangle-wave?</em> s
 
-<em class=def id="make-square-wave">make-square-wave</em> (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase 0)
+<em class=def id="make-square-wave">make-square-wave</em> (frequency 0.0) (amplitude 1.0) (initial-phase 0)
 <em class=def id="square-wave">square-wave</em> s (fm  0.0)
 <em class=def id="square-wave?">square-wave?</em> s
 
-<em class=def id="make-sawtooth-wave">make-sawtooth-wave</em> (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase pi)
+<em class=def id="make-sawtooth-wave">make-sawtooth-wave</em> (frequency 0.0) (amplitude 1.0) (initial-phase pi)
 <em class=def id="sawtooth-wave">sawtooth-wave</em> s (fm 0.0)
 <em class=def id="sawtooth-wave?">sawtooth-wave?</em> s
 
-<em class=def id="make-pulse-train">make-pulse-train</em> (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase (* 2 pi))
+<em class=def id="make-pulse-train">make-pulse-train</em> (frequency 0.0) (amplitude 1.0) (initial-phase (* 2 pi))
 <em class=def id="pulse-train">pulse-train</em> s (fm 0.0)
 <em class=def id="pulse-train?">pulse-train?</em> s
 </pre>
@@ -3227,11 +3232,11 @@ for more dicussion about using these generators as FM modulators.
 <div class="innerheader" id="ncosdoc">ncos and nsin</div>
 
 <pre class="indented">
-<em class=def id="make-ncos">make-ncos</em> (frequency *clm-default-frequency*) (n 1)
+<em class=def id="make-ncos">make-ncos</em> (frequency 0.0) (n 1)
 <em class=def id="ncos">ncos</em> nc (fm 0.0)
 <em class=def id="ncos?">ncos?</em> nc
 
-<em class=def id="make-nsin">make-nsin</em> (frequency *clm-default-frequency*) (n 1)
+<em class=def id="make-nsin">make-nsin</em> (frequency 0.0) (n 1)
 <em class=def id="nsin">nsin</em> ns (fm 0.0)
 <em class=def id="nsin?">nsin?</em> ns
 </pre>
@@ -4078,14 +4083,14 @@ Don't shy away from the sums to infinity just because you've heard shouting abou
 
 <pre class="indented">
 <em class=def id="make-nrxysin">make-nrxysin</em> 
-      (frequency *clm-default-frequency*) 
+      (frequency 0.0) 
       (ratio 1.0)               ; ratio between frequency and the spacing between successive sidebands
       (n 1)                     ; number of sidebands
       (r .5)                    ; amplitude ratio between successive sidebands (-1.0 < r < 1.0)
 <em class=def id="nrxysin">nrxysin</em> s (fm 0.0)
 <em class=def id="nrxysin?">nrxysin?</em> s
 
-<em class=def id="make-nrxycos">make-nrxycos</em> (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (r .5)
+<em class=def id="make-nrxycos">make-nrxycos</em> (frequency 0.0) (ratio 1.0) (n 1) (r .5)
 <em class=def id="nrxycos">nrxycos</em> s (fm 0.0)
 <em class=def id="nrxycos?">nrxycos?</em> s
 </pre>
@@ -4272,7 +4277,7 @@ In the graph, r is 0 at the midpoint, r goes from -1.0 to 1.0 along the horizont
 <div class="innerheader" id="ssb-amdoc">ssb-am</div>
 
 <pre class="indented">
-<em class=def id="make-ssb-am">make-ssb-am</em> (frequency *clm-default-frequency*) (order 40)
+<em class=def id="make-ssb-am">make-ssb-am</em> (frequency 0.0) (order 40)
 <em class=def id="ssb-am">ssb-am</em> gen (insig 0.0) (fm 0.0)
 <em class=def id="ssb-am?">ssb-am?</em> gen
 </pre>
@@ -4497,7 +4502,7 @@ We would replace the current make-ssb-am line with:
 
 <pre class="indented">
 <em class=def id="make-wave-train">make-wave-train</em> 
-        (frequency *clm-default-frequency*) 
+        (frequency 0.0) 
         (initial-phase 0.0) 
         wave 
         (size *clm-table-size*) 
@@ -4699,7 +4704,7 @@ trigger, and mus-reset to restart an envelope.
 
 <pre class="indented">
 <em class=def id="make-rand">make-rand</em> 
-        (frequency *clm-default-frequency*) ; frequency at which new random numbers occur
+        (frequency 0.0) ; frequency at which new random numbers occur
         (amplitude 1.0)                     ; numbers are between -amplitude and amplitude
         (envelope '(-1 1 1 1))              ; distribution envelope (uniform distribution is the default)
         distribution                        ; pre-computed distribution
@@ -4708,7 +4713,7 @@ trigger, and mus-reset to restart an envelope.
 <em class=def id="rand?">rand?</em> r
 
 <em class=def id="make-rand-interp">make-rand-interp</em> 
-        (frequency *clm-default-frequency*) 
+        (frequency 0.0) 
         (amplitude 1.0)
         (envelope '(-1 1 1 1)
         distribution)
@@ -7334,7 +7339,7 @@ moving-spectrum in generators.scm.
 
 <pre class="indented">
 <em class=def id="make-asymmetric-fm">make-asymmetric-fm</em> 
-      (frequency *clm-default-frequency*) 
+      (frequency 0.0) 
       (initial-phase 0.0) 
       (r 1.0)             ; amplitude ratio between successive sidebands
       (ratio 1.0)         ; ratio between carrier and sideband spacing
@@ -8244,7 +8249,7 @@ frequency and the spacing between successive sidebands).
 
 <pre class="indented">
 <em class=def id="make-polyoid">make-polyoid</em> 
-         (frequency *clm-default-frequency*) 
+         (frequency 0.0) 
          (partial-amps-and-phases '(1 1 0.0))   ; a list of harmonic numbers, their associated amplitudes, and their initial-phases
 
 <em class=def id="polyoid">polyoid</em> w (fm 0.0)
@@ -9581,7 +9586,7 @@ variants of those given above.
 
 
 <pre class="indented">
-<em class=def id="make-tanhsin">make-tanhsin</em> (frequency *clm-default-frequency*) (r 1.0) (initial-phase 0.0)
+<em class=def id="make-tanhsin">make-tanhsin</em> (frequency 0.0) (r 1.0) (initial-phase 0.0)
 <em class=def id="tanhsin">tanhsin</em> gen (fm 0.0)
 <em class=def id="tanhsin?">tanhsin?</em> gen
 </pre>
diff --git a/sndins/sndins.c b/sndins/sndins.c
index 78bae2c..2b978a6 100644
--- a/sndins/sndins.c
+++ b/sndins/sndins.c
@@ -860,7 +860,7 @@ c_make_fcomb(Xen args)
 		kargs[i] = Xen_undefined;
 	for (i = 0; i < lst_len; i++)
 		kargs[i] = Xen_list_ref(args, i);
-	vals = mus_optkey_unscramble(S_make_fcomb, argn, keys, kargs, orig_arg);
+	vals = mus_optkey_unscramble(S_make_fcomb, lst_len, argn, keys, kargs, orig_arg);
 	if (vals > 0) {
 		keyn = 0;
 		scaler = mus_optkey_to_float(keys[keyn], S_make_fcomb,
@@ -1752,7 +1752,7 @@ c_fm_violin(Xen args)
 		kargs[i] = Xen_undefined;
 	for (i = 0; i < lst_len; i++)
 		kargs[i] = Xen_list_ref(args, i);
-	vals = mus_optkey_unscramble(S_fm_violin, V_LAST_KEY, keys, kargs,
+	vals = mus_optkey_unscramble(S_fm_violin, lst_len, V_LAST_KEY, keys, kargs,
 	    orig_arg);
 	if (vals > 0) {
 		i = 0;
@@ -2013,7 +2013,7 @@ c_jc_reverb(Xen args)
 		kargs[i] = Xen_undefined;
 	for (i = 0; i < lst_len; i++)
 		kargs[i] = Xen_list_ref(args, i);
-	vals = mus_optkey_unscramble(S_jc_reverb, JC_LAST_KEY, keys, kargs,
+	vals = mus_optkey_unscramble(S_jc_reverb, lst_len, JC_LAST_KEY, keys, kargs,
 	    orig_arg);
 	if (vals > 0) {
 		i = 0;
@@ -2135,7 +2135,7 @@ c_nrev(Xen args)
 		kargs[i] = Xen_undefined;
 	for (i = 0; i < lst_len; i++)
 		kargs[i] = Xen_list_ref(args, i);
-	vals = mus_optkey_unscramble(S_nrev, N_LAST_KEY, keys, kargs, orig_arg);
+	vals = mus_optkey_unscramble(S_nrev, let_len, N_LAST_KEY, keys, kargs, orig_arg);
 	if (vals > 0) {
 		i = 0;
 		reverb_factor = mus_optkey_to_float(keys[i], S_nrev,
@@ -2270,7 +2270,7 @@ c_freeverb(Xen args)
 		kargs[i] = Xen_undefined;
 	for (i = 0; i < lst_len; i++)
 		kargs[i] = Xen_list_ref(args, i);
-	vals = mus_optkey_unscramble(S_freeverb, F_LAST_KEY, keys, kargs,
+	vals = mus_optkey_unscramble(S_freeverb, let_len, F_LAST_KEY, keys, kargs,
 	    orig_arg);
 	if (vals > 0) {
 		i = 0;
diff --git a/sndlib.h b/sndlib.h
index 9c164b8..08d4a4f 100644
--- a/sndlib.h
+++ b/sndlib.h
@@ -2,8 +2,8 @@
 #define SNDLIB_H
 
 #define SNDLIB_VERSION 24
-#define SNDLIB_REVISION 4
-#define SNDLIB_DATE "1-Sep-15"
+#define SNDLIB_REVISION 5
+#define SNDLIB_DATE "27-Jun-17"
 
 #include <stdio.h>
 #include <time.h>
diff --git a/sndscm.html b/sndscm.html
index 665d592..3591593 100644
--- a/sndscm.html
+++ b/sndscm.html
@@ -8806,10 +8806,10 @@ of harmonics, then the minimum peak amplitude, then (log peak n).
 123   11.016   0.4986  | 123   11.088  0.4999   | 12   3.787   0.5359   | 10    3.602   0.5565
 125   11.105   0.4986  | 127   11.268  0.5000   | 13   3.973   0.5378   | 5     2.477   0.5635
 7     2.639    0.4988  | 112   10.582  0.5000   | 11   3.656   0.5406   | 4     2.192   0.5662
-256   16.008   0.5001  | 3     1.739   0.5035   | 10   3.559   0.5513   | 8     3.263   0.5687
-512   23.443   0.5057  | 512   23.717  0.5075   | 8    3.198   0.5590   | 256   23.955  0.5728
-1024  33.379   0.5061  | 256   16.933  0.5102   | 9    3.454   0.5641   | 7     3.062   0.5750
-2048  49.897   0.5128  | 1024  34.393  0.5104   | 7    3.047   0.5726   | 6     2.805   0.5757
+256   16.004   0.5000  | 3     1.739   0.5035   | 10   3.559   0.5513   | 8     3.263   0.5687
+512   23.415   0.5055  | 512   23.717  0.5075   | 8    3.198   0.5590   | 256   23.955  0.5728
+1024  33.340   0.5059  | 256   16.933  0.5102   | 9    3.454   0.5641   | 7     3.062   0.5750
+2048  49.598   0.5120  | 1024  34.393  0.5104   | 7    3.047   0.5726   | 6     2.805   0.5757
 4     2.039    0.5139  | 2048  49.287  0.5112   | 6    2.837   0.5820   | 512   38.603  0.5856
 6     2.549    0.5223  | 4     2.045   0.5161   | 5    2.605   0.5948   | 2048  95.904  0.5985
 5     2.343    0.5292  | 6     2.523   0.5164   | 3    2.021   0.6406   | 1024  65.349  0.6030
@@ -11533,7 +11533,6 @@ snd> 0.0 1.0 330.0 0.5 ' simp :play #f :channels 2 with-sound
 (define *clm-reverb-data*        ())
 (define *clm-reverb-file-name*   "test.rev")
 (define *clm-table-size*         512)
-(define *clm-default-frequency*  0.0)
 (define *clm-file-buffer-size*   65536)
 (define *clm-locsig-type*        mus-interp-linear)
 (define *clm-clipped*            #t)
diff --git a/tools/crossref.c b/tools/crossref.c
index e3978eb..430f782 100644
--- a/tools/crossref.c
+++ b/tools/crossref.c
@@ -340,6 +340,8 @@ int main(int argc, char **argv)
   add_file("xm.c");
   add_file("gl.c");
   add_file("xg.c");
+  
+  add_file("xen.h");
 
   add_file("cmus.c");
   add_file("ffi.lisp");
@@ -352,7 +354,7 @@ int main(int argc, char **argv)
   add_file("tools/gcall.c");
 
   add_file("/home/bil/dist/snd/s7webserver/s7webserver.cpp");
-  add_file("/home/bil/test/scheme/radium-3.4.2/embedded_scheme/scheme.cpp");
+  add_file("/home/bil/test/radium/radium-master/embedded_scheme/scheme.cpp");
 
   add_file("/home/bil/test/cm/src/CmSupport.cpp");
   add_file("/home/bil/test/cm/src/Scheme.cpp");
diff --git a/tools/ffitest.c b/tools/ffitest.c
index c9fb6ec..f95b46d 100644
--- a/tools/ffitest.c
+++ b/tools/ffitest.c
@@ -7,6 +7,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdarg.h>
+#include <inttypes.h>
 
 #include "s7.h"
 
@@ -156,6 +157,22 @@ static s7_pointer plus(s7_scheme *sc, s7_pointer args)
   return(TO_S7_INT(2 * s7_integer(s7_car(args)) + s7_integer(s7_car(s7_cdr(args)))));
 }
 
+static s7_pointer plus1(s7_scheme *sc, s7_pointer args) /* check recursion in "unsafe" case */
+{
+  s7_pointer d;
+  if (s7_integer(s7_car(args)) == 4)
+    d = s7_apply_function_star(sc, s7_name_to_value(sc, "plus1"), 
+			       s7_list(sc, 3, 
+				       s7_make_integer(sc, 1), 
+				       s7_make_integer(sc, 2), 
+				       s7_make_integer(sc, 3)));
+  else d = s7_make_integer(sc, 0);
+  return(s7_make_integer(sc, s7_integer(s7_car(args)) + 
+			 s7_integer(s7_cadr(args)) + 
+			 s7_integer(s7_caddr(args)) + 
+			 s7_integer(d)));
+}
+
 static s7_pointer mac_plus(s7_scheme *sc, s7_pointer args)
 {
   /* (define-macro (plus a b) `(+ ,a ,b)) */
@@ -998,6 +1015,18 @@ int main(int argc, char **argv)
     {fprintf(stderr, "%d: %s is not an integer?\n", __LINE__, s1 = TO_STR(p)); free(s1);}
   if (s7_integer(p) != 4)
     {fprintf(stderr, "%d: %s is not 4?\n", __LINE__, s1 = TO_STR(p)); free(s1);}
+
+  s7_define_function_star(sc, "plus1", plus1, "a b c", "an example of define* from C");
+  {
+    s7_int val;
+    val = s7_integer(s7_apply_function_star(sc, s7_name_to_value(sc, "plus1"),
+					    s7_list(sc, 3,
+						    s7_make_integer(sc, 4),
+						    s7_make_integer(sc, 5),
+						    s7_make_integer(sc, 6))));
+    if (val != 21)
+      fprintf(stderr, "plus1: %" PRId64 "\n", val);
+  }
   
   p = s7_apply_function(sc, s7_name_to_value(sc, "plus"), s7_cons(sc, s7_make_keyword(sc, "blue"), s7_cons(sc, TO_S7_INT(2), s7_nil(sc))));
   if (!s7_is_integer(p))
@@ -1082,11 +1111,11 @@ int main(int argc, char **argv)
     dims = s7_vector_dimensions(p1);
     offs = s7_vector_offsets(p1);
     els = s7_vector_elements(p1);
-    if (dims[0] != 2) fprintf(stderr, "%d: dims[0]: %lld?\n", __LINE__, dims[0]);
-    if (dims[1] != 3) fprintf(stderr, "%d: dims[1]: %lld?\n", __LINE__, dims[1]);
-    if (dims[2] != 4) fprintf(stderr, "%d: dims[2]: %lld?\n", __LINE__, dims[2]);
-    if (offs[0] != 12) fprintf(stderr, "%d: offs[0]: %lld?\n", __LINE__, offs[0]);
-    if (offs[1] != 4) fprintf(stderr, "%d: offs[1]: %lld?\n", __LINE__, offs[1]);
+    if (dims[0] != 2) fprintf(stderr, "%d: dims[0]: %" PRId64 "?\n", __LINE__, dims[0]);
+    if (dims[1] != 3) fprintf(stderr, "%d: dims[1]: %" PRId64 "?\n", __LINE__, dims[1]);
+    if (dims[2] != 4) fprintf(stderr, "%d: dims[2]: %" PRId64 "?\n", __LINE__, dims[2]);
+    if (offs[0] != 12) fprintf(stderr, "%d: offs[0]: %" PRId64 "?\n", __LINE__, offs[0]);
+    if (offs[1] != 4) fprintf(stderr, "%d: offs[1]: %" PRId64 "?\n", __LINE__, offs[1]);
     if (s7_integer(p = els[12 + 4 + 1]) != 32)
       {fprintf(stderr, "%d: %s is not 32?\n", __LINE__, s1 = TO_STR(p)); free(s1);}
   }
diff --git a/tools/gcall.c b/tools/grepl.c
similarity index 65%
copy from tools/gcall.c
copy to tools/grepl.c
index e523f53..a760709 100644
--- a/tools/gcall.c
+++ b/tools/grepl.c
@@ -15,7 +15,7 @@ static s7_scheme *s7;
 
 static s7_pointer wrap_glistener(glistener *g)
 {
-  return(s7_make_c_pointer(s7, (void *)g));
+  return(s7_make_c_pointer_with_type(s7, (void *)g, s7_make_symbol(s7, "glistener*"), s7_f(s7)));
 }
 
 static glistener *unwrap_glistener(s7_pointer p)
@@ -23,6 +23,18 @@ static glistener *unwrap_glistener(s7_pointer p)
   return((glistener *)s7_c_pointer(p));
 }
 
+
+static s7_pointer g_glistener_text_widget(s7_scheme *sc, s7_pointer args) 
+{
+  return(s7_make_c_pointer_with_type(sc, glistener_text_widget(unwrap_glistener(s7_car(args))), s7_make_symbol(sc, "GtkWidget*"), s7_f(sc)));
+}
+
+static s7_pointer g_glistener_text_buffer(s7_scheme *sc, s7_pointer args) 
+{
+  return(s7_make_c_pointer_with_type(sc, glistener_text_buffer(unwrap_glistener(s7_car(args))), s7_make_symbol(sc, "GtkTextBuffer*"), s7_f(sc)));
+}
+
+
 static s7_pointer g_evaluate(s7_scheme *sc, s7_pointer args)
 {
   char *str;
@@ -105,8 +117,17 @@ static s7_pointer g_set_prompt(s7_scheme *sc, s7_pointer args)
   return(s7_cadr(args));
 }
 
-static void glistener_init(glistener *g1, glistener *g2)
+static s7_pointer g_glistener_set_font(s7_scheme *sc, s7_pointer args)
+{
+  glistener_set_font(unwrap_glistener(s7_car(args)), pango_font_description_from_string(s7_string(s7_cadr(args))));
+  return(s7_cadr(args));
+}
+
+static void glistener_init(glistener *g1)
 {
+  s7_define_function(s7, "glistener-text-widget", g_glistener_text_widget, 1, 0, false, "(glistener-text-widget g)");
+  s7_define_function(s7, "glistener-text-buffer", g_glistener_text_buffer, 1, 0, false, "(glistener-text-buffer g)");
+  s7_define_function(s7, "glistener-set-font", g_glistener_set_font, 2, 0, false, "(glistener-set-font g font)");
   s7_define_function(s7, "append-text", g_append_text, 2, 0, false, "(append-text g txt)");
   s7_define_function(s7, "insert-text", g_insert_text, 2, 0, false, "(insert-text g txt)");
   s7_define_function(s7, "cursor-position", g_cursor_position, 1, 0, false, "(cursor-position g)");
@@ -119,12 +140,11 @@ static void glistener_init(glistener *g1, glistener *g2)
   s7_define_function(s7, "complete", g_complete, 1, 0, false, "(complete g)");
   s7_define_function(s7, "scroll", g_scroll_to_end, 1, 0, false, "(scroll g)");
   s7_define_function(s7, "clear", g_clear, 1, 0, false, "(clear g)");
-  s7_define_variable(s7, "*g1*", wrap_glistener(g1));
-  s7_define_variable(s7, "*g2*", wrap_glistener(g2));
+  s7_define_variable(s7, "*g*", wrap_glistener(g1));
 }
 
 static GdkCursor *arrow_cursor;
-static glistener *g1, *g2;
+static glistener *g1;
 
 static gint quit_repl(GtkWidget *w, GdkEvent *event, gpointer context) {exit(0);}
 
@@ -145,7 +165,6 @@ static void evaluator(glistener *g, const char *text)
       msg = (char *)calloc(strlen(errmsg) + 1, sizeof(char));
       strcpy(msg, errmsg);
       glistener_set_cursor_shape(g1, arrow_cursor); /* make sure we undo the wait cursor if an error occurred */
-      glistener_set_cursor_shape(g2, arrow_cursor);
     }
   
   s7_close_output_port(s7, s7_current_error_port(s7));
@@ -193,9 +212,10 @@ static void completer(glistener *g, bool (*symbol_func)(const char *symbol_name,
   s7_for_each_symbol_name(s7, symbol_func, data);
 }
 
-int main(int argc, char **argv)
+
+int main(int argc, char **argv) 
 {
-  GtkWidget *shell, *frame1, *frame2, *vb;
+  GtkWidget *shell, *frame, *vb, *hb;
 
   s7 = s7_init();  
 
@@ -203,48 +223,57 @@ int main(int argc, char **argv)
   gtk_init();
 #else
   gtk_init(&argc, &argv);
-#endif  
+#endif 
 
   shell = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   g_signal_connect(G_OBJECT(shell), "delete_event", G_CALLBACK(quit_repl), NULL);
 
-#if (!GTK_CHECK_VERSION(3, 0, 0))
-  vb = gtk_vbox_new(false, 0);
-#else
+  hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+  gtk_container_add(GTK_CONTAINER(shell), hb);
+  gtk_widget_show(hb);
+
   vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
-#endif
-  gtk_container_add(GTK_CONTAINER(shell), vb);
+  gtk_container_add(GTK_CONTAINER(hb), vb);
   gtk_widget_show(vb);
 
-  frame1 = gtk_frame_new(NULL);
-  gtk_frame_set_shadow_type(GTK_FRAME(frame1), GTK_SHADOW_ETCHED_IN);
-  gtk_widget_show(frame1);
-  gtk_container_add(GTK_CONTAINER(vb), frame1);
+  frame = gtk_frame_new(NULL);
+  gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
+  gtk_widget_show(frame);
+  gtk_container_add(GTK_CONTAINER(vb), frame);
 
-  frame2 = gtk_frame_new(NULL);
-  gtk_frame_set_shadow_type(GTK_FRAME(frame2), GTK_SHADOW_ETCHED_IN);
-  gtk_widget_show(frame2);
-  gtk_container_add(GTK_CONTAINER(vb), frame2);
+  s7_define_variable(s7, "grepl:hbox", s7_make_c_pointer_with_type(s7, hb, s7_make_symbol(s7, "GtkBox*"), s7_f(s7)));
+  s7_define_variable(s7, "grepl:vbox", s7_make_c_pointer_with_type(s7, vb, s7_make_symbol(s7, "GtkBox*"), s7_f(s7)));
+  s7_define_variable(s7, "grepl:shell", s7_make_c_pointer_with_type(s7, shell, s7_make_symbol(s7, "GtkWindow*"), s7_f(s7)));
+  s7_define_variable(s7, "grepl:frame", s7_make_c_pointer_with_type(s7, frame, s7_make_symbol(s7, "GtkFrame*"), s7_f(s7)));
 
-  g1 = glistener_new(frame1, listener_init);
+  g1 = glistener_new(frame, listener_init);
   glistener_set_evaluator(g1, evaluator);
   glistener_set_helper(g1, helper);
   glistener_set_completer(g1, completer);
 
-  g2 = glistener_new(frame2, listener_init);
-  glistener_set_evaluator(g2, evaluator);
-  glistener_set_helper(g2, helper);
-  glistener_set_completer(g2, completer);
-
-  glistener_init(g1, g2);
+  glistener_init(g1);
   arrow_cursor = GDK_CURSOR_NEW(GDK_LEFT_PTR);
 
   gtk_widget_show(shell);
-  gdk_window_resize(gtk_widget_get_window(shell), 500, 700);
+  gtk_window_resize(GTK_WINDOW(shell), 600, 400);
+
   gtk_main();
 }
 
-/* in gtk-2: gcc gcall.c -o gcall s7.o glistener.o `pkg-config --libs gtk+-2.0 --cflags` -lm -ldl
-   in gtk-3: gcc gcall.c -o gcall s7.o glistener.o `pkg-config --libs gtk+-3.0 --cflags` -lm -ldl
+/* to build glistener.o: gcc glistener.c -c `pkg-config --libs gtk+-3.0 --cflags` -lm -ldl
+ */
+/* in gtk-2: gcc grepl.c -o grepl s7.o glistener.o -Wl,-export-dynamic `pkg-config --libs gtk+-2.0 --cflags` -lm -ldl
+   in gtk-3: gcc grepl.c -o grepl s7.o glistener.o -Wl,-export-dynamic `pkg-config --libs gtk+-3.0 --cflags` -lm -ldl
 */
-
+/* (load "/home/bil/test/libxm/xg.so" (inlet 'init_func 'Init_libxg))
+ *   previous: (gtk_window_resize (GTK_WINDOW (list 'GtkContainer_ grepl:shell)) 600 600)
+ *   the list is for xg (ancient type checking kludge)
+ * (gtk_window_resize (GTK_WINDOW grepl:shell) 600 600)
+ * (load "libgtk_s7.so" (define *gtk* (inlet 'init_func 'libgtk_s7_init)))
+ * (load "/home/bil/cl/libgtk_s7.so" (define *gtk* (inlet 'init_func 'libgtk_s7_init)))
+ * (glistener-set-font *g* "Monospace 14")
+ *
+ * gcc -c libgtk_s7.c -o libgtk_s7.o -I. -fPIC `pkg-config --libs gtk+-3.0 --cflags` -lm -ldl
+ * gcc libgtk_s7.o -shared -o libgtk_s7.so
+ * (load "libgtk_s7.so" (define *gtk* (inlet 'init_func 'libgtk_s7_init)))
+ */
diff --git a/tools/gtk-header-diffs b/tools/gtk-header-diffs
index 88ef0f0..3536520 100755
--- a/tools/gtk-header-diffs
+++ b/tools/gtk-header-diffs
@@ -1,7 +1,7 @@
 #!/bin/csh -f
 
-set gtkolddir = /home/bil/test/gtk+-3.90.0
-set gtknewdir = /home/bil/test/gtk+-3.91.0
+set gtkolddir = /home/bil/test/gtk+-3.91.0
+set gtknewdir = /home/bil/test/gtk+-3.91.1
 # set pangoolddir = /home/bil/test/pango-1.36.8
 # set pangonewdir = /home/bil/test/pango-1.40.2
 # set glibolddir = /home/bil/test/glib-2.39.3
diff --git a/tools/make-index.scm b/tools/make-index.scm
index 8615315..4d058db 100644
--- a/tools/make-index.scm
+++ b/tools/make-index.scm
@@ -549,7 +549,6 @@
     (*clm-player* "ws.scm")
     (*clm-notehook* "ws.scm")
     (*clm-with-sound-depth* "ws.scm")
-    (*clm-default-frequency* "ws.scm")
     (*clm-delete-reverb* "ws.scm")
     (*to-snd* "ws.scm")
     (*clm-search-list* "ws.scm")
@@ -1015,6 +1014,21 @@
 	  ((= i n))
         (set! (tnames ctr)
 	      (clean-and-downcase-first-char (names i) capitalized (files i)))
+#|	
+	;; catch forgotten stuff
+	(let ((old-name (ind-sortby (tnames i))))
+	  (when (not (char-position " ,(" old-name))
+	    (let ((&pos (char-position #\& old-name)))
+	      (when &pos
+		(set! old-name (string-append (substring old-name 0 &pos) (string #\>) (substring old-name (+ &pos 4)))))
+	      (set! old-name (string->symbol old-name))
+	      (unless (or (memq old-name '(list->float-vector float-vector-fill! float-vector-length float-vector-reverse! float-vector->list ;vct.c but not s7
+					   min-db filter-control-in-db enved-in-db ; -dB in s7
+					   init-ladspa list-ladspa analyse-ladspa ladspa-descriptor apply-ladspa
+					   bignum? bignum))
+			  (defined? old-name))
+		  (format *stderr* "??: ~A~%" old-name)))))
+|#
 	(if (positive? (length (ind-sortby (tnames ctr))))
 	    (set! ctr (+ ctr 1))))
 
@@ -1115,7 +1129,7 @@
 	       (ctr 0)
 	       (offset (ceiling (/ n cols)))
 	       (i 0 (+ i 1)))
-	      ((>= row offset))
+	      ((= row offset))
 	    (let ((x (+ row (* ctr offset))))
 	      (if (>= x n)
 		  (format ofil "~%")
diff --git a/tools/makegl.scm b/tools/makegl.scm
index 893026e..1af27f9 100755
--- a/tools/makegl.scm
+++ b/tools/makegl.scm
@@ -934,8 +934,13 @@
 
 (hey "/* -------------------------------- initialization -------------------------------- */~%~%")
 (hey "static bool gl_already_inited = false;~%~%")
+(hey "#if HAVE_SCHEME~%")
+(hey "void Init_libgl(s7_scheme *sc);~%")
+(hey "void Init_libgl(s7_scheme *sc)~%")
+(hey "#else~%")
 (hey "void Init_libgl(void);~%")
 (hey "void Init_libgl(void)~%")
+(hey "#endif~%")
 (hey "{~%")
 (hey "  if (!gl_already_inited)~%")
 (hey "    {~%")
diff --git a/tools/makexg.scm b/tools/makexg.scm
index 1be5401..f18387e 100755
--- a/tools/makexg.scm
+++ b/tools/makexg.scm
@@ -1,13 +1,33 @@
 ;;; makexg.scm creates the gtk2|3/gdk/pango/glib/cairo bindings using xgdata.scm, writes xg.c
 
 (define xg-file (open-output-file "xg.c"))
+(define lib-file (open-output-file "libgtk_s7.c"))
 
-(define-macro (hey . args)
-  (cons 'format (cons 'xg-file args)))
+(define (hey . args)
+  (apply format xg-file args))
 
 (define (heyc arg)
   (display arg xg-file))
 
+
+;;; ----------------
+(define (hay . args)
+  (apply format lib-file args))
+
+(define (hayc arg)
+  (display arg lib-file))
+
+
+(define (hoy . args)
+  (apply format xg-file args)
+  (apply format lib-file args))
+
+(define (hoyc arg)
+  (display arg xg-file)
+  (display arg lib-file))
+;;; ----------------
+
+
 (define names (make-hash-table))
 (define types ())
 (define ints ())
@@ -203,15 +223,15 @@
 		    (remove-if p (cdr lst))))))
 
 (define (ref-arg? arg)
-  (and (= (length arg) 3)
+  (and (eqv? (length arg) 3)
        (string? (caddr arg))))
 
 (define (null-arg? arg)
-  (and (= (length arg) 3)
+  (and (eqv? (length arg) 3)
        (eq? (caddr arg) 'null)))
 
 (define (opt-arg? arg)
-  (and (= (length arg) 3)
+  (and (eqv? (length arg) 3)
        (eq? (caddr arg) 'opt)))
 
 (define (ref-args args)
@@ -552,6 +572,7 @@
 	(cons "cairo_extend_t" "INT")
 	(cons "cairo_filter_t" "INT")
 	(cons "cairo_bool_t" "INT")
+	(cons "cairo_text_cluster_flags_t" "INT")
 
 	(cons "bool" "BOOLEAN")
 	
@@ -591,6 +612,15 @@
 	(cons "GdkDevicePadFeature" "INT")
 	(cons "GdkAnchorHints" "INT")
 	(cons "GtkPadActionType" "INT")
+
+	(cons "GtkUnit" "INT")
+	(cons "GtkPropagationPhase" "INT")
+	(cons "GtkPageOrientation" "INT")
+	(cons "GtkEventSequenceState" "INT")
+	(cons "GtkPageSet" "INT")
+	(cons "GtkPrintPages" "INT")
+	(cons "GtkPrintDuplex" "INT")
+	(cons "GtkPrintQuality" "INT")
 	))
 
 (define (c-to-xen-macro-name type str)
@@ -648,23 +678,23 @@
 		       (lambda (func)
 			 (string=? type (symbol->string (car func)))))
 		      (string=? type "GCallback")))
-	     (hey "Xm_type~A(~A, ~A)~%" 
-		  (cond ((or (has-stars type) 
-			     (member type '("gpointer" "GClosureNotify") string=?))
-			 (cond ((member type no-c-to-xen)
-				"_Ptr_1")
-			       ((member type no-xen-p)
-				(if (member type no-xen-to-c) "_Ptr_2" "_Ptr_no_P"))
-			       ((member type '("guint8*" "GtkRecentFilterInfo*") string=?)
-				"_Ptr_const")
-			       (else "_Ptr")))
-			((member type no-c-to-xen)
-			 "_1")
-			((not (member type no-xen-p)) "")
-			((member type no-xen-to-c) "_no_p_2")
-			(else "_no_p"))
-		  (no-stars type) 
-		  type)))))
+	     (let ((argwrap (cond ((or (has-stars type) 
+				       (member type '("gpointer" "GClosureNotify") string=?))
+				   (cond ((member type no-c-to-xen)
+					  "_Ptr_1")
+					 ((member type no-xen-p)
+					  (if (member type no-xen-to-c) "_Ptr_2" "_Ptr_no_P"))
+					 ((member type '("guint8*" "GtkRecentFilterInfo*") string=?)
+					  "_Ptr_const")
+					 (else "_Ptr")))
+				  ((member type no-c-to-xen)
+				   "_1")
+				  ((not (member type no-xen-p)) "")
+				  ((member type no-xen-to-c) "_no_p_2")
+				  (else "_no_p"))))
+	       (hey "Xm_type~A(~A, ~A)~%" argwrap
+		    (no-stars type) 
+		    type))))))
 
 
 (define callback-name car)
@@ -1131,29 +1161,29 @@
 	  (len (length args))
 	  (typed #f)
 	  (help-max 100))
-      (hey initial)
+      (hoy initial)
       (do ((i 0 (+ i 1)))
 	  ((= i len))
 	(let ((ch (args i)))
 	  (if (char=? ch #\space)
 	      (if typed
 		  (begin
-		    (heyc ", ")
+		    (hoyc ", ")
 		    (set! line-len (+ line-len 2))
 		    (if (> line-len help-max)
 			(begin
-			  (hey "\\~%")
+			  (hoy "\\~%")
 			  (set! line-len 0)))
 		    (set! typed #f))
 		  (begin
 		    (set! line-len (+ 1 line-len))
-		    (heyc " ")
+		    (hoyc " ")
 		    (set! typed #t)))
 	      (if (not (memv ch '(#\@ #\#)))
 		  (begin
 		    (set! line-len (+ 1 line-len))
-		    (heyc ch))))))
-      (hey ")\"~%"))))
+		    (hoyc ch))))))
+      (hoy ")\"~%"))))
 
 (define (CATOM name)
   (if (hash-table-ref names name)
@@ -1380,6 +1410,8 @@
 (hey " *~%")
 (hey " * HISTORY:~%")
 (hey " *~%")
+(hey " *     28-Jul-17: scheme Init_libxg arg added.~%")
+(hey " *     --------~%")
 (hey " *     17-Mar-16: gtk_enum_t for better signature checks.~%")
 (hey " *     --------~%")
 (hey " *     29-Oct:    removed ->string.~%")
@@ -1465,7 +1497,9 @@
 ;(hey "#if UNDEF_USE_SND~%  #undef USE_SND~%  #define USE_SND 0~%#endif~%~%")
 
 (hey "#include <string.h>~%")
-(hey "#include <stdlib.h>~%~%")
+(hey "#include <stdlib.h>~%")
+(hey "#include <stdint.h>~%")
+(hey "#include <inttypes.h>~%~%")
 
 (hey "#include <glib.h>~%")
 (hey "#include <gdk/gdk.h>~%")
@@ -1495,8 +1529,44 @@
 (hey "  #endif~%")
 (hey "#endif~%~%")
 
+;;; ----------------
+(hay "/* libgtk_s7.c */~%~%")
+(hay "#include <stdlib.h>~%")
+(hay "#include <stdio.h>~%")
+(hay "#include <string.h>~%")
+(hay "#include <math.h>~%")
+(hay "#include <stdbool.h>~%")
+(hay "#include \"s7.h\"~%~%")
+(hay "#define HAVE_CAIRO_1_8    ((CAIRO_VERSION_MAJOR >= 1) && (CAIRO_VERSION_MINOR >= 8))~%")
+(hay "#define HAVE_CAIRO_1_9_12 ((CAIRO_VERSION_MAJOR >= 1) && (CAIRO_VERSION_MINOR >= 9) && (CAIRO_VERSION_MICRO >= 12))~%~%")
+
+(hay "#if ((!__NetBSD__) && ((_MSC_VER) || (!defined(__STC__)) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ < 199901L))))~%")
+(hay "  #define __func__ __FUNCTION__~%")
+(hay "#endif~%~%")
+(hay "#include <string.h>~%")
+(hay "#include <stdlib.h>~%")
+(hay "#include <stdint.h>~%")
+(hay "#include <inttypes.h>~%~%")
+(hay "#include <glib.h>~%")
+(hay "#include <gdk/gdk.h>~%")
+(hay "#include <gtk/gtk.h>~%")
+(hay "#if (!GTK_CHECK_VERSION(3, 0, 0))~%")
+(hay "  #include <gdk/gdkkeysyms.h>~%")
+(hay "#endif~%")
+(hay "#include <glib-object.h>~%")
+(hay "#include <pango/pango.h>~%")
+(with-cairo #f (lambda () (hay "#include <cairo/cairo.h>~%")))
+(hay "static s7_pointer lg_true, lg_false;~%")
+(hay "static bool lg_boolean(s7_pointer val) {return(val != lg_false);}~%")
+(hay "#define s7_make_type_with_c_pointer(Sc, Type, Ptr) s7_make_c_pointer_with_type(Sc, Ptr, Type, lg_false)~%")
+(hay "~%~%")
+;;; ----------------
+
+
 (hey "/* -------------------------------- GC -------------------------------- */~%")
 (hey "static Xen_object_type_t xm_obj_tag;~%")
+(hay "static int xm_obj_tag;~%")
+
 (hey "#if HAVE_RUBY~%")
 (hey "static void *xm_obj_free(Xen obj)~%")
 (hey "{~%")
@@ -1506,6 +1576,7 @@
 (hey "  return(NULL);~%")
 (hey "}~%")
 (hey "#endif~%")
+
 (hey "#if HAVE_FORTH~%")
 (hey "static void xm_obj_free(Xen obj)~%")
 (hey "{~%")
@@ -1514,32 +1585,42 @@
 (hey "  free(val);~%")
 (hey "}~%")
 (hey "#endif~%")
+
 (hey "#if HAVE_SCHEME~%")
-(hey "static void xm_obj_free(void *val)~%")
-(hey "{~%")
-(hey "  free(val);~%")
-(hey "}~%")
-(hey "static bool s7_equalp_xm(void *x1, void *x2)~%")
-(hey "{~%")
-(hey "  return(x1 == x2);~%")
-(hey "}~%")
+(hoy "static void xm_obj_free(void *val)~%")
+(hoy "{~%")
+(hoy "  free(val);~%")
+(hoy "}~%")
+(hoy "static bool s7_equalp_xm(void *x1, void *x2)~%")
+(hoy "{~%")
+(hoy "  return(x1 == x2);~%")
+(hoy "}~%")
 (hey "#endif~%")
+
 (hey "static Xen make_xm_obj(void *ptr)~%")
 (hey "{~%")
 (hey "  return(Xen_make_object(xm_obj_tag, ptr, 0, xm_obj_free));~%")
 (hey "}~%")
+
+(hay "static s7_pointer make_xm_obj(s7_scheme *sc, void *ptr)~%")
+(hay "{~%")
+(hay "  return(s7_make_object(sc, xm_obj_tag, ptr));~%")
+(hay "}~%")
+
 (hey "static void define_xm_obj(void)~%")
-(hey "{~%")
+(hay "static void define_xm_obj(s7_scheme *sc)~%")
+(hoy "{~%")
 (hey "#if HAVE_SCHEME~%")
 (hey " xm_obj_tag = s7_new_type_x(s7, \"<XmObj>\", NULL, xm_obj_free, s7_equalp_xm, NULL, NULL, NULL, NULL, NULL, NULL, NULL);~%")
+(hay " xm_obj_tag = s7_new_type_x(sc, \"<XmObj>\", NULL, xm_obj_free, s7_equalp_xm, NULL, NULL, NULL, NULL, NULL, NULL, NULL);~%")
 (hey "#else~%")
 (hey "  xm_obj_tag = Xen_make_object_type(\"XmObj\", sizeof(void *));~%")
 (hey "#endif~%")
 (hey "#if HAVE_FORTH~%")
 (hey "  fth_set_object_free(xm_obj_tag, xm_obj_free);~%")
 (hey "#endif~%")
-(hey "}  ~%")
-(hey "~%")
+(hoy "}  ~%")
+(hoy "~%")
 
 (hey "/* prefix for all names */~%")
 (hey "#if HAVE_SCHEME~%")
@@ -1560,6 +1641,7 @@
 (hey "#endif~%")
 (hey "~%")
 
+
 (hey "static Xen xg_~A_symbol" (no-stars (car all-types)))
 (for-each
  (lambda (typ)
@@ -1585,6 +1667,31 @@
  
 (hey ";~%~%")
 
+;;; ----------------
+(let ((ctr 0))
+  (hay "static s7_pointer ~A_sym" (no-stars (car all-types)))
+  (for-each
+   (lambda (typ)
+     (set! ctr (+ ctr 1))
+     (if (zero? (modulo ctr 5))
+	 (begin
+	   (set! ctr 0)
+	   (hay ",~%~NC~A_sym" 18 #\space (no-stars typ)))
+	 (hay ", ~A_sym" (no-stars typ))))
+   (cdr all-types))
+  (for-each
+   (lambda (typ)
+     (unless (member typ all-types)
+       (set! ctr (+ ctr 1))
+       (if (zero? (modulo ctr 5))
+	   (begin
+	     (set! ctr 0)
+	     (hay ",~%~NC~A_sym" 18 #\space typ))
+	   (hay ", ~A_sym" typ))))
+   other-types)
+  (hay ";~%~%"))
+;;; ----------------
+
 
 (hey "#define wrap_for_Xen(Name, Value) Xen_list_2(xg_ ## Name ## _symbol, Xen_wrap_C_pointer(Value))~%")
 (hey "#define is_wrapped(Name, Value) (Xen_is_pair(Value) && (Xen_car(Value) == xg_ ## Name ## _symbol))~%")
@@ -1643,7 +1750,7 @@
 (for-each xen-callback callbacks)
 
 (hey "#define Xen_to_C_GCallback(Arg) ((Xen_is_aritable(Arg, 4)) ? (GCallback)gxg_func4 : ((Xen_is_aritable(Arg, 3)) ? (GCallback)gxg_func3 : (GCallback)gxg_func2))~%")
-;; (hey "#define Xen_to_C_GCallback(Arg) ((Xen_is_aritable(Arg, 3)) ? (GCallback)gxg_func3 : (GCallback)gxg_func2)~%")
+;;; (hey "#define Xen_to_C_GCallback(Arg) ((Xen_is_aritable(Arg, 3)) ? (GCallback)gxg_func3 : (GCallback)gxg_func2)~%")
 
 (hey "#define Xen_to_C_lambda_data(Arg) (gpointer)gxg_ptr~%")
 (hey "#define Xen_is_lambda_data(Arg) 1~%")
@@ -1692,7 +1799,6 @@
 (hey "#define XLT(a, b) Xen_to_C_GtkTextTag_(Xen_list_ref(a, b))~%")
 (hey "#define XLA(a, b) ((Xen_is_integer(Xen_list_ref(a, b))) ? ((gpointer)XLL(a, b)) : ((Xen_is_string(Xen_list_ref(a, b))) ? ((gpointer)XLS(a, b)) : ((gpointer)XLG(a, b))))~%~%")
 
-
 (hey "/* -------------------------------- gc protection -------------------------------- */~%")
 (hey "~%")
 (hey "static Xen xm_protected;~%")
@@ -1742,8 +1848,63 @@
 (hey "  last_xm_unprotect = ind;~%")
 (hey "}~%~%")
 
+
+(define c->s7 (make-hash-table))
+(define c->s7-checker (make-hash-table))
+(define s7->c (make-hash-table))
+(define (typer typ)
+  (cond ((assoc typ direct-types) 
+	 => (lambda (val)
+	      (cond ((member (cdr val) '("INT" "ULONG")) 's7_make_integer)
+		    ((assoc (cdr val)
+			    '(("DOUBLE" . s7_make_real) 
+			      ("BOOLEAN" . s7_make_boolean) 
+			      ("CHAR" . s7_make_character) 
+			      ("String" . s7_make_string)))
+		     => cdr)
+		    (else 's7_make_c_pointer))))
+	((member typ '("gchar_" "char_")) 's7_make_string)
+	((equal? typ "time_t")	          's7_make_integer)
+	(else 's7_make_c_pointer)))
+
+(define (untyper typ)
+  (cond ((assoc typ direct-types) 
+	 => (lambda (val)
+	      (cond ((member (cdr val) '("INT" "ULONG")) 's7_integer)
+		    ((assoc (cdr val)
+			    '(("DOUBLE" . s7_real) 
+			      ("BOOLEAN" . lg_boolean) 
+			      ("CHAR" . s7_character) 
+			      ("String" . s7_string)))
+		     => cdr)
+		    (else 's7_c_pointer))))
+	((member typ '("gchar_" "char_")) 's7_string)
+	(else 's7_c_pointer)))
+
+(for-each
+ (lambda (typ)
+   (let ((maker (typer (no-stars typ))))
+     (hash-table-set! c->s7 (no-stars typ) maker)
+     (hash-table-set! s7->c (no-stars typ) (untyper (no-stars typ)))
+     (hash-table-set! c->s7-checker (no-stars typ) 
+		      (cond ((assq maker '((s7_make_integer   . s7_is_integer)
+					   (s7_make_real      . s7_is_real)
+					   (s7_make_boolean   . s7_is_boolean)
+					   (s7_make_string    . s7_is_string)
+					   (s7_make_c_pointer . s7_is_c_pointer_of_type)
+					   (s7_make_character . s7_is_character)))
+			     => cdr)
+			    (else 's7_is_c_pointer_of_type)))))
+ all-types)
+;(hay "#define lg_etc(Arg) (Arg)~%")
+(hay "#define lg_is_list(Arg) s7_is_list(sc, Arg)~%")
+(hash-table-set! c->s7-checker "etc" 'lg_is_list)
+
+
 (hey "~%~%/* ---------------------------------------- callback handlers ---------------------------------------- */~%~%")
 
+(hay "static s7_scheme *cbsc = NULL;~%")
+
 (let ((xc (let ((funcs-done ()))
 	    (lambda (func)
 	     (let* ((name (callback-func func))
@@ -1755,11 +1916,10 @@
 	       (unless (member name funcs-done)
 		 (set! funcs-done (cons name funcs-done))
 		 (if (callback-version func)
-		     (hey (string-append "#if GTK_CHECK_VERSION(" (substring (callback-version func) 0 1) ", " (substring (callback-version func) 2) ", 0)~%")))
+		     (hoy (string-append "#if GTK_CHECK_VERSION(" (substring (callback-version func) 0 1) ", " (substring (callback-version func) 2) ", 0)~%")))
 		 
-		 (hey "static ~A gxg_~A("
-		      type
-		      name)
+		 (hey "static ~A gxg_~A(" type name)
+		 (hay "static ~A lg_~A(" type name)
 		 (let ((previous-arg #f)
 		       (ctr 0)
 		       (ctr1 (memq fname '(GtkClipboardTextReceivedFunc GtkAccelMapForeach GtkEntryCompletionMatchFunc)))
@@ -1767,35 +1927,32 @@
 		       (ctr0 (memq fname '(GtkFileFilterFunc GtkRecentFilterFunc GLogFunc))))
 		   (for-each
 		    (lambda (arg)
-		      (if previous-arg (hey ", "))
+		      (if previous-arg (hoy ", "))
 		      ;; ctr is 0-based here
 		      (if (or (and ctr1 (= ctr 1))
 			      (and ctr2 (= ctr 2))
 			      (and ctr0 (= ctr 0)))
-			  (hey "const "))
+			  (hoy "const "))
 		      (set! ctr (+ ctr 1))
 		      (set! previous-arg #t)
-		      (hey "~A ~A" 
+		      (hoy "~A ~A" 
 			   (if (string=? (car arg) "lambda_data")
 			       "gpointer"
 			       (car arg))
 			   (cadr arg)))
 		    args)
-		   (hey ")~%"))
-		 (hey "{~%  ")
+		   (hoy ")~%"))
+		 (hoy "{~%  ")
 		 ;; I tried to use Xen_error here but it was a no-op for some reason?? 
-		 (hey "if (!Xen_is_list((Xen)func_info)) return~A;~%  "
-		      (if void? 
-			  ""
-			  (format #f "((~A)0)" (no-stars type))))
+		 (hey "if (!Xen_is_list((Xen)func_info)) return~A;~%  " (if void? "" (format #f "((~A)0)" (no-stars type))))
+		 (hay "if (!s7_is_list(cbsc, (s7_pointer)func_info)) return~A;~%  " (if void? "" (format #f "((~A)0)" (no-stars type))))
 		 (if gcc-permanent?
-		     (hey "#if (!(defined(__cplusplus)))~%  ")) ; const arg conversion causes trouble if g++
-		 (let ((castlen (+ 12 (if void?
-					  1
-					  (+ 2 (length (format #f "return(Xen_to_C_~A" (no-stars type))))))))
-		   (if (not void?)
-		       (hey "return(Xen_to_C_~A("
-			    (no-stars type)))
+		     (hoy "#if (!(defined(__cplusplus)))~%  ")) ; const arg conversion causes trouble if g++
+		 (let ((castlen (+ 12 (if void? 1 (+ 2 (length (format #f "return(Xen_to_C_~A" (no-stars type)))))))
+		       (castlen1 19))
+		   (unless void?
+		     (hey "return(Xen_to_C_~A(" (no-stars type))
+		     (hay "return((~A)~A(" type (or (hash-table-ref s7->c (no-stars type)) 's7_c_pointer)))
 		   (hey "Xen_call_with_~A_arg~A(~A((Xen)func_info),~%"
 			(if (null? args) "no" (length args))
 			(if (and (pair? args) (null? (cdr args))) "" "s")
@@ -1803,34 +1960,53 @@
 			  ((GtkClipboardClearFunc) "Xen_caddr")
 			  ((GtkDestroyNotify)      "Xen_cadddr")
 			  (else                    "Xen_car")))
-		   (for-each
-		    (lambda (arg)
-		      (hey (make-string castlen #\space))
-		      (if (string=? (car arg) "lambda_data")
-			  (hey "Xen_cadr((Xen)func_info),~%")
-			  (hey "C_to_Xen_~A(~A~A),~%"
-			       (no-stars (car arg))
-			       (if (string=? (car arg) "GtkFileFilterInfo*")
-				   "(GtkFileFilterInfo *)"
-				   "")
-			       (cadr arg))))
-		    args)
+		   (hay "s7_apply_function(cbsc, ~%    ~A((s7_pointer)func_info), ~A~%"
+			(case fname 
+			  ((GtkClipboardClearFunc) "s7_caddr")
+			  ((GtkDestroyNotify)      "s7_cadddr")
+			  (else                    "s7_car"))
+			(if (null? args) "s7_nil(cbsc" (format #f "~%           s7_list(cbsc, ~D," (length args))))
+		   (let ((ctr 1)
+			 (argnum (length args)))
+		     (for-each
+		      (lambda (arg)
+			(hey (make-string castlen #\space))
+			(hay (make-string castlen1 #\space))
+			(if (string=? (car arg) "lambda_data")
+			    (begin
+			      (hey "Xen_cadr((Xen)func_info),~%")
+			      (hay "s7_cadr((s7_pointer)func_info)"))
+			    (begin
+			      (hey "C_to_Xen_~A(~A~A),~%"
+				   (no-stars (car arg))
+				   (if (string=? (car arg) "GtkFileFilterInfo*")
+				       "(GtkFileFilterInfo *)"
+				       "")
+				   (cadr arg))
+			      (hay "~A(cbsc, ~A~A)"
+				   (hash-table-ref c->s7 (no-stars (car arg)))
+				   (if (member (car arg) '("GtkFileFilterInfo*" "guint8*"))
+				       "(void *)"
+				       "")
+				   (cadr arg))))
+			(hay (if (< ctr argnum) ",~%" ""))
+			(set! ctr (+ ctr 1)))
+		      args))
 		   (hey (make-string castlen #\space))
 		   (hey "__func__)")
-		   (if void?
-		       (hey ";~%")
-		       (hey "));~%")))
+		   (hey (if void? ";~%" "));~%"))
+		   (hay (if void? "));~%" "))));~%")))
 		 (if gcc-permanent?
 		     (begin
 		       (if (not void?)
 			   (begin
-			     (hey "  #else~%")
-			     (hey "  return((~A)0);~%" (no-stars type))))
-		       (hey "  #endif~%")))
-		 (hey "}~%")
+			     (hoy "  #else~%")
+			     (hoy "  return((~A)0);~%" (no-stars type))))
+		       (hoy "  #endif~%")))
+		 (hoy "}~%")
 		 (when (callback-version func)
-		   (hey "#endif~%"))
-		 (hey "~%")
+		   (hoy "#endif~%"))
+		 (hoy "~%")
 		 ))))))
   (for-each xc callbacks))
 
@@ -1853,6 +2029,22 @@
 (hey "                                     __func__)));~%")
 (hey "}~%~%")
 
+(hay "~%static gboolean lg_func3(GtkWidget *w, GdkEventAny *ev, gpointer data)~%")
+(hay "{~%")
+(hay "  return(s7_apply_function(cbsc, s7_car((s7_pointer)data),~%")
+(hay "                             s7_list(cbsc, 3, s7_make_c_pointer_with_type(cbsc, w, GtkWidget__sym, lg_false),~%")
+(hay "                                              s7_make_c_pointer_with_type(cbsc, ev, GdkEventAny__sym, lg_false),~%")
+(hay "                                              s7_cadr((s7_pointer)data))) != lg_false);~%")
+(hay "}~%")
+(hay "~%static gboolean lg_func4(GtkPrintOperation *op, GtkPrintContext *context, gint page_nr, gpointer data)~%")
+(hay "{~%")
+(hay "  return(s7_apply_function(cbsc, s7_car((s7_pointer)data),~%")
+(hay "                            s7_list(cbsc, 4, s7_make_c_pointer_with_type(cbsc, op, GtkPrintOperation__sym, lg_false),~%")
+(hay "                                             s7_make_c_pointer_with_type(cbsc, context, GtkPrintContext__sym, lg_false),~%")
+(hay "                                             s7_make_integer(cbsc, page_nr),~%")
+(hay "                                             s7_cadr((s7_pointer)data))) != lg_false);~%")
+(hay "}~%~%")
+
 
 (hey "~%~%/* ---------------------------------------- functions ---------------------------------------- */~%~%")
 
@@ -1878,22 +2070,18 @@
 	    (arg-start 0)
 	    (line-len 0))
 	
-	(define (hey-start)
-	  ;; start of checked line
+	(define (hey-start)  ; start of checked line
 	  (set! line-len 0))
 	
-	(define (hey-mark)
-	  ;; start of checked line
+	(define (hey-mark)   ; start of checked line
 	  (set! arg-start line-len))
 	
-	(define (hey-on . args)
-	  ;; no cr -- just append
+	(define (hey-on . args)	  ; no cr -- just append
 	  (let ((line (apply format #f args)))
 	    (set! line-len (+ line-len (length line)))
 	    (heyc line)))
 	
-	(define* (hey-ok (arg ", "))
-	  ;; cr ok after arg
+	(define (hey-ok arg) ; cr ok after arg
 	  (set! line-len (+ line-len (length arg)))
 	  (heyc arg)
 	  (when (> line-len 120) ; line-max originally
@@ -1903,32 +2091,62 @@
 	(hey "static Xen gxg_~A(" name)
 	(if (null? args)
 	    (heyc "void")
-	    (if (>= (length args) max-args)
+	    (if (>= cargs max-args)
 		(heyc "Xen arglist")
 		(let ((previous-arg #f))
 		  (for-each 
 		   (lambda (arg)
-		     (let ((argname (cadr arg))
-					;(argtype (car arg))
-			   )
+		     (let ((argname (cadr arg)))
 		       (if previous-arg (heyc ", "))
 		       (set! previous-arg #t)
-		       (if (and (ref-arg? arg)
-				(not (member name '("gdk_init" "gdk_init_check" "gtk_init" "gtk_init_check" "gtk_parse_args"))))
-			   (hey "Xen ignore_~A" argname)
-			   (hey "Xen ~A" argname))))
+		       (hey (if (and (ref-arg? arg)
+				     (not (member name '("gdk_init" "gdk_init_check" "gtk_init" "gtk_init_check" "gtk_parse_args"))))
+				"Xen ignore_~A"
+				"Xen ~A")
+			    argname)))
 		   args))))
 	(hey ")~%{~%")
+	
+	(hay "static s7_pointer lg_~A(s7_scheme *sc, s7_pointer args)~%" name)
+	(hay "{~%")
+
 	(helpify name return-type argstr)
+	(when (member name '("gdk_init" "gdk_init_check" "gtk_init" "gtk_init_check" "gtk_parse_args"))
+	  (hay "  s7_pointer argc, argv;~%"))
+
+	(when (pair? args)
+	  (let ((previous-arg #f)
+		(any-args #f))
+	    (when (and (> cargs 1)
+		       (not (member name '("gdk_init" "gdk_init_check"))))
+	      (hay "  s7_pointer _p;~%"))
+	    (for-each 
+	     (lambda (arg)
+	       (unless (ref-arg? arg)
+		 (unless any-args
+		   (hay "  s7_pointer ")
+		   (set! any-args #t))
+		 (if previous-arg (hay ", "))
+		 (hay "~A" (cadr arg))
+		 (set! previous-arg #t)))
+	     args)
+	    (if any-args (hay ";~%"))))
+
+	(when (member name '("gdk_init" "gdk_init_check" "gtk_init" "gtk_init_check" "gtk_parse_args"))
+	  (hay "  argc = s7_car(args);~%  argv = s7_cadr(args);~%"))
+	;; ----------------
+
 	(if (> refargs 0)
 	    (for-each
 	     (lambda (arg)
 	       (if (ref-arg? arg)
-		   (if (has-stars (deref-type arg))
-		       (hey "  ~A ~A = NULL;~%" (deref-type arg) (deref-name arg))
-		       (hey "  ~A ~A;~%" (deref-type arg) (deref-name arg)))))
+		   (hoy (if (has-stars (deref-type arg))
+			    "  ~A ~A = NULL;~%"
+			    "  ~A ~A;~%")
+			(deref-type arg)
+			(deref-name arg))))
 	     args))
-	(if (and (>= (length args) max-args)
+	(if (and (>= cargs max-args)
 		 (> xgargs 0))
 	    (begin
 	      (heyc "  Xen ")
@@ -1948,31 +2166,27 @@
 		       (hey "  ~A = Xen_list_ref(arglist, ~D);~%" (cadr arg) ctr))
 		   (set! ctr (+ ctr 1)))
 		 args))))
+
 	(when (pair? args)
 	  (let ((ctr 1)
 		(argc #f))
+	    (when (and (> cargs 1)
+		       (not (member name '("gdk_init" "gdk_init_check"))))
+	      (hay "  _p = args;~%"))
 	    (for-each
 	     (lambda (arg)
 	       (let ((argname (cadr arg))
 		     (argtype (car arg)))
-		 (if (not (ref-arg? arg))
-		     (if (null-arg? arg)
-			 (hey "  Xen_check_type(Xen_is_~A(~A) || Xen_is_false(~A), ~A, ~D, ~S, ~S);~%" 
-			      (no-stars argtype) argname argname argname ctr name argtype)
-			 (if (opt-arg? arg)
-			     (begin
-			       (hey "  if (!Xen_is_bound(~A)) ~A = Xen_false; ~%" argname argname)
-			       (hey "  else Xen_check_type(Xen_is_~A(~A), ~A, ~D, ~S, ~S);~%" 
-				    (no-stars argtype) argname argname ctr name argtype))
-			     (hey "  Xen_check_type(Xen_is_~A(~A), ~A, ~D, ~S, ~S);~%"
-				  (no-stars argtype) argname argname ctr name argtype)))
+		 (if (ref-arg? arg)
 		     (if (>= (length arg) 3)
 			 (if (char=? ((arg 2) 0) #\{)
 			     (begin
 			       (set! argc (deref-name arg))
-			       (hey "  ~A = Xen_to_C_~A(~A);~%" (deref-name arg) (deref-type arg) argname))
+			       (hey "  ~A = Xen_to_C_~A(~A);~%" (deref-name arg) (deref-type arg) argname)
+			       (hay "  ~A = (~A)s7_integer(~A);~%" (deref-name arg) (deref-type arg) argname))
+
 			     (when (char=? ((arg 2) 0) #\|)
-			       (hey "  ~A = (~A)calloc(~A, sizeof(~A));~%" 
+			       (hoy "  ~A = (~A)calloc(~A, sizeof(~A));~%" 
 				    (deref-name arg)
 				    (deref-type arg)
 				    argc
@@ -1982,36 +2196,112 @@
 				    argc
 				    (deref-name arg)
 				    (no-stars (deref-element-type arg)))
-			       (hey "  }~%")))))
+			       (hey "  }~%")
+
+			       (hay "  {~%    int i;~%    s7_pointer lst;~%    lst = ~A;~%" argname)
+			       (hay "    for (i = 0; i < ~A; i++, lst = s7_cdr(lst)) ~A[i] = (~A)s7_string(s7_car(lst));~%"
+				    argc
+				    (deref-name arg)
+				    (deref-element-type arg))
+			       (hay "  }~%"))))
+		     (let ((checker (or (hash-table-ref c->s7-checker (no-stars argtype)) 's7_is_c_pointer_of_type)))
+		       (hay (if (> cargs 1)
+				"  ~A = s7_car(_p); _p = s7_cdr(_p);~%"
+				"  ~A = s7_car(args);~%")
+			    argname)
+		       (if (null-arg? arg)
+			   (begin
+			     (hey "  Xen_check_type(Xen_is_~A(~A) || Xen_is_false(~A), ~A, ~D, ~S, ~S);~%" 
+				  (no-stars argtype) argname argname argname ctr name argtype)
+
+			     (if (eq? checker 's7_is_c_pointer_of_type)
+				 (hay "  if ((!~A(~A, ~A_sym)) && (~A != lg_false)) s7_wrong_type_arg_error(sc, ~S, ~D, ~A, ~S);~%" 
+				      checker
+				      argname (no-stars argtype) argname
+				      name ctr argname argtype)
+				 (hay "  if ((!~A(~A)) && (~A != lg_false)) s7_wrong_type_arg_error(sc, ~S, ~D, ~A, ~S);~%" 
+				      checker
+				      argname argname
+				      name ctr argname argtype)))
+			   
+			   (if (opt-arg? arg)
+			       (begin
+				 (hey "  if (!Xen_is_bound(~A)) ~A = Xen_false; ~%" argname argname)
+				 (hey "  else Xen_check_type(Xen_is_~A(~A), ~A, ~D, ~S, ~S);~%" 
+				      (no-stars argtype) argname argname ctr name argtype)
+
+				 (if (eq? checker 's7_is_c_pointer_of_type)
+				     (hay "  if ((!~A(~A, ~A_sym)) && (~A != lg_false)) s7_wrong_type_arg_error(sc, ~S, ~D, ~A, ~S);~%" 
+					  checker
+					  argname (no-stars argtype) argname
+					  name ctr argname argtype)
+				     (hay "  if ((!~A(~A)) && (~A != lg_false)) s7_wrong_type_arg_error(sc, ~S, ~D, ~A, ~S);~%" 
+					  checker
+					  argname argname
+					  name ctr argname argtype)))
+			       
+			       (begin
+				 (hey "  Xen_check_type(Xen_is_~A(~A), ~A, ~D, ~S, ~S);~%"
+				      (no-stars argtype) argname argname ctr name argtype)
+
+				 (if (eq? checker 's7_is_c_pointer_of_type)
+				     (hay "  if (!~A(~A, ~A_sym)) s7_wrong_type_arg_error(sc, ~S, ~D, ~A, ~S);~%" 
+					  checker
+					  argname (no-stars argtype)
+					  name ctr argname argtype)
+				     (hay "  if (!~A(~A)) s7_wrong_type_arg_error(sc, ~S, ~D, ~A, ~S);~%" 
+					  checker
+					  argname
+					  name ctr argname argtype)))))))
 		 (set! ctr (+ ctr 1))))
 	     args)))
+
 	(let ((using-result #f))
 	  (if (eq? lambda-type 'fnc)
 	      (begin 
 		(set! using-result (and (> refargs 0)
 					(not return-type-void)))
 		(when using-result
-		  (hey "  {~%")
-		  (hey "    Xen result;~%"))
+		  (hoy "  {~%")
+		  (hey "    Xen result;~%")
+		  (hay "    s7_pointer result;~%"))
 		(hey-start)
 		
 		(cond ((eq? spec 'etc))
 		      
 		      (return-type-void 
-		       (hey-on "  "))
+		       (hey-on "  ")
+		       (hay "  "))
 		      
 		      ((not (= refargs 0))
-		       (hey-on "    result = C_to_Xen_~A(" (no-stars return-type)))
+		       (hey-on "    result = C_to_Xen_~A(" (no-stars return-type))
+		       (let ((call (hash-table-ref c->s7 (no-stars return-type))))
+			 (if (eq? call 's7_make_c_pointer)
+			     (hay "    result = s7_make_type_with_c_pointer(sc, ~A_sym, " (no-stars return-type))
+			     (hay "    result = ~A(sc, " call))))
 		      
 		      (else 
 		       (case spec
-			 ((free)         (hey-on "  {~%   ~A result;~%   Xen rtn;~%   result = " return-type))
-			 ((const-return) (hey "    return(C_to_Xen_~A((~A)" (no-stars return-type) return-type))
+			 ((free) 
+			  (hey-on "  {~%   ~A result;~%   Xen rtn;~%   result = " return-type)
+			  (hay "  {~%    ~A result;~%    s7_pointer rtn;~%    result = " return-type))
+
+			 ((const-return) 
+			  (hey "    return(C_to_Xen_~A((~A)" (no-stars return-type) return-type)
+			  (let ((call (hash-table-ref c->s7 (no-stars return-type))))
+			    (if (eq? call 's7_make_c_pointer)
+				(hay "    return(s7_make_type_with_c_pointer(sc, ~A_sym, (~A)" (no-stars return-type) return-type)
+				(hay "    return(~A(sc, (~A)" call return-type))))
+
 			 (else
 			  (when (member name idlers)
 			    (hey "  xm_unprotect_at(Xen_integer_to_C_int(Xen_caddr(~A)));~%" (cadar args))
 			    (set! idlers (remove-if (lambda (x) (string=? x name)) idlers)))
-			  (hey-on "  return(C_to_Xen_~A(" (no-stars return-type)))))))
+			  (hey-on "  return(C_to_Xen_~A(" (no-stars return-type))
+			  (let ((call (hash-table-ref c->s7 (no-stars return-type))))
+			    (if (eq? call 's7_make_c_pointer)
+				(hay "  return(s7_make_type_with_c_pointer(sc, ~A_sym, " (no-stars return-type))
+				(hay "  return(~A(sc, " call))))))))
 	      
 	      (let ((using-loc (or (eq? lambda-type 'GCallback)
 				   (and callback-data
@@ -2019,40 +2309,63 @@
 		;; lambda-type != 'fnc
 		(set! using-result (not (or return-type-void
 					    (eq? lambda-type 'lambda))))
-		(hey "  {~%")
-		(if using-result (hey "    Xen result;~%"))
-		(if using-loc (hey "    int loc;~%"))
+		(hoy "  {~%")
+		(when using-result 
+		  (hey "    Xen result;~%")
+		  (hay "    s7_pointer result;~%"))
+
+		(if using-loc (hoy "    int loc;~%"))
+
 		(hey "    Xen gxg_ptr = Xen_list_5(~A, func_info, Xen_false, Xen_false, Xen_false);~%"
 		     (call-with-exit
 		      (lambda (name-it)
 			(for-each
 			 (lambda (arg)
-			   (let ((argname (cadr arg))
-					;(argtype (car arg))
-				 )
+			   (let ((argname (cadr arg)))
 			     (if (string=? argname "func")
 				 (name-it "func"))))
 			 args)
 			"Xen_false")))
+		(hay "    s7_pointer lg_ptr = s7_list(sc, 5, ~A, func_info, lg_false, lg_false, lg_false);~%"
+		     (call-with-exit
+		      (lambda (name-it)
+			(for-each
+			 (lambda (arg)
+			   (let ((argname (cadr arg)))
+			     (if (string=? argname "func")
+				 (name-it "func"))))
+			 args)
+			"lg_false")))
+
 		(if using-loc
 		    (begin
 		      (hey "    loc = xm_protect(gxg_ptr);~%")
-		      (hey "    Xen_list_set(gxg_ptr, 2, C_int_to_Xen_integer(loc));~%"))
+		      (hay "    loc = s7_gc_protect(sc, lg_ptr);~%")
+		      (hey "    Xen_list_set(gxg_ptr, 2, C_int_to_Xen_integer(loc));~%")
+		      (hay "    s7_list_set(sc, lg_ptr, 2, s7_make_integer(sc, loc));~%"))
 		    (begin
 		      (hey "    xm_protect(gxg_ptr);~%")
-		      (if (eq? lambda-type 'GtkClipboardGetFunc)
-			  (hey "    Xen_list_set(gxg_ptr, 2, clear_func);~%"))))
+		      (hay "    s7_gc_protect(sc, lg_ptr);~%")
+		      (when (eq? lambda-type 'GtkClipboardGetFunc)
+			(hey "    Xen_list_set(gxg_ptr, 2, clear_func);~%")
+			(hay "    s7_list_set(sc, lg_ptr, 2, clear_func);~%"))))
+
 		(for-each
 		 (lambda (arg)
 		   (let ((argname (cadr arg))
 			 (argtype (car arg)))
-		     (if (string=? argtype "GtkDestroyNotify")
-			 (hey "    Xen_list_set(gxg_ptr, 3, ~A);~%" argname))))
+		     (when (string=? argtype "GtkDestroyNotify")
+		       (hey "    Xen_list_set(gxg_ptr, 3, ~A);~%" argname)
+		       (hay "    s7_list_set(sc, lg_ptr, 3, ~A);~%" argname))))
 		 args)
 		(hey-start)
 		(if using-result
-		    (hey-on "    result = C_to_Xen_~A(" (no-stars return-type))
-		    (heyc "    "))))
+		    (begin
+		      (hey-on "    result = C_to_Xen_~A(" (no-stars return-type))
+		      (hay "    result = ~A(sc, " (hash-table-ref c->s7 (no-stars return-type))))
+		    (begin
+		      (heyc "    ")
+		      (hay "    ")))))
 	  
 	  ;; pass args
 	  (if (eq? spec 'etc)
@@ -2067,38 +2380,50 @@
 					       (null? (cdr types))
 					       (string=? (car types) "GType")))))
 		      (modlen (length types)))
-		  (hey "  {~%")
-		  (hey "    int etc_len = 0;~%")
+		  (hoy "  {~%")
+		  (hoy "    int etc_len = 0;~%")
 		  (if (not return-type-void)
-		      (hey "    ~A result = ~A;~%" return-type (if (has-stars return-type) "NULL" "0")))
+		      (hoy "    ~A result = ~A;~%" return-type (if (has-stars return-type) "NULL" "0")))
 		  (do ((i 0 (+ i 1)))
 		      ((= i (- cargs 1)))
-		    (let ((arg (args i)))
-		      (hey "    ~A p_arg~D;~%" (car arg) i)))
+		    (hoy "    ~A p_arg~D;~%" (car (args i)) i))
 		  (hey "    if (Xen_is_list(~A)) etc_len = Xen_list_length(~A);~%" list-name list-name)
-		  (if (> min-len 0)
-		      (hey "    if (etc_len < ~D) Xen_out_of_range_error(~S, ~A, ~A, \"... list must have at least ~D entr~A\");~%"
-			   min-len name (- cargs 1) list-name min-len (if (= min-len 1) "y" "ies")))
+		  (hay "    if (s7_is_list(sc, ~A)) etc_len = s7_list_length(sc, ~A);~%" list-name list-name)
+		  (when (> min-len 0)
+		    (hey "    if (etc_len < ~D) Xen_out_of_range_error(~S, ~A, ~A, \"... list must have at least ~D entr~A\");~%"
+			 min-len name (- cargs 1) list-name min-len (if (= min-len 1) "y" "ies"))
+		    (hay "    if (etc_len < ~D) s7_out_of_range_error(sc, ~S, ~A, ~A, \"... list must have at least ~D entr~A\");~%"
+			 min-len name (- cargs 1) list-name min-len (if (= min-len 1) "y" "ies")))
+
 		  (hey "    if (etc_len > ~D) Xen_out_of_range_error(~S, ~A, ~A, \"... list too long (max len: ~D)\");~%"
 		       max-len name (- cargs 1) list-name max-len)
-		  (if (not (= modlen 1))
-		      (hey "    if ((etc_len % ~D) != 0) Xen_out_of_range_error(~S, ~A, ~A, \"... list len must be multiple of ~D\");~%"
-			   modlen name (- cargs 1) list-name modlen))
+		  (hay "    if (etc_len > ~D) s7_out_of_range_error(sc, ~S, ~A, ~A, \"... list too long (max len: ~D)\");~%"
+		       max-len name (- cargs 1) list-name max-len)
+
+		  (unless (= modlen 1)
+		    (hey "    if ((etc_len % ~D) != 0) Xen_out_of_range_error(~S, ~A, ~A, \"... list len must be multiple of ~D\");~%"
+			 modlen name (- cargs 1) list-name modlen)
+		    (hay "    if ((etc_len % ~D) != 0) s7_out_of_range_error(sc, ~S, ~A, ~A, \"... list len must be multiple of ~D\");~%"
+			 modlen name (- cargs 1) list-name modlen))
+
 		  (do ((i 0 (+ i 1)))
 		      ((= i (- cargs 1)))
 		    (let ((arg (args i)))
-		      (hey "    p_arg~D = Xen_to_C_~A(~A);~%" i (no-stars (car arg)) (cadr arg))))
-		  (hey "    switch (etc_len)~%")
-		  (hey "      {~%")
+		      (hey "    p_arg~D = Xen_to_C_~A(~A);~%" i (no-stars (car arg)) (cadr arg))
+		      (hay "    p_arg~D = (~A)~A(~A);~%" i (car arg) (hash-table-ref s7->c (no-stars (car arg))) (cadr arg))))
+
+		  (hoy "    switch (etc_len)~%")
+		  (hoy "      {~%")
 		  (do ((name-is-file-chooser (string=? name "gtk_file_chooser_dialog_new"))
 		       (i min-len (+ i modlen)))
 		      ((> i max-len))
-		    (if (not return-type-void)
-			(hey "        case ~D: result = ~A(" i name)
-			(hey "        case ~D: ~A(" i name))
+		    (hoy (if (not return-type-void)
+			     "        case ~D: result = ~A("
+			     "        case ~D: ~A(")
+			 i name)
 		    (do ((j 0 (+ 1 j)))
 			((= j (- cargs 1)))
-		      (hey "p_arg~D, " j))
+		      (hoy "p_arg~D, " j))
 		    ;; assume ending null for now
 		    (do ((modctr 0)
 			 (j 0 (+ 1 j)))
@@ -2111,70 +2436,113 @@
 						  ("GtkTextTag*" . "XLT(") 
 						  ("GType" . "XLG("))
 					   string=?) => cdr)
-				   (else "XLA("))))
-		      (hey "~A, ~D)" list-name j)
+				   (else "XLA(")))
+			(hay (cond ((assoc type '(("int" . "s7_integer(s7_list_ref(sc, ") 
+						  ("gchar*" . "s7_string(s7_list_ref(sc, "))
+					   string=?) => cdr)
+				   (else "s7_c_pointer(s7_list_ref(sc, "))))
+
+		      (hoy "~A, ~D)" list-name j)
+		      (hay ")")
 		      (if (or with-null with-minus-one (< j (- i 1)))
-			  (hey ", ")))
-		    (if with-null
-			(if (and (= i 0)
-				 name-is-file-chooser)
-			    (hey "NULL, NULL); break;~%") ; extra NULL needed I guess for the valist pass-through -- gcc 4.1 grumbles about it
-			    (hey "NULL); break;~%"))
-			(if with-minus-one
-			    (hey "-1); break;~%")
-			    (hey "); break;~%"))))
-		  (hey "      }~%")
+			  (hoy ", ")))
+		    (hoy (if with-null
+			     (if (and (= i 0) name-is-file-chooser)
+				 "NULL, NULL); break;~%" ; extra NULL needed I guess for the valist pass-through -- gcc 4.1 grumbles about it
+				 "NULL); break;~%")
+			     (if with-minus-one 
+				 "-1); break;~%" 
+				 "); break;~%"))))
+		  (hoy "      }~%")
 		  
 		  (if return-type-void
-		      (hey "    return(Xen_false);~%")
-		      (hey "    return(C_to_Xen_~A(result));~%" (no-stars return-type)))
-		  (hey "  }~%")))
+		      (begin
+			(hey "    return(Xen_false);~%")
+			(hay "    return(lg_false);~%"))
+		      (begin
+			(hey "    return(C_to_Xen_~A(result));~%" (no-stars return-type))
+			(hay "    return(~A(sc, result));~%" (hash-table-ref c->s7 (no-stars return-type)))))
+		  (hoy "  }~%")))
 	      
 	      ;; not eq? spec 'etc
 	      (if (eq? lambda-type 'lambda)
 		  (begin ; 'lambda (see line 1846)
 		    (hey "if (Xen_is_aritable(func, 2))~%")
+		    (hay "if (s7_is_aritable(sc, func, 2))~%")
 		    (hey-start)
 		    (if return-type-void
-			(hey-on "       ~A(" name)
-			(hey-on "       return(C_to_Xen_~A(~A(" (no-stars return-type) name))
+			(begin
+			  (hey-on "       ~A(" name)
+			  (hay "       ~A(" name))
+			(begin
+			  (hey-on "       return(C_to_Xen_~A(~A(" (no-stars return-type) name)
+			  (let ((call (hash-table-ref c->s7 (no-stars return-type))))
+			    (if (eq? call 's7_make_c_pointer)
+				(hay "       return(s7_make_type_with_c_pointer(sc, ~A_sym, ~A(" (no-stars return_type) name)
+				(hay "       return(~A(sc, ~A(" call name)))))
 		    (hey-mark)
 		    (let ((previous-arg #f))
 		      (for-each
 		       (lambda (arg)
 			 (let ((argname (cadr arg))
 			       (argtype (car arg)))
-			   (if previous-arg (hey-ok))
+			   (when previous-arg 
+			     (hey-ok ", ")
+			     (hay ", "))
 			   (set! previous-arg #t)
-			   (hey-on "Xen_to_C_~A(~A)" (no-stars argtype) argname)))
+			   (hey-on "Xen_to_C_~A(~A)" (no-stars argtype) argname)
+			   (if (equal? argtype "char*")
+			       (hay "(char*)~A(~A)" (hash-table-ref s7->c (no-stars argtype)) argname)
+			       (if (equal? argtype "lambda_data")
+				   (hay "(gpointer)lg_ptr")
+				   (hay "~A(~A)" (hash-table-ref s7->c (no-stars argtype)) argname)))))
 		       args))
-		    (if return-type-void
-			(hey ");~%")
-			(hey ")));~%"))
-		    (hey "     else~%")
+		    (hoy (if return-type-void
+			     ");~%"
+			     ")));~%"))
+		    (hoy "     else~%")
 		    (hey-start)
 		    (if return-type-void
-			(hey-on "       ~A(" name)
-			(hey-on "       return(C_to_Xen_~A(~A(" (no-stars return-type) name))
+			(begin
+			  (hey-on "       ~A(" name)
+			  (hay "       ~A(" name))
+			(begin
+			  (hey-on "       return(C_to_Xen_~A(~A(" (no-stars return-type) name)
+			  (let ((call (hash-table-ref c->s7 (no-stars return-type))))
+			    (if (eq? call 's7_make_c_pointer)
+				(hay "       return(s7_make_type_with_c_pointer(sc, ~A_sym, ~A(" (no-stars return_type) name)
+				(hay "       return(~A(sc, ~A(" call name)))))
 		    (hey-mark)
 		    (let ((previous-arg #f))
 		      (for-each
 		       (lambda (arg)
 			 (let ((argname (cadr arg))
 			       (argtype (car arg)))
-			   (if previous-arg (hey-ok))
+			   (when previous-arg 
+			     (hey-ok ", ")
+			     (hay ", "))
 			   (set! previous-arg #t)
-			   (hey-on "Xen_to_C_~A(~A)" (no-stars argtype) argname)))
+			   (hey-on "Xen_to_C_~A(~A)" (no-stars argtype) argname)
+			   (if (equal? argtype "char*")
+			       (hay "(char*)~A(~A)" (hash-table-ref s7->c (no-stars argtype)) argname)
+			       (if (equal? argtype "lambda_data")
+				   (hay "(gpointer)lg_ptr")
+				   (hay "~A(~A)" (hash-table-ref s7->c (no-stars argtype)) argname)))))
 		       args))
 		    (if return-type-void
 			(begin
-			  (hey ");~%")
-			  (hey "    return(Xen_false);~%"))
-			(hey ")));~%"))
-		    (hey "  }~%")) ;'lambda
+			  (hoy ");~%")
+			  (hey "    return(Xen_false);~%")
+			  (hay "    return(lg_false);~%"))
+			(hoy ")));~%"))
+		    (hoy "  }~%")) ;'lambda
 		  
 		  (begin
 		    (hey-on "~A(" name)
+		    (hay (if (member name '("gtk_selection_data_get_data_with_length" "gtk_selection_data_get_data"))
+			     "(void *)~A("
+			     "~A(")
+			 name)
 		    (hey-mark)
 		    (if (pair? args)
 			(let ((previous-arg #f))
@@ -2182,22 +2550,36 @@
 			   (lambda (arg)
 			     (let ((argname (cadr arg))
 				   (argtype (car arg)))
-			       (if previous-arg (hey-ok))
+			       (when previous-arg 
+				 (hey-ok ", ")
+				 (hay ", "))
 			       (if (and (eq? spec 'const)
 					(member argtype '("char**" "gchar**" "gchar*" "char*" "GValue*") string=?))
-				   (hey "(const ~A)" argtype))
+				   (hoy "(const ~A)" argtype))
 			       (set! previous-arg #t)
 			       (if (ref-arg? arg)
-				   (hey-on "&~A" (deref-name arg))
-				   (hey-on "Xen_to_C_~A(~A)" (no-stars argtype) argname))))
+				   (begin
+				     (hey-on "&~A" (deref-name arg))
+				     (hay "&~A" (deref-name arg)))
+				   (begin
+				     (hey-on "Xen_to_C_~A(~A)" (no-stars argtype) argname)
+				     (if (equal? argtype "char*")
+					 (hay "(char*)~A(~A)" (hash-table-ref s7->c (no-stars argtype)) argname)
+					 (if (equal? argtype "lambda_data")
+					     (hay "(gpointer)lg_ptr")
+					     (hay "~A(~A)" (hash-table-ref s7->c (no-stars argtype)) argname)))))))
 			   args)))
 		    (if (not return-type-void)
 			(if (not (and (eq? lambda-type 'fnc)
 				      (= refargs 0)))
-			    (heyc ")")
-			    (if (not (eq? spec 'free)) 
-				(heyc "))"))))
-		    (hey ");~%")
+			    (begin
+			      (heyc ")")
+			      (hay ")"))
+			    (if (not (eq? spec 'free))
+				(begin
+				  (heyc "))")
+				  (hay "))")))))
+		    (hoy ");~%")
 		    (if (not (eq? lambda-type 'fnc))
 			(begin
 			  (if (and callback-data
@@ -2208,84 +2590,140 @@
 			      (hey "    Xen_list_set(gxg_ptr, 2, Xen_list_3(xg_idler_symbol, ~A, C_int_to_Xen_integer(loc)));~%"
 				   (if return-type-void "Xen_false" "result")))
 			  (if using-result
-			      (hey "    return(result);~%")
-			      (hey "    return(Xen_false);~%"))
-			  (hey "   }~%"))
+			      (hoy "    return(result);~%")
+			      (begin
+				(hey "    return(Xen_false);~%")
+				(hay "    return(lg_false);~%")))
+			  (hoy "   }~%"))
 			
 			(if (> refargs 0)
 			    (let ((previous-arg using-result))
-			      (if using-result (heyc "  "))
+			      (when using-result 
+				(heyc "  ")
+				(hay "  "))
 			      (if (string=? name "gdk_property_get")   ; special case -- type returned is dependent to some extent on atom
-				  (hey "  {~%      Xen data_val = Xen_false;~%\
+				  (begin
+				    
+				    (hey "  {~%      Xen data_val = Xen_false;~%\
       if (ref_actual_property_type == GDK_TARGET_STRING)~%\
 	data_val = C_string_to_Xen_string((char *)ref_data);~%\
       else if (ref_actual_length > 0) data_val = C_string_to_Xen_string_with_length((char *)ref_data, ref_actual_length * ref_actual_format / 8);~%\
      return(Xen_list_5(result, C_to_Xen_GdkAtom(ref_actual_property_type), C_to_Xen_gint(ref_actual_format), ~%\
                        C_to_Xen_gint(ref_actual_length), data_val));~%\
     }~%  }~%")
+				    (hay "  {~%      s7_pointer data_val = lg_false;~%\
+      if (ref_actual_property_type == GDK_TARGET_STRING)~%\
+	data_val = s7_make_string(sc, (char *)ref_data);~%\
+      else if (ref_actual_length > 0) data_val = s7_make_string_with_length(sc, (char *)ref_data, ref_actual_length * ref_actual_format / 8);~%\
+     return(s7_list(sc, 5, result, s7_make_c_pointer(sc, ref_actual_property_type), s7_make_integer(sc, ref_actual_format), ~%\
+                       s7_make_integer(sc, ref_actual_length), data_val));~%\
+    }~%  }~%"))
+
 				  (begin
 				    (hey "  return(Xen_list_~D(" (if using-result (+ refargs 1) refargs))
-				    (if using-result (heyc "result"))
+				    (hay "    return(s7_list(sc, ~D, " (if using-result (+ refargs 1) refargs))
+				    (when using-result 
+				      (heyc "result")
+				      (hay "result"))
 				    (for-each 
 				     (lambda (arg)
 				       (when (ref-arg? arg)
-					 (if previous-arg (heyc ", "))
+					 (when previous-arg 
+					   (heyc ", ")
+					   (hay ", "))
 					 (hey "C_to_Xen_~A(~A)" (no-stars (deref-type arg)) (deref-name arg))
+					 (let ((call (hash-table-ref c->s7 (no-stars (deref-type arg)))))
+					   (hay "~A(sc, ~A)" call (deref-name arg)))
 					 (set! previous-arg #t)))
 				     args)
-				    (hey "));~%")
-				    (if using-result (hey "   }~%")))))
+				    (hoy "));~%")
+				    (when using-result
+				      (hoy "   }~%")))))
 			    ;; refargs = 0
 			    (begin
 			      (if (member name idlers)
 				  (hey "  xm_unprotect_at(Xen_integer_to_C_int(Xen_caddr(~A)));~%" (cadar args)))
 			      (if return-type-void
-				  (hey "  return(Xen_false);~%"))))))))
-	  (if (eq? spec 'free)
-	      (hey "   rtn = C_to_Xen_~A(result);~%   g_free(result);~%   return(rtn);~%  }~%" (no-stars return-type)))
-	  (hey "}~%~%"))))))
+				  (begin
+				    (hey "  return(Xen_false);~%")
+				    (hay "  return(lg_false);~%")))))))))
+	  (when (eq? spec 'free)
+	    (hey "   rtn = C_to_Xen_~A(result);~%   g_free(result);~%   return(rtn);~%  }~%" (no-stars return-type))
+	    (hay "    rtn = ~A(sc, result);~%    g_free(result);~%    return(rtn);~%  }~%" (hash-table-ref c->s7 (no-stars return-type))))
+	  (hoy "}~%~%"))))))
   
 
 (for-each handle-func (reverse funcs))
 (for-each
  (lambda (func-list with-func)
    (if (pair? func-list) 
-       (with-func hey (lambda () 
+       (with-func hoy (lambda () 
 			(for-each handle-func (reverse func-list))))))
  all-funcs all-func-withs)
 
+(hay "static s7_pointer lg_g_signal_connect(s7_scheme *sc, s7_pointer args)~%")
+(hay "{~%")
+(hay "  #define H_g_signal_connect \"gulong g_signal_connect(gpointer instance, gchar* signal_name, GCallback func, lambda_data func_info)\"~%")
+(hay "  s7_pointer obj, name, func, data;~%")
+(hay "  GCallback callf;~%")
+(hay "  obj = s7_car(args);~%")
+(hay "  name = s7_cadr(args);~%")
+(hay "  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, \"g_signal_connect\", 2, name, \"gchar*\");~%")
+(hay "  func = s7_caddr(args);~%")
+(hay "  if (s7_is_aritable(sc, func, 4)) callf = (GCallback)lg_func4;~%")
+(hay "  else {if (s7_is_aritable(sc, func, 3)) callf = (GCallback)lg_func3; else callf = (GCallback)lg_func2;}~%")
+(hay "  if (s7_is_pair(s7_cdddr(args))) data = s7_cadddr(args); else data = s7_nil(sc);~%")
+(hay "  if (data == lg_false) data = s7_nil(sc);~%")
+(hay "  return(s7_make_integer(sc, ~%")
+(hay "            g_signal_connect_data((gpointer)s7_c_pointer(obj),~%")
+(hay "                                  (gchar *)s7_string(name),~%")
+(hay "                                  callf,~%")
+(hay "                                  (gpointer)s7_cons(sc, func, data), ~%")
+(hay "                                  NULL, (GConnectFlags)0)));~%")
+(hay "}~%")
+
+
 
 (hey "#define Xen_is_wrapped_object(Obj) (Xen_is_list(Obj) && (Xen_list_length(Obj) >= 2) && (Xen_is_symbol(Xen_car(Obj))))~%~%")
 
-(define cast-it
-  (lambda (cast)
-    (let ((cast-name (car cast))
-	  (cast-type (cadr cast)))
-      (hey "static Xen gxg_~A(Xen obj)" (no-arg cast-name))
-      (hey " {return((Xen_is_wrapped_object(obj)) ? Xen_list_2(xg_~A_symbol, Xen_cadr(obj)) : Xen_false);}~%" (no-stars cast-type)))))
+(define (cast-it cast)
+  (let ((cast-name (car cast))
+	(cast-type (cadr cast)))
+    (hey "static Xen gxg_~A(Xen obj)" (no-arg cast-name))
+    (hey " {return((Xen_is_wrapped_object(obj)) ? Xen_list_2(xg_~A_symbol, Xen_cadr(obj)) : Xen_false);}~%" (no-stars cast-type))
+    (hay "static s7_pointer lg_~A(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), ~A_sym, lg_false));}~%"
+	 (no-arg cast-name) (no-stars cast-type))))
 
 (hey "static Xen gxg_GPOINTER(Xen obj)")
 (hey " {return(Xen_list_2(xg_gpointer_symbol, (Xen_is_wrapped_object(obj)) ? Xen_cadr(obj) : Xen_wrap_C_pointer(obj)));}~%")
 
+(hay "static s7_pointer lg_GPOINTER(s7_scheme *sc, s7_pointer args) {return(s7_make_c_pointer_with_type(sc, s7_c_pointer(s7_car(args)), gpointer_sym, lg_false));}~%")
+
 (for-each cast-it (reverse casts))
 (for-each
  (lambda (cast-list cast-func)
    (if (pair? cast-list) 
-       (cast-func hey (lambda () 
-			(for-each cast-it (reverse cast-list))))))
+       (cast-func hoy
+		  (lambda () 
+		    (for-each cast-it (reverse cast-list))))))
  all-casts all-cast-withs)
 
+
 ;;; checks have to use the built-in macros, not local symbol-based type checks
 
 (define (make-check func)
   (hey "static Xen gxg_~A(Xen obj)" (no-arg (car func)))
-  (hey " {return(C_bool_to_Xen_boolean(Xen_is_wrapped_object(obj) && ~A((GTypeInstance *)Xen_unwrap_C_pointer(Xen_cadr(obj)))));}~%" (no-arg (car func))))
+  (hey " {return(C_bool_to_Xen_boolean(Xen_is_wrapped_object(obj) && ~A((GTypeInstance *)Xen_unwrap_C_pointer(Xen_cadr(obj)))));}~%" (no-arg (car func)))
+  (hay "static s7_pointer lg_~A(s7_scheme *sc, s7_pointer args)~%" (no-arg (car func)))
+  (hay "{~%")
+  (hay "  return(((s7_is_c_pointer(s7_car(args))) && (~A((GTypeInstance *)s7_c_pointer(s7_car(args))))) ? lg_true : lg_false);~%" (no-arg (car func)))
+  (hay "}~%"))
 
 (for-each make-check (reverse checks))
 (for-each
  (lambda (check-list check-func)
    (if (pair? check-list) 
-       (check-func hey (lambda () 
+       (check-func hoy (lambda () 
 			 (for-each make-check (reverse check-list))))))
  all-checks all-check-withs)
 
@@ -2335,48 +2773,71 @@
 (hey "#endif~%")
 (hey "~%")
 
-(hey "#if (GTK_CHECK_VERSION(3, 90, 0))~%")
+(hoy "#if (GTK_CHECK_VERSION(3, 90, 0))~%")
 (hey "static Xen gxg_gtk_init(void)~%")
-(hey "{~%")
-(hey "  #define H_gtk_init \"void gtk_init(void)\" ~%")
-(hey "  gtk_init();~%")
+(hay "static s7_pointer lg_gtk_init(s7_scheme *sc, s7_pointer args)~%")
+(hoy "{~%")
+(hoy "  #define H_gtk_init \"void gtk_init(void)\" ~%")
+(hoy "  gtk_init();~%")
 (hey "  return(Xen_false);~%")
-(hey "}~%")
+(hay "  return(lg_false);~%")
+(hoy "}~%")
 (hey "static Xen gxg_gtk_init_check(void)~%")
-(hey "{~%")
-(hey "  #define H_gtk_init_check \"void gtk_init_check(void)\" ~%")
-(hey "  gtk_init_check();~%")
+(hay "static s7_pointer lg_gtk_init_check(s7_scheme *sc, s7_pointer args)~%")
+(hoy "{~%")
+(hoy "  #define H_gtk_init_check \"void gtk_init_check(void)\" ~%")
+(hoy "  gtk_init_check();~%")
 (hey "  return(Xen_false);~%")
-(hey "}~%")
-(hey "#else~%")
+(hay "  return(lg_false);~%")
+(hoy "}~%")
+(hoy "#else~%")
 ;;; from Mike Scholz -- improve the error checking
 (hey "static Xen gxg_gtk_init(Xen argc, Xen argv) ~%")
-(hey "{ ~%")
-(hey "  #define H_gtk_init \"void gtk_init(int* argc, char*** argv)\" ~%")
-(hey "  int ref_argc = 0; ~%")
-(hey "  char** ref_argv = NULL; ~%")
+(hay "static s7_pointer lg_gtk_init(s7_scheme *sc, s7_pointer args)~%")
+(hoy "{ ~%")
+(hoy "  #define H_gtk_init \"void gtk_init(int* argc, char*** argv)\" ~%")
+(hoy "  int ref_argc = 0; ~%")
+(hoy "  char** ref_argv = NULL; ~%")
+(hay "  s7_pointer argc = NULL, argv = NULL; ~%")
+(hay "  if (s7_is_pair(args)) {argc = s7_car(args); ref_argc = s7_integer(argc); if (s7_is_pair(s7_cdr(args))) argv = s7_cadr(args);}~%")
 (hey "  if (Xen_is_bound(argv)) ~%")
 (hey "    { ~%")
 (hey "      if (Xen_is_bound(argc) && Xen_is_integer(argc) && Xen_to_C_int(argc) <= Xen_list_length(argv)) ~%")
-(hey "	ref_argc = Xen_to_C_int(argc); ~%")
+(hey "         ref_argc = Xen_to_C_int(argc); ~%")
 (hey "      else ref_argc = Xen_list_length(argv); ~%")
 (hey "    } ~%")
-(hey "  ref_argv = (char**)calloc(ref_argc, sizeof(char*)); ~%")
-(hey "  { ~%")
-(hey "    int i; ~%")
+(hay "  if ((argv) && (ref_argc > 0) && (s7_is_pair(argv)) && (ref_argc <= s7_list_length(sc, argv))) {~%")
+(hoy "  ref_argv = (char**)calloc(ref_argc, sizeof(char*)); ~%")
+(hoy "  { ~%")
+(hoy "    int i; ~%")
 (hey "    Xen lst; ~%")
 (hey "    lst = Xen_copy_arg(argv); ~%")
 (hey "    for (i = 0; i < ref_argc; i++, lst = Xen_cdr(lst)) ref_argv[i] = Xen_to_C_char_(Xen_car(lst));~%")
-(hey "  }~%")
-(hey "  gtk_init(&ref_argc, &ref_argv);~%")
+(hay "    for (i = 0; i < ref_argc; i++, argv = s7_cdr(argv)) ref_argv[i] = (char *)s7_string(s7_car(argv));}~%")
+(hoy "  }~%")
+(hoy "  gtk_init(&ref_argc, &ref_argv);~%")
 (hey "  return(Xen_list_2(C_to_Xen_int(ref_argc), C_to_Xen_char__(ref_argv)));~%")
-(hey "} ~%")
-(hey "~%")
+(hay "  return(argc);~%")
+(hoy "} ~%")
+(hoy "~%")
 (hey "static Xen gxg_gtk_init_check(Xen argc, Xen argv) ~%")
-(hey "{ ~%")
-(hey "  #define H_gtk_init_check \"gboolean gtk_init_check(int* argc, char*** argv)\" ~%")
-(hey "  int ref_argc = 0; ~%")
-(hey "  char** ref_argv = NULL; ~%")
+(hay "static s7_pointer lg_gtk_init_check(s7_scheme *sc, s7_pointer args)~%")
+(hoy "{ ~%")
+(hoy "  #define H_gtk_init_check \"gboolean gtk_init_check(int* argc, char*** argv)\" ~%")
+(hoy "  int ref_argc = 0; ~%")
+(hoy "  char** ref_argv = NULL; ~%")
+(hay "  s7_pointer argc = NULL, argv = NULL;~%")
+(hay "  if (s7_is_pair(args)) {argc = s7_car(args); ref_argc = s7_integer(argc); if (s7_is_pair(s7_cdr(args))) argv = s7_cadr(args);}~%")
+(hay "  if ((argv) && (ref_argc > 0) && (s7_is_pair(argv)) && (ref_argc <= s7_list_length(sc, argv))) {~%")
+(hay "  ref_argv = (char**)calloc(ref_argc, sizeof(char*)); ~%")
+(hay "  { ~%")
+(hay "    int i; ~%")
+(hay "    for (i = 0; i < ref_argc; i++, argv = s7_cdr(argv)) ref_argv[i] = (char *)s7_string(s7_car(argv));}~%")
+(hay "  }~%")
+(hay "  gtk_init(&ref_argc, &ref_argv);~%")
+(hay "  return(argc);~%")
+(hay "} ~%")
+(hay "~%")
 (hey "  if (Xen_is_bound(argc) && Xen_is_list(argc)) ~%")
 (hey "    { ~%")
 (hey "      argv = argc; ~%")
@@ -2406,8 +2867,8 @@
 (hey "    result = C_to_Xen_gboolean(gtk_init_check(&ref_argc, &ref_argv));~%")
 (hey "    return(Xen_list_3(result, C_to_Xen_int(ref_argc), C_to_Xen_char__(ref_argv)));~%")
 (hey "  }~%")
-(hey "#endif~%")
-(hey "}~%~%")
+(hey "}~%")
+(hoy "#endif~%~%")
 
 (hey "static Xen gxg_make_target_entry(Xen lst)~%")
 (hey "{~%")
@@ -2511,6 +2972,48 @@
 (hey " if (e) return(C_int_to_Xen_integer((int)(e->keyval)));~% return(XEN_ZERO);~%")
 (hey "}~%~%")
 
+
+(hay "static s7_pointer lg_g_object_get(s7_scheme *sc, s7_pointer args)~%")
+(hay "{~%")
+(hay "  s7_pointer val, name, string_type;~%")
+(hay "  gint temp; gchar *str;~%")
+(hay "  val = s7_car(args);~%")
+(hay "  if (!s7_is_c_pointer(val)) s7_wrong_type_arg_error(sc, \"g_object_get\", 1, val, \"gpointer\");~%")
+(hay "  name = s7_cadr(args);~%")
+(hay "  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, \"g_object_get\", 2, name, \"string\");~%")
+(hay "  string_type = s7_caddr(args);~%")
+(hay "  if (string_type == lg_false)~%")
+(hay "    {g_object_get((gpointer)s7_c_pointer(val), (const gchar *)s7_string(name), &temp, NULL); return(s7_make_integer(sc, temp));}~%")
+(hay "  else {g_object_get((gpointer)s7_c_pointer(val), (const gchar *)s7_string(name), &str, NULL); return(s7_make_string(sc, str));}~%")
+(hay "}~%~%")
+
+(hay "static s7_pointer lg_g_object_set(s7_scheme *sc, s7_pointer args)~%")
+(hay "{~%")
+(hay "  s7_pointer val, name, new_val;~%")
+(hay "  val = s7_car(args);~%")
+(hay "  if (!s7_is_c_pointer(val)) s7_wrong_type_arg_error(sc, \"g_object_set\", 1, val, \"gpointer\");~%")
+(hay "  name = s7_cadr(args);~%")
+(hay "  if (!s7_is_string(name)) s7_wrong_type_arg_error(sc, \"g_object_set\", 2, name, \"string\");~%")
+(hay "  new_val = s7_caddr(args);~%")
+(hay "  if (s7_is_boolean(new_val))~%")
+(hay "    g_object_set((gpointer)s7_c_pointer(val), (const gchar *)s7_string(name), s7_boolean(sc, new_val), NULL);~%")
+(hay "  else~%")
+(hay "    {~%")
+(hay "      if (s7_is_number(new_val))~%")
+(hay "        g_object_set((gpointer)s7_c_pointer(val), (const gchar *)s7_string(name), s7_integer(new_val), NULL);~%")
+(hay "      else g_object_set((gpointer)s7_c_pointer(val), (const gchar *)s7_string(name), s7_string(new_val), NULL);~%")
+(hay "    }~%")
+(hay "  return(new_val);~%")
+(hay "}~%~%")
+
+(hay "static s7_pointer lg_gtk_event_keyval(s7_scheme *sc, s7_pointer args)~%")
+(hay "{~%")
+(hay "  GdkEventKey *e;~%")
+(hay "  e = (GdkEventKey*)s7_c_pointer(s7_car(args));~%")
+(hay " if (e) return(s7_make_integer(sc, (int)(e->keyval)));~% return(s7_make_integer(sc, 0));~%")
+(hay "}~%~%")
+
+
 (hey "static Xen xen_list_to_c_array(Xen val, Xen type)~%")
 (hey "{~%")
 (hey "  int i, len;~%")
@@ -2530,40 +3033,51 @@
 
 
 (hey "static Xen gxg_make_GtkTextIter(void)~%")
-(hey "{~%")
-(hey "  GtkTextIter* result;~%")
-(hey "  result = (GtkTextIter*)calloc(1, sizeof(GtkTextIter));~%")
+(hay "static s7_pointer lg_make_GtkTextIter(s7_scheme *sc, s7_pointer args)~%")
+(hoy "{~%")
+(hoy "  GtkTextIter* result;~%")
+(hoy "  result = (GtkTextIter*)calloc(1, sizeof(GtkTextIter));~%")
 (hey "  return(Xen_list_3(C_string_to_Xen_symbol(\"GtkTextIter_\"), Xen_wrap_C_pointer(result), make_xm_obj(result)));~%")
-(hey "}~%")
-(hey "~%")
+(hay "  return(s7_make_c_pointer_with_type(sc, result, s7_make_symbol(sc, \"GtkTextIter_\"), make_xm_obj(sc, result)));~%")
+(hoy "}~%")
+(hoy "~%")
 (hey "static Xen gxg_make_GtkTreeIter(void)~%")
-(hey "{~%")
-(hey "  GtkTreeIter* result;~%")
-(hey "  result = (GtkTreeIter*)calloc(1, sizeof(GtkTreeIter));~%")
+(hay "static s7_pointer lg_make_GtkTreeIter(s7_scheme *sc, s7_pointer args)~%")
+(hoy "{~%")
+(hoy "  GtkTreeIter* result;~%")
+(hoy "  result = (GtkTreeIter*)calloc(1, sizeof(GtkTreeIter));~%")
 (hey "  return(Xen_list_3(C_string_to_Xen_symbol(\"GtkTreeIter_\"), Xen_wrap_C_pointer(result), make_xm_obj(result)));~%")
-(hey "}~%")
-(hey "~%")
+(hay "  return(s7_make_c_pointer_with_type(sc, result, s7_make_symbol(sc, \"GtkTreeIter_\"), make_xm_obj(sc, result)));~%")
+(hoy "}~%")
+(hoy "~%")
 (hey "static Xen gxg_make_PangoRectangle(void)~%")
-(hey "{~%")
-(hey "  PangoRectangle* result;~%")
-(hey "  result = (PangoRectangle*)calloc(1, sizeof(PangoRectangle));~%")
+(hay "static s7_pointer lg_make_PangoRectangle(s7_scheme *sc, s7_pointer args)~%")
+(hoy "{~%")
+(hoy "  PangoRectangle* result;~%")
+(hoy "  result = (PangoRectangle*)calloc(1, sizeof(PangoRectangle));~%")
 (hey "  return(Xen_list_3(C_string_to_Xen_symbol(\"PangoRectangle_\"), Xen_wrap_C_pointer(result), make_xm_obj(result)));~%")
-(hey "}~%")
-(hey "~%")
+(hay "  return(s7_make_c_pointer_with_type(sc, result, s7_make_symbol(sc, \"PangoRectangle_\"), make_xm_obj(sc, result)));~%")
+(hoy "}~%")
+(hoy "~%")
 (hey "static Xen gxg_make_cairo_matrix_t(void)~%")
-(hey "{~%")
-(hey "  cairo_matrix_t* result;~%")
-(hey "  result = (cairo_matrix_t*)calloc(1, sizeof(cairo_matrix_t));~%")
+(hay "static s7_pointer lg_make_cairo_matrix_t(s7_scheme *sc, s7_pointer args)~%")
+(hoy "{~%")
+(hoy "  cairo_matrix_t* result;~%")
+(hoy "  result = (cairo_matrix_t*)calloc(1, sizeof(cairo_matrix_t));~%")
 (hey "  return(Xen_list_3(C_string_to_Xen_symbol(\"cairo_matrix_t_\"), Xen_wrap_C_pointer(result), make_xm_obj(result)));~%")
-(hey "}~%~%")
-(hey "#if GTK_CHECK_VERSION(3, 0, 0)~%")
+(hay "  return(s7_make_c_pointer_with_type(sc, result, s7_make_symbol(sc, \"cairo_matrix_t_\"), make_xm_obj(sc, result)));~%")
+(hoy "}~%~%")
+(hoy "#if GTK_CHECK_VERSION(3, 0, 0)~%")
 (hey "static Xen gxg_make_GdkRGBA(void)~%")
-(hey "{~%")
-(hey "  GdkRGBA* result;~%")
-(hey "  result = (GdkRGBA*)calloc(1, sizeof(GdkRGBA));~%")
+(hay "static s7_pointer lg_make_GdkRGBA(s7_scheme *sc, s7_pointer args)~%")
+(hoy "{~%")
+(hoy "  GdkRGBA* result;~%")
+(hoy "  result = (GdkRGBA*)calloc(1, sizeof(GdkRGBA));~%")
 (hey "  return(Xen_list_3(C_string_to_Xen_symbol(\"GdkRGBA_\"), Xen_wrap_C_pointer(result), make_xm_obj(result)));~%")
-(hey "}~%")
-(hey "#endif~%~%")
+(hay "  return(s7_make_c_pointer_with_type(sc, result, s7_make_symbol(sc, \"GdkRGBA_\"), make_xm_obj(sc, result)));~%")
+(hoy "}~%")
+(hoy "#endif~%~%")
+
 
 ;;; these changed from void to gboolean
 (hey "static Xen gxg_gtk_text_view_get_iter_at_position(Xen text_view, Xen iter, Xen ignore_trailing, Xen x, Xen y)~%")
@@ -2601,6 +3115,49 @@
 (hey "#endif~%")
 (hey "}~%~%")
 
+(hay "static s7_pointer lg_gtk_text_view_get_iter_at_position(s7_scheme *sc, s7_pointer args)~%")
+(hay "{~%")
+(hay "  #define H_gtk_text_view_get_iter_at_position \"gboolean gtk_text_view_get_iter_at_position(GtkTextView* text_view, GtkTextIter* iter, gint* [trailing], gint x, gint y)\"~%")
+(hay "  gint ref_trailing;~%")
+(hay "  s7_pointer text_view, iter, x, y, p;~%")
+(hay "  text_view = s7_car(args);~%")
+(hay "  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, \"gtk_text_view_get_iter_at_position\", 1, text_view, \"GtkTextView*\");~%")
+(hay "  iter = s7_cadr(args);~%")
+(hay "  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, \"gtk_text_view_get_iter_at_position\", 2, iter, \"GtkTextIter*\");~%")
+(hay "  p = s7_cdddr(args); x = s7_car(p); y = s7_cadr(p);~%")
+(hay "  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, \"gtk_text_view_get_iter_at_position\", 4, x, \"gint\");~%")
+(hay "  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, \"gtk_text_view_get_iter_at_position\", 5, y, \"gint\");~%")
+(hay "#if GTK_CHECK_VERSION(3, 20, 0)~%")
+(hay "  {~%")
+(hay "    s7_pointer result;~%")
+(hay "    result = s7_make_boolean(sc, gtk_text_view_get_iter_at_position((GtkTextView*)s7_c_pointer(text_view), (GtkTextIter*)s7_c_pointer(iter), ~%")
+(hay "                                                                  &ref_trailing, s7_integer(x), s7_integer(y)));~%")
+(hay "    return(s7_list(sc, 2, result, s7_make_integer(sc, ref_trailing)));~%")
+(hay "   }~%")
+(hay "#else~%")
+(hay "  gtk_text_view_get_iter_at_position((GtkTextView*)s7_c_pointer(text_view), (GtkTextIter*)s7_c_pointer(iter), &ref_trailing, s7_integer(x), s7_integer(y));~%")
+(hay "  return(s7_list(sc, 1, s7_make_integer(sc, (ref_trailing)));~%")
+(hay "#endif~%")
+(hay "}~%~%")
+(hay "static s7_pointer lg_gtk_text_view_get_iter_at_location(s7_scheme *sc, s7_pointer args)~%")
+(hay "{~%")
+(hay "  #define H_gtk_text_view_get_iter_at_location \"gboolean gtk_text_view_get_iter_at_location(GtkTextView* text_view, GtkTextIter* iter, gint x, gint y)\"~%")
+(hay "  s7_pointer text_view, iter, x, y, p;~%")
+(hay "  text_view = s7_car(args);~%")
+(hay "  if (!s7_is_c_pointer_of_type(text_view, GtkTextView__sym)) s7_wrong_type_arg_error(sc, \"gtk_text_view_get_iter_at_location\", 1, text_view, \"GtkTextView*\");~%")
+(hay "  iter = s7_cadr(args);~%")
+(hay "  if (!s7_is_c_pointer_of_type(iter, GtkTextIter__sym)) s7_wrong_type_arg_error(sc, \"gtk_text_view_get_iter_at_location\", 2, iter, \"GtkTextIter*\");~%")
+(hay "  p = s7_cddr(args); x = s7_car(p); y = s7_cadr(p);~%")
+(hay "  if (!s7_is_integer(x)) s7_wrong_type_arg_error(sc, \"gtk_text_view_get_iter_at_location\", 4, x, \"gint\");~%")
+(hay "  if (!s7_is_integer(y)) s7_wrong_type_arg_error(sc, \"gtk_text_view_get_iter_at_location\", 5, y, \"gint\");~%")
+(hay "#if GTK_CHECK_VERSION(3, 20, 0)~%")
+(hay "  return(s7_make_boolean(sc, gtk_text_view_get_iter_at_location((GtkTextView*)s7_c_pointer(text_view), (GtkTextIter*)s7_c_pointer(iter), s7_integer(x), s7_integer(y))));~%")
+(hay "#else~%")
+(hay "  gtk_text_view_get_iter_at_location((GtkTextView*)s7_c_pointer(text_view), (GtkTextIter*)s7_c_pointer(iter), s7_integer(x), s7_integer(y));~%")
+(hay "  return(lg_false);~%")
+(hay "#endif~%")
+(hay "}~%~%")
+
 
 (hey "#if HAVE_SCHEME~%")
 (hey "  #define Xg_define_procedure(Name, Value, A1, A2, A3, Help, Sig) s7_define_typed_function(s7, Xg_pre #Name Xg_post, Value, A1, A2, A3, Help, Sig)~%")
@@ -2636,6 +3193,20 @@
 (hey "#endif~%")
 (hey "}~%~%")
   
+(hay "~%~%")
+(hay "static void define_structs(s7_scheme *sc)~%")
+(hay "{~%")
+(hay "  s7_define_function(sc, \"GtkTextIter\", lg_make_GtkTextIter, 0, 0, 0, \"(GtkTextIter): a new GtkTextIter struct\");~%")
+(hay "  s7_define_function(sc, \"GtkTreeIter\", lg_make_GtkTreeIter, 0, 0, 0, \"(GtkTreeIter): a new GtkTreeIter struct\");~%")
+(hay "  s7_define_function(sc, \"PangoRectangle\", lg_make_PangoRectangle, 0, 0, 0, \"(PangoRectangle): a new PangoRectangle struct\");~%")
+(hay "  s7_define_function(sc, \"cairo_matrix_t\", lg_make_cairo_matrix_t, 0, 0, 0, \"(cairo_matrix_t): a new cairo_matrix_t struct\");~%")
+(hay "  s7_define_function(sc, \"gtk_text_view_get_iter_at_location\", lg_gtk_text_view_get_iter_at_location, 4, 0, 0, H_gtk_text_view_get_iter_at_location);~%")
+(hay "  s7_define_function(sc, \"gtk_text_view_get_iter_at_position\", lg_gtk_text_view_get_iter_at_position, 4, 1, 0, H_gtk_text_view_get_iter_at_position);~%")
+(hay "#if GTK_CHECK_VERSION(3, 0, 0)~%")
+(hay "  s7_define_function(sc, \"GdkRGBA\", lg_make_GdkRGBA, 0, 0, 0, \"(GdkRGBA): a new GdkRGBA struct\");~%")
+(hay "#endif~%")
+(hay "}~%~%")
+
 
 
 ;;; ---------------- argify ----------------
@@ -2704,7 +3275,6 @@
 
 
 ;;; --------------------------------------------------------------------------------
-(hey "#if HAVE_SCHEME~%")
 
 (define (gtk-type->s7-type gtk)
   (cond ((member gtk declared-names (lambda (a b)
@@ -2755,8 +3325,14 @@
 
 ;(format *stderr* "~D entries, ~D funcs~%" (hash-table-entries signatures) (length funcs))
 
-(hey "static s7_pointer s_boolean, s_integer, s_real, s_string, s_any, s_pair, s_float, s_gtk_enum_t, s_pair_false;~%")
-(hey "static s7_pointer ")
+;;; --------------------------------------------------------------------------------
+(hey "static void define_functions(void)~%")
+(hay "static void define_functions(s7_scheme *sc)~%")
+(hoy "{~%")
+(hey "#if HAVE_SCHEME~%")
+
+(hoy "  s7_pointer s_boolean, s_integer, s_real, s_string, s_any, s_pair, s_float, s_gtk_enum_t, s_pair_false;~%")
+(hoy "  s7_pointer ")
 
 (define (sig-name sig)
   (call-with-output-string
@@ -2787,15 +3363,14 @@
 (for-each
  (lambda (sigc)
    (let ((sig (car sigc)))
-     (hey (sig-name sig))
-     (hey ", ")))
+     (hoy (sig-name sig))
+     (hoy ", ")))
  signatures)
-(hey "pl_bpt;~%")
+(hoy "pl_bpt;~%")
 (hey "#endif~%~%")
-
-;;; --------------------------------------------------------------------------------
-(hey "static void define_functions(void)~%")
-(hey "{~%")
+(hay "~%")
+;(hay "  s7_pointer cur_env;~%")
+;(hay "  cur_env = s7_curlet(sc);~%~%")
 
 (hey "  xm_gc_table = Xen_make_vector(1, Xen_false);~%")
 (hey "  Xen_GC_protect(xm_gc_table);~%")
@@ -2814,18 +3389,29 @@
 (hey "  s_gtk_enum_t = s7_make_symbol(s7, \"gtk_enum_t?\");~%")
 (hey "  s_any = s7_t(s7);~%~%")
 
+(hay "  s_boolean = s7_make_symbol(sc, \"boolean?\");~%")
+(hay "  s_integer = s7_make_symbol(sc, \"integer?\");~%")
+(hay "  s_real = s7_make_symbol(sc, \"real?\");~%")
+(hay "  s_float = s7_make_symbol(sc, \"float?\");~%")
+(hay "  s_string = s7_make_symbol(sc, \"string?\");~%")
+(hay "  s_pair = s7_make_symbol(sc, \"pair?\");~%")
+(hay "  s_pair_false = s7_make_signature(sc, 2, s_pair, s_boolean);~%")
+(hay "  s_gtk_enum_t = s7_make_symbol(sc, \"gtk_enum_t?\");~%")
+(hay "  s_any = s7_t(sc);~%~%")
+
 (for-each
  (lambda (sigc)
    (let ((sig (car sigc)))
-     (hey "  ")
-     (hey (sig-name sig))
+     (hoy "  ")
+     (hoy (sig-name sig))
      (hey " = s7_make_circular_signature(s7, ")
+     (hay " = s7_make_circular_signature(sc, ")
      (let ((len (length sig)))
-       (hey (number->string (- len 1)))
-       (hey ", ")
-       (hey (number->string len))
-       (hey ", ")
-       (hey (case (car sig)
+       (hoy (number->string (- len 1)))
+       (hoy ", ")
+       (hoy (number->string len))
+       (hoy ", ")
+       (hoy (case (car sig)
 	      ((integer?)    "s_integer")
 	      ((boolean?)    "s_boolean")
 	      ((real?)       "s_float")
@@ -2833,12 +3419,12 @@
 	      ((pair?)       "s_pair")
 	      ((gtk_enum_t?) "s_gtk_enum_t")
 	      (else          "s_any")))
-       (if (> len 1) (hey ", "))
+       (if (> len 1) (hoy ", "))
        (do ((i 1 (+ i 1))
 	    (s (cdr sig) (cdr s)))
 	   ((= i len))
 	 (let ((typ (car s)))
-	   (hey (case typ
+	   (hoy (case typ
 		  ((integer?)    "s_integer")
 		  ((boolean?)    "s_boolean")
 		  ((real?)       "s_real")
@@ -2846,11 +3432,13 @@
 		  ((pair?)       "s_pair_false")
 		  ((gtk_enum_t?) "s_gtk_enum_t")
 		  (else       "s_any"))))
-	 (if (< i (- len 1)) (hey ", "))))
-     (hey ");~%")))
+	 (if (< i (- len 1)) (hoy ", "))))
+     (hoy ");~%")))
  signatures)
 (hey "  pl_bpt = s7_make_signature(s7, 2, s_pair_false, s_any);~%")
+(hay "  pl_bpt = s7_make_signature(sc, 2, s_pair_false, s_any);~%")
 (hey "#endif~%~%")
+(hay "~%")
 
 (define (defun func)
   (let* ((cargs (length (caddr func)))
@@ -2865,14 +3453,20 @@
 	 (if (>= cargs max-args) 0 refargs)
 	 (if (>= cargs max-args) 1 0)
 	 (car func)
+	 (sig-name (make-signature func)))
+    (hay "  s7_define_typed_function(sc, \"~A\", lg_~A, ~D, ~D, ~D, H_~A, ~A);~%"
+	 (car func) (car func) 
+	 (if (>= cargs max-args) 0 args)
+	 (if (>= cargs max-args) 0 refargs)
+	 (if (>= cargs max-args) 1 0)
+	 (car func)
 	 (sig-name (make-signature func)))))
 
-
 (for-each defun (reverse funcs))
 (for-each
  (lambda (func-list with-func)
    (if (pair? func-list) 
-       (with-func hey (lambda () 
+       (with-func hoy (lambda () 
 			(for-each defun (reverse func-list))))))
  all-funcs all-func-withs)
 
@@ -2882,16 +3476,24 @@
 	 (no-arg f)
 	 (no-arg f)
 	 (no-arg f)
+	 (no-arg f))
+    (hay "  s7_define_typed_function(sc, \"~A\", lg_~A, 1, 0, 0, \"(~A obj) casts obj to ~A\", pl_bpt);~%" 
+	 (no-arg f)
+	 (no-arg f)
+	 (no-arg f)
 	 (no-arg f))))
 
+
 (hey "  Xg_define_procedure(GPOINTER, gxg_GPOINTER_w, 1, 0, 0, \"(GPOINTER obj) casts obj to GPOINTER\", NULL);~%")
+(hay "  s7_define_typed_function(sc, \"GPOINTER\", lg_GPOINTER, 1, 0, 0, \"(GPOINTER obj) casts obj to GPOINTER\", NULL);~%")
 
 (for-each cast-out (reverse casts))
 (for-each
  (lambda (cast-list cast-func)
    (if (pair? cast-list) 
-       (cast-func hey (lambda () 
-			(for-each cast-out (reverse cast-list))))))
+       (cast-func hoy 
+		  (lambda () 
+		    (for-each cast-out (reverse cast-list))))))
  all-casts all-cast-withs)
 
 
@@ -2902,28 +3504,41 @@
 (hey "  Xg_define_procedure(g_object_set, xg_object_set_w, 3, 0, 0, NULL, NULL);~%")
 (hey "  Xg_define_procedure(gtk_event_keyval, xg_gtk_event_keyval_w, 1, 0, 0, NULL, NULL);~%")
 
-(hey "#if (GTK_CHECK_VERSION(3, 90, 0))~%")
+(hay "  s7_define_function(sc, \"g_object_get\", lg_g_object_get, 3, 0, 0, NULL);~%")
+(hay "  s7_define_function(sc, \"g_object_set\", lg_g_object_set, 3, 0, 0, NULL);~%")
+(hay "  s7_define_function(sc, \"gtk_event_keyval\", lg_gtk_event_keyval, 1, 0, 0, NULL);~%")
+
+(hoy "#if (GTK_CHECK_VERSION(3, 90, 0))~%")
 (hey "  Xg_define_procedure(gtk_init, gxg_gtk_init_w, 0, 0, 0, H_gtk_init, NULL);~%")
 (hey "  Xg_define_procedure(gtk_init_check, gxg_gtk_init_check_w, 0, 0, 0, H_gtk_init_check, NULL);~%")
-(hey "#else~%")
+(hay "  s7_define_function(sc, \"gtk_init\", lg_gtk_init, 0, 0, 0, NULL);~%")
+(hay "  s7_define_function(sc, \"gtk_init_check\", lg_gtk_init_check, 0, 0, 0, NULL);~%")
+(hoy "#else~%")
 (hey "  Xg_define_procedure(gtk_init, gxg_gtk_init_w, 0, 2, 0, H_gtk_init, NULL);~%")
 (hey "  Xg_define_procedure(gtk_init_check, gxg_gtk_init_check_w, 0, 2, 0, H_gtk_init_check, NULL);~%")
-(hey "#endif~%")
+(hay "  s7_define_function(sc, \"gtk_init\", lg_gtk_init, 0, 2, 0, NULL);~%")
+(hay "  s7_define_function(sc, \"gtk_init_check\", lg_gtk_init_check, 0, 2, 0, NULL);~%")
+(hoy "#endif~%")
 
 (define (check-out func)
-  (let ((f (car func)))
-    (hey "  Xg_define_procedure(~A, gxg_~A_w, 1, 0, 0,~%~NC\"(~A obj): \" PROC_TRUE \" if obj is a ~A\", pl_bt);~%" 
+  (let ((f (car func))
+	(typ (cadr func)))
+    (hey "  Xg_define_procedure(~A, gxg_~A_w, 1, 0, 0, \"(~A obj): \" PROC_TRUE \" if obj is a ~A\", pl_bt);~%" 
        (no-arg f)
        (no-arg f)
-       22 #\space
        (no-arg f)
-       (no-arg f))))
+       typ)
+    (hay "  s7_define_typed_function(sc, \"~A\", lg_~A, 1, 0, 0, \"(~A obj): #t if obj is a ~A\", pl_bt);~%" 
+       (no-arg f)
+       (no-arg f)
+       (no-arg f)
+       typ)))
 
 (for-each check-out (reverse checks))
 (for-each
  (lambda (check-list check-func)
    (if (pair? check-list) 
-       (check-func hey (lambda () 
+       (check-func hoy (lambda () 
 			 (for-each check-out (reverse check-list))))))
  all-checks all-check-withs)
 
@@ -2932,7 +3547,7 @@
 (hey "Xg_define_procedure(free_cairo, gxg_free_cairo_w, 1, 0, 0, H_free_cairo, pl_pu);~%")
 (hey "#endif~%")
 
-(hey "}~%~%")
+(hoy "}~%~%")
 
 
 
@@ -2972,20 +3587,64 @@
  (reverse dbls))
 (hey "}~%~%")
 
+;;; ----------------
+(hay "static void define_integers(s7_scheme *sc)~%")
+(hay "{~%")
+(hay "  s7_pointer cur_env;~%")
+(hay "  cur_env = s7_curlet(sc);~%~%")
+(hay "#if !GLIB_CHECK_VERSION(2,35,0)~%")
+(hay "  g_type_init();~%")
+(hay "#endif~%")
+(for-each 
+ (lambda (val) 
+   (hay "  s7_define(sc, cur_env, s7_make_symbol(sc, \"~A\"), s7_make_integer(sc, ~A));~%" val val))
+ (reverse ints))
+(for-each
+ (lambda (ints-list with-ints)
+   (if (pair? ints-list)
+       (with-ints hay (lambda () 
+			(for-each (lambda (val)
+				    (hay "  s7_define(sc, cur_env, s7_make_symbol(sc, \"~A\"), s7_make_integer(sc, ~A));~%" val val))
+				  (reverse ints-list))))))
+ all-ints all-int-withs)
+(hay "}~%~%")
+(hay "static void define_doubles(s7_scheme *sc)~%")
+(hay "{~%")
+(hay "  s7_pointer cur_env;~%")
+(hay "  cur_env = s7_curlet(sc);~%~%")
+(for-each
+ (lambda (val)
+   (hay "  s7_define(sc, cur_env, s7_make_symbol(sc, \"~A\"), s7_make_real(sc, ~A));~%" val val))
+ (reverse dbls))
+(hay "}~%~%")
+;;; ----------------
+
 
 (hey "/* -------------------------------- predefined Atoms -------------------------------- */~%")
 (hey "~%")
 (hey "static void define_atoms(void)~%")
 (hey "{~%")
-(hey "#define define_atom(Name) Xen_define(Xg_pre #Name Xg_post, C_to_Xen_GdkAtom(Name))~%")
-(hey "~%")
-
+(hey "#define define_atom(Name) Xen_define(Xg_pre #Name Xg_post, C_to_Xen_GdkAtom(Name))~%~%")
 (for-each
  (lambda (atom)
    (hey "  define_atom(~A);~%" atom))
  (reverse atoms))
 (hey "}~%~%")
 
+;;; ----------------
+(hay "~%")
+(hay "static void define_atoms(s7_scheme *sc)~%")
+(hay "{~%")
+(hay "  s7_pointer cur_env, gdkatom_symbol;~%")
+(hay "  cur_env = s7_curlet(sc);~%")
+(hay "  gdkatom_symbol = s7_make_symbol(sc, \"GdkAtom\");~%~%")
+(for-each
+ (lambda (atom)
+   (hay "  s7_define(sc, cur_env, s7_make_symbol(sc, \"~A\"), s7_make_c_pointer_with_type(sc, ~A, gdkatom_symbol, lg_false));~%" atom atom))
+ (reverse atoms))
+(hay "}~%~%")
+;;; ----------------
+
 
 (hey "/* -------------------------------- symbols -------------------------------- */~%")
 (hey "~%")
@@ -3002,6 +3661,19 @@
  other-types)
 (hey "}~%~%")
 
+;;; ----------------
+(hay "~%")
+(hay "static void define_symbols(s7_scheme *sc)~%")
+(hay "{~%")
+(for-each
+ (lambda (typ)
+   (let ((typsym (hash-table-ref c->s7 (no-stars typ))))
+     (if (memq typsym '(s7_make_c_pointer #f))
+	 (hay "  ~A_sym = s7_make_symbol(sc, \"~A\");~%" (no-stars typ) (no-stars typ)))))
+ all-types)
+(hay "}~%~%")
+;;; ----------------
+
 
 (hey "/* -------------------------------- strings -------------------------------- */~%")
 (hey "~%")
@@ -3022,144 +3694,177 @@
 
 (hey "}~%~%")
 
+;;; ----------------
+(hay "~%")
+(hay "static void define_strings(s7_scheme *sc)~%")
+(hay "{~%")
+(hay "  s7_pointer cur_env;~%")
+(hay "  cur_env = s7_curlet(sc);~%~%")
+(for-each (lambda (str) 
+	    (hay "  s7_define(sc, cur_env, s7_make_symbol(sc, \"~A\"), s7_make_string(sc, ~A));~%" str str))
+(reverse strings))
+(for-each
+ (lambda (strings-list with-strings)
+   (if (pair? strings-list)
+       (with-strings hay (lambda () 
+			   (for-each (lambda (str) 
+				       (hay "  s7_define(sc, cur_env, s7_make_symbol(sc, \"~A\"), s7_make_string(sc, ~A));~%" str str))
+				     (reverse strings-list))))))
+ all-strings all-string-withs)
+(hay "}~%~%")
+;;; ----------------
 
 (hey "/* -------------------------------- lint -------------------------------- */~%")
 (hey "~%")
 (hey "#if HAVE_SCHEME~%")
-(hey "typedef struct {const char *name, *type; long long int value;} enummer_t;~%")
-(hey "static enummer_t enum_info[] = {~%")
+(hoy "typedef struct {const char *name, *type; int64_t value;} enummer_t;~%")
+(hoy "static enummer_t enum_info[] = {~%")
 (set! declared-names (sort! declared-names (lambda (a b)
 					     (string<? (caddr a) (caddr b)))))
 (do ((version "")
      (names declared-names (cdr names)))
     ((null? names)
-     (hey "#endif~%~NC{NULL, NULL, 0}};~%~%" 8 #\space)) ; end marker
+     (hoy "#endif~%~NC{NULL, NULL, 0}};~%~%" 8 #\space)) ; end marker
   (unless (string=? (caddar names) version)
     (if (> (length version) 0)
-	(hey "#endif~%"))
+	(hoy "#endif~%"))
     (set! version (caddar names))
-    (hey (string-append "#if GTK_CHECK_VERSION(" (substring version 0 1) ", " (substring version 2) ", 0)~%")))
-  (hey "~NC{~S, ~S, ~A},~%" 8 #\space (caar names) (cadar names) (caar names)))
-
-(hey "static s7_pointer enum_value_to_name(s7_scheme *sc, long long int val, const char *type) ~%")
-(hey "{ ~%")
-(hey "  int k; ~%")
-(hey "  long long int range_min = 0, range_max = 0; ~%")
-(hey "  bool range_set = false; ~%")
-(hey "  for (k = 0; ; k++) ~%")
-(hey "    { ~%")
-(hey "      enummer_t nt; ~%")
-(hey "      nt = enum_info[k]; ~%")
-(hey "      if (!nt.name) ~%")
-(hey "	break; ~%")
-(hey "      if (strcmp(nt.type, type) == 0) ~%")
-(hey "	{ ~%")
-(hey "	  if (nt.value == val)        /* ... value should be <nt.name> */ ~%")
-(hey "	    return(s7_make_string(sc, nt.name)); ~%")
-(hey "	  if (!range_set) ~%")
-(hey "	    { ~%")
-(hey "	      range_min = nt.value; ~%")
-(hey "	      range_max = nt.value; ~%")
-(hey "	      range_set = true; ~%")
-(hey "	    } ~%")
-(hey "	  else ~%")
-(hey "	    { ~%")
-(hey "	      if (range_min > nt.value) range_min = nt.value; ~%")
-(hey "	      if (range_max < nt.value) range_max = nt.value; ~%")
-(hey "	    } ~%")
-(hey "	} ~%")
-(hey "    } ~%")
-(hey "  if (range_set)       /* here we found a matching name, its type is wrong, and it's out of range */ ~%")
-(hey "    { ~%")
-(hey "      char *range_string; ~%")
-(hey "      s7_pointer str; ~%")
-(hey "      range_string = (char *)malloc(256 * sizeof(char)); ~%")
-(hey "      snprintf(range_string, 256, \"between %lld and %lld\", range_min, range_max); ~%")
-(hey "      str = s7_make_string(sc, range_string); ~%")
-(hey "      free(range_string); ~%")
-(hey "      return(str);                            /* ... value should be between <min> and <max> */ ~%")
-(hey "    } ~%")
-(hey "  return(s_integer); ~%")
-(hey "}~%~%")
-
-(hey "static s7_pointer g_gtk_enum_t(s7_scheme *sc, s7_pointer args) ~%")
-(hey "{ ~%")
-(hey "  s7_pointer form, argn, func, arg; ~%")
-(hey "  const char *doc_string, *p; ~%")
-(hey "  int arg_number; ~%")
-(hey "  form = s7_car(args);  ~%")
-(hey "  argn = s7_cadr(args); ~%")
-(hey "  arg_number = s7_integer(argn); ~%")
-(hey "  arg = s7_list_ref(sc, form, arg_number); ~%")
-(hey "  if ((!s7_is_integer(arg)) && ~%")
-(hey "      (!s7_is_symbol(arg))) ~%")
-(hey "    return(s_integer); ~%")
-(hey "  func = s7_car(form); ~%")
-(hey "  doc_string = s7_procedure_documentation(sc, func); ~%")
-(hey "  p = strchr(doc_string, (int)'('); ~%")
-(hey "  if (p) ~%")
-(hey "    { ~%")
-(hey "      int i; ~%")
-(hey "      for (i = 1; i < arg_number; i++) ~%")
-(hey "	p = strchr((char *)(p + 1), (int)','); ~%")
-(hey "      if (p) ~%")
-(hey "	{ ~%")
-(hey "	  const char *e; ~%")
-(hey "	  p += 2; /* past comma and space */ ~%")
-(hey "	  e = strchr(p, (int)' '); ~%")
-(hey "	  if (e) ~%")
-(hey "	    { ~%")
-(hey "	      int len; ~%")
-(hey "	      char *type; ~%")
-(hey "	      len = e - p + 1; ~%")
-(hey "	      type = (char *)malloc(len * sizeof(char)); ~%")
-(hey "	      for (i = 0; i < len; i++) type[i] = p[i]; ~%")
-(hey "	      type[len - 1] = '\\0'; ~%")
-(hey "	      if (s7_is_symbol(arg)) ~%")
-(hey "		{ ~%")
-(hey "		  const char *arg_name; ~%")
-(hey "		  arg_name = s7_symbol_name(arg); /* no free */ ~%")
-(hey "		  for (i = 0; ; i++) ~%")
-(hey "		    { ~%")
-(hey "		      enummer_t et; ~%")
-(hey "		      et = enum_info[i]; ~%")
-(hey "		      if (!et.name) ~%")
-(hey "			break; ~%")
-(hey "		      if (strcmp(et.name, arg_name) == 0) ~%")
-(hey "			{ ~%")
-(hey "			  if (strcmp(et.type, type) == 0)                 /* success -- name and type match */ ~%")
-(hey "			    { ~%")
-(hey "			      free(type); ~%")
-(hey "			      return(s7_t(sc)); ~%")
-(hey "			    } ~%")
-(hey "			  return(enum_value_to_name(sc, et.value, type)); /* here the type is wrong, so try to find the correct name */ ~%")
-(hey "			} ~%")
-(hey "		    } ~%")
-(hey "		  return(s_integer);                                      /* here we got no matches, so return 'integer? */ ~%")
-(hey "		} ~%")
-(hey "	      return(enum_value_to_name(sc, s7_integer(arg), type));      /* here arg is an integer */ ~%")
-(hey "	    } ~%")
-(hey "	} ~%")
-(hey "    } ~%")
-(hey "  return(s_integer); ~%")
-(hey "}~%~%")
+    (hoy (string-append "#if GTK_CHECK_VERSION(" (substring version 0 1) ", " (substring version 2) ", 0)~%")))
+  (hoy "~NC{~S, ~S, ~A},~%" 8 #\space (caar names) (cadar names) (caar names)))
+
+(hoy "static s7_pointer enum_value_to_name(s7_scheme *sc, int64_t val, const char *type) ~%")
+(hoy "{ ~%")
+(hoy "  int k; ~%")
+(hoy "  int64_t range_min = 0, range_max = 0; ~%")
+(hoy "  bool range_set = false; ~%")
+(hoy "  for (k = 0; ; k++) ~%")
+(hoy "    { ~%")
+(hoy "      enummer_t nt; ~%")
+(hoy "      nt = enum_info[k]; ~%")
+(hoy "      if (!nt.name) ~%")
+(hoy "	break; ~%")
+(hoy "      if (strcmp(nt.type, type) == 0) ~%")
+(hoy "	{ ~%")
+(hoy "	  if (nt.value == val)        /* ... value should be <nt.name> */ ~%")
+(hoy "	    return(s7_make_string(sc, nt.name)); ~%")
+(hoy "	  if (!range_set) ~%")
+(hoy "	    { ~%")
+(hoy "	      range_min = nt.value; ~%")
+(hoy "	      range_max = nt.value; ~%")
+(hoy "	      range_set = true; ~%")
+(hoy "	    } ~%")
+(hoy "	  else ~%")
+(hoy "	    { ~%")
+(hoy "	      if (range_min > nt.value) range_min = nt.value; ~%")
+(hoy "	      if (range_max < nt.value) range_max = nt.value; ~%")
+(hoy "	    } ~%")
+(hoy "	} ~%")
+(hoy "    } ~%")
+(hoy "  if (range_set)       /* here we found a matching name, its type is wrong, and it's out of range */ ~%")
+(hoy "    { ~%")
+(hoy "      char *range_string; ~%")
+(hoy "      s7_pointer str; ~%")
+(hoy "      range_string = (char *)malloc(256 * sizeof(char)); ~%")
+(hoy "      snprintf(range_string, 256, \"between %\" PRId64 \" and %\" PRId64, range_min, range_max); ~%")
+(hoy "      str = s7_make_string(sc, range_string); ~%")
+(hoy "      free(range_string); ~%")
+(hoy "      return(str);                            /* ... value should be between <min> and <max> */ ~%")
+(hoy "    } ~%")
+(hoy "  return(s7_make_symbol(sc, \"integer?\")); ~%")
+(hoy "}~%~%")
+
+(hoy "static s7_pointer g_gtk_enum_t(s7_scheme *sc, s7_pointer args) ~%")
+(hoy "{ ~%")
+(hoy "  s7_pointer form, argn, func, arg; ~%")
+(hoy "  const char *doc_string, *p; ~%")
+(hoy "  int arg_number; ~%")
+(hoy "  form = s7_car(args);  ~%")
+(hoy "  argn = s7_cadr(args); ~%")
+(hoy "  arg_number = s7_integer(argn); ~%")
+(hoy "  arg = s7_list_ref(sc, form, arg_number); ~%")
+(hoy "  if ((!s7_is_integer(arg)) && ~%")
+(hoy "      (!s7_is_symbol(arg))) ~%")
+(hoy "    return(s7_make_symbol(sc, \"integer?\")); ~%")
+(hoy "  func = s7_car(form); ~%")
+(hoy "  doc_string = s7_procedure_documentation(sc, func); ~%")
+(hoy "  p = strchr(doc_string, (int)'('); ~%")
+(hoy "  if (p) ~%")
+(hoy "    { ~%")
+(hoy "      int i; ~%")
+(hoy "      for (i = 1; i < arg_number; i++) ~%")
+(hoy "	p = strchr((char *)(p + 1), (int)','); ~%")
+(hoy "      if (p) ~%")
+(hoy "	{ ~%")
+(hoy "	  const char *e; ~%")
+(hoy "	  p += 2; /* past comma and space */ ~%")
+(hoy "	  e = strchr(p, (int)' '); ~%")
+(hoy "	  if (e) ~%")
+(hoy "	    { ~%")
+(hoy "	      int len; ~%")
+(hoy "	      char *type; ~%")
+(hoy "	      len = e - p + 1; ~%")
+(hoy "	      type = (char *)malloc(len * sizeof(char)); ~%")
+(hoy "	      for (i = 0; i < len; i++) type[i] = p[i]; ~%")
+(hoy "	      type[len - 1] = '\\0'; ~%")
+(hoy "	      if (s7_is_symbol(arg)) ~%")
+(hoy "		{ ~%")
+(hoy "		  const char *arg_name; ~%")
+(hoy "		  arg_name = s7_symbol_name(arg); /* no free */ ~%")
+(hoy "		  for (i = 0; ; i++) ~%")
+(hoy "		    { ~%")
+(hoy "		      enummer_t et; ~%")
+(hoy "		      et = enum_info[i]; ~%")
+(hoy "		      if (!et.name) ~%")
+(hoy "			break; ~%")
+(hoy "		      if (strcmp(et.name, arg_name) == 0) ~%")
+(hoy "			{ ~%")
+(hoy "			  if (strcmp(et.type, type) == 0)                 /* success -- name and type match */ ~%")
+(hoy "			    { ~%")
+(hoy "			      free(type); ~%")
+(hoy "			      return(s7_t(sc)); ~%")
+(hoy "			    } ~%")
+(hoy "			  return(enum_value_to_name(sc, et.value, type)); /* here the type is wrong, so try to find the correct name */ ~%")
+(hoy "			} ~%")
+(hoy "		    } ~%")
+(hoy "		  return(s7_make_symbol(sc, \"integer?\"));               /* here we got no matches, so return 'integer? */ ~%")
+(hoy "		} ~%")
+(hoy "	      return(enum_value_to_name(sc, s7_integer(arg), type));      /* here arg is an integer */ ~%")
+(hoy "	    } ~%")
+(hoy "	} ~%")
+(hoy "    } ~%")
+(hoy "  return(s7_make_symbol(sc, \"integer?\")); ~%")
+(hoy "}~%~%")
 
 (hey "static void define_lint(void)~%")
 (hey "{~%")
-(hey "  s7_define_typed_function(s7, \"gtk_enum_t?\", g_gtk_enum_t, 2, 0, 0, \"lint helper\", pl_bti);~%")
+(hey "  s7_define_safe_function(s7, \"gtk_enum_t?\", g_gtk_enum_t, 2, 0, 0, \"lint helper\");~%")
 (hey "}~%")
 (hey "#endif~%")
-
 (hey "~%~%")
 
+;;; ----------------
+(hay "static void define_lint(s7_scheme *sc)~%")
+(hay "{~%")
+(hay "  s7_define_safe_function(sc, \"gtk_enum_t?\", g_gtk_enum_t, 2, 0, 0, \"lint helper\");~%")
+(hay "}~%~%")
+;;; ----------------
+
 
 (hey "/* -------------------------------- initialization -------------------------------- */~%~%")
 (hey "static bool xg_already_inited = false;~%~%")
+(hey "#if HAVE_SCHEME~%")
+(hey "void Init_libxg(s7_scheme *sc);~%")
+(hey "void Init_libxg(s7_scheme *sc)~%")
+(hey "#else~%")
 (hey "void Init_libxg(void);~%")
 (hey "void Init_libxg(void)~%")
+(hey "#endif~%")
 (hey "{~%")
 (hey "  if (!xg_already_inited)~%")
 (hey "    {~%")
+(hey " #if HAVE_SCHEME~%")
+(hey "      s7_xen_initialize(sc);~%")
+(hey " #endif~%")
 (hey "      define_symbols();~%")
 (hey "      define_xm_obj();~%")
 (hey "      define_integers();~%")
@@ -3214,7 +3919,51 @@
 (hey "}~%")
 (hey "#endif~%") ; have_extension_language
 
+;;; ----------------
+(hay "void libgtk_s7_init(s7_scheme *sc);~%")
+(hay "void libgtk_s7_init(s7_scheme *sc)~%")
+(hay "{~%")
+(hay "  s7_pointer cur_env;~%")
+(hay "  cur_env = s7_curlet(sc);~%~%")
+(hay "  cbsc = sc;~%")
+(hay "  lg_true = s7_t(sc);~%")
+(hay "  lg_false = s7_f(sc);~%")
+(hay "  define_xm_obj(sc);~%")
+(hay "  define_integers(sc);~%")
+(hay "  define_doubles(sc);~%")
+(hay "  define_atoms(sc);~%")
+(hay "  define_strings(sc);~%")
+(hay "  define_symbols(sc);~%")
+(hay "  define_lint(sc);~%")
+(hay "  define_structs(sc);~%")
+(hay "  define_functions(sc);~%")
+(hay "  s7_define_function(sc, \"g_signal_connect\", lg_g_signal_connect, 3, 1, 0, H_g_signal_connect);~%")
+
+;;; structs
+;;; xm_obj?  used to free the struct in GC?
+;;; signals?
+
+(hay "~%")
+(hay "  s7_provide(sc, \"libgtk\");~%")
+(hay "  #if GTK_CHECK_VERSION(3, 90, 0)~%")
+(hay "    s7_provide(sc, \"gtk4\");~%")
+(hay "  #else~%")
+(hay "    #if GTK_CHECK_VERSION(3, 0, 0)~%")
+(hay "      s7_provide(sc, \"gtk3\");~%")
+(hay "    #else~%")
+(hay "      s7_provide(sc, \"gtk2\");~%")
+(hay "    #endif~%")
+(hay "  #endif~%")
+(hay "  s7_define(sc, cur_env, s7_make_symbol(sc, \"libgtk-version\"), s7_make_string(sc, \"~A\"));~%" (strftime "%d-%b-%y" (localtime (current-time))))
+(hay "}~%")
+
+(hay "/* gcc -c libgtk_s7.c -o libgtk_s7.o -I. -fPIC `pkg-config --libs gtk+-3.0 --cflags` -lm -ldl */~%")
+(hay "/* gcc libgtk_s7.o -shared -o libgtk_s7.so */~%")
+(hay "/* (load \"libgtk_s7.so\" (define *gtk* (inlet 'init_func 'libgtk_s7_init))) */~%")
+;;; ----------------
+
 (close-output-port xg-file)
+(close-output-port lib-file)
 
 ;(format *stderr* "declared types: ~A ~A~%" (length declared-types) (length declared-names)) 157 1288
 #|
@@ -3233,3 +3982,6 @@
 |#
 
 (exit)
+
+;;; gcc -c libgtk_s7.c -o libgtk_s7.o -g3 -I. -fPIC `pkg-config --libs gtk+-3.0 --cflags` -lm -ldl
+;;; gcc libgtk_s7.o -shared -o libgtk_s7.so
diff --git a/tools/snd.supp b/tools/snd.supp
index 6034068..6fda465 100644
--- a/tools/snd.supp
+++ b/tools/snd.supp
@@ -4,7 +4,7 @@
 # valgrind --error-limit=no -v --gen-suppressions=no --suppressions=/home/bil/cl/snd.supp --leak-check=yes --leak-resolution=high --show-reachable=no --num-callers=12 snd
 # valgrind --error-limit=no -v --gen-suppressions=no --suppressions=/home/bil/cl/snd.supp --leak-check=yes --show-reachable=no --track-origins=yes --track-fds=yes --read-var-info=yes snd -l snd-test
 # valgrind --error-limit=no -v --gen-suppressions=no --suppressions=/home/bil/cl/snd.supp --leak-check=yes --show-reachable=no --track-origins=yes snd -l snd-test
-# valgrind --error-limit=no -v --gen-suppressions=no --suppressions=/home/bil/cl/snd.supp --leak-check=yes --show-reachable=no --track-origins=yes --leak-check=full --show-leak-kinds=all repl t424.scm
+# valgrind --error-limit=no -v --gen-suppressions=no --suppressions=/home/bil/cl/snd.supp --leak-check=yes --show-reachable=yes --track-origins=yes --leak-check=full --show-leak-kinds=all repl t480.scm
 #
 # --tool=exp-ptrcheck
 #
diff --git a/tools/tauto.scm b/tools/tauto.scm
index 80b05b0..8a577e8 100644
--- a/tools/tauto.scm
+++ b/tools/tauto.scm
@@ -165,18 +165,19 @@
 		  all delete-file system set-cdr! stacktrace test-sym
 		  cutlet varlet gc cond-expand reader-cond
 		  openlet coverlet eval vector list cons hash-table* hash-table values
-		  throw symbol-table load
+		  symbol-table load local-symbol?
 		  global-environment current-environment make-procedure-with-setter procedure-with-setter? make-rectangular
 		  
-		  copy fill! hash-table-set! vector-set! let-set! list-values apply-values ; omitted { before (see below)
+		  copy fill! hash-table-set! vector-set! let-set! list-values apply-values
 		  
-		  mock-number mock-pair mock-string mock-char mock-vector 
-		  mock-symbol mock-port mock-hash-table m 
+		  mock-number mock-pair mock-string mock-char mock-vector mock-hash-table*
+		  mock-symbol mock-port mock-hash-table m mock->string make-local-method
 		  *mock-number* *mock-pair* *mock-string* *mock-char* *mock-vector*
-		  *mock-symbol* *mock-port* *mock-hash-table*
-		  
-		  c-define-1 apropos map-values ;set-current-output-port
-		  tree-count outlet-member make-method make-object))
+		  *mock-symbol* *mock-port* *mock-hash-table* mp ms mv
+		  *unbound-variable-hook* *load-hook* *rootlet-redefinition-hook* *missing-close-paren-hook* *read-error-hook*
+
+		  c-define-1 apropos map-values
+		  outlet-member make-method make-object))
 
 (define (test-sym sym)
   (if (and (not (memq sym baddies))
@@ -189,6 +190,7 @@
 		  (strname (symbol->string sym)))
 	      (if (not (memv (strname 0) '(#\{ #\[ #\()))
 		  (begin
+		    ;(if (not (procedure-signature f)) (format *stderr* "~A~%" sym))
 		    (if (< top bottom)
 			(format *stderr* ";~A (bottom: ~A, top: ~A)...~%" sym bottom top))
 					;(format *stderr* ";~A...~%" sym)
diff --git a/tools/tgen.scm b/tools/tgen.scm
index 76655bb..851b6c2 100644
--- a/tools/tgen.scm
+++ b/tools/tgen.scm
@@ -180,23 +180,25 @@
 (define-constant F (make-env (float-vector 0.0 .1 1.0 1.0) :length 100))
 (define-constant K (float-vector 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0))
 (define-constant V (make-float-vector 10))
+(define-constant VV1 (make-float-vector 10))
+(define-constant VV4 (make-float-vector 10))
+(define-constant VV5 (make-float-vector 10))
+(define-constant VV6 (make-float-vector 10))
+(define-constant VV8 (make-float-vector 10))
+(define-constant VV10 (make-float-vector 10))
+(define (Z) (mus-copy F))
+
+(define G #f)
+(define I #f)
+(define (O) (vector #f (mus-copy I) #f))
+(define (Q) (mus-copy G))
 
 (define (try1 form gen)
   (let ((make-gen (string->symbol (string-append "make-" (symbol->string gen)))))
     (let ((body
      `(let ()
-	(define G (,make-gen 1000)) 
-	(define I (,make-gen 500)) 
-	(define (O) (vector #f (mus-copy I) #f))
-	(define (Q) (mus-copy G))
-	(define (Z) (mus-copy F))
-
-	(let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1))
-	  (do ((i 0 (+ i 1))) ((= i 10))
-	    (set! (V i) ,form)))
-	
 	(define (tester-1)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1) (v VV1))
 	    (do ((i 0 (+ i 1))) ((= i 10) v)
 	      (float-vector-set! v i ,form))))
 	
@@ -218,7 +220,7 @@
 	      (set! lst (cons ,form lst)))))
 	
 	(define (tester-5)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (y -0.5) (k 1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (y -0.5) (k 1) (v VV4))
 	    (set! *output* (make-sample->file "test.snd" 1 mus-ldouble mus-next "t816"))
 	    (do ((i 0 (+ i 1)) (x 0.0 (+ x 0.1))) ((= i 10))
 	      (outa i ,form))
@@ -226,12 +228,12 @@
 	    (file->array "test.snd" 0 0 10 v)))
 	
 	(define (tester-6)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (k 1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (k 1) (v VV5))
 	    (do ((i 0 (+ i 1)) (y -0.5) (x 0.0 (+ x 0.1))) ((= i 10) v)
 	      (float-vector-set! v i ,form))))
 	
 	(define (tester-11)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (y -0.5) (k 1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (y -0.5) (k 1) (v VV6))
 	    (do ((i 0 (+ i 1))) ((= i 10) v)
 	      (let ((x (,gen o)))
 		(set! (v i) ,form)))))
@@ -243,6 +245,13 @@
 	      (let ((x (,gen o)))
 		(outa i ,form)))))
 
+	(set! G (,make-gen 1000)) 
+	(set! I (,make-gen 500)) 
+
+	(let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1))
+	  (do ((i 0 (+ i 1))) ((= i 10))
+	    (set! (V i) ,form)))
+	
 	(checkout-1 ',form V (tester-1) (tester-2) (tester-3) (tester-4) (tester-5) (tester-6) (tester-11) (tester-12))
 	)))
       (define the-body (apply lambda () (list (copy body :readable))))
@@ -252,18 +261,8 @@
   (let ((make-gen (string->symbol (string-append "make-" (symbol->string gen)))))
     (let ((body
      `(let ()
-	(define G (,make-gen 1000)) 
-	(define I (,make-gen 500)) 
-	(define (O) (vector #f (mus-copy I) #f))
-	(define (Q) (mus-copy G))
-	(define (Z) (mus-copy F))
-
-	(let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1))
-	  (do ((i 0 (+ i 1))) ((= i 10))
-	    (set! (V i) ,form)))
-	
 	(define (tester-1)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1) (v VV1))
 	    (do ((i 0 (+ i 1))) ((= i 10) v)
 	      (float-vector-set! v i ,form))))
 	
@@ -285,7 +284,7 @@
 	      (set! lst (cons ,form lst)))))
 	
 	(define (tester-5)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (y -0.5) (k 1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (y -0.5) (k 1) (v VV4))
 	    (set! *output* (make-sample->file "test.snd" 1 mus-ldouble mus-next "t816"))
 	    (do ((i 0 (+ i 1)) (x 0.0 (+ x 0.1))) ((= i 10))
 	      (outa i ,form))
@@ -293,12 +292,12 @@
 	    (file->array "test.snd" 0 0 10 v)))
 	
 	(define (tester-6)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (k 1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (k 1) (v VV5))
 	    (do ((i 0 (+ i 1)) (y -0.5) (x 0.0 (+ x 0.1))) ((= i 10) v)
 	      (float-vector-set! v i ,form))))
 	
 	(define (tester-7)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1) (v VV6))
 	    (do ((i 0 (+ i 1))) ((= i 10) v)
 	      (let ((z ,form))
 		(float-vector-set! v i (,gen o z))))))
@@ -311,7 +310,7 @@
 		(outa i (,gen o z))))))
 	
 	(define (tester-9)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1) (v VV8))
 	    (do ((i 0 (+ i 1))) ((= i 10) v)
 	      (let ((z ,form))
 		(float-vector-set! v i (* (env a) (,gen o z)))))))
@@ -324,7 +323,7 @@
 		(outa i (* (env a) (,gen o z)))))))
 	
 	(define (tester-11)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (y -0.5) (k 1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (y -0.5) (k 1) (v VV10))
 	    (do ((i 0 (+ i 1))) ((= i 10) v)
 	      (let ((x (,gen o)))
 		(set! (v i) ,form)))))
@@ -336,6 +335,13 @@
 	      (let ((x (,gen o)))
 		(outa i ,form)))))
 
+	(set! G (,make-gen 1000)) 
+	(set! I (,make-gen 500)) 
+
+	(let ((o (Q)) (p (Q)) (q (Q)) (oscs (O)) (a (Z)) (b (Z)) (x 3.14) (y -0.5) (k 1))
+	  (do ((i 0 (+ i 1))) ((= i 10))
+	    (set! (V i) ,form)))
+	
 	(checkout ',form V
 		  (tester-1) (tester-2) (tester-3) (tester-4) (tester-5) (tester-6) 
 		  (tester-7) (tester-8) (tester-9) (tester-10) (tester-11) (tester-12))
@@ -347,18 +353,8 @@
   (let ((make-gen (string->symbol (string-append "make-" (symbol->string gen)))))
     (let ((body
      `(let ()
-	(define G (,make-gen 1000)) 
-	(define I (,make-gen 500)) 
-	(define (O) (vector #f (mus-copy I) #f))
-	(define (Q) (mus-copy G))
-	(define (Z) (mus-copy F))
-
-	(let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (z 0.1) (k 1))
-	  (do ((i 0 (+ i 1))) ((= i 10))
-	    (float-vector-set! V i ,form)))
-	
 	(define (tester-1)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (z 0.1) (k 1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (z 0.1) (k 1) (v VV1))
 	    (do ((i 0 (+ i 1))) ((= i 10) v)
 	      (float-vector-set! v i ,form))))
 	
@@ -380,7 +376,7 @@
 	      (set! lst (cons ,form lst)))))
 	
 	(define (tester-5)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (y -0.5) (k 1) (z 0.1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (y -0.5) (k 1) (z 0.1) (v VV4))
 	    (set! *output* (make-sample->file "test.snd" 1 mus-ldouble mus-next "t816"))
 	    (do ((i 0 (+ i 1)) (x 0.0 (+ x 0.1))) ((= i 10))
 	      (outa i ,form))
@@ -388,12 +384,12 @@
 	    (file->array "test.snd" 0 0 10 v)))
 	
 	(define (tester-6)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (k 1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (k 1) (v VV5))
 	    (do ((i 0 (+ i 1)) (y -0.5) (z 0.1) (x 0.0 (+ x 0.1))) ((= i 10) v)
 	      (set! (v i) ,form))))
 	
 	(define (tester-7)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (k 1) (z 0.1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (k 1) (z 0.1) (v VV6))
 	    (do ((i 0 (+ i 1))) ((= i 10) v)
 	      (let ((zz ,form))
 		(float-vector-set! v i (,gen o zz))))))
@@ -406,7 +402,7 @@
 		(outa i (,gen o zz))))))
 	
 	(define (tester-9)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (z 0.1) (k 1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (z 0.1) (k 1) (v VV8))
 	    (do ((i 0 (+ i 1))) ((= i 10) v)
 	      (let ((zz ,form))
 		(float-vector-set! v i (* (env a) (,gen o zz)))))))
@@ -419,7 +415,7 @@
 		(outa i (* (env a) (,gen o zz)))))))
 	
 	(define (tester-11)
-	  (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (y -0.5) (z 0.1) (k 1) (v (make-float-vector 10)))
+	  (let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (y -0.5) (z 0.1) (k 1) (v VV10))
 	    (do ((i 0 (+ i 1))) ((= i 10) v)
 	      (let ((x (,gen o)))
 		(float-vector-set! v i ,form)))))
@@ -431,6 +427,13 @@
 	      (let ((x (,gen o)))
 		(outa i ,form)))))
 
+	(set! G (,make-gen 1000)) 
+	(set! I (,make-gen 500)) 
+
+	(let ((o (Q)) (p (Q)) (q (Q)) (s (Q)) (t (Q)) (oscs (O)) (a (Z)) (b (Z)) (c (Z)) (d (Z)) (x 3.14) (y -0.5) (z 0.1) (k 1))
+	  (do ((i 0 (+ i 1))) ((= i 10))
+	    (float-vector-set! V i ,form)))
+	
 	(if (= args 1)
 	    (checkout-1 ',form V (tester-1) (tester-2) (tester-3) (tester-4) (tester-5) (tester-6) (tester-11) (tester-12))
 	    (checkout ',form V
diff --git a/tools/thash.scm b/tools/thash.scm
index bf2610f..03b89e4 100644
--- a/tools/thash.scm
+++ b/tools/thash.scm
@@ -1,8 +1,49 @@
+(set! (*s7* 'heap-size) 1024000)
 ;(set! (*s7* 'gc-stats) 6)
 ;heap ca 30*size!
 
-(define-constant symbols (make-vector 1000000))
-(define-constant strings (make-vector 1000000))
+
+(define (reader)
+  (let ((port (open-input-file "/home/bil/test/scheme/bench/src/bib"))
+	(new-pos 0)
+	(counts (make-hash-table)))
+    (do ((line (read-line port) (read-line port)))
+	((eof-object? line))
+      (set! new-pos 0)
+      (do ((pos (char-position #\space line) (char-position #\space line (+ pos 1))))
+	  ((not pos))
+	(unless (= pos new-pos)
+	  (let* ((start (do ((k new-pos (+ k 1))) ; char-position here is slower!
+			    ((or (= k pos)
+				 (char-alphabetic? (string-ref line k)))
+			     k)))
+		 (end (do ((k (- pos 1) (- k 1)))
+			  ((or (= k start)
+			       (char-alphabetic? (string-ref line k)))
+			   (+ k 1)))))
+	    (when (> end start)
+	      (let ((word (string->symbol (substring line start end))))
+		(let ((refs (or (hash-table-ref counts word) 0)))
+		  (hash-table-set! counts word (+ refs 1)))))))
+	(set! new-pos (+ pos 1))))
+    
+    (close-input-port port)
+    (sort! (copy counts (make-vector (hash-table-entries counts)))
+	   (lambda (a b) (> (cdr a) (cdr b))))))
+
+(format *stderr* "reader ")
+
+(let ((counts (reader)))
+  (if (not (and (eq? (car (counts 0)) 'the)
+		(= (cdr (counts 0)) 62063)))
+      (do ((i 0 (+ i 1))) 
+	  ((= i 40)) 
+	(format *stderr* "~A: ~A~%" (car (counts i)) (cdr (counts i))))))
+
+;;; ----------------------------------------
+
+(define symbols (make-vector 1))
+(define strings (make-vector 1))
 
 (define (test1 size)
   (let ((int-hash (make-hash-table size))
@@ -18,7 +59,7 @@
 		(if (not (= (car key&value) (cdr key&value)))
 		    (display "oops"))) ;(format *stderr* "hash iter ~A~%" key&value)))
 	      (make-iterator int-hash p))
-    (fill! int-hash #f)))
+    (set! int-hash #f)))
 
 (define (test2 size)
   (let ((int-hash (make-hash-table size =)))
@@ -28,8 +69,7 @@
     (do ((i 0 (+ i 1)))	
 	((= i size))
       (if (not (= (hash-table-ref int-hash i) i))
-	  (display "oops")))
-    (fill! int-hash #f)))
+	  (display "oops")))))
 
 (define (test3 size)
   (let ((flt-hash (make-hash-table size)))
@@ -39,8 +79,7 @@
     (do ((i 0 (+ i 1)))	
 	((= i size))
       (if (not (= (hash-table-ref flt-hash (* 2.0 i)) i))
-	  (display "oops")))
-    (fill! flt-hash #f)))
+	  (display "oops")))))
 
 (define (test4 size)
   (let ((sym-hash (make-hash-table size)))
@@ -50,8 +89,7 @@
     (do ((i 0 (+ i 1))) 
 	((= i size)) 
       (if (not (= (hash-table-ref sym-hash (vector-ref symbols i)) i)) 
-	  (display "oops")))
-    (fill! sym-hash #f)))
+	  (display "oops")))))
 
 (define (test5 size)
   (let ((str-hash (make-hash-table size eq?)))
@@ -61,8 +99,7 @@
     (do ((i 0 (+ i 1))) 
 	((= i size)) 
       (if (not (= (hash-table-ref str-hash (vector-ref strings i)) i)) 
-	  (display "oops")))
-    (fill! str-hash #f)))
+	  (display "oops")))))
 
 (define (test6 size)
   (let ((sym-hash (make-hash-table size eq?)))
@@ -72,8 +109,7 @@
     (do ((i 0 (+ i 1))) 
 	((= i size)) 
       (if (not (= (hash-table-ref sym-hash (vector-ref symbols i)) i)) 
-	  (display "oops")))
-    (fill! sym-hash #f)))
+	  (display "oops")))))
 
 (define (test7 size)
   (let ((chr-hash (make-hash-table 256)))
@@ -83,8 +119,7 @@
     (do ((i 0 (+ i 1))) 
 	((= i 256)) 
       (if (not (= (hash-table-ref chr-hash (integer->char i)) i))
-	  (display "oops")))
-    (fill! chr-hash #f)))
+	  (display "oops")))))
 
 (define (test8 size)
   (let ((any-hash (make-hash-table size eq?)))
@@ -98,8 +133,7 @@
     (do ((i 0 (+ i 1))) 
 	((= i size)) 
       (if (not (= i (hash-table-ref any-hash (vector-ref strings i))))
-	  (display "oops")))
-    (fill! any-hash #f)))
+	  (display "oops")))))
 
 (define (test9 size)
   (let ((any-hash1 (make-hash-table size eq?)))
@@ -115,8 +149,7 @@
 	((= i size)) 
       (if (not (= i (hash-table-ref any-hash1 (vector-ref strings i))))
 	  (display "oops")))
-    (vector-fill! strings #f)
-    (fill! any-hash1 #f)))
+    (vector-fill! strings #f)))
 
 (define (test10 size)
   (let ((cmp-hash (make-hash-table size)))
@@ -126,11 +159,12 @@
     (do ((i 0 (+ i 1))) 
 	((= i size)) 
       (if (not (= (hash-table-ref cmp-hash (complex i i)) i)) 
-	  (display "oops")))
-    (fill! cmp-hash #f)))
+	  (display "oops")))))
 
 (define (test-hash size)
   (format *stderr* "~D " size)
+  (set! symbols (make-vector size))
+  (set! strings (make-vector size))
   (test1 size)
   (test2 size)
   (test3 size)
@@ -144,47 +178,23 @@
 
 (for-each test-hash (list 1 10 100 1000 10000 100000 1000000))
 
-;;; ----------------------------------------
-
-(define (reader)
-  (let ((port (open-input-file "/home/bil/test/scheme/bench/src/bib"))
-	(new-pos 0)
-	(counts (make-hash-table)))
-    (do ((line (read-line port) (read-line port)))
-	((eof-object? line))
-      (set! new-pos 0)
-      (do ((pos (char-position #\space line) (char-position #\space line (+ pos 1))))
-	  ((not pos))
-	(unless (= pos new-pos)
-	  (let* ((start (do ((k new-pos (+ k 1))) ; char-position here is slower!
-			    ((or (= k pos)
-				 (char-alphabetic? (string-ref line k)))
-			     k)))
-		 (end (do ((k (- pos 1) (- k 1)))
-			  ((or (= k start)
-			       (char-alphabetic? (string-ref line k)))
-			   (+ k 1)))))
-	    (when (> end start)
-	      (let ((word (string->symbol (substring line start end))))
-		(let ((refs (or (hash-table-ref counts word) 0)))
-		  (hash-table-set! counts word (+ refs 1)))))))
-	(set! new-pos (+ pos 1))))
-    
-    (close-input-port port)
-    (sort! (copy counts (make-vector (hash-table-entries counts)))
-	   (lambda (a b) (> (cdr a) (cdr b))))))
-
-(format *stderr* "reader~%")
-
-(let ((counts (reader)))
-  (if (not (and (eq? (car (counts 0)) 'the)
-		(= (cdr (counts 0)) 62063)))
-      (do ((i 0 (+ i 1))) 
-	  ((= i 40)) 
-	(format *stderr* "~A: ~A~%" (car (counts i)) (cdr (counts i))))))
-;;; ----------------------------------------
-
 ;(gc)
 
+#|
+(load "write.scm")
+(for-each (lambda (func)
+	    (let ((source (procedure-source func)))
+	      (let walker ((tree source))
+		(when (pair? tree)
+		  (if (symbol? (car tree))
+		      (if (local-symbol? tree)
+			  (set-car! tree (symbol "[" (symbol->string (car tree)) "]")))
+		      (walker (car tree)))
+		  (walker (cdr tree))))
+	      (pretty-print source))
+	    (newline))
+	  (list reader test1 test2 test3 test4 test5 test6 test7 test8 test9 test10))
+|#
+
 (s7-version)
 (exit)
diff --git a/tools/titer.scm b/tools/titer.scm
index 61167ce..7cd88d4 100644
--- a/tools/titer.scm
+++ b/tools/titer.scm
@@ -27,11 +27,18 @@
     (or (string? (iterate iter))
 	(and (not (iterator-at-end? iter))
 	     (loop)))))
-    
+
 (define-constant (find-if-d iter)
   (do ()
       ((or (string? (iterate iter)) (iterator-at-end? iter))
        (not (iterator-at-end? iter)))))
+#|
+;;; exactly the same speed:
+(define-constant (find-if-d iter)
+  (do ((x (iterate iter) (iterate iter)))
+      ((or (string? x) (iterator-at-end? iter))
+       (string? x))))
+|#
 
 (define (test)
   (for-each
diff --git a/tools/tmap.scm b/tools/tmap.scm
index f226910..88c54e8 100644
--- a/tools/tmap.scm
+++ b/tools/tmap.scm
@@ -247,7 +247,6 @@
       (if (not (= (ht i) i)) (display "oops")))))
 
 
-
 (define (test-it)
   (for-each
    (lambda (b p)
@@ -311,10 +310,74 @@
   (fe13 size)
   (fe13 1))
 
-(s7-version)
-(exit)
 
+;;; this is a revision of some code posted in comp.lang.lisp by melzzzzz for euler project 512
+;;;   apparently sbcl computes the big case (below) in "about a minute" -- well, so does s7!
+;;;   53 secs sbcl, 80 in s7
+
+(define (make-boolean-vector n)
+  (make-int-vector (ceiling (/ n 63))))
+
+(define-expansion (boolean-vector-ref v n)
+  `(logbit? (int-vector-ref ,v (quotient ,n 63)) (remainder ,n 63)))
+
+(define-expansion (boolean-vector-set! v n)
+  `(int-vector-set! ,v (quotient ,n 63)
+		    (logior (int-vector-ref ,v (quotient ,n 63))
+			    (ash 1 (remainder ,n 63)))))
+
+(define (odd-get n)
+  (let* ((visited-range (+ (ash n -1) 1))
+	 (visited (make-boolean-vector visited-range))
+	 (sqrt-n (+ (floor (sqrt n)) 1)))
+    (do ((i 3 (+ i 2)))
+	((>= i sqrt-n))
+      (unless (boolean-vector-ref visited (ash i -1))
+	(do ((j (ash (* i i) -1) (+ j i)))
+	    ((>= j visited-range))
+	  (boolean-vector-set! visited j))))
+    (let ((rc (make-int-vector (+ n 1) 0))
+	  (rcp 0)
+	  (lim (+ n 1)))
+      (do ((i 3 (+ i 2)))
+	  ((= i lim) (copy rc (make-int-vector rcp)))
+	(unless (boolean-vector-ref visited (ash i -1))
+	  (int-vector-set! rc rcp i)
+	  (set! rcp (+ rcp 1)))))))
+
+(define (getr n)
+  (let* ((odd-bound (ash (+ n 1) -1))
+	 (prime-list (odd-get n))
+	 (result (make-int-vector odd-bound 0))
+	 (resp 0)
+	 (n2 (/ n 2))) ; this optimization suggested by "Peter" (in comp.lang.lisp)
+    (do ((i 0 (+ i 1)))
+	((= i odd-bound))
+      (int-vector-set! result i (+ (* 2 i) 1)))
+
+    (for-each (lambda (prime)
+		(do ((j (ash prime -1) (+ j prime)))
+		    ((>= j n2))
+		  (int-vector-set! result j (* (quotient (int-vector-ref result j) prime) (- prime 1)))))
+	      prime-list)
+
+   (let ((sum 0))
+      (do ((i 0 (+ i 1)))
+	  ((= i odd-bound) sum)
+	(set! sum (+ sum (int-vector-ref result i)))))))
 
+(let ((r (getr 100)))
+  (unless (= r 2007)
+    (display r)
+    (newline)))
 
+(let ((r (getr 500000)))
+  (unless (= r 50660660193)
+    (display r)
+    (newline)))
+
+;;; (display (getr 500000000)) ;50660591862310323
+
+(s7-version)
+(exit)
 
-;;; unsafe, strings, precheck types in vect cases
diff --git a/tools/va.scm b/tools/va.scm
index 35e2bf6..bbc915d 100755
--- a/tools/va.scm
+++ b/tools/va.scm
@@ -242,33 +242,6 @@
 	(format () "--------------------------------------------------------------------------------~%"))))
 |#
 
-#|
-;;; check for incorrect port_write_string lengths -- is confused by \" 
-(call-with-input-file "s7.c"
-  (lambda (file)
-    (let ((count 0))
-      (let loop ((line (read-line file #t)))
-	(or (eof-object? line)
-	    (let ((pos (string-position "port_write_string(" line)))
-	      (set! count (+ count 1))
-	      (if pos
-		  (let ((qpos (char-position #\" (substring line (+ pos 1)))))
-		    (if qpos
-			(let ((npos (char-position #\, (substring line (+ pos qpos 2)))))
-			  (if npos
-			      (let ((len (- npos 1))
-				    (new-line (substring line (+ pos qpos 2 npos))))
-				(let ((ccpos (char-position #\, (substring new-line 1))))
-				  (if ccpos
-				      (let ((clen (string->number (substring new-line 2 (+ ccpos 1)))))
-					(if (and clen
-						 (not (= clen len)))
-					    (format *stderr* "[~D]: ~A: length ~A ~A~%" count 
-						    (substring line (char-position #\p line) (char-position #\; line))
-						    len clen)))))))))))
-	      (loop (read-line file #t))))))))
-|#
-
 (exit)
 
 
diff --git a/tools/valcall.scm b/tools/valcall.scm
index a743f5f..2473b19 100644
--- a/tools/valcall.scm
+++ b/tools/valcall.scm
@@ -57,14 +57,14 @@
    (list (list "repl" "tmac.scm")
 	 (list "snd -noinit" "make-index.scm")
 	 (list "repl" "tref.scm")
+	 (list "repl" "tauto.scm")
 	 (list "repl" "teq.scm")
 	 (list "repl" "s7test.scm")
 	 (list "repl" "tlet.scm")
 	 (list "repl" "lt.scm")
-	 (list "repl" "tmap.scm")
 	 (list "repl" "tcopy.scm")
-	 (list "repl" "tauto.scm")
 	 (list "repl" "tform.scm")
+	 (list "repl" "tmap.scm")
 	 (list "repl" "tfft.scm")
 	 (list "repl" "tsort.scm")
 	 (list "repl" "titer.scm")
diff --git a/tools/xgdata.scm b/tools/xgdata.scm
index 8173d4c..6d42a29 100644
--- a/tools/xgdata.scm
+++ b/tools/xgdata.scm
@@ -2304,7 +2304,7 @@
 (CCAST "GTK_IM_CONTEXT(obj)" "GtkIMContext*")
 (CCHK "GTK_IS_IM_CONTEXT(obj)" "GtkIMContext*")
 ;;;;(CFNC "GType gtk_im_context_get_type void")
-(CFNC "void gtk_im_context_set_client_window GtkIMContext* context GdkWindow* @window")
+;;; 3.91.1 (CFNC "void gtk_im_context_set_client_window GtkIMContext* context GdkWindow* @window")
 (CFNC "void gtk_im_context_get_preedit_string GtkIMContext* context gchar** [str] PangoAttrList** [attrs] gint* [cursor_pos]") ; FREE (str)
 (CFNC "gboolean gtk_im_context_filter_keypress GtkIMContext* context GdkEventKey* event")
 (CFNC "void gtk_im_context_focus_in GtkIMContext* context")
@@ -3822,8 +3822,8 @@
 (CFNC "gboolean gtk_widget_child_focus GtkWidget* widget GtkDirectionType direction")
 (CFNC "void gtk_widget_set_size_request GtkWidget* widget gint width gint height")
 (CFNC "void gtk_widget_get_size_request GtkWidget* widget gint* [width] gint* [height]")
-(CFNC "void gtk_widget_set_events GtkWidget* widget gint events")
-(CFNC "void gtk_widget_add_events GtkWidget* widget gint events")
+;;; 3.91.1 (CFNC "void gtk_widget_set_events GtkWidget* widget gint events")
+;;; 3.91.1 (CFNC "void gtk_widget_add_events GtkWidget* widget gint events")
 ;;;; (CFNC "void gtk_widget_set_extension_events GtkWidget* widget GdkExtensionMode mode")
 ;;;; (CFNC "GdkExtensionMode gtk_widget_get_extension_events GtkWidget* widget")
 (CFNC "GtkWidget* gtk_widget_get_toplevel GtkWidget* widget")
@@ -3833,7 +3833,7 @@
 (CFNC "GtkSettings* gtk_widget_get_settings GtkWidget* widget")
 (CFNC "AtkObject* gtk_widget_get_accessible GtkWidget* widget")
 ;;; (CFNC-gtk2 "void gtk_widget_set_colormap GtkWidget* widget GdkColormap* colormap")
-(CFNC "gint gtk_widget_get_events GtkWidget* widget")
+;;; 3.91.1 (CFNC "gint gtk_widget_get_events GtkWidget* widget")
 ;;; (CFNC-gtk2 "void gtk_widget_get_pointer GtkWidget* widget gint* [x] gint* [y]")
 (CFNC "gboolean gtk_widget_is_ancestor GtkWidget* widget GtkWidget* ancestor")
 (CFNC "gboolean gtk_widget_translate_coordinates GtkWidget* src_widget GtkWidget* dest_widget gint src_x gint src_y gint* [dest_x] gint* [dest_y]")
@@ -5055,8 +5055,8 @@
 ;;;(CFNC "void gtk_tool_item_set_pack_end GtkToolItem* tool_item gboolean pack_end") 
 ;;;(CFNC "gboolean gtk_tool_item_get_pack_end GtkToolItem* tool_item") 
 ;;; out 2.11.6 (CFNC "void gtk_tool_item_set_tooltip GtkToolItem* tool_item GtkTooltips* tooltips gchar* tip_text gchar* tip_private") 
-(CFNC "void gtk_tool_item_set_use_drag_window GtkToolItem* toolitem gboolean use_drag_window") 
-(CFNC "gboolean gtk_tool_item_get_use_drag_window GtkToolItem* toolitem") 
+;;; 3.91.1 (CFNC "void gtk_tool_item_set_use_drag_window GtkToolItem* toolitem gboolean use_drag_window") 
+;;; 3.91.1 (CFNC "gboolean gtk_tool_item_get_use_drag_window GtkToolItem* toolitem") 
 (CFNC "void gtk_tool_item_set_visible_horizontal GtkToolItem* toolitem gboolean visible_horizontal") 
 (CFNC "gboolean gtk_tool_item_get_visible_horizontal GtkToolItem* toolitem") 
 (CFNC "void gtk_tool_item_set_visible_vertical GtkToolItem* toolitem gboolean visible_vertical") 
@@ -6080,8 +6080,8 @@
 (CCAST "GTK_PRINT_OPERATION(obj)" "GtkPrintOperation*")
 (CCHK "GTK_IS_PRINT_OPERATION(obj)" "GtkPrintOperation*")
 
-(CCAST "GTK_PRINT_OPERATION_PREVIEW(obj)" "GtkPrintOperationPreview*")
-(CCHK "GTK_IS_PRINT_OPERATION_PREVIEW(obj)" "GtkPrintOperationPreview*")
+;(CCAST "GTK_PRINT_OPERATION_PREVIEW(obj)" "GtkPrintOperationPreview*")
+;(CCHK "GTK_IS_PRINT_OPERATION_PREVIEW(obj)" "GtkPrintOperationPreview*")
 
 (CCAST "GTK_PRINT_SETTINGS(obj)" "GtkPrintSettings*")
 (CCHK "GTK_IS_PRINT_SETTINGS(obj)" "GtkPrintSettings*")
@@ -6225,9 +6225,11 @@
 (CFNC "GtkPageSetup* gtk_print_run_page_setup_dialog GtkWindow* parent GtkPageSetup* page_setup GtkPrintSettings* settings")
 (CFNC "void gtk_print_run_page_setup_dialog_async GtkWindow* parent GtkPageSetup* page_setup GtkPrintSettings* settings GtkPageSetupDoneFunc done_cb gpointer data")
 ;;;;(CFNC "GType gtk_print_operation_preview_get_type void")
-(CFNC "void gtk_print_operation_preview_render_page GtkPrintOperationPreview* preview gint page_nr")
-(CFNC "void gtk_print_operation_preview_end_preview GtkPrintOperationPreview* preview")
-(CFNC "gboolean gtk_print_operation_preview_is_selected GtkPrintOperationPreview* preview gint page_nr")
+
+;(CFNC "void gtk_print_operation_preview_render_page GtkPrintOperationPreview* preview gint page_nr")
+;(CFNC "void gtk_print_operation_preview_end_preview GtkPrintOperationPreview* preview")
+;(CFNC "gboolean gtk_print_operation_preview_is_selected GtkPrintOperationPreview* preview gint page_nr")
+
 ;;;;(CFNC "GType gtk_print_settings_get_type void")
 (CFNC "GtkPrintSettings* gtk_print_settings_new void")
 (CFNC "GtkPrintSettings* gtk_print_settings_copy GtkPrintSettings* other")
@@ -7380,11 +7382,11 @@
 (CFNC-3.0 "GtkWidget* gtk_scrollbar_new GtkOrientation orientation GtkAdjustment* adjustment")
 (CFNC-3.0 "GtkWidget* gtk_separator_new GtkOrientation orientation")
 (CFNC-3.0 "gboolean gtk_widget_device_is_shadowed GtkWidget* widget GdkDevice* device")
-(CFNC-3.0 "void gtk_widget_set_device_events GtkWidget* widget GdkDevice* device GdkEventMask events")
-(CFNC-3.0 "void gtk_widget_add_device_events GtkWidget* widget GdkDevice* device GdkEventMask events")
+;;; 3.91.1 (CFNC-3.0 "void gtk_widget_set_device_events GtkWidget* widget GdkDevice* device GdkEventMask events")
+;;; 3.91.1 (CFNC-3.0 "void gtk_widget_add_device_events GtkWidget* widget GdkDevice* device GdkEventMask events")
 (CFNC-3.0 "gboolean gtk_widget_get_support_multidevice GtkWidget* widget")
 (CFNC-3.0 "void gtk_widget_set_support_multidevice GtkWidget* widget gboolean support_multidevice")
-(CFNC-3.0 "GdkEventMask gtk_widget_get_device_events GtkWidget* widget GdkDevice* device")
+;;; 3.91.1 (CFNC-3.0 "GdkEventMask gtk_widget_get_device_events GtkWidget* widget GdkDevice* device")
 
 ;;; 2.91.0 (CINT-3.0 "GTK_MULTIDEVICE" "GtkWidgetFlags")
 
@@ -8930,8 +8932,8 @@
 (CFNC-3.14 "gboolean gtk_gesture_get_bounding_box_center GtkGesture* gesture gdouble* [x] gdouble* [y]")
 (CFNC-3.14 "gboolean gtk_gesture_is_active GtkGesture* gesture")
 (CFNC-3.14 "gboolean gtk_gesture_is_recognized GtkGesture* gesture")
-(CFNC-3.14 "GdkWindow* gtk_gesture_get_window GtkGesture* gesture")
-(CFNC-3.14 "void gtk_gesture_set_window GtkGesture* gesture GdkWindow* window")
+;;; 3.91.1 (CFNC-3.14 "GdkWindow* gtk_gesture_get_window GtkGesture* gesture")
+;;; 3.91.1 (CFNC-3.14 "void gtk_gesture_set_window GtkGesture* gesture GdkWindow* window")
 (CFNC-3.14 "void gtk_gesture_group GtkGesture* group_gesture GtkGesture* gesture")
 (CFNC-3.14 "void gtk_gesture_ungroup GtkGesture* gesture")
 (CFNC-3.14 "GList* gtk_gesture_get_group GtkGesture* gesture")
@@ -8969,6 +8971,12 @@
 (CFNC-3.14 "GtkPropagationPhase gtk_event_controller_get_propagation_phase GtkEventController* controller")
 (CFNC-3.14 "void gtk_event_controller_set_propagation_phase GtkEventController* controller GtkPropagationPhase phase")
 
+(CINT-3.14 "GTK_PHASE_NONE" "GtkPropagationPhase")
+(CINT-3.14 "GTK_PHASE_CAPTURE" "GtkPropagationPhase")
+(CINT-3.14 "GTK_PHASE_BUBBLE" "GtkPropagationPhase")
+(CINT-3.14 "GTK_PHASE_TARGET" "GtkPropagationPhase")
+
+
 ;;; 3.13.3: nothing new
 
 ;;; 3.13.4:
@@ -9532,8 +9540,8 @@
 (CFNC-3.99 "GdkWindow* gdk_window_new_toplevel GdkDisplay* display gint event_mask int width int height")
 (CFNC-3.99 "GdkWindow* gdk_window_new_popup GdkDisplay* display gint event_mask GdkRectangle* position")
 (CFNC-3.99 "GdkWindow* gdk_window_new_temp GdkDisplay* display")
-(CFNC-3.99 "GdkWindow* gdk_window_new_child GdkWindow* parent gint event_mask const GdkRectangle* position")
-(CFNC-3.99 "GdkWindow* gdk_window_new_input GdkWindow* parent gint event_mask const GdkRectangle* position")
+(CFNC-3.99 "GdkWindow* gdk_window_new_child GdkWindow* parent gint event_mask GdkRectangle* position")
+(CFNC-3.99 "GdkWindow* gdk_window_new_input GdkWindow* parent gint event_mask GdkRectangle* position")
 (CFNC-3.99 "void gtk_button_set_icon_name GtkButton* button char* icon_name")
 (CFNC-3.99 "char* gtk_button_get_icon_name GtkButton* button" 'const)
 (CFNC-3.99 "void gtk_drawing_area_set_content_width GtkDrawingArea* self int width")
@@ -9590,3 +9598,23 @@
 (CFNC-3.99 "void gtk_widget_insert_after GtkWidget* widget GtkWidget* parent GtkWidget* previous_sibling")
 (CFNC-3.99 "void gtk_widget_insert_before GtkWidget* widget GtkWidget* parent GtkWidget* next_sibling")
 
+
+;;; 3.91.1
+(CCAST-3.99 "GTK_CENTER_BOX(obj)" "GtkCenterBox*")
+(CCHK-3.99 "GTK_IS_CENTER_BOX(obj)" "GtkCenterBox*")
+
+(CFNC-3.99 "GtkWidget* gtk_center_box_new void")
+(CFNC-3.99 "void gtk_center_box_set_start_widget GtkCenterBox* self GtkWidget* child")
+(CFNC-3.99 "void gtk_center_box_set_center_widget GtkCenterBox* self GtkWidget* child")
+(CFNC-3.99 "void gtk_center_box_set_end_widget GtkCenterBox* self GtkWidget* child")
+(CFNC-3.99 "GtkWidget* gtk_center_box_get_start_widget GtkCenterBox* self")
+(CFNC-3.99 "GtkWidget* gtk_center_box_get_center_widget GtkCenterBox* self")
+(CFNC-3.99 "GtkWidget* gtk_center_box_get_end_widget GtkCenterBox* self")
+(CFNC-3.99 "void gtk_center_box_set_baseline_position GtkCenterBox* self GtkBaselinePosition position")
+(CFNC-3.99 "GtkBaselinePosition gtk_center_box_get_baseline_position GtkCenterBox* self")
+(CFNC-3.99 "void gdk_event_set_coords GdkEvent* event gdouble x gdouble y")
+(CFNC-3.99 "void gdk_event_set_user_data GdkEvent* event GObject* user_data")
+(CFNC-3.99 "GObject* gdk_event_get_user_data GdkEvent* event")
+(CFNC-3.99 "gboolean gdk_rectangle_contains_point GdkRectangle* rect int x int y")
+(CFNC-3.99 "GtkWidget* gtk_get_event_target GdkEvent* event")
+;;; GtkWidget* gtk_get_event_target_with_type GdkEvent* event GType type
diff --git a/vct.c b/vct.c
index 7ffc870..c3f6b74 100644
--- a/vct.c
+++ b/vct.c
@@ -59,6 +59,12 @@
   #pragma warning(disable: 4244)
 #endif
 
+#if (defined(__GNUC__) && __GNUC__ >= 5)
+  #define WITH_VECTORIZE 1
+#else
+  #define WITH_VECTORIZE 0
+#endif
+
 #include "_sndlib.h"
 #include "xen.h"
 #include "clm.h"
@@ -155,6 +161,34 @@ mus_float_t *mus_vct_data(vct *v) {return(v->data);}
   #define VCT_PRINT_LENGTH 10
 #endif
 
+
+#if WITH_VECTORIZE
+void mus_clear_floats(mus_float_t *dst, mus_long_t len)
+{
+  mus_long_t k;
+  for (k = 0; k < len; k++) dst[k] = 0.0;
+}
+
+void mus_copy_floats(mus_float_t *dst, mus_float_t *src, mus_long_t len)
+{
+  mus_long_t k;
+  for (k = 0; k < len; k++) dst[k] = src[k];
+}
+
+void mus_add_floats(mus_float_t *dst, mus_float_t *src, mus_long_t len)
+{
+  mus_long_t k;
+  for (k = 0; k < len; k++) dst[k] += src[k];
+}
+
+void mus_abs_floats(mus_float_t *dst, mus_long_t len)
+{
+  mus_long_t k;
+  for (k = 0; k < len; k++) dst[k] = fabs(dst[k]);
+}
+#endif
+
+
 static int vct_print_length = VCT_PRINT_LENGTH;
 
 void mus_vct_set_print_length(int len) 
@@ -443,7 +477,7 @@ static Xen g_vct_copy(Xen obj)
   if (len > 0)
     {
       copied_data = (mus_float_t *)malloc(len * sizeof(mus_float_t));
-      copy_floats(copied_data, mus_vct_data(v), len);
+      mus_copy_floats(copied_data, mus_vct_data(v), len);
     }
   return(xen_make_vct(len, copied_data));
 }
@@ -595,6 +629,13 @@ static Xen g_vct_multiply(Xen obj1, Xen obj2)
   return(obj1);
 }
 
+#if WITH_VECTORIZE
+static void vct_add(mus_float_t *d1, mus_float_t *d2, mus_long_t lim) __attribute__((optimize("tree-vectorize")));
+static void vct_add(mus_float_t *d1, mus_float_t *d2, mus_long_t lim)
+{
+  mus_add_floats(d1, d2, lim);
+}
+#else
 static void vct_add(mus_float_t *d1, mus_float_t *d2, mus_long_t lim)
 {
   mus_long_t i, lim8;
@@ -622,6 +663,7 @@ static void vct_add(mus_float_t *d1, mus_float_t *d2, mus_long_t lim)
   for (; i < lim; i++) 
     d1[i] += d2[i];
 }
+#endif
 
 static Xen g_vct_add(Xen obj1, Xen obj2, Xen offs)
 {
@@ -699,7 +741,7 @@ static Xen g_vct_subtract(Xen obj1, Xen obj2)
 static Xen g_vct_abs(Xen obj)
 {
   #define H_vct_absB "(" S_vct_abs " v): v[i] = abs(v[i]), return v."
-  mus_long_t i, lim;
+  mus_long_t lim;
   vct *v;
   mus_float_t *d;
 
@@ -708,7 +750,7 @@ static Xen g_vct_abs(Xen obj)
   v = Xen_to_vct(obj);
   d = mus_vct_data(v);
   lim = mus_vct_length(v);
-  for (i = 0; i < lim; i++) d[i] = fabs(d[i]);
+  mus_abs_floats(d, lim);
   return(obj);
 }
 
@@ -756,10 +798,14 @@ static Xen g_vct_equal(Xen uv1, Xen uv2, Xen udiff)
   return(C_double_to_Xen_real(max_diff));
 }
 
+#if WITH_VECTORIZE
+static void vct_scale(mus_float_t *d, mus_float_t scl, mus_long_t len) __attribute__((optimize("tree-vectorize")));
+#endif
+
 static void vct_scale(mus_float_t *d, mus_float_t scl, mus_long_t len)
 {
   if (scl == 0.0)
-    clear_floats(d, len);
+    mus_clear_floats(d, len);
   else
     {
       if (scl != 1.0)
@@ -805,6 +851,7 @@ static Xen g_vct_offset(Xen obj1, Xen obj2)
   vct *v1;
   mus_float_t scl;
   mus_float_t *d;
+  mus_long_t len;
 
   Xen_check_type(mus_is_vct(obj1), obj1, 1, S_vct_offset, A_VCT);
   Xen_check_type(Xen_is_number(obj2), obj2, 2, S_vct_offset, "a number");
@@ -812,12 +859,13 @@ static Xen g_vct_offset(Xen obj1, Xen obj2)
   v1 = Xen_to_vct(obj1);
   if (mus_vct_length(v1) == 0) return(obj1);
   d = mus_vct_data(v1);
+  len = mus_vct_length(v1);
 
   scl = Xen_real_to_C_double(obj2);
   if (scl != 0.0)
     {
       mus_long_t i;
-      for (i = 0; i < mus_vct_length(v1); i++) 
+      for (i = 0; i < len; i++) 
 	d[i] += scl;
     }
   return(obj1);
@@ -883,7 +931,7 @@ index0 and index1 interpolating between x2 and x1 by incrementing x0 by dx"
 static Xen g_vct_fill(Xen obj1, Xen obj2)
 {
   #define H_vct_fillB "(" S_vct_fill " v val): set each element of v to val: v[i] = val, returns v"
-  mus_long_t i; /* unsigned int is much slower */
+  mus_long_t i, len; /* unsigned int is much slower */
   vct *v1;
   mus_float_t scl;
   mus_float_t *d;
@@ -892,16 +940,17 @@ static Xen g_vct_fill(Xen obj1, Xen obj2)
   Xen_check_type(Xen_is_number(obj2), obj2, 2, S_vct_fill, "a number");
 
   v1 = Xen_to_vct(obj1);
-  if (mus_vct_length(v1) == 0) return(obj1);
+  len = mus_vct_length(v1);
+  if (len == 0) return(obj1);
   d = mus_vct_data(v1);
 
   scl = Xen_real_to_C_double(obj2);
   if (scl == 0.0)
-    clear_floats(d, mus_vct_length(v1));
+    mus_clear_floats(d, len);
   else 
     {
       mus_long_t lim8;
-      lim8 = mus_vct_length(v1) - 8;
+      lim8 = len - 8;
       i = 0;
       while (i <= lim8)
 	{
@@ -914,45 +963,25 @@ static Xen g_vct_fill(Xen obj1, Xen obj2)
 	  d[i++] = scl;
 	  d[i++] = scl;
 	}
-      for (; i < mus_vct_length(v1); i++) 
+      for (; i < len; i++) 
 	d[i] = scl;
     }
   return(obj1);
 }
 #endif
 
-
 double mus_vct_peak(vct *v)
 {
-  mus_float_t val = 0.0, absv;
+  mus_float_t val = 0.0;
   mus_float_t *d;
-  mus_long_t i, lim4, len;
+  mus_long_t i, len;
 
   len = mus_vct_length(v);
-
   if (len == 0) return(0.0);
-  lim4 = len - 4;
-  i = 1;
   d = mus_vct_data(v);
-  val = fabs(d[0]);
-
-  while (i <= lim4)
-    {
-      absv = fabs(d[i++]);
-      if (absv > val) val = absv;
-      absv = fabs(d[i++]);
-      if (absv > val) val = absv;
-      absv = fabs(d[i++]);
-      if (absv > val) val = absv;
-      absv = fabs(d[i++]);
-      if (absv > val) val = absv;
-    }
 
-  for (; i < len; i++)
-    {
-      absv = fabs(d[i]);
-      if (absv > val) val = absv;
-    }
+  for (i = 0; i < len; i++)
+    val = (fabs(d[i]) > val) ? fabs(d[i]) : val;
   return(val);
 }
 
@@ -971,19 +1000,21 @@ Xen g_vct_peak(Xen obj)
 #define S_vct_peak_and_location "vct-peak-and-location"
 #endif
 
+
 static Xen g_vct_peak_and_location(Xen obj)
 {
   #define H_vct_peak_and_location "(" S_vct_peak_and_location " v): max of abs of elements of v and its position in v"
   mus_float_t val = 0.0;
-  mus_long_t i, loc = 0;
+  mus_long_t i, loc = 0, len;
   vct *v;
   mus_float_t *d;
 
   Xen_check_type(mus_is_vct(obj), obj, 1, S_vct_peak_and_location, "a " S_vct);
   v = Xen_to_vct(obj);
   d = mus_vct_data(v);
+  len = mus_vct_length(v);
 
-  for (i = 0; i < mus_vct_length(v); i++)
+  for (i = 0; i < len; i++)
     {
       mus_float_t absv;
       absv = fabs(d[i]);
diff --git a/vct.h b/vct.h
index b7a4c9d..07ba5b3 100644
--- a/vct.h
+++ b/vct.h
@@ -11,6 +11,48 @@ typedef struct vct vct;
 extern "C" {
 #endif
 
+#if (defined(__GNUC__) && __GNUC__ >= 5)
+MUS_EXPORT void mus_clear_floats(mus_float_t *arr, mus_long_t len) __attribute__ ((optimize("tree-vectorize")));
+MUS_EXPORT void mus_copy_floats(mus_float_t *dst, mus_float_t *src, mus_long_t len) __attribute__ ((optimize("tree-vectorize")));
+MUS_EXPORT void mus_add_floats(mus_float_t *dst, mus_float_t *src, mus_long_t len) __attribute__ ((optimize("tree-vectorize")));
+MUS_EXPORT void mus_abs_floats(mus_float_t *dst, mus_long_t len) __attribute__ ((optimize("tree-vectorize")));
+#else
+#define mus_clear_floats(Arr, Len)		\
+  do {						\
+    mus_long_t K;				\
+    mus_float_t *dst;				\
+    dst = Arr;					\
+    for (K = Len; K > 0; K--)			\
+      *dst++ = 0.0;				\
+  } while (0)
+#define mus_copy_floats(Dst, Src, Len)		\
+  do {						\
+    mus_long_t K;				\
+    mus_float_t *dst, *src;			\
+    dst = Dst;					\
+    src = Src;					\
+    for (K = Len; K > 0; K--)			\
+      *dst++ = *src++;				\
+    } while (0)
+#define mus_add_floats(Dst, Src, Len)		\
+  do {						\
+    mus_long_t K;				\
+    mus_float_t *dst, *src;			\
+    dst = Dst;					\
+    src = Src;					\
+    for (K = Len; K > 0; K--)			\
+      *dst++ += *src++;				\
+    } while (0)
+#define mus_abs_floats(Dst, Len)		\
+  do {						\
+    mus_long_t K;				\
+    mus_float_t *dst;				\
+    dst = Dst;					\
+    for (K = Len; K > 0; K--)			\
+      dst[K] = fabs(dst[K]);			\
+    } while (0)
+#endif
+
 MUS_EXPORT void mus_vct_init(void);
 MUS_EXPORT int mus_vct_print_length(void);
 MUS_EXPORT void mus_vct_set_print_length(int len);
diff --git a/ws.scm b/ws.scm
index 1f6c1cf..60c6b15 100644
--- a/ws.scm
+++ b/ws.scm
@@ -35,6 +35,8 @@
     (lambda (beg dur) 
       (list (seconds->samples beg) (seconds->samples (+ beg dur))))))
 
+(define *clm-default-frequency* 0.0) ; this is obsolete
+
 
 ;;; -------- definstrument --------
 
@@ -818,7 +820,7 @@ symbol: 'e4 for example.  If 'pythagorean', the frequency calculation uses small
 
 (define (clm-display-globals)
 
-  (format #f ";CLM globals:~%;  *clm-srate*: ~A (default: ~A)~%;  *clm-file-name*: ~A~%;  *clm-channels: ~A (default: ~A)~%;  *clm-sample-type*: ~A (default: ~A)~%;  *clm-header-type*: ~A (default: ~A)~%;  *clm-reverb-channels*: ~A, *clm-reverb-data*: ~A~%;  *clm-table-size*: ~A~%;  *clm-file-buffer-size*: ~A~%;  *clm-locsig-type*: ~A~%;  *clm-array-print-length*: ~A (~A)~%;  *clm-notehook*: ~A~%;  *clm-default-frequency*: ~A~%;  *clm-clipped*: ~A, mus-clipping: ~A~%~%"
+  (format #f ";CLM globals:~%;  *clm-srate*: ~A (default: ~A)~%;  *clm-file-name*: ~A~%;  *clm-channels: ~A (default: ~A)~%;  *clm-sample-type*: ~A (default: ~A)~%;  *clm-header-type*: ~A (default: ~A)~%;  *clm-reverb-channels*: ~A, *clm-reverb-data*: ~A~%;  *clm-table-size*: ~A~%;  *clm-file-buffer-size*: ~A~%;  *clm-locsig-type*: ~A~%;  *clm-array-print-length*: ~A (~A)~%;  *clm-notehook*: ~A~%;  *clm-clipped*: ~A, mus-clipping: ~A~%~%"
 
 	  *clm-srate* *default-output-srate*
 	  *clm-file-name*
@@ -831,7 +833,6 @@ symbol: 'e4 for example.  If 'pythagorean', the frequency calculation uses small
 	  *clm-locsig-type*
 	  *clm-array-print-length* *print-length*
 	  *clm-notehook*
-	  *clm-default-frequency*
 	  *clm-clipped* (mus-clipping)))
 
 
diff --git a/xg.c b/xg.c
index fd271ca..15c1f84 100644
--- a/xg.c
+++ b/xg.c
@@ -25,6 +25,8 @@
  *
  * HISTORY:
  *
+ *     28-Jul-17: scheme Init_libxg arg added.
+ *     --------
  *     17-Mar-16: gtk_enum_t for better signature checks.
  *     --------
  *     29-Oct:    removed ->string.
@@ -109,6 +111,8 @@
 
 #include <string.h>
 #include <stdlib.h>
+#include <stdint.h>
+#include <inttypes.h>
 
 #include <glib.h>
 #include <gdk/gdk.h>
@@ -200,7 +204,7 @@ static void define_xm_obj(void)
   #define Xg_field_pre "F"
 #endif
 
-static Xen xg_GtkCheckButton__symbol, xg_GdkDrawContext__symbol, xg_GtkDrawingAreaDrawFunc_symbol, xg_const_symbol, xg_GtkShortcutLabel__symbol, xg_GtkPadActionType_symbol, xg_GtkPadActionEntry__symbol, xg_GActionGroup__symbol, xg_GtkPadController__symbol, xg_GdkDevicePadFeature_symbol, xg_GdkDevicePad__symbol, xg_GdkDrawingContext__symbol, xg_GdkSubpixelLayout_symbol, xg_GdkMonitor__symbol, xg_GdkDeviceTool__symbol, xg_GdkAxisFlags_symbol, xg_GdkSeatGrabPrepareFunc_symbol, xg_GdkSeatCapabilities_symbol, xg_GdkGrabStatus_symbol, xg_GtkPopoverConstraint_symbol, xg_GtkShortcutsWindow__symbol, xg_GtkStackSidebar__symbol, xg_GtkSearchEntry__symbol, xg_GtkPopoverMenu__symbol, xg_GtkStyleContext__symbol, xg_GdkGLContext__symbol, xg_GtkGLArea__symbol, xg_GtkPropagationPhase_symbol, xg_GtkEventController__symbol, xg_GtkGestureZoom__symbol, xg_GtkGestureSwipe__symbol, xg_GtkGestureSingle__symbol, xg_GtkGestureRotate__symbol, xg_GtkGestureMultiPress__symbol, xg_GtkGesturePan__symbol, xg_GtkGestureDrag__symbol, xg_GdkEventSequence__symbol, xg_GtkEventSequenceState_symbol, xg_GtkGesture__symbol, xg_GtkPopover__symbol, xg_GtkActionBar__symbol, xg_GtkFlowBox__symbol, xg_GtkFlowBoxChild__symbol, xg_GdkEventType_symbol, xg_GtkSearchBar__symbol, xg_GtkListBox__symbol, xg_GtkListBoxRow__symbol, xg_GtkHeaderBar__symbol, xg_GtkRevealerTransitionType_symbol, xg_GtkRevealer__symbol, xg_GtkStackTransitionType_symbol, xg_GtkStack__symbol, xg_GtkStackSwitcher__symbol, xg_GtkPlacesSidebar__symbol, xg_GtkPlacesOpenFlags_symbol, xg_GtkBaselinePosition_symbol, xg_GdkFullscreenMode_symbol, xg_GtkInputHints_symbol, xg_GtkInputPurpose_symbol, xg_GtkLevelBarMode_symbol, xg_GtkLevelBar__symbol, xg_GtkMenuButton__symbol, xg_GtkColorChooser__symbol, xg_GtkApplicationWindow__symbol, xg_GtkApplication__symbol, xg_GMenuModel__symbol, xg_guint___symbol, xg_GdkModifierIntent_symbol, xg_GtkFontChooser__symbol, xg_GdkScrollDirection_symbol, xg_GtkOverlay__symbol, xg_GtkWidgetPath__symbol, xg_GtkStateFlags_symbol, xg_GdkScreen___symbol, xg_GtkToolShell__symbol, xg_GtkWindowGroup__symbol, xg_GtkInvisible__symbol, xg_GtkOrientable__symbol, xg_GtkCellArea__symbol, xg_GtkBorder__symbol, xg_GtkSwitch__symbol, xg_GtkScrollablePolicy_symbol, xg_GtkScrollable__symbol, xg_GtkGrid__symbol, xg_GdkRGBA__symbol, xg_GtkComboBoxText__symbol, xg_GtkAlign_symbol, xg_GtkSizeRequestMode_symbol, xg_cairo_region_overlap_t_symbol, xg_cairo_rectangle_int_t__symbol, xg_double__symbol, xg_cairo_rectangle_t__symbol, xg_cairo_device_t__symbol, xg_cairo_bool_t_symbol, xg_cairo_text_cluster_flags_t__symbol, xg_cairo_text_cluster_t___symbol, xg_cairo_glyph_t___symbol, xg_cairo_text_cluster_flags_t_symbol, xg_cairo_text_cluster_t__symbol, xg_cairo_region_t__symbol, xg_GtkMessageDialog__symbol, xg_GdkDevice__symbol, xg_GtkAccessible__symbol, xg_GdkModifierType__symbol, xg_GtkToolPaletteDragTargets_symbol, xg_GtkToolItemGroup__symbol, xg_GtkToolPalette__symbol, xg_GtkSpinner__symbol, xg_GtkEntryBuffer__symbol, xg_GtkMessageType_symbol, xg_GtkInfoBar__symbol, xg_GIcon__symbol, xg_GtkEntryIconPosition_symbol, xg_GFile__symbol, xg_GtkScaleButton__symbol, xg_GtkCalendarDetailFunc_symbol, xg_GtkTooltip__symbol, xg_cairo_rectangle_list_t__symbol, xg_void__symbol, xg_cairo_filter_t_symbol, xg_cairo_extend_t_symbol, xg_cairo_format_t_symbol, xg_cairo_path_t__symbol, xg_cairo_destroy_func_t_symbol, xg_cairo_user_data_key_t__symbol, xg_cairo_text_extents_t__symbol, xg_cairo_font_extents_t__symbol, xg_cairo_font_face_t__symbol, xg_cairo_glyph_t__symbol, xg_cairo_scaled_font_t__symbol, xg_cairo_font_weight_t_symbol, xg_cairo_font_slant_t_symbol, xg_cairo_hint_metrics_t_symbol, xg_cairo_hint_style_t_symbol, xg_cairo_subpixel_order_t_symbol, xg_cairo_status_t_symbol, xg_bool_symbol, xg_cairo_matrix_t__symbol, xg_cairo_line_join_t_symbol, xg_cairo_line_cap_t_symbol, xg_cairo_fill_rule_t_symbol, xg_cairo_antialias_t_symbol, xg_cairo_operator_t_symbol, xg_cairo_pattern_t__symbol, xg_cairo_content_t_symbol, xg_GtkPageSet_symbol, xg_GtkPageRange__symbol, xg_GtkPrintPages_symbol, xg_GtkPrintQuality_symbol, xg_GtkPrintDuplex_symbol, xg_GtkPaperSize__symbol, xg_GtkPageOrientation_symbol, xg_GtkPrintSettingsFunc_symbol, xg_GtkPrintOperationPreview__symbol, xg_GtkPageSetupDoneFunc_symbol, xg_GtkPrintStatus_symbol, xg_GtkPrintOperationAction_symbol, xg_GtkPrintOperationResult_symbol, xg_GtkUnit_symbol, xg_GtkPrintSettings__symbol, xg_GtkPrintOperation__symbol, xg_GtkPageSetup__symbol, xg_GtkPrintContext__symbol, xg_cairo_surface_t__symbol, xg_GtkTreeViewGridLines_symbol, xg_GtkRecentData__symbol, xg_GtkTextBufferDeserializeFunc_symbol, xg_GtkTextBufferSerializeFunc_symbol, xg_time_t_symbol, xg_GtkRecentChooserMenu__symbol, xg_GtkRecentManager__symbol, xg_GtkRecentFilter__symbol, xg_GtkRecentSortFunc_symbol, xg_GtkRecentSortType_symbol, xg_GtkRecentChooser__symbol, xg_GtkLinkButton__symbol, xg_GtkAssistantPageType_symbol, xg_GtkAssistantPageFunc_symbol, xg_GtkAssistant__symbol, xg_GDestroyNotify_symbol, xg_GtkTreeViewSearchPositionFunc_symbol, xg_GtkSensitivityType_symbol, xg_GtkClipboardRichTextReceivedFunc_symbol, xg_GtkMenuBar__symbol, xg_GtkPackDirection_symbol, xg_GtkIconViewDropPosition_symbol, xg_GValue__symbol, xg_GLogFunc_symbol, xg_PangoMatrix__symbol, xg_PangoRenderPart_symbol, xg_PangoRenderer__symbol, xg_GtkClipboardImageReceivedFunc_symbol, xg_GtkMenuToolButton__symbol, xg_GtkFileChooserButton__symbol, xg_PangoScriptIter__symbol, xg_PangoScript_symbol, xg_PangoAttrFilterFunc_symbol, xg_PangoEllipsizeMode_symbol, xg_GtkIconViewForeachFunc_symbol, xg_GtkAboutDialog__symbol, xg_GtkTreeViewRowSeparatorFunc_symbol, xg_GtkCellView__symbol, xg_GtkAccelMap__symbol, xg_GtkClipboardTargetsReceivedFunc_symbol, xg_GtkOrientation_symbol, xg_GtkToolButton__symbol, xg_GtkIconLookupFlags_symbol, xg_GtkIconInfo__symbol, xg_GtkIconTheme__symbol, xg_GtkFileChooser__symbol, xg_GtkCellLayoutDataFunc_symbol, xg_GtkCellLayout__symbol, xg_GtkFileFilterFunc_symbol, xg_GtkFileFilterFlags_symbol, xg_GtkFileFilter__symbol, xg_GSourceFunc_symbol, xg_GtkToggleToolButton__symbol, xg_GtkSeparatorToolItem__symbol, xg_GtkRadioToolButton__symbol, xg_GtkEntryCompletionMatchFunc_symbol, xg_GtkFontButton__symbol, xg_GtkExpander__symbol, xg_GtkComboBox__symbol, xg_GtkTreeModelFilter__symbol, xg_GtkFileChooserAction_symbol, xg_GtkToolItem__symbol, xg_GtkEventBox__symbol, xg_GtkCalendarDisplayOptions_symbol, xg_GdkScreen__symbol, xg_PangoLayoutRun__symbol, xg_PangoLayoutIter__symbol, xg_PangoLayoutLine__symbol, xg_int__symbol, xg_PangoAlignment_symbol, xg_PangoWrapMode_symbol, xg_PangoItem__symbol, xg_PangoGlyphString__symbol, xg_PangoFontMap__symbol, xg_PangoGlyph_symbol, xg_PangoFontFace__symbol, xg_PangoFontFace___symbol, xg_PangoFontFamily__symbol, xg_PangoFontMask_symbol, xg_PangoFontDescription___symbol, xg_PangoCoverageLevel_symbol, xg_PangoCoverage__symbol, xg_PangoFontMetrics__symbol, xg_PangoFontset__symbol, xg_PangoFont__symbol, xg_PangoFontFamily___symbol, xg_PangoLogAttr__symbol, xg_PangoAnalysis__symbol, xg_PangoAttrList___symbol, xg_PangoAttrIterator__symbol, xg_PangoRectangle__symbol, xg_PangoUnderline_symbol, xg_PangoStretch_symbol, xg_PangoVariant_symbol, xg_PangoWeight_symbol, xg_PangoStyle_symbol, xg_guint16_symbol, xg_PangoAttribute__symbol, xg_PangoAttrType_symbol, xg_PangoColor__symbol, xg_GdkGravity_symbol, xg_GtkWindowPosition_symbol, xg_GtkWindowType_symbol, xg_GtkWindow__symbol, xg_GtkTextDirection_symbol, xg_AtkObject__symbol, xg_GtkDirectionType_symbol, xg_GtkAllocation__symbol, xg_GtkViewport__symbol, xg_GtkTreeViewSearchEqualFunc_symbol, xg_GtkTreeViewDropPosition_symbol, xg_GtkTreeViewMappingFunc_symbol, xg_GtkTreeViewColumnDropFunc_symbol, xg_GtkTreeViewColumnSizing_symbol, xg_GtkTreeCellDataFunc_symbol, xg_GtkTreeStore__symbol, xg_GtkTreeIterCompareFunc_symbol, xg_GtkSortType_symbol, xg_GtkTreeSortable__symbol, xg_GtkTreeSelectionForeachFunc_symbol, xg_GtkTreeModel___symbol, xg_GtkTreeSelectionFunc_symbol, xg_GtkSelectionMode_symbol, xg_GtkTreeModelSort__symbol, xg_GtkTreeModelForeachFunc_symbol, xg_GtkTreeModelFlags_symbol, xg_GtkTreeRowReference__symbol, xg_GtkTreeDragDest__symbol, xg_GtkTreeDragSource__symbol, xg_GtkToolbarStyle_symbol, xg_GtkToolbar__symbol, xg_GtkToggleButton__symbol, xg_PangoTabArray__symbol, xg_GtkWrapMode_symbol, xg_GtkTextWindowType_symbol, xg_GtkTextView__symbol, xg_GtkTextTagTableForeach_symbol, xg_GtkTextAttributes__symbol, xg_GtkTextSearchFlags_symbol, xg_GtkTextCharPredicate_symbol, xg_GtkTextMark__symbol, xg_GtkTextChildAnchor__symbol, xg_GtkTextIter__symbol, xg_GtkTextTagTable__symbol, xg_GtkTextBuffer__symbol, xg_GtkStatusbar__symbol, xg_GtkSpinType_symbol, xg_GtkSpinButtonUpdatePolicy_symbol, xg_GtkSpinButton__symbol, xg_GtkSizeGroupMode_symbol, xg_GtkSizeGroup__symbol, xg_GtkSettings__symbol, xg_GtkCornerType_symbol, xg_GtkPolicyType_symbol, xg_GtkScrolledWindow__symbol, xg_GtkScale__symbol, xg_GtkRange__symbol, xg_GtkRadioMenuItem__symbol, xg_GtkRadioButton__symbol, xg_GtkProgressBar__symbol, xg_GtkPaned__symbol, xg_GtkPositionType_symbol, xg_GtkNotebook__symbol, xg_GtkMenuShell__symbol, xg_gint__symbol, xg_GtkMenuItem__symbol, xg_GtkMenu__symbol, xg_PangoLanguage__symbol, xg_GtkListStore__symbol, xg_GtkLayout__symbol, xg_GtkJustification_symbol, xg_GtkLabel__symbol, xg_guint16__symbol, xg_GtkIMContextSimple__symbol, xg_GdkEventKey__symbol, xg_PangoAttrList__symbol, xg_GtkIMContext__symbol, xg_GtkImageType_symbol, xg_GtkImage__symbol, xg_GtkShadowType_symbol, xg_GtkFrame__symbol, xg_GtkFixed__symbol, xg_PangoLayout__symbol, xg_GtkEntry__symbol, xg_GtkEditable__symbol, xg_GtkTargetList__symbol, xg_GtkDestDefaults_symbol, xg_etc_symbol, xg_GtkDialog__symbol, xg_GtkCallback_symbol, xg_GtkContainer__symbol, xg_GtkClipboardTextReceivedFunc_symbol, xg_GtkClipboardReceivedFunc_symbol, xg_GtkClipboardClearFunc_symbol, xg_GtkClipboardGetFunc_symbol, xg_GtkTargetEntry__symbol, xg_GtkCheckMenuItem__symbol, xg_GtkCellRendererToggle__symbol, xg_GtkCellRendererText__symbol, xg_GtkCellRendererState_symbol, xg_GtkCellEditable__symbol, xg_GtkCalendar__symbol, xg_GtkReliefStyle_symbol, xg_GtkButton__symbol, xg_GtkPackType_symbol, xg_GtkBox__symbol, xg_GtkBin__symbol, xg_GtkBindingSet__symbol, xg_GtkButtonBox__symbol, xg_GtkButtonBoxStyle_symbol, xg_GtkAspectFrame__symbol, xg_GtkAdjustment__symbol, xg_GtkAccelMapForeach_symbol, xg_GtkAccelLabel__symbol, xg_GtkAccelGroupEntry__symbol, xg_lambda3_symbol, xg_GSList__symbol, xg_GObject__symbol, xg_GtkAccelFlags_symbol, xg_GtkAccelGroup__symbol, xg_GTimeVal__symbol, xg_GdkPixbufAnimationIter__symbol, xg_GdkPixbufAnimation__symbol, xg_GdkInterpType_symbol, xg_double_symbol, xg_gfloat_symbol, xg_guchar_symbol, xg_char___symbol, xg_GdkPixbufDestroyNotify_symbol, xg_GError__symbol, xg_int_symbol, xg_GdkColorspace_symbol, xg_GdkWindowTypeHint_symbol, xg_GdkWindowHints_symbol, xg_GdkGeometry__symbol, xg_GdkWindowEdge_symbol, xg_GdkWMFunction_symbol, xg_GdkWMDecoration_symbol, xg_GdkEventMask_symbol, xg_GdkWindowState_symbol, xg_GdkFilterFunc_symbol, xg_GdkWindowType_symbol, xg_GdkPropMode_symbol, xg_guchar__symbol, xg_PangoContext__symbol, xg_PangoDirection_symbol, xg_GdkKeymapKey__symbol, xg_GdkKeymap__symbol, xg_GdkRectangle__symbol, xg_char__symbol, xg_gchar___symbol, xg_GdkEventFunc_symbol, xg_gdouble_symbol, xg_GList__symbol, xg_guint32_symbol, xg_GdkDragAction_symbol, xg_GdkDragContext__symbol, xg_GdkCursorType_symbol, xg_GdkDisplay__symbol, xg_GdkCursor__symbol, xg_GSignalMatchType_symbol, xg_GConnectFlags_symbol, xg_GtkDestroyNotify_symbol, xg_GSignalEmissionHook_symbol, xg_gulong_symbol, xg_GSignalInvocationHint__symbol, xg_GQuark_symbol, xg_guint__symbol, xg_GSignalQuery__symbol, xg_GType__symbol, xg_GSignalCMarshaller_symbol, xg_gpointer_symbol, xg_GSignalAccumulator_symbol, xg_GSignalFlags_symbol, xg_GType_symbol, xg_GClosureNotify_symbol, xg_GCallback_symbol, xg_GNormalizeMode_symbol, xg_glong_symbol, xg_gssize_symbol, xg_gunichar__symbol, xg_void_symbol, xg_GtkDrawingArea__symbol, xg_GdkSeat__symbol, xg_GtkRecentInfo__symbol, xg_gsize_symbol, xg_guint8__symbol, xg_GdkAtom_symbol, xg_GLogLevelFlags_symbol, xg_GdkPixbuf__symbol, xg_GtkIconView__symbol, xg_GtkEntryCompletion__symbol, xg_GtkFileFilterInfo__symbol, xg_GtkTreeSelection__symbol, xg_GtkCellRenderer__symbol, xg_GtkTreeViewColumn__symbol, xg_GtkTreeView__symbol, xg_gunichar_symbol, xg_gint_symbol, xg_GdkAtom__symbol, xg_GtkSelectionData__symbol, xg_GtkClipboard__symbol, xg_GtkTreeIter__symbol, xg_GtkTreePath__symbol, xg_GtkTreeModel__symbol, xg_gboolean_symbol, xg_GdkModifierType_symbol, xg_guint_symbol, xg_gchar__symbol, xg_GtkTextTag__symbol, xg_GdkXEvent__symbol, xg_GtkWidget__symbol, xg_lambda_data_symbol, xg_GClosure__symbol, xg_GtkAccelKey__symbol, xg_GdkEventMotion__symbol, xg_gdouble__symbol, xg_GdkEventAny__symbol, xg_GdkEvent__symbol, xg_GdkWindow__symbol, xg_cairo_t__symbol, xg_cairo_font_options_t__symbol, xg_PangoFontDescription__symbol, xg_idler_symbol, xg_GtkCellRendererPixbuf__symbol, xg_GtkScrollbar__symbol, xg_GtkSeparator__symbol, xg_GtkSeparatorMenuItem__symbol, xg_GdkEventExpose__symbol, xg_GdkEventNoExpose__symbol, xg_GdkEventVisibility__symbol, xg_GdkEventButton__symbol, xg_GdkEventScroll__symbol, xg_GdkEventCrossing__symbol, xg_GdkEventFocus__symbol, xg_GdkEventConfigure__symbol, xg_GdkEventProperty__symbol, xg_GdkEventSelection__symbol, xg_GdkEventProximity__symbol, xg_GdkEventSetting__symbol, xg_GdkEventWindowState__symbol, xg_GdkEventDND__symbol, xg_GtkFileChooserDialog__symbol, xg_GtkFileChooserWidget__symbol, xg_GtkColorButton__symbol, xg_GtkAccelMap_symbol, xg_GtkCellRendererCombo__symbol, xg_GtkCellRendererProgress__symbol, xg_GtkCellRendererAccel__symbol, xg_GtkCellRendererSpin__symbol, xg_GtkRecentChooserDialog__symbol, xg_GtkRecentChooserWidget__symbol, xg_GtkCellRendererSpinner__symbol, xg_gboolean__symbol, xg_GtkFontChooserDialog__symbol, xg_GtkFontChooserWidget__symbol, xg_GtkColorChooserDialog__symbol, xg_GtkColorChooserWidget__symbol, xg_GtkColorWidget__symbol, xg_GtkGestureLongPress__symbol;
+static Xen xg_GtkCenterBox__symbol, xg_GtkCheckButton__symbol, xg_GdkDrawContext__symbol, xg_GtkDrawingAreaDrawFunc_symbol, xg_GtkShortcutLabel__symbol, xg_GtkPadActionType_symbol, xg_GtkPadActionEntry__symbol, xg_GActionGroup__symbol, xg_GtkPadController__symbol, xg_GdkDevicePadFeature_symbol, xg_GdkDevicePad__symbol, xg_GdkDrawingContext__symbol, xg_GdkSubpixelLayout_symbol, xg_GdkMonitor__symbol, xg_GdkDeviceTool__symbol, xg_GdkAxisFlags_symbol, xg_GdkSeatGrabPrepareFunc_symbol, xg_GdkSeatCapabilities_symbol, xg_GdkGrabStatus_symbol, xg_GtkPopoverConstraint_symbol, xg_GtkShortcutsWindow__symbol, xg_GtkStackSidebar__symbol, xg_GtkSearchEntry__symbol, xg_GtkPopoverMenu__symbol, xg_GtkStyleContext__symbol, xg_GdkGLContext__symbol, xg_GtkGLArea__symbol, xg_GtkPropagationPhase_symbol, xg_GtkEventController__symbol, xg_GtkGestureZoom__symbol, xg_GtkGestureSwipe__symbol, xg_GtkGestureSingle__symbol, xg_GtkGestureRotate__symbol, xg_GtkGestureMultiPress__symbol, xg_GtkGesturePan__symbol, xg_GtkGestureDrag__symbol, xg_GdkEventSequence__symbol, xg_GtkEventSequenceState_symbol, xg_GtkGesture__symbol, xg_GtkPopover__symbol, xg_GtkActionBar__symbol, xg_GtkFlowBox__symbol, xg_GtkFlowBoxChild__symbol, xg_GdkEventType_symbol, xg_GtkSearchBar__symbol, xg_GtkListBox__symbol, xg_GtkListBoxRow__symbol, xg_GtkHeaderBar__symbol, xg_GtkRevealerTransitionType_symbol, xg_GtkRevealer__symbol, xg_GtkStackTransitionType_symbol, xg_GtkStack__symbol, xg_GtkStackSwitcher__symbol, xg_GtkPlacesSidebar__symbol, xg_GtkPlacesOpenFlags_symbol, xg_GtkBaselinePosition_symbol, xg_GdkFullscreenMode_symbol, xg_GtkInputHints_symbol, xg_GtkInputPurpose_symbol, xg_GtkLevelBarMode_symbol, xg_GtkLevelBar__symbol, xg_GtkMenuButton__symbol, xg_GtkColorChooser__symbol, xg_GtkApplicationWindow__symbol, xg_GtkApplication__symbol, xg_GMenuModel__symbol, xg_guint___symbol, xg_GdkModifierIntent_symbol, xg_GtkFontChooser__symbol, xg_GdkScrollDirection_symbol, xg_GtkOverlay__symbol, xg_GtkWidgetPath__symbol, xg_GtkStateFlags_symbol, xg_GdkScreen___symbol, xg_GtkToolShell__symbol, xg_GtkWindowGroup__symbol, xg_GtkInvisible__symbol, xg_GtkOrientable__symbol, xg_GtkCellArea__symbol, xg_GtkBorder__symbol, xg_GtkSwitch__symbol, xg_GtkScrollablePolicy_symbol, xg_GtkScrollable__symbol, xg_GtkGrid__symbol, xg_GdkRGBA__symbol, xg_GtkComboBoxText__symbol, xg_GtkAlign_symbol, xg_GtkSizeRequestMode_symbol, xg_cairo_region_overlap_t_symbol, xg_cairo_rectangle_int_t__symbol, xg_double__symbol, xg_cairo_rectangle_t__symbol, xg_cairo_device_t__symbol, xg_cairo_bool_t_symbol, xg_cairo_text_cluster_flags_t__symbol, xg_cairo_text_cluster_t___symbol, xg_cairo_glyph_t___symbol, xg_cairo_text_cluster_flags_t_symbol, xg_cairo_text_cluster_t__symbol, xg_cairo_region_t__symbol, xg_GtkMessageDialog__symbol, xg_GdkDevice__symbol, xg_GtkAccessible__symbol, xg_GdkModifierType__symbol, xg_GtkToolPaletteDragTargets_symbol, xg_GtkToolItemGroup__symbol, xg_GtkToolPalette__symbol, xg_GtkSpinner__symbol, xg_GtkEntryBuffer__symbol, xg_GtkMessageType_symbol, xg_GtkInfoBar__symbol, xg_GIcon__symbol, xg_GtkEntryIconPosition_symbol, xg_GFile__symbol, xg_GtkScaleButton__symbol, xg_GtkCalendarDetailFunc_symbol, xg_GtkTooltip__symbol, xg_cairo_rectangle_list_t__symbol, xg_void__symbol, xg_cairo_filter_t_symbol, xg_cairo_extend_t_symbol, xg_cairo_format_t_symbol, xg_cairo_path_t__symbol, xg_cairo_destroy_func_t_symbol, xg_cairo_user_data_key_t__symbol, xg_cairo_text_extents_t__symbol, xg_cairo_font_extents_t__symbol, xg_cairo_font_face_t__symbol, xg_cairo_glyph_t__symbol, xg_cairo_scaled_font_t__symbol, xg_cairo_font_weight_t_symbol, xg_cairo_font_slant_t_symbol, xg_cairo_hint_metrics_t_symbol, xg_cairo_hint_style_t_symbol, xg_cairo_subpixel_order_t_symbol, xg_cairo_status_t_symbol, xg_bool_symbol, xg_cairo_matrix_t__symbol, xg_cairo_line_join_t_symbol, xg_cairo_line_cap_t_symbol, xg_cairo_fill_rule_t_symbol, xg_cairo_antialias_t_symbol, xg_cairo_operator_t_symbol, xg_cairo_pattern_t__symbol, xg_cairo_content_t_symbol, xg_GtkPageSet_symbol, xg_GtkPageRange__symbol, xg_GtkPrintPages_symbol, xg_GtkPrintQuality_symbol, xg_GtkPrintDuplex_symbol, xg_GtkPaperSize__symbol, xg_GtkPageOrientation_symbol, xg_GtkPrintSettingsFunc_symbol, xg_GtkPageSetupDoneFunc_symbol, xg_GtkPrintStatus_symbol, xg_GtkPrintOperationAction_symbol, xg_GtkPrintOperationResult_symbol, xg_GtkUnit_symbol, xg_GtkPrintSettings__symbol, xg_GtkPrintOperation__symbol, xg_GtkPageSetup__symbol, xg_GtkPrintContext__symbol, xg_cairo_surface_t__symbol, xg_GtkTreeViewGridLines_symbol, xg_GtkRecentData__symbol, xg_GtkTextBufferDeserializeFunc_symbol, xg_GtkTextBufferSerializeFunc_symbol, xg_time_t_symbol, xg_GtkRecentChooserMenu__symbol, xg_GtkRecentManager__symbol, xg_GtkRecentFilter__symbol, xg_GtkRecentSortFunc_symbol, xg_GtkRecentSortType_symbol, xg_GtkRecentChooser__symbol, xg_GtkLinkButton__symbol, xg_GtkAssistantPageType_symbol, xg_GtkAssistantPageFunc_symbol, xg_GtkAssistant__symbol, xg_GDestroyNotify_symbol, xg_GtkTreeViewSearchPositionFunc_symbol, xg_GtkSensitivityType_symbol, xg_GtkClipboardRichTextReceivedFunc_symbol, xg_GtkMenuBar__symbol, xg_GtkPackDirection_symbol, xg_GtkIconViewDropPosition_symbol, xg_GValue__symbol, xg_GLogFunc_symbol, xg_PangoMatrix__symbol, xg_PangoRenderPart_symbol, xg_PangoRenderer__symbol, xg_GtkClipboardImageReceivedFunc_symbol, xg_GtkMenuToolButton__symbol, xg_GtkFileChooserButton__symbol, xg_PangoScriptIter__symbol, xg_PangoScript_symbol, xg_PangoAttrFilterFunc_symbol, xg_PangoEllipsizeMode_symbol, xg_GtkIconViewForeachFunc_symbol, xg_GtkAboutDialog__symbol, xg_GtkTreeViewRowSeparatorFunc_symbol, xg_GtkCellView__symbol, xg_GtkAccelMap__symbol, xg_GtkClipboardTargetsReceivedFunc_symbol, xg_GtkOrientation_symbol, xg_GtkToolButton__symbol, xg_GtkIconLookupFlags_symbol, xg_GtkIconInfo__symbol, xg_GtkIconTheme__symbol, xg_GtkFileChooser__symbol, xg_GtkCellLayoutDataFunc_symbol, xg_GtkCellLayout__symbol, xg_GtkFileFilterFunc_symbol, xg_GtkFileFilterFlags_symbol, xg_GtkFileFilter__symbol, xg_GSourceFunc_symbol, xg_GtkToggleToolButton__symbol, xg_GtkSeparatorToolItem__symbol, xg_GtkRadioToolButton__symbol, xg_GtkEntryCompletionMatchFunc_symbol, xg_GtkFontButton__symbol, xg_GtkExpander__symbol, xg_GtkComboBox__symbol, xg_GtkTreeModelFilter__symbol, xg_GtkFileChooserAction_symbol, xg_GtkToolItem__symbol, xg_GtkEventBox__symbol, xg_GtkCalendarDisplayOptions_symbol, xg_GdkScreen__symbol, xg_PangoLayoutRun__symbol, xg_PangoLayoutIter__symbol, xg_PangoLayoutLine__symbol, xg_int__symbol, xg_PangoAlignment_symbol, xg_PangoWrapMode_symbol, xg_PangoItem__symbol, xg_PangoGlyphString__symbol, xg_PangoFontMap__symbol, xg_PangoGlyph_symbol, xg_PangoFontFace__symbol, xg_PangoFontFace___symbol, xg_PangoFontFamily__symbol, xg_PangoFontMask_symbol, xg_PangoFontDescription___symbol, xg_PangoCoverageLevel_symbol, xg_PangoCoverage__symbol, xg_PangoFontMetrics__symbol, xg_PangoFontset__symbol, xg_PangoFont__symbol, xg_PangoFontFamily___symbol, xg_PangoLogAttr__symbol, xg_PangoAnalysis__symbol, xg_PangoAttrList___symbol, xg_PangoAttrIterator__symbol, xg_PangoRectangle__symbol, xg_PangoUnderline_symbol, xg_PangoStretch_symbol, xg_PangoVariant_symbol, xg_PangoWeight_symbol, xg_PangoStyle_symbol, xg_guint16_symbol, xg_PangoAttribute__symbol, xg_PangoAttrType_symbol, xg_PangoColor__symbol, xg_GdkGravity_symbol, xg_GtkWindowPosition_symbol, xg_GtkWindowType_symbol, xg_GtkWindow__symbol, xg_GtkTextDirection_symbol, xg_AtkObject__symbol, xg_GtkDirectionType_symbol, xg_GtkAllocation__symbol, xg_GtkViewport__symbol, xg_GtkTreeViewSearchEqualFunc_symbol, xg_GtkTreeViewDropPosition_symbol, xg_GtkTreeViewMappingFunc_symbol, xg_GtkTreeViewColumnDropFunc_symbol, xg_GtkTreeViewColumnSizing_symbol, xg_GtkTreeCellDataFunc_symbol, xg_GtkTreeStore__symbol, xg_GtkTreeIterCompareFunc_symbol, xg_GtkSortType_symbol, xg_GtkTreeSortable__symbol, xg_GtkTreeSelectionForeachFunc_symbol, xg_GtkTreeModel___symbol, xg_GtkTreeSelectionFunc_symbol, xg_GtkSelectionMode_symbol, xg_GtkTreeModelSort__symbol, xg_GtkTreeModelForeachFunc_symbol, xg_GtkTreeModelFlags_symbol, xg_GtkTreeRowReference__symbol, xg_GtkTreeDragDest__symbol, xg_GtkTreeDragSource__symbol, xg_GtkToolbarStyle_symbol, xg_GtkToolbar__symbol, xg_GtkToggleButton__symbol, xg_PangoTabArray__symbol, xg_GtkWrapMode_symbol, xg_GtkTextWindowType_symbol, xg_GtkTextView__symbol, xg_GtkTextTagTableForeach_symbol, xg_GtkTextAttributes__symbol, xg_GtkTextSearchFlags_symbol, xg_GtkTextCharPredicate_symbol, xg_GtkTextMark__symbol, xg_GtkTextChildAnchor__symbol, xg_GtkTextIter__symbol, xg_GtkTextTagTable__symbol, xg_GtkTextBuffer__symbol, xg_GtkStatusbar__symbol, xg_GtkSpinType_symbol, xg_GtkSpinButtonUpdatePolicy_symbol, xg_GtkSpinButton__symbol, xg_GtkSizeGroupMode_symbol, xg_GtkSizeGroup__symbol, xg_GtkSettings__symbol, xg_GtkCornerType_symbol, xg_GtkPolicyType_symbol, xg_GtkScrolledWindow__symbol, xg_GtkScale__symbol, xg_GtkRange__symbol, xg_GtkRadioMenuItem__symbol, xg_GtkRadioButton__symbol, xg_GtkProgressBar__symbol, xg_GtkPaned__symbol, xg_GtkPositionType_symbol, xg_GtkNotebook__symbol, xg_GtkMenuShell__symbol, xg_gint__symbol, xg_GtkMenuItem__symbol, xg_GtkMenu__symbol, xg_PangoLanguage__symbol, xg_GtkListStore__symbol, xg_GtkLayout__symbol, xg_GtkJustification_symbol, xg_GtkLabel__symbol, xg_guint16__symbol, xg_GtkIMContextSimple__symbol, xg_GdkEventKey__symbol, xg_PangoAttrList__symbol, xg_GtkIMContext__symbol, xg_GtkImageType_symbol, xg_GtkImage__symbol, xg_GtkShadowType_symbol, xg_GtkFrame__symbol, xg_GtkFixed__symbol, xg_PangoLayout__symbol, xg_GtkEntry__symbol, xg_GtkEditable__symbol, xg_GtkTargetList__symbol, xg_GtkDestDefaults_symbol, xg_etc_symbol, xg_GtkDialog__symbol, xg_GtkCallback_symbol, xg_GtkContainer__symbol, xg_GtkClipboardTextReceivedFunc_symbol, xg_GtkClipboardReceivedFunc_symbol, xg_GtkClipboardClearFunc_symbol, xg_GtkClipboardGetFunc_symbol, xg_GtkTargetEntry__symbol, xg_GtkCheckMenuItem__symbol, xg_GtkCellRendererToggle__symbol, xg_GtkCellRendererText__symbol, xg_GtkCellRendererState_symbol, xg_GtkCellEditable__symbol, xg_GtkCalendar__symbol, xg_GtkReliefStyle_symbol, xg_GtkButton__symbol, xg_GtkPackType_symbol, xg_GtkBox__symbol, xg_GtkBin__symbol, xg_GtkBindingSet__symbol, xg_GtkButtonBox__symbol, xg_GtkButtonBoxStyle_symbol, xg_GtkAspectFrame__symbol, xg_GtkAdjustment__symbol, xg_GtkAccelMapForeach_symbol, xg_GtkAccelLabel__symbol, xg_GtkAccelGroupEntry__symbol, xg_lambda3_symbol, xg_GSList__symbol, xg_GObject__symbol, xg_GtkAccelFlags_symbol, xg_GtkAccelGroup__symbol, xg_GTimeVal__symbol, xg_GdkPixbufAnimationIter__symbol, xg_GdkPixbufAnimation__symbol, xg_GdkInterpType_symbol, xg_double_symbol, xg_gfloat_symbol, xg_guchar_symbol, xg_char___symbol, xg_GdkPixbufDestroyNotify_symbol, xg_GError__symbol, xg_int_symbol, xg_GdkColorspace_symbol, xg_GdkWindowTypeHint_symbol, xg_GdkWindowHints_symbol, xg_GdkGeometry__symbol, xg_GdkWindowEdge_symbol, xg_GdkWMFunction_symbol, xg_GdkWMDecoration_symbol, xg_GdkEventMask_symbol, xg_GdkWindowState_symbol, xg_GdkFilterFunc_symbol, xg_GdkWindowType_symbol, xg_GdkPropMode_symbol, xg_guchar__symbol, xg_PangoContext__symbol, xg_PangoDirection_symbol, xg_GdkKeymapKey__symbol, xg_GdkKeymap__symbol, xg_GdkRectangle__symbol, xg_char__symbol, xg_gchar___symbol, xg_GdkEventFunc_symbol, xg_gdouble_symbol, xg_GList__symbol, xg_guint32_symbol, xg_GdkDragAction_symbol, xg_GdkDragContext__symbol, xg_GdkCursorType_symbol, xg_GdkDisplay__symbol, xg_GdkCursor__symbol, xg_GSignalMatchType_symbol, xg_GConnectFlags_symbol, xg_GtkDestroyNotify_symbol, xg_GSignalEmissionHook_symbol, xg_gulong_symbol, xg_GSignalInvocationHint__symbol, xg_GQuark_symbol, xg_guint__symbol, xg_GSignalQuery__symbol, xg_GType__symbol, xg_GSignalCMarshaller_symbol, xg_gpointer_symbol, xg_GSignalAccumulator_symbol, xg_GSignalFlags_symbol, xg_GType_symbol, xg_GClosureNotify_symbol, xg_GCallback_symbol, xg_GNormalizeMode_symbol, xg_glong_symbol, xg_gssize_symbol, xg_gunichar__symbol, xg_void_symbol, xg_GtkDrawingArea__symbol, xg_GdkSeat__symbol, xg_GtkRecentInfo__symbol, xg_gsize_symbol, xg_guint8__symbol, xg_GdkAtom_symbol, xg_GLogLevelFlags_symbol, xg_GdkPixbuf__symbol, xg_GtkIconView__symbol, xg_GtkEntryCompletion__symbol, xg_GtkFileFilterInfo__symbol, xg_GtkTreeSelection__symbol, xg_GtkCellRenderer__symbol, xg_GtkTreeViewColumn__symbol, xg_GtkTreeView__symbol, xg_gunichar_symbol, xg_gint_symbol, xg_GdkAtom__symbol, xg_GtkSelectionData__symbol, xg_GtkClipboard__symbol, xg_GtkTreeIter__symbol, xg_GtkTreePath__symbol, xg_GtkTreeModel__symbol, xg_gboolean_symbol, xg_GdkModifierType_symbol, xg_guint_symbol, xg_gchar__symbol, xg_GtkTextTag__symbol, xg_GdkXEvent__symbol, xg_GtkWidget__symbol, xg_lambda_data_symbol, xg_GClosure__symbol, xg_GtkAccelKey__symbol, xg_GdkEventMotion__symbol, xg_gdouble__symbol, xg_GdkEventAny__symbol, xg_GdkEvent__symbol, xg_GdkWindow__symbol, xg_cairo_t__symbol, xg_cairo_font_options_t__symbol, xg_PangoFontDescription__symbol, xg_idler_symbol, xg_GtkCellRendererPixbuf__symbol, xg_GtkScrollbar__symbol, xg_GtkSeparator__symbol, xg_GtkSeparatorMenuItem__symbol, xg_GdkEventExpose__symbol, xg_GdkEventNoExpose__symbol, xg_GdkEventVisibility__symbol, xg_GdkEventButton__symbol, xg_GdkEventScroll__symbol, xg_GdkEventCrossing__symbol, xg_GdkEventFocus__symbol, xg_GdkEventConfigure__symbol, xg_GdkEventProperty__symbol, xg_GdkEventSelection__symbol, xg_GdkEventProximity__symbol, xg_GdkEventSetting__symbol, xg_GdkEventWindowState__symbol, xg_GdkEventDND__symbol, xg_GtkFileChooserDialog__symbol, xg_GtkFileChooserWidget__symbol, xg_GtkColorButton__symbol, xg_GtkAccelMap_symbol, xg_GtkCellRendererCombo__symbol, xg_GtkCellRendererProgress__symbol, xg_GtkCellRendererAccel__symbol, xg_GtkCellRendererSpin__symbol, xg_GtkRecentChooserDialog__symbol, xg_GtkRecentChooserWidget__symbol, xg_GtkCellRendererSpinner__symbol, xg_gboolean__symbol, xg_GtkFontChooserDialog__symbol, xg_GtkFontChooserWidget__symbol, xg_GtkColorChooserDialog__symbol, xg_GtkColorChooserWidget__symbol, xg_GtkColorWidget__symbol, xg_GtkGestureLongPress__symbol;
 
 #define wrap_for_Xen(Name, Value) Xen_list_2(xg_ ## Name ## _symbol, Xen_wrap_C_pointer(Value))
 #define is_wrapped(Name, Value) (Xen_is_pair(Value) && (Xen_car(Value) == xg_ ## Name ## _symbol))
@@ -769,21 +773,31 @@ Xm_type_Ptr(GtkPrintContext_, GtkPrintContext*)
 Xm_type_Ptr(GtkPageSetup_, GtkPageSetup*)
 Xm_type_Ptr(GtkPrintOperation_, GtkPrintOperation*)
 Xm_type_Ptr(GtkPrintSettings_, GtkPrintSettings*)
-Xm_type_1(GtkUnit, GtkUnit)
+#define Xen_to_C_GtkUnit(Arg) (GtkUnit)(Xen_integer_to_C_int(Arg))
+#define Xen_is_GtkUnit(Arg) Xen_is_integer(Arg)
 #define C_to_Xen_GtkPrintOperationResult(Arg) C_int_to_Xen_integer(Arg)
 #define Xen_to_C_GtkPrintOperationAction(Arg) (GtkPrintOperationAction)(Xen_integer_to_C_int(Arg))
 #define Xen_is_GtkPrintOperationAction(Arg) Xen_is_integer(Arg)
 #define C_to_Xen_GtkPrintStatus(Arg) C_int_to_Xen_integer(Arg)
 Xm_type_1(GtkPageSetupDoneFunc, GtkPageSetupDoneFunc)
-Xm_type_Ptr_1(GtkPrintOperationPreview_, GtkPrintOperationPreview*)
 Xm_type_1(GtkPrintSettingsFunc, GtkPrintSettingsFunc)
-Xm_type(GtkPageOrientation, GtkPageOrientation)
+#define C_to_Xen_GtkPageOrientation(Arg) C_int_to_Xen_integer(Arg)
+#define Xen_to_C_GtkPageOrientation(Arg) (GtkPageOrientation)(Xen_integer_to_C_int(Arg))
+#define Xen_is_GtkPageOrientation(Arg) Xen_is_integer(Arg)
 Xm_type_Ptr(GtkPaperSize_, GtkPaperSize*)
-Xm_type(GtkPrintDuplex, GtkPrintDuplex)
-Xm_type(GtkPrintQuality, GtkPrintQuality)
-Xm_type(GtkPrintPages, GtkPrintPages)
+#define C_to_Xen_GtkPrintDuplex(Arg) C_int_to_Xen_integer(Arg)
+#define Xen_to_C_GtkPrintDuplex(Arg) (GtkPrintDuplex)(Xen_integer_to_C_int(Arg))
+#define Xen_is_GtkPrintDuplex(Arg) Xen_is_integer(Arg)
+#define C_to_Xen_GtkPrintQuality(Arg) C_int_to_Xen_integer(Arg)
+#define Xen_to_C_GtkPrintQuality(Arg) (GtkPrintQuality)(Xen_integer_to_C_int(Arg))
+#define Xen_is_GtkPrintQuality(Arg) Xen_is_integer(Arg)
+#define C_to_Xen_GtkPrintPages(Arg) C_int_to_Xen_integer(Arg)
+#define Xen_to_C_GtkPrintPages(Arg) (GtkPrintPages)(Xen_integer_to_C_int(Arg))
+#define Xen_is_GtkPrintPages(Arg) Xen_is_integer(Arg)
 Xm_type_Ptr(GtkPageRange_, GtkPageRange*)
-Xm_type(GtkPageSet, GtkPageSet)
+#define C_to_Xen_GtkPageSet(Arg) C_int_to_Xen_integer(Arg)
+#define Xen_to_C_GtkPageSet(Arg) (GtkPageSet)(Xen_integer_to_C_int(Arg))
+#define Xen_is_GtkPageSet(Arg) Xen_is_integer(Arg)
 Xm_type_Ptr_1(GtkTooltip_, GtkTooltip*)
 #if GTK_CHECK_VERSION(2, 14, 0)
 Xm_type_1(GtkCalendarDetailFunc, GtkCalendarDetailFunc)
@@ -913,7 +927,9 @@ Xm_type_Ptr_1(GtkPopover_, GtkPopover*)
 
 #if GTK_CHECK_VERSION(3, 14, 0)
 Xm_type_Ptr(GtkGesture_, GtkGesture*)
-Xm_type(GtkEventSequenceState, GtkEventSequenceState)
+#define C_to_Xen_GtkEventSequenceState(Arg) C_int_to_Xen_integer(Arg)
+#define Xen_to_C_GtkEventSequenceState(Arg) (GtkEventSequenceState)(Xen_integer_to_C_int(Arg))
+#define Xen_is_GtkEventSequenceState(Arg) Xen_is_integer(Arg)
 Xm_type_Ptr(GdkEventSequence_, GdkEventSequence*)
 Xm_type_Ptr_1(GtkGestureDrag_, GtkGestureDrag*)
 Xm_type_Ptr_1(GtkGesturePan_, GtkGesturePan*)
@@ -923,7 +939,9 @@ Xm_type_Ptr_1(GtkGestureSingle_, GtkGestureSingle*)
 Xm_type_Ptr_1(GtkGestureSwipe_, GtkGestureSwipe*)
 Xm_type_Ptr_1(GtkGestureZoom_, GtkGestureZoom*)
 Xm_type_Ptr_1(GtkEventController_, GtkEventController*)
-Xm_type(GtkPropagationPhase, GtkPropagationPhase)
+#define C_to_Xen_GtkPropagationPhase(Arg) C_int_to_Xen_integer(Arg)
+#define Xen_to_C_GtkPropagationPhase(Arg) (GtkPropagationPhase)(Xen_integer_to_C_int(Arg))
+#define Xen_is_GtkPropagationPhase(Arg) Xen_is_integer(Arg)
 #endif
 
 #if GTK_CHECK_VERSION(3, 16, 0)
@@ -966,10 +984,10 @@ Xm_type_Ptr_1(GtkShortcutLabel_, GtkShortcutLabel*)
 
 #if GTK_CHECK_VERSION(3, 99, 0)
 Xm_type_Ptr_1(GtkDrawingArea_, GtkDrawingArea*)
-Xm_type(const, const)
 Xm_type(GtkDrawingAreaDrawFunc, GtkDrawingAreaDrawFunc)
 Xm_type_Ptr(GdkDrawContext_, GdkDrawContext*)
 Xm_type_Ptr(GtkCheckButton_, GtkCheckButton*)
+Xm_type_Ptr(GtkCenterBox_, GtkCenterBox*)
 #endif
 
 Xm_type_Ptr(cairo_surface_t_, cairo_surface_t*)
@@ -1035,7 +1053,8 @@ Xm_type_Ptr(void_, void*)
 Xm_type_Ptr(cairo_rectangle_list_t_, cairo_rectangle_list_t*)
 #if HAVE_CAIRO_1_8
 Xm_type_Ptr(cairo_text_cluster_t_, cairo_text_cluster_t*)
-Xm_type_1(cairo_text_cluster_flags_t, cairo_text_cluster_flags_t)
+#define Xen_to_C_cairo_text_cluster_flags_t(Arg) (cairo_text_cluster_flags_t)(Xen_integer_to_C_int(Arg))
+#define Xen_is_cairo_text_cluster_flags_t(Arg) Xen_is_integer(Arg)
 Xm_type_Ptr_1(cairo_glyph_t__, cairo_glyph_t**)
 Xm_type_Ptr_1(cairo_text_cluster_t__, cairo_text_cluster_t**)
 Xm_type_Ptr_1(cairo_text_cluster_flags_t_, cairo_text_cluster_flags_t*)
@@ -5486,16 +5505,6 @@ static Xen gxg_gtk_image_get_animation(Xen image)
   return(C_to_Xen_GdkPixbufAnimation_(gtk_image_get_animation(Xen_to_C_GtkImage_(image))));
 }
 
-static Xen gxg_gtk_im_context_set_client_window(Xen context, Xen window)
-{
-  #define H_gtk_im_context_set_client_window "void gtk_im_context_set_client_window(GtkIMContext* context, \
-GdkWindow* window)"
-  Xen_check_type(Xen_is_GtkIMContext_(context), context, 1, "gtk_im_context_set_client_window", "GtkIMContext*");
-  Xen_check_type(Xen_is_GdkWindow_(window) || Xen_is_false(window), window, 2, "gtk_im_context_set_client_window", "GdkWindow*");
-  gtk_im_context_set_client_window(Xen_to_C_GtkIMContext_(context), Xen_to_C_GdkWindow_(window));
-  return(Xen_false);
-}
-
 static Xen gxg_gtk_im_context_get_preedit_string(Xen context, Xen ignore_str, Xen ignore_attrs, Xen ignore_cursor_pos)
 {
   #define H_gtk_im_context_get_preedit_string "void gtk_im_context_get_preedit_string(GtkIMContext* context, \
@@ -12166,24 +12175,6 @@ gint* [height])"
   return(Xen_list_2(C_to_Xen_gint(ref_width), C_to_Xen_gint(ref_height)));
 }
 
-static Xen gxg_gtk_widget_set_events(Xen widget, Xen events)
-{
-  #define H_gtk_widget_set_events "void gtk_widget_set_events(GtkWidget* widget, gint events)"
-  Xen_check_type(Xen_is_GtkWidget_(widget), widget, 1, "gtk_widget_set_events", "GtkWidget*");
-  Xen_check_type(Xen_is_gint(events), events, 2, "gtk_widget_set_events", "gint");
-  gtk_widget_set_events(Xen_to_C_GtkWidget_(widget), Xen_to_C_gint(events));
-  return(Xen_false);
-}
-
-static Xen gxg_gtk_widget_add_events(Xen widget, Xen events)
-{
-  #define H_gtk_widget_add_events "void gtk_widget_add_events(GtkWidget* widget, gint events)"
-  Xen_check_type(Xen_is_GtkWidget_(widget), widget, 1, "gtk_widget_add_events", "GtkWidget*");
-  Xen_check_type(Xen_is_gint(events), events, 2, "gtk_widget_add_events", "gint");
-  gtk_widget_add_events(Xen_to_C_GtkWidget_(widget), Xen_to_C_gint(events));
-  return(Xen_false);
-}
-
 static Xen gxg_gtk_widget_get_toplevel(Xen widget)
 {
   #define H_gtk_widget_get_toplevel "GtkWidget* gtk_widget_get_toplevel(GtkWidget* widget)"
@@ -12213,13 +12204,6 @@ static Xen gxg_gtk_widget_get_accessible(Xen widget)
   return(C_to_Xen_AtkObject_(gtk_widget_get_accessible(Xen_to_C_GtkWidget_(widget))));
 }
 
-static Xen gxg_gtk_widget_get_events(Xen widget)
-{
-  #define H_gtk_widget_get_events "gint gtk_widget_get_events(GtkWidget* widget)"
-  Xen_check_type(Xen_is_GtkWidget_(widget), widget, 1, "gtk_widget_get_events", "GtkWidget*");
-  return(C_to_Xen_gint(gtk_widget_get_events(Xen_to_C_GtkWidget_(widget))));
-}
-
 static Xen gxg_gtk_widget_is_ancestor(Xen widget, Xen ancestor)
 {
   #define H_gtk_widget_is_ancestor "gboolean gtk_widget_is_ancestor(GtkWidget* widget, GtkWidget* ancestor)"
@@ -16735,23 +16719,6 @@ static Xen gxg_gtk_tool_item_get_expand(Xen tool_item)
   return(C_to_Xen_gboolean(gtk_tool_item_get_expand(Xen_to_C_GtkToolItem_(tool_item))));
 }
 
-static Xen gxg_gtk_tool_item_set_use_drag_window(Xen toolitem, Xen use_drag_window)
-{
-  #define H_gtk_tool_item_set_use_drag_window "void gtk_tool_item_set_use_drag_window(GtkToolItem* toolitem, \
-gboolean use_drag_window)"
-  Xen_check_type(Xen_is_GtkToolItem_(toolitem), toolitem, 1, "gtk_tool_item_set_use_drag_window", "GtkToolItem*");
-  Xen_check_type(Xen_is_gboolean(use_drag_window), use_drag_window, 2, "gtk_tool_item_set_use_drag_window", "gboolean");
-  gtk_tool_item_set_use_drag_window(Xen_to_C_GtkToolItem_(toolitem), Xen_to_C_gboolean(use_drag_window));
-  return(Xen_false);
-}
-
-static Xen gxg_gtk_tool_item_get_use_drag_window(Xen toolitem)
-{
-  #define H_gtk_tool_item_get_use_drag_window "gboolean gtk_tool_item_get_use_drag_window(GtkToolItem* toolitem)"
-  Xen_check_type(Xen_is_GtkToolItem_(toolitem), toolitem, 1, "gtk_tool_item_get_use_drag_window", "GtkToolItem*");
-  return(C_to_Xen_gboolean(gtk_tool_item_get_use_drag_window(Xen_to_C_GtkToolItem_(toolitem))));
-}
-
 static Xen gxg_gtk_tool_item_set_visible_horizontal(Xen toolitem, Xen visible_horizontal)
 {
   #define H_gtk_tool_item_set_visible_horizontal "void gtk_tool_item_set_visible_horizontal(GtkToolItem* toolitem, \
@@ -21013,33 +20980,6 @@ GtkPageSetup* page_setup, GtkPrintSettings* settings, GtkPageSetupDoneFunc done_
   return(Xen_false);
 }
 
-static Xen gxg_gtk_print_operation_preview_render_page(Xen preview, Xen page_nr)
-{
-  #define H_gtk_print_operation_preview_render_page "void gtk_print_operation_preview_render_page(GtkPrintOperationPreview* preview, \
-gint page_nr)"
-  Xen_check_type(Xen_is_GtkPrintOperationPreview_(preview), preview, 1, "gtk_print_operation_preview_render_page", "GtkPrintOperationPreview*");
-  Xen_check_type(Xen_is_gint(page_nr), page_nr, 2, "gtk_print_operation_preview_render_page", "gint");
-  gtk_print_operation_preview_render_page(Xen_to_C_GtkPrintOperationPreview_(preview), Xen_to_C_gint(page_nr));
-  return(Xen_false);
-}
-
-static Xen gxg_gtk_print_operation_preview_end_preview(Xen preview)
-{
-  #define H_gtk_print_operation_preview_end_preview "void gtk_print_operation_preview_end_preview(GtkPrintOperationPreview* preview)"
-  Xen_check_type(Xen_is_GtkPrintOperationPreview_(preview), preview, 1, "gtk_print_operation_preview_end_preview", "GtkPrintOperationPreview*");
-  gtk_print_operation_preview_end_preview(Xen_to_C_GtkPrintOperationPreview_(preview));
-  return(Xen_false);
-}
-
-static Xen gxg_gtk_print_operation_preview_is_selected(Xen preview, Xen page_nr)
-{
-  #define H_gtk_print_operation_preview_is_selected "gboolean gtk_print_operation_preview_is_selected(GtkPrintOperationPreview* preview, \
-gint page_nr)"
-  Xen_check_type(Xen_is_GtkPrintOperationPreview_(preview), preview, 1, "gtk_print_operation_preview_is_selected", "GtkPrintOperationPreview*");
-  Xen_check_type(Xen_is_gint(page_nr), page_nr, 2, "gtk_print_operation_preview_is_selected", "gint");
-  return(C_to_Xen_gboolean(gtk_print_operation_preview_is_selected(Xen_to_C_GtkPrintOperationPreview_(preview), Xen_to_C_gint(page_nr))));
-}
-
 static Xen gxg_gtk_print_settings_new(void)
 {
   #define H_gtk_print_settings_new "GtkPrintSettings* gtk_print_settings_new( void)"
@@ -24602,28 +24542,6 @@ GdkDevice* device)"
   return(C_to_Xen_gboolean(gtk_widget_device_is_shadowed(Xen_to_C_GtkWidget_(widget), Xen_to_C_GdkDevice_(device))));
 }
 
-static Xen gxg_gtk_widget_set_device_events(Xen widget, Xen device, Xen events)
-{
-  #define H_gtk_widget_set_device_events "void gtk_widget_set_device_events(GtkWidget* widget, GdkDevice* device, \
-GdkEventMask events)"
-  Xen_check_type(Xen_is_GtkWidget_(widget), widget, 1, "gtk_widget_set_device_events", "GtkWidget*");
-  Xen_check_type(Xen_is_GdkDevice_(device), device, 2, "gtk_widget_set_device_events", "GdkDevice*");
-  Xen_check_type(Xen_is_GdkEventMask(events), events, 3, "gtk_widget_set_device_events", "GdkEventMask");
-  gtk_widget_set_device_events(Xen_to_C_GtkWidget_(widget), Xen_to_C_GdkDevice_(device), Xen_to_C_GdkEventMask(events));
-  return(Xen_false);
-}
-
-static Xen gxg_gtk_widget_add_device_events(Xen widget, Xen device, Xen events)
-{
-  #define H_gtk_widget_add_device_events "void gtk_widget_add_device_events(GtkWidget* widget, GdkDevice* device, \
-GdkEventMask events)"
-  Xen_check_type(Xen_is_GtkWidget_(widget), widget, 1, "gtk_widget_add_device_events", "GtkWidget*");
-  Xen_check_type(Xen_is_GdkDevice_(device), device, 2, "gtk_widget_add_device_events", "GdkDevice*");
-  Xen_check_type(Xen_is_GdkEventMask(events), events, 3, "gtk_widget_add_device_events", "GdkEventMask");
-  gtk_widget_add_device_events(Xen_to_C_GtkWidget_(widget), Xen_to_C_GdkDevice_(device), Xen_to_C_GdkEventMask(events));
-  return(Xen_false);
-}
-
 static Xen gxg_gtk_widget_get_support_multidevice(Xen widget)
 {
   #define H_gtk_widget_get_support_multidevice "gboolean gtk_widget_get_support_multidevice(GtkWidget* widget)"
@@ -24641,15 +24559,6 @@ gboolean support_multidevice)"
   return(Xen_false);
 }
 
-static Xen gxg_gtk_widget_get_device_events(Xen widget, Xen device)
-{
-  #define H_gtk_widget_get_device_events "GdkEventMask gtk_widget_get_device_events(GtkWidget* widget, \
-GdkDevice* device)"
-  Xen_check_type(Xen_is_GtkWidget_(widget), widget, 1, "gtk_widget_get_device_events", "GtkWidget*");
-  Xen_check_type(Xen_is_GdkDevice_(device), device, 2, "gtk_widget_get_device_events", "GdkDevice*");
-  return(C_to_Xen_GdkEventMask(gtk_widget_get_device_events(Xen_to_C_GtkWidget_(widget), Xen_to_C_GdkDevice_(device))));
-}
-
 static Xen gxg_gtk_icon_view_get_item_row(Xen icon_view, Xen path)
 {
   #define H_gtk_icon_view_get_item_row "gint gtk_icon_view_get_item_row(GtkIconView* icon_view, GtkTreePath* path)"
@@ -29537,22 +29446,6 @@ static Xen gxg_gtk_gesture_is_recognized(Xen gesture)
   return(C_to_Xen_gboolean(gtk_gesture_is_recognized(Xen_to_C_GtkGesture_(gesture))));
 }
 
-static Xen gxg_gtk_gesture_get_window(Xen gesture)
-{
-  #define H_gtk_gesture_get_window "GdkWindow* gtk_gesture_get_window(GtkGesture* gesture)"
-  Xen_check_type(Xen_is_GtkGesture_(gesture), gesture, 1, "gtk_gesture_get_window", "GtkGesture*");
-  return(C_to_Xen_GdkWindow_(gtk_gesture_get_window(Xen_to_C_GtkGesture_(gesture))));
-}
-
-static Xen gxg_gtk_gesture_set_window(Xen gesture, Xen window)
-{
-  #define H_gtk_gesture_set_window "void gtk_gesture_set_window(GtkGesture* gesture, GdkWindow* window)"
-  Xen_check_type(Xen_is_GtkGesture_(gesture), gesture, 1, "gtk_gesture_set_window", "GtkGesture*");
-  Xen_check_type(Xen_is_GdkWindow_(window), window, 2, "gtk_gesture_set_window", "GdkWindow*");
-  gtk_gesture_set_window(Xen_to_C_GtkGesture_(gesture), Xen_to_C_GdkWindow_(window));
-  return(Xen_false);
-}
-
 static Xen gxg_gtk_gesture_group(Xen group_gesture, Xen gesture)
 {
   #define H_gtk_gesture_group "void gtk_gesture_group(GtkGesture* group_gesture, GtkGesture* gesture)"
@@ -31812,24 +31705,24 @@ static Xen gxg_gdk_window_new_temp(Xen display)
   return(C_to_Xen_GdkWindow_(gdk_window_new_temp(Xen_to_C_GdkDisplay_(display))));
 }
 
-static Xen gxg_gdk_window_new_child(Xen parent, Xen event_mask, Xen GdkRectangle*)
+static Xen gxg_gdk_window_new_child(Xen parent, Xen event_mask, Xen position)
 {
   #define H_gdk_window_new_child "GdkWindow* gdk_window_new_child(GdkWindow* parent, gint event_mask, \
-const GdkRectangle*, position)"
+GdkRectangle* position)"
   Xen_check_type(Xen_is_GdkWindow_(parent), parent, 1, "gdk_window_new_child", "GdkWindow*");
   Xen_check_type(Xen_is_gint(event_mask), event_mask, 2, "gdk_window_new_child", "gint");
-  Xen_check_type(Xen_is_const(GdkRectangle*), GdkRectangle*, 3, "gdk_window_new_child", "const");
-  return(C_to_Xen_GdkWindow_(gdk_window_new_child(Xen_to_C_GdkWindow_(parent), Xen_to_C_gint(event_mask), Xen_to_C_const(GdkRectangle*))));
+  Xen_check_type(Xen_is_GdkRectangle_(position), position, 3, "gdk_window_new_child", "GdkRectangle*");
+  return(C_to_Xen_GdkWindow_(gdk_window_new_child(Xen_to_C_GdkWindow_(parent), Xen_to_C_gint(event_mask), Xen_to_C_GdkRectangle_(position))));
 }
 
-static Xen gxg_gdk_window_new_input(Xen parent, Xen event_mask, Xen GdkRectangle*)
+static Xen gxg_gdk_window_new_input(Xen parent, Xen event_mask, Xen position)
 {
   #define H_gdk_window_new_input "GdkWindow* gdk_window_new_input(GdkWindow* parent, gint event_mask, \
-const GdkRectangle*, position)"
+GdkRectangle* position)"
   Xen_check_type(Xen_is_GdkWindow_(parent), parent, 1, "gdk_window_new_input", "GdkWindow*");
   Xen_check_type(Xen_is_gint(event_mask), event_mask, 2, "gdk_window_new_input", "gint");
-  Xen_check_type(Xen_is_const(GdkRectangle*), GdkRectangle*, 3, "gdk_window_new_input", "const");
-  return(C_to_Xen_GdkWindow_(gdk_window_new_input(Xen_to_C_GdkWindow_(parent), Xen_to_C_gint(event_mask), Xen_to_C_const(GdkRectangle*))));
+  Xen_check_type(Xen_is_GdkRectangle_(position), position, 3, "gdk_window_new_input", "GdkRectangle*");
+  return(C_to_Xen_GdkWindow_(gdk_window_new_input(Xen_to_C_GdkWindow_(parent), Xen_to_C_gint(event_mask), Xen_to_C_GdkRectangle_(position))));
 }
 
 static Xen gxg_gtk_button_set_icon_name(Xen button, Xen icon_name)
@@ -32121,6 +32014,122 @@ GtkWidget* next_sibling)"
   return(Xen_false);
 }
 
+static Xen gxg_gtk_center_box_new(void)
+{
+  #define H_gtk_center_box_new "GtkWidget* gtk_center_box_new( void)"
+  return(C_to_Xen_GtkWidget_(gtk_center_box_new()));
+}
+
+static Xen gxg_gtk_center_box_set_start_widget(Xen self, Xen child)
+{
+  #define H_gtk_center_box_set_start_widget "void gtk_center_box_set_start_widget(GtkCenterBox* self, \
+GtkWidget* child)"
+  Xen_check_type(Xen_is_GtkCenterBox_(self), self, 1, "gtk_center_box_set_start_widget", "GtkCenterBox*");
+  Xen_check_type(Xen_is_GtkWidget_(child), child, 2, "gtk_center_box_set_start_widget", "GtkWidget*");
+  gtk_center_box_set_start_widget(Xen_to_C_GtkCenterBox_(self), Xen_to_C_GtkWidget_(child));
+  return(Xen_false);
+}
+
+static Xen gxg_gtk_center_box_set_center_widget(Xen self, Xen child)
+{
+  #define H_gtk_center_box_set_center_widget "void gtk_center_box_set_center_widget(GtkCenterBox* self, \
+GtkWidget* child)"
+  Xen_check_type(Xen_is_GtkCenterBox_(self), self, 1, "gtk_center_box_set_center_widget", "GtkCenterBox*");
+  Xen_check_type(Xen_is_GtkWidget_(child), child, 2, "gtk_center_box_set_center_widget", "GtkWidget*");
+  gtk_center_box_set_center_widget(Xen_to_C_GtkCenterBox_(self), Xen_to_C_GtkWidget_(child));
+  return(Xen_false);
+}
+
+static Xen gxg_gtk_center_box_set_end_widget(Xen self, Xen child)
+{
+  #define H_gtk_center_box_set_end_widget "void gtk_center_box_set_end_widget(GtkCenterBox* self, GtkWidget* child)"
+  Xen_check_type(Xen_is_GtkCenterBox_(self), self, 1, "gtk_center_box_set_end_widget", "GtkCenterBox*");
+  Xen_check_type(Xen_is_GtkWidget_(child), child, 2, "gtk_center_box_set_end_widget", "GtkWidget*");
+  gtk_center_box_set_end_widget(Xen_to_C_GtkCenterBox_(self), Xen_to_C_GtkWidget_(child));
+  return(Xen_false);
+}
+
+static Xen gxg_gtk_center_box_get_start_widget(Xen self)
+{
+  #define H_gtk_center_box_get_start_widget "GtkWidget* gtk_center_box_get_start_widget(GtkCenterBox* self)"
+  Xen_check_type(Xen_is_GtkCenterBox_(self), self, 1, "gtk_center_box_get_start_widget", "GtkCenterBox*");
+  return(C_to_Xen_GtkWidget_(gtk_center_box_get_start_widget(Xen_to_C_GtkCenterBox_(self))));
+}
+
+static Xen gxg_gtk_center_box_get_center_widget(Xen self)
+{
+  #define H_gtk_center_box_get_center_widget "GtkWidget* gtk_center_box_get_center_widget(GtkCenterBox* self)"
+  Xen_check_type(Xen_is_GtkCenterBox_(self), self, 1, "gtk_center_box_get_center_widget", "GtkCenterBox*");
+  return(C_to_Xen_GtkWidget_(gtk_center_box_get_center_widget(Xen_to_C_GtkCenterBox_(self))));
+}
+
+static Xen gxg_gtk_center_box_get_end_widget(Xen self)
+{
+  #define H_gtk_center_box_get_end_widget "GtkWidget* gtk_center_box_get_end_widget(GtkCenterBox* self)"
+  Xen_check_type(Xen_is_GtkCenterBox_(self), self, 1, "gtk_center_box_get_end_widget", "GtkCenterBox*");
+  return(C_to_Xen_GtkWidget_(gtk_center_box_get_end_widget(Xen_to_C_GtkCenterBox_(self))));
+}
+
+static Xen gxg_gtk_center_box_set_baseline_position(Xen self, Xen position)
+{
+  #define H_gtk_center_box_set_baseline_position "void gtk_center_box_set_baseline_position(GtkCenterBox* self, \
+GtkBaselinePosition position)"
+  Xen_check_type(Xen_is_GtkCenterBox_(self), self, 1, "gtk_center_box_set_baseline_position", "GtkCenterBox*");
+  Xen_check_type(Xen_is_GtkBaselinePosition(position), position, 2, "gtk_center_box_set_baseline_position", "GtkBaselinePosition");
+  gtk_center_box_set_baseline_position(Xen_to_C_GtkCenterBox_(self), Xen_to_C_GtkBaselinePosition(position));
+  return(Xen_false);
+}
+
+static Xen gxg_gtk_center_box_get_baseline_position(Xen self)
+{
+  #define H_gtk_center_box_get_baseline_position "GtkBaselinePosition gtk_center_box_get_baseline_position(GtkCenterBox* self)"
+  Xen_check_type(Xen_is_GtkCenterBox_(self), self, 1, "gtk_center_box_get_baseline_position", "GtkCenterBox*");
+  return(C_to_Xen_GtkBaselinePosition(gtk_center_box_get_baseline_position(Xen_to_C_GtkCenterBox_(self))));
+}
+
+static Xen gxg_gdk_event_set_coords(Xen event, Xen x, Xen y)
+{
+  #define H_gdk_event_set_coords "void gdk_event_set_coords(GdkEvent* event, gdouble x, gdouble y)"
+  Xen_check_type(Xen_is_GdkEvent_(event), event, 1, "gdk_event_set_coords", "GdkEvent*");
+  Xen_check_type(Xen_is_gdouble(x), x, 2, "gdk_event_set_coords", "gdouble");
+  Xen_check_type(Xen_is_gdouble(y), y, 3, "gdk_event_set_coords", "gdouble");
+  gdk_event_set_coords(Xen_to_C_GdkEvent_(event), Xen_to_C_gdouble(x), Xen_to_C_gdouble(y));
+  return(Xen_false);
+}
+
+static Xen gxg_gdk_event_set_user_data(Xen event, Xen user_data)
+{
+  #define H_gdk_event_set_user_data "void gdk_event_set_user_data(GdkEvent* event, GObject* user_data)"
+  Xen_check_type(Xen_is_GdkEvent_(event), event, 1, "gdk_event_set_user_data", "GdkEvent*");
+  Xen_check_type(Xen_is_GObject_(user_data), user_data, 2, "gdk_event_set_user_data", "GObject*");
+  gdk_event_set_user_data(Xen_to_C_GdkEvent_(event), Xen_to_C_GObject_(user_data));
+  return(Xen_false);
+}
+
+static Xen gxg_gdk_event_get_user_data(Xen event)
+{
+  #define H_gdk_event_get_user_data "GObject* gdk_event_get_user_data(GdkEvent* event)"
+  Xen_check_type(Xen_is_GdkEvent_(event), event, 1, "gdk_event_get_user_data", "GdkEvent*");
+  return(C_to_Xen_GObject_(gdk_event_get_user_data(Xen_to_C_GdkEvent_(event))));
+}
+
+static Xen gxg_gdk_rectangle_contains_point(Xen rect, Xen x, Xen y)
+{
+  #define H_gdk_rectangle_contains_point "gboolean gdk_rectangle_contains_point(GdkRectangle* rect, int x, \
+int y)"
+  Xen_check_type(Xen_is_GdkRectangle_(rect), rect, 1, "gdk_rectangle_contains_point", "GdkRectangle*");
+  Xen_check_type(Xen_is_int(x), x, 2, "gdk_rectangle_contains_point", "int");
+  Xen_check_type(Xen_is_int(y), y, 3, "gdk_rectangle_contains_point", "int");
+  return(C_to_Xen_gboolean(gdk_rectangle_contains_point(Xen_to_C_GdkRectangle_(rect), Xen_to_C_int(x), Xen_to_C_int(y))));
+}
+
+static Xen gxg_gtk_get_event_target(Xen event)
+{
+  #define H_gtk_get_event_target "GtkWidget* gtk_get_event_target(GdkEvent* event)"
+  Xen_check_type(Xen_is_GdkEvent_(event), event, 1, "gtk_get_event_target", "GdkEvent*");
+  return(C_to_Xen_GtkWidget_(gtk_get_event_target(Xen_to_C_GdkEvent_(event))));
+}
+
 #endif
 
 static Xen gxg_cairo_create(Xen target)
@@ -34689,7 +34698,6 @@ static Xen gxg_GTK_RECENT_FILTER(Xen obj) {return((Xen_is_wrapped_object(obj)) ?
 static Xen gxg_GTK_RECENT_MANAGER(Xen obj) {return((Xen_is_wrapped_object(obj)) ? Xen_list_2(xg_GtkRecentManager__symbol, Xen_cadr(obj)) : Xen_false);}
 static Xen gxg_GTK_PRINT_CONTEXT(Xen obj) {return((Xen_is_wrapped_object(obj)) ? Xen_list_2(xg_GtkPrintContext__symbol, Xen_cadr(obj)) : Xen_false);}
 static Xen gxg_GTK_PRINT_OPERATION(Xen obj) {return((Xen_is_wrapped_object(obj)) ? Xen_list_2(xg_GtkPrintOperation__symbol, Xen_cadr(obj)) : Xen_false);}
-static Xen gxg_GTK_PRINT_OPERATION_PREVIEW(Xen obj) {return((Xen_is_wrapped_object(obj)) ? Xen_list_2(xg_GtkPrintOperationPreview__symbol, Xen_cadr(obj)) : Xen_false);}
 static Xen gxg_GTK_PRINT_SETTINGS(Xen obj) {return((Xen_is_wrapped_object(obj)) ? Xen_list_2(xg_GtkPrintSettings__symbol, Xen_cadr(obj)) : Xen_false);}
 static Xen gxg_GTK_TOOLTIP(Xen obj) {return((Xen_is_wrapped_object(obj)) ? Xen_list_2(xg_GtkTooltip__symbol, Xen_cadr(obj)) : Xen_false);}
 #if GTK_CHECK_VERSION(2, 18, 0)
@@ -34785,6 +34793,10 @@ static Xen gxg_GTK_PAD_CONTROLLER(Xen obj) {return((Xen_is_wrapped_object(obj))
 static Xen gxg_GTK_SHORTCUT_LABEL(Xen obj) {return((Xen_is_wrapped_object(obj)) ? Xen_list_2(xg_GtkShortcutLabel__symbol, Xen_cadr(obj)) : Xen_false);}
 #endif
 
+#if GTK_CHECK_VERSION(3, 99, 0)
+static Xen gxg_GTK_CENTER_BOX(Xen obj) {return((Xen_is_wrapped_object(obj)) ? Xen_list_2(xg_GtkCenterBox__symbol, Xen_cadr(obj)) : Xen_false);}
+#endif
+
 static Xen gxg_GDK_IS_DRAG_CONTEXT(Xen obj) {return(C_bool_to_Xen_boolean(Xen_is_wrapped_object(obj) && GDK_IS_DRAG_CONTEXT((GTypeInstance *)Xen_unwrap_C_pointer(Xen_cadr(obj)))));}
 static Xen gxg_GDK_IS_DEVICE(Xen obj) {return(C_bool_to_Xen_boolean(Xen_is_wrapped_object(obj) && GDK_IS_DEVICE((GTypeInstance *)Xen_unwrap_C_pointer(Xen_cadr(obj)))));}
 static Xen gxg_GDK_IS_KEYMAP(Xen obj) {return(C_bool_to_Xen_boolean(Xen_is_wrapped_object(obj) && GDK_IS_KEYMAP((GTypeInstance *)Xen_unwrap_C_pointer(Xen_cadr(obj)))));}
@@ -34910,7 +34922,6 @@ static Xen gxg_GTK_IS_RECENT_FILTER(Xen obj) {return(C_bool_to_Xen_boolean(Xen_i
 static Xen gxg_GTK_IS_RECENT_MANAGER(Xen obj) {return(C_bool_to_Xen_boolean(Xen_is_wrapped_object(obj) && GTK_IS_RECENT_MANAGER((GTypeInstance *)Xen_unwrap_C_pointer(Xen_cadr(obj)))));}
 static Xen gxg_GTK_IS_PRINT_CONTEXT(Xen obj) {return(C_bool_to_Xen_boolean(Xen_is_wrapped_object(obj) && GTK_IS_PRINT_CONTEXT((GTypeInstance *)Xen_unwrap_C_pointer(Xen_cadr(obj)))));}
 static Xen gxg_GTK_IS_PRINT_OPERATION(Xen obj) {return(C_bool_to_Xen_boolean(Xen_is_wrapped_object(obj) && GTK_IS_PRINT_OPERATION((GTypeInstance *)Xen_unwrap_C_pointer(Xen_cadr(obj)))));}
-static Xen gxg_GTK_IS_PRINT_OPERATION_PREVIEW(Xen obj) {return(C_bool_to_Xen_boolean(Xen_is_wrapped_object(obj) && GTK_IS_PRINT_OPERATION_PREVIEW((GTypeInstance *)Xen_unwrap_C_pointer(Xen_cadr(obj)))));}
 static Xen gxg_GTK_IS_PRINT_SETTINGS(Xen obj) {return(C_bool_to_Xen_boolean(Xen_is_wrapped_object(obj) && GTK_IS_PRINT_SETTINGS((GTypeInstance *)Xen_unwrap_C_pointer(Xen_cadr(obj)))));}
 static Xen gxg_GTK_IS_TOOLTIP(Xen obj) {return(C_bool_to_Xen_boolean(Xen_is_wrapped_object(obj) && GTK_IS_TOOLTIP((GTypeInstance *)Xen_unwrap_C_pointer(Xen_cadr(obj)))));}
 #if GTK_CHECK_VERSION(2, 18, 0)
@@ -35005,6 +35016,10 @@ static Xen gxg_GTK_IS_PAD_CONTROLLER(Xen obj) {return(C_bool_to_Xen_boolean(Xen_
 static Xen gxg_GTK_IS_SHORTCUT_LABEL(Xen obj) {return(C_bool_to_Xen_boolean(Xen_is_wrapped_object(obj) && GTK_IS_SHORTCUT_LABEL((GTypeInstance *)Xen_unwrap_C_pointer(Xen_cadr(obj)))));}
 #endif
 
+#if GTK_CHECK_VERSION(3, 99, 0)
+static Xen gxg_GTK_IS_CENTER_BOX(Xen obj) {return(C_bool_to_Xen_boolean(Xen_is_wrapped_object(obj) && GTK_IS_CENTER_BOX((GTypeInstance *)Xen_unwrap_C_pointer(Xen_cadr(obj)))));}
+#endif
+
 
 
 /* ---------------------------------------- special functions ---------------------------------------- */
@@ -35073,7 +35088,7 @@ static Xen gxg_gtk_init(Xen argc, Xen argv)
   if (Xen_is_bound(argv)) 
     { 
       if (Xen_is_bound(argc) && Xen_is_integer(argc) && Xen_to_C_int(argc) <= Xen_list_length(argv)) 
-	ref_argc = Xen_to_C_int(argc); 
+         ref_argc = Xen_to_C_int(argc); 
       else ref_argc = Xen_list_length(argv); 
     } 
   ref_argv = (char**)calloc(ref_argc, sizeof(char*)); 
@@ -35121,8 +35136,8 @@ static Xen gxg_gtk_init_check(Xen argc, Xen argv)
     result = C_to_Xen_gboolean(gtk_init_check(&ref_argc, &ref_argv));
     return(Xen_list_3(result, C_to_Xen_int(ref_argc), C_to_Xen_char__(ref_argv)));
   }
-#endif
 }
+#endif
 
 static Xen gxg_make_target_entry(Xen lst)
 {
@@ -35898,7 +35913,6 @@ Xen_wrap_2_args(gxg_gtk_image_set_from_animation_w, gxg_gtk_image_set_from_anima
 Xen_wrap_1_arg(gxg_gtk_image_get_storage_type_w, gxg_gtk_image_get_storage_type)
 Xen_wrap_1_arg(gxg_gtk_image_get_pixbuf_w, gxg_gtk_image_get_pixbuf)
 Xen_wrap_1_arg(gxg_gtk_image_get_animation_w, gxg_gtk_image_get_animation)
-Xen_wrap_2_args(gxg_gtk_im_context_set_client_window_w, gxg_gtk_im_context_set_client_window)
 Xen_wrap_4_optional_args(gxg_gtk_im_context_get_preedit_string_w, gxg_gtk_im_context_get_preedit_string)
 Xen_wrap_2_args(gxg_gtk_im_context_filter_keypress_w, gxg_gtk_im_context_filter_keypress)
 Xen_wrap_1_arg(gxg_gtk_im_context_focus_in_w, gxg_gtk_im_context_focus_in)
@@ -36598,13 +36612,10 @@ Xen_wrap_1_arg(gxg_gtk_widget_get_parent_window_w, gxg_gtk_widget_get_parent_win
 Xen_wrap_2_args(gxg_gtk_widget_child_focus_w, gxg_gtk_widget_child_focus)
 Xen_wrap_3_args(gxg_gtk_widget_set_size_request_w, gxg_gtk_widget_set_size_request)
 Xen_wrap_3_optional_args(gxg_gtk_widget_get_size_request_w, gxg_gtk_widget_get_size_request)
-Xen_wrap_2_args(gxg_gtk_widget_set_events_w, gxg_gtk_widget_set_events)
-Xen_wrap_2_args(gxg_gtk_widget_add_events_w, gxg_gtk_widget_add_events)
 Xen_wrap_1_arg(gxg_gtk_widget_get_toplevel_w, gxg_gtk_widget_get_toplevel)
 Xen_wrap_2_args(gxg_gtk_widget_get_ancestor_w, gxg_gtk_widget_get_ancestor)
 Xen_wrap_1_arg(gxg_gtk_widget_get_settings_w, gxg_gtk_widget_get_settings)
 Xen_wrap_1_arg(gxg_gtk_widget_get_accessible_w, gxg_gtk_widget_get_accessible)
-Xen_wrap_1_arg(gxg_gtk_widget_get_events_w, gxg_gtk_widget_get_events)
 Xen_wrap_2_args(gxg_gtk_widget_is_ancestor_w, gxg_gtk_widget_is_ancestor)
 Xen_wrap_6_optional_args(gxg_gtk_widget_translate_coordinates_w, gxg_gtk_widget_translate_coordinates)
 Xen_wrap_1_arg(gxg_gtk_widget_hide_on_delete_w, gxg_gtk_widget_hide_on_delete)
@@ -37103,8 +37114,6 @@ Xen_wrap_2_args(gxg_gtk_tool_item_set_homogeneous_w, gxg_gtk_tool_item_set_homog
 Xen_wrap_1_arg(gxg_gtk_tool_item_get_homogeneous_w, gxg_gtk_tool_item_get_homogeneous)
 Xen_wrap_2_args(gxg_gtk_tool_item_set_expand_w, gxg_gtk_tool_item_set_expand)
 Xen_wrap_1_arg(gxg_gtk_tool_item_get_expand_w, gxg_gtk_tool_item_get_expand)
-Xen_wrap_2_args(gxg_gtk_tool_item_set_use_drag_window_w, gxg_gtk_tool_item_set_use_drag_window)
-Xen_wrap_1_arg(gxg_gtk_tool_item_get_use_drag_window_w, gxg_gtk_tool_item_get_use_drag_window)
 Xen_wrap_2_args(gxg_gtk_tool_item_set_visible_horizontal_w, gxg_gtk_tool_item_set_visible_horizontal)
 Xen_wrap_1_arg(gxg_gtk_tool_item_get_visible_horizontal_w, gxg_gtk_tool_item_get_visible_horizontal)
 Xen_wrap_2_args(gxg_gtk_tool_item_set_visible_vertical_w, gxg_gtk_tool_item_set_visible_vertical)
@@ -37578,9 +37587,6 @@ Xen_wrap_1_arg(gxg_gtk_print_operation_is_finished_w, gxg_gtk_print_operation_is
 Xen_wrap_1_arg(gxg_gtk_print_operation_cancel_w, gxg_gtk_print_operation_cancel)
 Xen_wrap_3_args(gxg_gtk_print_run_page_setup_dialog_w, gxg_gtk_print_run_page_setup_dialog)
 Xen_wrap_5_args(gxg_gtk_print_run_page_setup_dialog_async_w, gxg_gtk_print_run_page_setup_dialog_async)
-Xen_wrap_2_args(gxg_gtk_print_operation_preview_render_page_w, gxg_gtk_print_operation_preview_render_page)
-Xen_wrap_1_arg(gxg_gtk_print_operation_preview_end_preview_w, gxg_gtk_print_operation_preview_end_preview)
-Xen_wrap_2_args(gxg_gtk_print_operation_preview_is_selected_w, gxg_gtk_print_operation_preview_is_selected)
 Xen_wrap_no_args(gxg_gtk_print_settings_new_w, gxg_gtk_print_settings_new)
 Xen_wrap_1_arg(gxg_gtk_print_settings_copy_w, gxg_gtk_print_settings_copy)
 Xen_wrap_2_args(gxg_gtk_print_settings_has_key_w, gxg_gtk_print_settings_has_key)
@@ -37981,11 +37987,8 @@ Xen_wrap_4_args(gxg_gtk_scale_new_with_range_w, gxg_gtk_scale_new_with_range)
 Xen_wrap_2_args(gxg_gtk_scrollbar_new_w, gxg_gtk_scrollbar_new)
 Xen_wrap_1_arg(gxg_gtk_separator_new_w, gxg_gtk_separator_new)
 Xen_wrap_2_args(gxg_gtk_widget_device_is_shadowed_w, gxg_gtk_widget_device_is_shadowed)
-Xen_wrap_3_args(gxg_gtk_widget_set_device_events_w, gxg_gtk_widget_set_device_events)
-Xen_wrap_3_args(gxg_gtk_widget_add_device_events_w, gxg_gtk_widget_add_device_events)
 Xen_wrap_1_arg(gxg_gtk_widget_get_support_multidevice_w, gxg_gtk_widget_get_support_multidevice)
 Xen_wrap_2_args(gxg_gtk_widget_set_support_multidevice_w, gxg_gtk_widget_set_support_multidevice)
-Xen_wrap_2_args(gxg_gtk_widget_get_device_events_w, gxg_gtk_widget_get_device_events)
 Xen_wrap_2_args(gxg_gtk_icon_view_get_item_row_w, gxg_gtk_icon_view_get_item_row)
 Xen_wrap_2_args(gxg_gtk_icon_view_get_item_column_w, gxg_gtk_icon_view_get_item_column)
 Xen_wrap_2_args(gxg_gtk_statusbar_remove_all_w, gxg_gtk_statusbar_remove_all)
@@ -38566,8 +38569,6 @@ Xen_wrap_2_args(gxg_gtk_gesture_get_bounding_box_w, gxg_gtk_gesture_get_bounding
 Xen_wrap_3_optional_args(gxg_gtk_gesture_get_bounding_box_center_w, gxg_gtk_gesture_get_bounding_box_center)
 Xen_wrap_1_arg(gxg_gtk_gesture_is_active_w, gxg_gtk_gesture_is_active)
 Xen_wrap_1_arg(gxg_gtk_gesture_is_recognized_w, gxg_gtk_gesture_is_recognized)
-Xen_wrap_1_arg(gxg_gtk_gesture_get_window_w, gxg_gtk_gesture_get_window)
-Xen_wrap_2_args(gxg_gtk_gesture_set_window_w, gxg_gtk_gesture_set_window)
 Xen_wrap_2_args(gxg_gtk_gesture_group_w, gxg_gtk_gesture_group)
 Xen_wrap_1_arg(gxg_gtk_gesture_ungroup_w, gxg_gtk_gesture_ungroup)
 Xen_wrap_1_arg(gxg_gtk_gesture_get_group_w, gxg_gtk_gesture_get_group)
@@ -38864,6 +38865,20 @@ Xen_wrap_2_args(gxg_gtk_box_pack_start_w, gxg_gtk_box_pack_start)
 Xen_wrap_2_args(gxg_gtk_box_pack_end_w, gxg_gtk_box_pack_end)
 Xen_wrap_3_args(gxg_gtk_widget_insert_after_w, gxg_gtk_widget_insert_after)
 Xen_wrap_3_args(gxg_gtk_widget_insert_before_w, gxg_gtk_widget_insert_before)
+Xen_wrap_no_args(gxg_gtk_center_box_new_w, gxg_gtk_center_box_new)
+Xen_wrap_2_args(gxg_gtk_center_box_set_start_widget_w, gxg_gtk_center_box_set_start_widget)
+Xen_wrap_2_args(gxg_gtk_center_box_set_center_widget_w, gxg_gtk_center_box_set_center_widget)
+Xen_wrap_2_args(gxg_gtk_center_box_set_end_widget_w, gxg_gtk_center_box_set_end_widget)
+Xen_wrap_1_arg(gxg_gtk_center_box_get_start_widget_w, gxg_gtk_center_box_get_start_widget)
+Xen_wrap_1_arg(gxg_gtk_center_box_get_center_widget_w, gxg_gtk_center_box_get_center_widget)
+Xen_wrap_1_arg(gxg_gtk_center_box_get_end_widget_w, gxg_gtk_center_box_get_end_widget)
+Xen_wrap_2_args(gxg_gtk_center_box_set_baseline_position_w, gxg_gtk_center_box_set_baseline_position)
+Xen_wrap_1_arg(gxg_gtk_center_box_get_baseline_position_w, gxg_gtk_center_box_get_baseline_position)
+Xen_wrap_3_args(gxg_gdk_event_set_coords_w, gxg_gdk_event_set_coords)
+Xen_wrap_2_args(gxg_gdk_event_set_user_data_w, gxg_gdk_event_set_user_data)
+Xen_wrap_1_arg(gxg_gdk_event_get_user_data_w, gxg_gdk_event_get_user_data)
+Xen_wrap_3_args(gxg_gdk_rectangle_contains_point_w, gxg_gdk_rectangle_contains_point)
+Xen_wrap_1_arg(gxg_gtk_get_event_target_w, gxg_gtk_get_event_target)
 #endif
 
 Xen_wrap_1_arg(gxg_cairo_create_w, gxg_cairo_create)
@@ -39289,7 +39304,6 @@ Xen_wrap_1_arg(gxg_GTK_RECENT_FILTER_w, gxg_GTK_RECENT_FILTER)
 Xen_wrap_1_arg(gxg_GTK_RECENT_MANAGER_w, gxg_GTK_RECENT_MANAGER)
 Xen_wrap_1_arg(gxg_GTK_PRINT_CONTEXT_w, gxg_GTK_PRINT_CONTEXT)
 Xen_wrap_1_arg(gxg_GTK_PRINT_OPERATION_w, gxg_GTK_PRINT_OPERATION)
-Xen_wrap_1_arg(gxg_GTK_PRINT_OPERATION_PREVIEW_w, gxg_GTK_PRINT_OPERATION_PREVIEW)
 Xen_wrap_1_arg(gxg_GTK_PRINT_SETTINGS_w, gxg_GTK_PRINT_SETTINGS)
 Xen_wrap_1_arg(gxg_GTK_TOOLTIP_w, gxg_GTK_TOOLTIP)
 #if GTK_CHECK_VERSION(2, 18, 0)
@@ -39385,6 +39399,10 @@ Xen_wrap_1_arg(gxg_GTK_PAD_CONTROLLER_w, gxg_GTK_PAD_CONTROLLER)
 Xen_wrap_1_arg(gxg_GTK_SHORTCUT_LABEL_w, gxg_GTK_SHORTCUT_LABEL)
 #endif
 
+#if GTK_CHECK_VERSION(3, 99, 0)
+Xen_wrap_1_arg(gxg_GTK_CENTER_BOX_w, gxg_GTK_CENTER_BOX)
+#endif
+
 Xen_wrap_1_arg(gxg_GDK_IS_DRAG_CONTEXT_w, gxg_GDK_IS_DRAG_CONTEXT)
 Xen_wrap_1_arg(gxg_GDK_IS_DEVICE_w, gxg_GDK_IS_DEVICE)
 Xen_wrap_1_arg(gxg_GDK_IS_KEYMAP_w, gxg_GDK_IS_KEYMAP)
@@ -39510,7 +39528,6 @@ Xen_wrap_1_arg(gxg_GTK_IS_RECENT_FILTER_w, gxg_GTK_IS_RECENT_FILTER)
 Xen_wrap_1_arg(gxg_GTK_IS_RECENT_MANAGER_w, gxg_GTK_IS_RECENT_MANAGER)
 Xen_wrap_1_arg(gxg_GTK_IS_PRINT_CONTEXT_w, gxg_GTK_IS_PRINT_CONTEXT)
 Xen_wrap_1_arg(gxg_GTK_IS_PRINT_OPERATION_w, gxg_GTK_IS_PRINT_OPERATION)
-Xen_wrap_1_arg(gxg_GTK_IS_PRINT_OPERATION_PREVIEW_w, gxg_GTK_IS_PRINT_OPERATION_PREVIEW)
 Xen_wrap_1_arg(gxg_GTK_IS_PRINT_SETTINGS_w, gxg_GTK_IS_PRINT_SETTINGS)
 Xen_wrap_1_arg(gxg_GTK_IS_TOOLTIP_w, gxg_GTK_IS_TOOLTIP)
 #if GTK_CHECK_VERSION(2, 18, 0)
@@ -39605,13 +39622,17 @@ Xen_wrap_1_arg(gxg_GTK_IS_PAD_CONTROLLER_w, gxg_GTK_IS_PAD_CONTROLLER)
 Xen_wrap_1_arg(gxg_GTK_IS_SHORTCUT_LABEL_w, gxg_GTK_IS_SHORTCUT_LABEL)
 #endif
 
-#if HAVE_SCHEME
-static s7_pointer s_boolean, s_integer, s_real, s_string, s_any, s_pair, s_float, s_gtk_enum_t, s_pair_false;
-static s7_pointer pl_prrru, pl_dust, pl_dut, pl_du, pl_dusr, pl_dus, pl_pr, pl_t, pl_tts, pl_tti, pl_ssig, pl_ssi, pl_psgi, pl_suiig, pl_sug, pl_psiuub, pl_psgbiiiit, pl_psrrrb, pl_sui, pl_suuub, pl_psu, pl_psb, pl_su, pl_sus, pl_ps, pl_psg, pl_psi, pl_psugt, pl_psiu, pl_psiiuusu, pl_psut, pl_pur, pl_puit, pl_puuui, pl_pusiig, pl_pusiigu, pl_pusiiugu, pl_puuiig, pl_puur, pl_purru, pl_puiiui, pl_pugi, pl_puuig, pl_puttiiiu, pl_pubi, pl_puiig, pl_puiigi, pl_puigu, pl_puuusuug, pl_pusi, pl_pusiu, pl_putu, pl_puri, pl_pusub, pl_pust, pl_pub, pl_puuiu, pl_pugiiu, pl_pusu, pl_pu, pl_puuubu, pl_puiiu, pl_pugu, pl_puutuuiu, pl_puutu, pl_pui, pl_pussu, pl_puibu, pl_pus, pl_pug, pl_put, pl_pusigu, pl_pusig, pl_puui, pl_puiu, pl_pusiuiu, pl_pusiuibu, pl_pusiiu, pl_puuiiu, pl_b, pl_btiib, pl_bti, pl_bt, pl_tb, pl_g, pl_tg, pl_i, pl_tiu, pl_itiiub, pl_itsub, pl_itstttg, pl_itgiiut, pl_ti, pl_it, pl_s, pl_tsu, pl_tsb, pl_st, pl_tsig, pl_ts, pl_tsi, pl_tsiu, pl_tsiiuui, pl_tsiuui, pl_p, pl_tusiuiuit, pl_tuuiu, pl_tussu, pl_tuuuggu, pl_tuuggu, pl_tugiis, pl_tubu, pl_tuurru, pl_tuurrrrgr, pl_tuurrrrg, pl_tuuur, pl_tusg, pl_tuuuui, pl_tugiiu, pl_tuusb, pl_tugui, pl_tuuugi, pl_tuuuub, pl_tuttti, pl_tuuttti, pl_tuisi, pl_tugb, pl_tugs, pl_tugug, pl_turgs, pl_tubi, pl_tuttigsi, pl_tuiiiiui, pl_tuurb, pl_tuuiiiirrrrg, pl_tuuiiiirrrrgi, pl_tuiggu, pl_turrrb, pl_tuubbig, pl_pt, pl_tuuti, pl_tubbi, pl_tuti, pl_tutti, pl_tutui, pl_tutisi, pl_tuuri, pl_tuusit, pl_tuurbr, pl_tuugi, pl_tuit, pl_tusr, pl_tusrt, pl_tusi, pl_turt, pl_tuui, pl_tut, pl_tuur, pl_tuig, pl_tur, pl_tub, pl_tui, pl_tu, pl_tus, pl_tusb, pl_tuuut, pl_tug, pl_tutb, pl_tust, pl_tuub, pl_tuus, pl_tuug, pl_tuibu, pl_tuut, pl_tuuig, pl_tuguig, pl_tuubr, pl_tuuub, pl_tuuiuui, pl_tugu, pl_tuuir, pl_tugr, pl_tugi, pl_tuuui, pl_tuib, pl_tusu, pl_tuusi, pl_tugt, pl_tuis, pl_tubiiiu, pl_tuiu, pl_tusiis, pl_tuiiu, pl_tuuug, pl_tusuig, pl_tuuubr, pl_big, pl_bi, pl_igi, pl_gi, pl_bsu, pl_bsigb, pl_bur, pl_sg, pl_buug, pl_buut, pl_buigu, pl_buuti, pl_butib, pl_buiuig, pl_buuusuug, pl_buuit, pl_buti, pl_butti, pl_busi, pl_buusib, pl_busib, pl_buuuub, pl_buuub, pl_buttu, pl_busgu, pl_buurbr, pl_buui, pl_buus, pl_buuui, pl_bug, pl_bu, pl_bus, pl_bui, pl_busu, pl_but, pl_buib, pl_buiu, pl_bub, pl_buub, pl_pb, pl_gs, pl_buig, pl_buuig, pl_gussitu, pl_gurrsiu, pl_gus, pl_guut, pl_guuut, pl_guugbuut, pl_pgr, pl_pgu, pl_pgi, pl_gug, pl_pgbi, pl_gu, pl_pg, pl_gui, pl_iiit, pl_iit, pl_isigutttiiu, pl_isi, pl_isgt, pl_sig, pl_si, pl_is, pl_iur, pl_iugi, pl_iuisi, pl_iuuui, pl_iuuuui, pl_iuis, pl_iug, pl_pit, pl_piu, pl_ius, pl_iusi, pl_iu, pl_iuui, pl_pi, pl_iui, pl_iuisut, pl_bpt;
+#if GTK_CHECK_VERSION(3, 99, 0)
+Xen_wrap_1_arg(gxg_GTK_IS_CENTER_BOX_w, gxg_GTK_IS_CENTER_BOX)
 #endif
 
 static void define_functions(void)
 {
+#if HAVE_SCHEME
+  s7_pointer s_boolean, s_integer, s_real, s_string, s_any, s_pair, s_float, s_gtk_enum_t, s_pair_false;
+  s7_pointer pl_iur, pl_iugi, pl_iuisi, pl_iuuui, pl_iuuuui, pl_iuis, pl_iug, pl_pit, pl_piu, pl_ius, pl_iusi, pl_iu, pl_iuui, pl_pi, pl_iui, pl_iuisut, pl_t, pl_prrru, pl_tts, pl_tti, pl_dusr, pl_dusi, pl_dui, pl_du, pl_dus, pl_pr, pl_ssig, pl_ssi, pl_psgi, pl_suiig, pl_sug, pl_psiuub, pl_psgbiiiit, pl_psrrrb, pl_sui, pl_suuub, pl_psu, pl_psb, pl_su, pl_sus, pl_ps, pl_psg, pl_psi, pl_psugt, pl_psiu, pl_psiiuusu, pl_psut, pl_pur, pl_puuui, pl_pusiig, pl_pusiigu, pl_pusiiugu, pl_puuiig, pl_puur, pl_purru, pl_puiiui, pl_pugi, pl_puuig, pl_puttiiiu, pl_pubi, pl_puiig, pl_puiigi, pl_puigu, pl_puuusuug, pl_pusi, pl_pusiu, pl_putu, pl_puri, pl_pusub, pl_pust, pl_pub, pl_puuiu, pl_pugiiu, pl_pusu, pl_pu, pl_puuubu, pl_puiiu, pl_pugu, pl_puutuuiu, pl_puutu, pl_pui, pl_pussu, pl_puibu, pl_pus, pl_pug, pl_put, pl_pusigu, pl_pusig, pl_puui, pl_puiu, pl_pusiuiu, pl_pusiuibu, pl_pusiiu, pl_puuiiu, pl_b, pl_btiib, pl_bti, pl_bt, pl_tb, pl_g, pl_tg, pl_i, pl_tiu, pl_itiiub, pl_itsub, pl_itstttg, pl_itgiiut, pl_ti, pl_it, pl_s, pl_tsu, pl_tsb, pl_st, pl_tsig, pl_ts, pl_tsi, pl_tsiu, pl_tsiiuui, pl_tsiuui, pl_p, pl_tusiuiui, pl_tuuiu, pl_tussu, pl_tuuuggu, pl_tuuggu, pl_tugiis, pl_tubu, pl_tuurru, pl_tuurrrrgr, pl_tuurrrrg, pl_tuuur, pl_tusg, pl_tuuuui, pl_tugiiu, pl_tuusb, pl_tugui, pl_tuuugi, pl_tuuuub, pl_tuttti, pl_tuuttti, pl_tuisi, pl_tugb, pl_tugs, pl_tugug, pl_turgs, pl_tubi, pl_tuttigsi, pl_tuiiiiui, pl_tuurb, pl_tuuiiiirrrrg, pl_tuuiiiirrrrgi, pl_tuiggu, pl_turrrb, pl_tuubbig, pl_pt, pl_tuuti, pl_tubbi, pl_tuti, pl_tutti, pl_tutui, pl_tutisi, pl_tuuri, pl_tuusit, pl_tuurbr, pl_tuugi, pl_tuit, pl_tusr, pl_tusri, pl_tusi, pl_turi, pl_tuui, pl_tuur, pl_tuig, pl_tur, pl_tub, pl_tui, pl_tu, pl_tus, pl_tusb, pl_tut, pl_tuuut, pl_tug, pl_tutb, pl_tust, pl_tuub, pl_tuus, pl_tuug, pl_tuibu, pl_tuut, pl_tuuig, pl_tuguig, pl_tuubr, pl_tuuub, pl_tuuiuui, pl_tugu, pl_tuuir, pl_tugr, pl_tugi, pl_tuuui, pl_tuib, pl_tusu, pl_tuusi, pl_tugt, pl_tuis, pl_tubiiiu, pl_tuiu, pl_tusiis, pl_tuiiu, pl_tuuug, pl_tusuig, pl_tuuubr, pl_big, pl_bi, pl_bsu, pl_bsigb, pl_bur, pl_buug, pl_buigu, pl_buuti, pl_butib, pl_buiuig, pl_buuusuug, pl_buuit, pl_buti, pl_butti, pl_busi, pl_buusib, pl_busib, pl_buuuub, pl_buuub, pl_buttu, pl_busgu, pl_buurbr, pl_buui, pl_buus, pl_buuui, pl_bug, pl_bu, pl_bus, pl_busu, pl_but, pl_bui, pl_buib, pl_buiu, pl_bub, pl_buub, pl_pb, pl_buig, pl_buuig, pl_igi, pl_gi, pl_iiit, pl_iit, pl_sg, pl_gs, pl_gussitu, pl_gurrsiu, pl_gus, pl_guut, pl_guuut, pl_guugbuut, pl_pgr, pl_pgu, pl_pgi, pl_gug, pl_pgbi, pl_gu, pl_pg, pl_gui, pl_isigutttiiu, pl_isi, pl_isgt, pl_sig, pl_si, pl_is, pl_bpt;
+#endif
+
   xm_gc_table = Xen_make_vector(1, Xen_false);
   Xen_GC_protect(xm_gc_table);
   xm_protected_size = 512;
@@ -39629,16 +39650,32 @@ static void define_functions(void)
   s_gtk_enum_t = s7_make_symbol(s7, "gtk_enum_t?");
   s_any = s7_t(s7);
 
+  pl_iur = s7_make_circular_signature(s7, 2, 3, s_integer, s_pair_false, s_real);
+  pl_iugi = s7_make_circular_signature(s7, 3, 4, s_integer, s_pair_false, s_gtk_enum_t, s_integer);
+  pl_iuisi = s7_make_circular_signature(s7, 4, 5, s_integer, s_pair_false, s_integer, s_string, s_integer);
+  pl_iuuui = s7_make_circular_signature(s7, 4, 5, s_integer, s_pair_false, s_pair_false, s_pair_false, s_integer);
+  pl_iuuuui = s7_make_circular_signature(s7, 5, 6, s_integer, s_pair_false, s_pair_false, s_pair_false, s_pair_false, s_integer);
+  pl_iuis = s7_make_circular_signature(s7, 3, 4, s_integer, s_pair_false, s_integer, s_string);
+  pl_iug = s7_make_circular_signature(s7, 2, 3, s_integer, s_pair_false, s_gtk_enum_t);
+  pl_pit = s7_make_circular_signature(s7, 2, 3, s_pair, s_integer, s_any);
+  pl_piu = s7_make_circular_signature(s7, 2, 3, s_pair, s_integer, s_pair_false);
+  pl_ius = s7_make_circular_signature(s7, 2, 3, s_integer, s_pair_false, s_string);
+  pl_iusi = s7_make_circular_signature(s7, 3, 4, s_integer, s_pair_false, s_string, s_integer);
+  pl_iu = s7_make_circular_signature(s7, 1, 2, s_integer, s_pair_false);
+  pl_iuui = s7_make_circular_signature(s7, 3, 4, s_integer, s_pair_false, s_pair_false, s_integer);
+  pl_pi = s7_make_circular_signature(s7, 1, 2, s_pair, s_integer);
+  pl_iui = s7_make_circular_signature(s7, 2, 3, s_integer, s_pair_false, s_integer);
+  pl_iuisut = s7_make_circular_signature(s7, 5, 6, s_integer, s_pair_false, s_integer, s_string, s_pair_false, s_any);
+  pl_t = s7_make_circular_signature(s7, 0, 1, s_any);
   pl_prrru = s7_make_circular_signature(s7, 4, 5, s_pair, s_real, s_real, s_real, s_pair_false);
-  pl_dust = s7_make_circular_signature(s7, 3, 4, s_float, s_pair_false, s_string, s_any);
-  pl_dut = s7_make_circular_signature(s7, 2, 3, s_float, s_pair_false, s_any);
-  pl_du = s7_make_circular_signature(s7, 1, 2, s_float, s_pair_false);
+  pl_tts = s7_make_circular_signature(s7, 2, 3, s_any, s_any, s_string);
+  pl_tti = s7_make_circular_signature(s7, 2, 3, s_any, s_any, s_integer);
   pl_dusr = s7_make_circular_signature(s7, 3, 4, s_float, s_pair_false, s_string, s_real);
+  pl_dusi = s7_make_circular_signature(s7, 3, 4, s_float, s_pair_false, s_string, s_integer);
+  pl_dui = s7_make_circular_signature(s7, 2, 3, s_float, s_pair_false, s_integer);
+  pl_du = s7_make_circular_signature(s7, 1, 2, s_float, s_pair_false);
   pl_dus = s7_make_circular_signature(s7, 2, 3, s_float, s_pair_false, s_string);
   pl_pr = s7_make_circular_signature(s7, 1, 2, s_pair, s_real);
-  pl_t = s7_make_circular_signature(s7, 0, 1, s_any);
-  pl_tts = s7_make_circular_signature(s7, 2, 3, s_any, s_any, s_string);
-  pl_tti = s7_make_circular_signature(s7, 2, 3, s_any, s_any, s_integer);
   pl_ssig = s7_make_circular_signature(s7, 3, 4, s_string, s_string, s_integer, s_gtk_enum_t);
   pl_ssi = s7_make_circular_signature(s7, 2, 3, s_string, s_string, s_integer);
   pl_psgi = s7_make_circular_signature(s7, 3, 4, s_pair, s_string, s_gtk_enum_t, s_integer);
@@ -39661,7 +39698,6 @@ static void define_functions(void)
   pl_psiiuusu = s7_make_circular_signature(s7, 7, 8, s_pair, s_string, s_integer, s_integer, s_pair_false, s_pair_false, s_string, s_pair_false);
   pl_psut = s7_make_circular_signature(s7, 3, 4, s_pair, s_string, s_pair_false, s_any);
   pl_pur = s7_make_circular_signature(s7, 2, 3, s_pair, s_pair_false, s_real);
-  pl_puit = s7_make_circular_signature(s7, 3, 4, s_pair, s_pair_false, s_integer, s_any);
   pl_puuui = s7_make_circular_signature(s7, 4, 5, s_pair, s_pair_false, s_pair_false, s_pair_false, s_integer);
   pl_pusiig = s7_make_circular_signature(s7, 5, 6, s_pair, s_pair_false, s_string, s_integer, s_integer, s_gtk_enum_t);
   pl_pusiigu = s7_make_circular_signature(s7, 6, 7, s_pair, s_pair_false, s_string, s_integer, s_integer, s_gtk_enum_t, s_pair_false);
@@ -39734,7 +39770,7 @@ static void define_functions(void)
   pl_tsiiuui = s7_make_circular_signature(s7, 6, 7, s_any, s_string, s_integer, s_integer, s_pair_false, s_pair_false, s_integer);
   pl_tsiuui = s7_make_circular_signature(s7, 5, 6, s_any, s_string, s_integer, s_pair_false, s_pair_false, s_integer);
   pl_p = s7_make_circular_signature(s7, 0, 1, s_pair);
-  pl_tusiuiuit = s7_make_circular_signature(s7, 8, 9, s_any, s_pair_false, s_string, s_integer, s_pair_false, s_integer, s_pair_false, s_integer, s_any);
+  pl_tusiuiui = s7_make_circular_signature(s7, 7, 8, s_any, s_pair_false, s_string, s_integer, s_pair_false, s_integer, s_pair_false, s_integer);
   pl_tuuiu = s7_make_circular_signature(s7, 4, 5, s_any, s_pair_false, s_pair_false, s_integer, s_pair_false);
   pl_tussu = s7_make_circular_signature(s7, 4, 5, s_any, s_pair_false, s_string, s_string, s_pair_false);
   pl_tuuuggu = s7_make_circular_signature(s7, 6, 7, s_any, s_pair_false, s_pair_false, s_pair_false, s_gtk_enum_t, s_gtk_enum_t, s_pair_false);
@@ -39781,11 +39817,10 @@ static void define_functions(void)
   pl_tuugi = s7_make_circular_signature(s7, 4, 5, s_any, s_pair_false, s_pair_false, s_gtk_enum_t, s_integer);
   pl_tuit = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_integer, s_any);
   pl_tusr = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_string, s_real);
-  pl_tusrt = s7_make_circular_signature(s7, 4, 5, s_any, s_pair_false, s_string, s_real, s_any);
+  pl_tusri = s7_make_circular_signature(s7, 4, 5, s_any, s_pair_false, s_string, s_real, s_integer);
   pl_tusi = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_string, s_integer);
-  pl_turt = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_real, s_any);
+  pl_turi = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_real, s_integer);
   pl_tuui = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_pair_false, s_integer);
-  pl_tut = s7_make_circular_signature(s7, 2, 3, s_any, s_pair_false, s_any);
   pl_tuur = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_pair_false, s_real);
   pl_tuig = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_integer, s_gtk_enum_t);
   pl_tur = s7_make_circular_signature(s7, 2, 3, s_any, s_pair_false, s_real);
@@ -39794,6 +39829,7 @@ static void define_functions(void)
   pl_tu = s7_make_circular_signature(s7, 1, 2, s_any, s_pair_false);
   pl_tus = s7_make_circular_signature(s7, 2, 3, s_any, s_pair_false, s_string);
   pl_tusb = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_string, s_boolean);
+  pl_tut = s7_make_circular_signature(s7, 2, 3, s_any, s_pair_false, s_any);
   pl_tuuut = s7_make_circular_signature(s7, 4, 5, s_any, s_pair_false, s_pair_false, s_pair_false, s_any);
   pl_tug = s7_make_circular_signature(s7, 2, 3, s_any, s_pair_false, s_gtk_enum_t);
   pl_tutb = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_any, s_boolean);
@@ -39827,14 +39863,10 @@ static void define_functions(void)
   pl_tuuubr = s7_make_circular_signature(s7, 5, 6, s_any, s_pair_false, s_pair_false, s_pair_false, s_boolean, s_real);
   pl_big = s7_make_circular_signature(s7, 2, 3, s_boolean, s_integer, s_gtk_enum_t);
   pl_bi = s7_make_circular_signature(s7, 1, 2, s_boolean, s_integer);
-  pl_igi = s7_make_circular_signature(s7, 2, 3, s_integer, s_gtk_enum_t, s_integer);
-  pl_gi = s7_make_circular_signature(s7, 1, 2, s_gtk_enum_t, s_integer);
   pl_bsu = s7_make_circular_signature(s7, 2, 3, s_boolean, s_string, s_pair_false);
   pl_bsigb = s7_make_circular_signature(s7, 4, 5, s_boolean, s_string, s_integer, s_gtk_enum_t, s_boolean);
   pl_bur = s7_make_circular_signature(s7, 2, 3, s_boolean, s_pair_false, s_real);
-  pl_sg = s7_make_circular_signature(s7, 1, 2, s_string, s_gtk_enum_t);
   pl_buug = s7_make_circular_signature(s7, 3, 4, s_boolean, s_pair_false, s_pair_false, s_gtk_enum_t);
-  pl_buut = s7_make_circular_signature(s7, 3, 4, s_boolean, s_pair_false, s_pair_false, s_any);
   pl_buigu = s7_make_circular_signature(s7, 4, 5, s_boolean, s_pair_false, s_integer, s_gtk_enum_t, s_pair_false);
   pl_buuti = s7_make_circular_signature(s7, 4, 5, s_boolean, s_pair_false, s_pair_false, s_any, s_integer);
   pl_butib = s7_make_circular_signature(s7, 4, 5, s_boolean, s_pair_false, s_any, s_integer, s_boolean);
@@ -39857,17 +39889,22 @@ static void define_functions(void)
   pl_bug = s7_make_circular_signature(s7, 2, 3, s_boolean, s_pair_false, s_gtk_enum_t);
   pl_bu = s7_make_circular_signature(s7, 1, 2, s_boolean, s_pair_false);
   pl_bus = s7_make_circular_signature(s7, 2, 3, s_boolean, s_pair_false, s_string);
-  pl_bui = s7_make_circular_signature(s7, 2, 3, s_boolean, s_pair_false, s_integer);
   pl_busu = s7_make_circular_signature(s7, 3, 4, s_boolean, s_pair_false, s_string, s_pair_false);
   pl_but = s7_make_circular_signature(s7, 2, 3, s_boolean, s_pair_false, s_any);
+  pl_bui = s7_make_circular_signature(s7, 2, 3, s_boolean, s_pair_false, s_integer);
   pl_buib = s7_make_circular_signature(s7, 3, 4, s_boolean, s_pair_false, s_integer, s_boolean);
   pl_buiu = s7_make_circular_signature(s7, 3, 4, s_boolean, s_pair_false, s_integer, s_pair_false);
   pl_bub = s7_make_circular_signature(s7, 2, 3, s_boolean, s_pair_false, s_boolean);
   pl_buub = s7_make_circular_signature(s7, 3, 4, s_boolean, s_pair_false, s_pair_false, s_boolean);
   pl_pb = s7_make_circular_signature(s7, 1, 2, s_pair, s_boolean);
-  pl_gs = s7_make_circular_signature(s7, 1, 2, s_gtk_enum_t, s_string);
   pl_buig = s7_make_circular_signature(s7, 3, 4, s_boolean, s_pair_false, s_integer, s_gtk_enum_t);
   pl_buuig = s7_make_circular_signature(s7, 4, 5, s_boolean, s_pair_false, s_pair_false, s_integer, s_gtk_enum_t);
+  pl_igi = s7_make_circular_signature(s7, 2, 3, s_integer, s_gtk_enum_t, s_integer);
+  pl_gi = s7_make_circular_signature(s7, 1, 2, s_gtk_enum_t, s_integer);
+  pl_iiit = s7_make_circular_signature(s7, 3, 4, s_integer, s_integer, s_integer, s_any);
+  pl_iit = s7_make_circular_signature(s7, 2, 3, s_integer, s_integer, s_any);
+  pl_sg = s7_make_circular_signature(s7, 1, 2, s_string, s_gtk_enum_t);
+  pl_gs = s7_make_circular_signature(s7, 1, 2, s_gtk_enum_t, s_string);
   pl_gussitu = s7_make_circular_signature(s7, 6, 7, s_gtk_enum_t, s_pair_false, s_string, s_string, s_integer, s_any, s_pair_false);
   pl_gurrsiu = s7_make_circular_signature(s7, 6, 7, s_gtk_enum_t, s_pair_false, s_real, s_real, s_string, s_integer, s_pair_false);
   pl_gus = s7_make_circular_signature(s7, 2, 3, s_gtk_enum_t, s_pair_false, s_string);
@@ -39882,30 +39919,12 @@ static void define_functions(void)
   pl_gu = s7_make_circular_signature(s7, 1, 2, s_gtk_enum_t, s_pair_false);
   pl_pg = s7_make_circular_signature(s7, 1, 2, s_pair, s_gtk_enum_t);
   pl_gui = s7_make_circular_signature(s7, 2, 3, s_gtk_enum_t, s_pair_false, s_integer);
-  pl_iiit = s7_make_circular_signature(s7, 3, 4, s_integer, s_integer, s_integer, s_any);
-  pl_iit = s7_make_circular_signature(s7, 2, 3, s_integer, s_integer, s_any);
   pl_isigutttiiu = s7_make_circular_signature(s7, 10, 11, s_integer, s_string, s_integer, s_gtk_enum_t, s_pair_false, s_any, s_any, s_any, s_integer, s_integer, s_pair_false);
   pl_isi = s7_make_circular_signature(s7, 2, 3, s_integer, s_string, s_integer);
   pl_isgt = s7_make_circular_signature(s7, 3, 4, s_integer, s_string, s_gtk_enum_t, s_any);
   pl_sig = s7_make_circular_signature(s7, 2, 3, s_string, s_integer, s_gtk_enum_t);
   pl_si = s7_make_circular_signature(s7, 1, 2, s_string, s_integer);
   pl_is = s7_make_circular_signature(s7, 1, 2, s_integer, s_string);
-  pl_iur = s7_make_circular_signature(s7, 2, 3, s_integer, s_pair_false, s_real);
-  pl_iugi = s7_make_circular_signature(s7, 3, 4, s_integer, s_pair_false, s_gtk_enum_t, s_integer);
-  pl_iuisi = s7_make_circular_signature(s7, 4, 5, s_integer, s_pair_false, s_integer, s_string, s_integer);
-  pl_iuuui = s7_make_circular_signature(s7, 4, 5, s_integer, s_pair_false, s_pair_false, s_pair_false, s_integer);
-  pl_iuuuui = s7_make_circular_signature(s7, 5, 6, s_integer, s_pair_false, s_pair_false, s_pair_false, s_pair_false, s_integer);
-  pl_iuis = s7_make_circular_signature(s7, 3, 4, s_integer, s_pair_false, s_integer, s_string);
-  pl_iug = s7_make_circular_signature(s7, 2, 3, s_integer, s_pair_false, s_gtk_enum_t);
-  pl_pit = s7_make_circular_signature(s7, 2, 3, s_pair, s_integer, s_any);
-  pl_piu = s7_make_circular_signature(s7, 2, 3, s_pair, s_integer, s_pair_false);
-  pl_ius = s7_make_circular_signature(s7, 2, 3, s_integer, s_pair_false, s_string);
-  pl_iusi = s7_make_circular_signature(s7, 3, 4, s_integer, s_pair_false, s_string, s_integer);
-  pl_iu = s7_make_circular_signature(s7, 1, 2, s_integer, s_pair_false);
-  pl_iuui = s7_make_circular_signature(s7, 3, 4, s_integer, s_pair_false, s_pair_false, s_integer);
-  pl_pi = s7_make_circular_signature(s7, 1, 2, s_pair, s_integer);
-  pl_iui = s7_make_circular_signature(s7, 2, 3, s_integer, s_pair_false, s_integer);
-  pl_iuisut = s7_make_circular_signature(s7, 5, 6, s_integer, s_pair_false, s_integer, s_string, s_pair_false, s_any);
   pl_bpt = s7_make_signature(s7, 2, s_pair_false, s_any);
 #endif
 
@@ -40319,7 +40338,6 @@ static void define_functions(void)
   Xg_define_procedure(gtk_image_get_storage_type, gxg_gtk_image_get_storage_type_w, 1, 0, 0, H_gtk_image_get_storage_type, pl_gu);
   Xg_define_procedure(gtk_image_get_pixbuf, gxg_gtk_image_get_pixbuf_w, 1, 0, 0, H_gtk_image_get_pixbuf, pl_pu);
   Xg_define_procedure(gtk_image_get_animation, gxg_gtk_image_get_animation_w, 1, 0, 0, H_gtk_image_get_animation, pl_pu);
-  Xg_define_procedure(gtk_im_context_set_client_window, gxg_gtk_im_context_set_client_window_w, 2, 0, 0, H_gtk_im_context_set_client_window, pl_tu);
   Xg_define_procedure(gtk_im_context_get_preedit_string, gxg_gtk_im_context_get_preedit_string_w, 1, 3, 0, H_gtk_im_context_get_preedit_string, pl_pu);
   Xg_define_procedure(gtk_im_context_filter_keypress, gxg_gtk_im_context_filter_keypress_w, 2, 0, 0, H_gtk_im_context_filter_keypress, pl_bu);
   Xg_define_procedure(gtk_im_context_focus_in, gxg_gtk_im_context_focus_in_w, 1, 0, 0, H_gtk_im_context_focus_in, pl_tu);
@@ -41019,13 +41037,10 @@ static void define_functions(void)
   Xg_define_procedure(gtk_widget_child_focus, gxg_gtk_widget_child_focus_w, 2, 0, 0, H_gtk_widget_child_focus, pl_bug);
   Xg_define_procedure(gtk_widget_set_size_request, gxg_gtk_widget_set_size_request_w, 3, 0, 0, H_gtk_widget_set_size_request, pl_tui);
   Xg_define_procedure(gtk_widget_get_size_request, gxg_gtk_widget_get_size_request_w, 1, 2, 0, H_gtk_widget_get_size_request, pl_pu);
-  Xg_define_procedure(gtk_widget_set_events, gxg_gtk_widget_set_events_w, 2, 0, 0, H_gtk_widget_set_events, pl_tui);
-  Xg_define_procedure(gtk_widget_add_events, gxg_gtk_widget_add_events_w, 2, 0, 0, H_gtk_widget_add_events, pl_tui);
   Xg_define_procedure(gtk_widget_get_toplevel, gxg_gtk_widget_get_toplevel_w, 1, 0, 0, H_gtk_widget_get_toplevel, pl_pu);
   Xg_define_procedure(gtk_widget_get_ancestor, gxg_gtk_widget_get_ancestor_w, 2, 0, 0, H_gtk_widget_get_ancestor, pl_pui);
   Xg_define_procedure(gtk_widget_get_settings, gxg_gtk_widget_get_settings_w, 1, 0, 0, H_gtk_widget_get_settings, pl_pu);
   Xg_define_procedure(gtk_widget_get_accessible, gxg_gtk_widget_get_accessible_w, 1, 0, 0, H_gtk_widget_get_accessible, pl_pu);
-  Xg_define_procedure(gtk_widget_get_events, gxg_gtk_widget_get_events_w, 1, 0, 0, H_gtk_widget_get_events, pl_iu);
   Xg_define_procedure(gtk_widget_is_ancestor, gxg_gtk_widget_is_ancestor_w, 2, 0, 0, H_gtk_widget_is_ancestor, pl_bu);
   Xg_define_procedure(gtk_widget_translate_coordinates, gxg_gtk_widget_translate_coordinates_w, 4, 2, 0, H_gtk_widget_translate_coordinates, pl_puuiiu);
   Xg_define_procedure(gtk_widget_hide_on_delete, gxg_gtk_widget_hide_on_delete_w, 1, 0, 0, H_gtk_widget_hide_on_delete, pl_bu);
@@ -41524,8 +41539,6 @@ static void define_functions(void)
   Xg_define_procedure(gtk_tool_item_get_homogeneous, gxg_gtk_tool_item_get_homogeneous_w, 1, 0, 0, H_gtk_tool_item_get_homogeneous, pl_bu);
   Xg_define_procedure(gtk_tool_item_set_expand, gxg_gtk_tool_item_set_expand_w, 2, 0, 0, H_gtk_tool_item_set_expand, pl_tub);
   Xg_define_procedure(gtk_tool_item_get_expand, gxg_gtk_tool_item_get_expand_w, 1, 0, 0, H_gtk_tool_item_get_expand, pl_bu);
-  Xg_define_procedure(gtk_tool_item_set_use_drag_window, gxg_gtk_tool_item_set_use_drag_window_w, 2, 0, 0, H_gtk_tool_item_set_use_drag_window, pl_tub);
-  Xg_define_procedure(gtk_tool_item_get_use_drag_window, gxg_gtk_tool_item_get_use_drag_window_w, 1, 0, 0, H_gtk_tool_item_get_use_drag_window, pl_bu);
   Xg_define_procedure(gtk_tool_item_set_visible_horizontal, gxg_gtk_tool_item_set_visible_horizontal_w, 2, 0, 0, H_gtk_tool_item_set_visible_horizontal, pl_tub);
   Xg_define_procedure(gtk_tool_item_get_visible_horizontal, gxg_gtk_tool_item_get_visible_horizontal_w, 1, 0, 0, H_gtk_tool_item_get_visible_horizontal, pl_bu);
   Xg_define_procedure(gtk_tool_item_set_visible_vertical, gxg_gtk_tool_item_set_visible_vertical_w, 2, 0, 0, H_gtk_tool_item_set_visible_vertical, pl_tub);
@@ -41985,7 +41998,7 @@ static void define_functions(void)
   Xg_define_procedure(gtk_print_operation_set_n_pages, gxg_gtk_print_operation_set_n_pages_w, 2, 0, 0, H_gtk_print_operation_set_n_pages, pl_tui);
   Xg_define_procedure(gtk_print_operation_set_current_page, gxg_gtk_print_operation_set_current_page_w, 2, 0, 0, H_gtk_print_operation_set_current_page, pl_tui);
   Xg_define_procedure(gtk_print_operation_set_use_full_page, gxg_gtk_print_operation_set_use_full_page_w, 2, 0, 0, H_gtk_print_operation_set_use_full_page, pl_tub);
-  Xg_define_procedure(gtk_print_operation_set_unit, gxg_gtk_print_operation_set_unit_w, 2, 0, 0, H_gtk_print_operation_set_unit, pl_tut);
+  Xg_define_procedure(gtk_print_operation_set_unit, gxg_gtk_print_operation_set_unit_w, 2, 0, 0, H_gtk_print_operation_set_unit, pl_tui);
   Xg_define_procedure(gtk_print_operation_set_export_filename, gxg_gtk_print_operation_set_export_filename_w, 2, 0, 0, H_gtk_print_operation_set_export_filename, pl_tus);
   Xg_define_procedure(gtk_print_operation_set_track_print_status, gxg_gtk_print_operation_set_track_print_status_w, 2, 0, 0, H_gtk_print_operation_set_track_print_status, pl_tub);
   Xg_define_procedure(gtk_print_operation_set_show_progress, gxg_gtk_print_operation_set_show_progress_w, 2, 0, 0, H_gtk_print_operation_set_show_progress, pl_tub);
@@ -41999,9 +42012,6 @@ static void define_functions(void)
   Xg_define_procedure(gtk_print_operation_cancel, gxg_gtk_print_operation_cancel_w, 1, 0, 0, H_gtk_print_operation_cancel, pl_tu);
   Xg_define_procedure(gtk_print_run_page_setup_dialog, gxg_gtk_print_run_page_setup_dialog_w, 3, 0, 0, H_gtk_print_run_page_setup_dialog, pl_pu);
   Xg_define_procedure(gtk_print_run_page_setup_dialog_async, gxg_gtk_print_run_page_setup_dialog_async_w, 5, 0, 0, H_gtk_print_run_page_setup_dialog_async, pl_tuuut);
-  Xg_define_procedure(gtk_print_operation_preview_render_page, gxg_gtk_print_operation_preview_render_page_w, 2, 0, 0, H_gtk_print_operation_preview_render_page, pl_tui);
-  Xg_define_procedure(gtk_print_operation_preview_end_preview, gxg_gtk_print_operation_preview_end_preview_w, 1, 0, 0, H_gtk_print_operation_preview_end_preview, pl_tu);
-  Xg_define_procedure(gtk_print_operation_preview_is_selected, gxg_gtk_print_operation_preview_is_selected_w, 2, 0, 0, H_gtk_print_operation_preview_is_selected, pl_bui);
   Xg_define_procedure(gtk_print_settings_new, gxg_gtk_print_settings_new_w, 0, 0, 0, H_gtk_print_settings_new, pl_p);
   Xg_define_procedure(gtk_print_settings_copy, gxg_gtk_print_settings_copy_w, 1, 0, 0, H_gtk_print_settings_copy, pl_pu);
   Xg_define_procedure(gtk_print_settings_has_key, gxg_gtk_print_settings_has_key_w, 2, 0, 0, H_gtk_print_settings_has_key, pl_bus);
@@ -42014,31 +42024,31 @@ static void define_functions(void)
   Xg_define_procedure(gtk_print_settings_get_double, gxg_gtk_print_settings_get_double_w, 2, 0, 0, H_gtk_print_settings_get_double, pl_dus);
   Xg_define_procedure(gtk_print_settings_get_double_with_default, gxg_gtk_print_settings_get_double_with_default_w, 3, 0, 0, H_gtk_print_settings_get_double_with_default, pl_dusr);
   Xg_define_procedure(gtk_print_settings_set_double, gxg_gtk_print_settings_set_double_w, 3, 0, 0, H_gtk_print_settings_set_double, pl_tusr);
-  Xg_define_procedure(gtk_print_settings_get_length, gxg_gtk_print_settings_get_length_w, 3, 0, 0, H_gtk_print_settings_get_length, pl_dust);
-  Xg_define_procedure(gtk_print_settings_set_length, gxg_gtk_print_settings_set_length_w, 4, 0, 0, H_gtk_print_settings_set_length, pl_tusrt);
+  Xg_define_procedure(gtk_print_settings_get_length, gxg_gtk_print_settings_get_length_w, 3, 0, 0, H_gtk_print_settings_get_length, pl_dusi);
+  Xg_define_procedure(gtk_print_settings_set_length, gxg_gtk_print_settings_set_length_w, 4, 0, 0, H_gtk_print_settings_set_length, pl_tusri);
   Xg_define_procedure(gtk_print_settings_get_int, gxg_gtk_print_settings_get_int_w, 2, 0, 0, H_gtk_print_settings_get_int, pl_ius);
   Xg_define_procedure(gtk_print_settings_get_int_with_default, gxg_gtk_print_settings_get_int_with_default_w, 3, 0, 0, H_gtk_print_settings_get_int_with_default, pl_iusi);
   Xg_define_procedure(gtk_print_settings_set_int, gxg_gtk_print_settings_set_int_w, 3, 0, 0, H_gtk_print_settings_set_int, pl_tusi);
   Xg_define_procedure(gtk_print_settings_get_printer, gxg_gtk_print_settings_get_printer_w, 1, 0, 0, H_gtk_print_settings_get_printer, pl_su);
   Xg_define_procedure(gtk_print_settings_set_printer, gxg_gtk_print_settings_set_printer_w, 2, 0, 0, H_gtk_print_settings_set_printer, pl_tus);
-  Xg_define_procedure(gtk_print_settings_get_orientation, gxg_gtk_print_settings_get_orientation_w, 1, 0, 0, H_gtk_print_settings_get_orientation, pl_tu);
-  Xg_define_procedure(gtk_print_settings_set_orientation, gxg_gtk_print_settings_set_orientation_w, 2, 0, 0, H_gtk_print_settings_set_orientation, pl_tut);
+  Xg_define_procedure(gtk_print_settings_get_orientation, gxg_gtk_print_settings_get_orientation_w, 1, 0, 0, H_gtk_print_settings_get_orientation, pl_iu);
+  Xg_define_procedure(gtk_print_settings_set_orientation, gxg_gtk_print_settings_set_orientation_w, 2, 0, 0, H_gtk_print_settings_set_orientation, pl_tui);
   Xg_define_procedure(gtk_print_settings_get_paper_size, gxg_gtk_print_settings_get_paper_size_w, 1, 0, 0, H_gtk_print_settings_get_paper_size, pl_pu);
   Xg_define_procedure(gtk_print_settings_set_paper_size, gxg_gtk_print_settings_set_paper_size_w, 2, 0, 0, H_gtk_print_settings_set_paper_size, pl_tu);
-  Xg_define_procedure(gtk_print_settings_get_paper_width, gxg_gtk_print_settings_get_paper_width_w, 2, 0, 0, H_gtk_print_settings_get_paper_width, pl_dut);
-  Xg_define_procedure(gtk_print_settings_set_paper_width, gxg_gtk_print_settings_set_paper_width_w, 3, 0, 0, H_gtk_print_settings_set_paper_width, pl_turt);
-  Xg_define_procedure(gtk_print_settings_get_paper_height, gxg_gtk_print_settings_get_paper_height_w, 2, 0, 0, H_gtk_print_settings_get_paper_height, pl_dut);
-  Xg_define_procedure(gtk_print_settings_set_paper_height, gxg_gtk_print_settings_set_paper_height_w, 3, 0, 0, H_gtk_print_settings_set_paper_height, pl_turt);
+  Xg_define_procedure(gtk_print_settings_get_paper_width, gxg_gtk_print_settings_get_paper_width_w, 2, 0, 0, H_gtk_print_settings_get_paper_width, pl_dui);
+  Xg_define_procedure(gtk_print_settings_set_paper_width, gxg_gtk_print_settings_set_paper_width_w, 3, 0, 0, H_gtk_print_settings_set_paper_width, pl_turi);
+  Xg_define_procedure(gtk_print_settings_get_paper_height, gxg_gtk_print_settings_get_paper_height_w, 2, 0, 0, H_gtk_print_settings_get_paper_height, pl_dui);
+  Xg_define_procedure(gtk_print_settings_set_paper_height, gxg_gtk_print_settings_set_paper_height_w, 3, 0, 0, H_gtk_print_settings_set_paper_height, pl_turi);
   Xg_define_procedure(gtk_print_settings_get_use_color, gxg_gtk_print_settings_get_use_color_w, 1, 0, 0, H_gtk_print_settings_get_use_color, pl_bu);
   Xg_define_procedure(gtk_print_settings_set_use_color, gxg_gtk_print_settings_set_use_color_w, 2, 0, 0, H_gtk_print_settings_set_use_color, pl_tub);
   Xg_define_procedure(gtk_print_settings_get_collate, gxg_gtk_print_settings_get_collate_w, 1, 0, 0, H_gtk_print_settings_get_collate, pl_bu);
   Xg_define_procedure(gtk_print_settings_set_collate, gxg_gtk_print_settings_set_collate_w, 2, 0, 0, H_gtk_print_settings_set_collate, pl_tub);
   Xg_define_procedure(gtk_print_settings_get_reverse, gxg_gtk_print_settings_get_reverse_w, 1, 0, 0, H_gtk_print_settings_get_reverse, pl_bu);
   Xg_define_procedure(gtk_print_settings_set_reverse, gxg_gtk_print_settings_set_reverse_w, 2, 0, 0, H_gtk_print_settings_set_reverse, pl_tub);
-  Xg_define_procedure(gtk_print_settings_get_duplex, gxg_gtk_print_settings_get_duplex_w, 1, 0, 0, H_gtk_print_settings_get_duplex, pl_tu);
-  Xg_define_procedure(gtk_print_settings_set_duplex, gxg_gtk_print_settings_set_duplex_w, 2, 0, 0, H_gtk_print_settings_set_duplex, pl_tut);
-  Xg_define_procedure(gtk_print_settings_get_quality, gxg_gtk_print_settings_get_quality_w, 1, 0, 0, H_gtk_print_settings_get_quality, pl_tu);
-  Xg_define_procedure(gtk_print_settings_set_quality, gxg_gtk_print_settings_set_quality_w, 2, 0, 0, H_gtk_print_settings_set_quality, pl_tut);
+  Xg_define_procedure(gtk_print_settings_get_duplex, gxg_gtk_print_settings_get_duplex_w, 1, 0, 0, H_gtk_print_settings_get_duplex, pl_iu);
+  Xg_define_procedure(gtk_print_settings_set_duplex, gxg_gtk_print_settings_set_duplex_w, 2, 0, 0, H_gtk_print_settings_set_duplex, pl_tui);
+  Xg_define_procedure(gtk_print_settings_get_quality, gxg_gtk_print_settings_get_quality_w, 1, 0, 0, H_gtk_print_settings_get_quality, pl_iu);
+  Xg_define_procedure(gtk_print_settings_set_quality, gxg_gtk_print_settings_set_quality_w, 2, 0, 0, H_gtk_print_settings_set_quality, pl_tui);
   Xg_define_procedure(gtk_print_settings_get_n_copies, gxg_gtk_print_settings_get_n_copies_w, 1, 0, 0, H_gtk_print_settings_get_n_copies, pl_iu);
   Xg_define_procedure(gtk_print_settings_set_n_copies, gxg_gtk_print_settings_set_n_copies_w, 2, 0, 0, H_gtk_print_settings_set_n_copies, pl_tui);
   Xg_define_procedure(gtk_print_settings_get_number_up, gxg_gtk_print_settings_get_number_up_w, 1, 0, 0, H_gtk_print_settings_get_number_up, pl_iu);
@@ -42047,12 +42057,12 @@ static void define_functions(void)
   Xg_define_procedure(gtk_print_settings_set_resolution, gxg_gtk_print_settings_set_resolution_w, 2, 0, 0, H_gtk_print_settings_set_resolution, pl_tui);
   Xg_define_procedure(gtk_print_settings_get_scale, gxg_gtk_print_settings_get_scale_w, 1, 0, 0, H_gtk_print_settings_get_scale, pl_du);
   Xg_define_procedure(gtk_print_settings_set_scale, gxg_gtk_print_settings_set_scale_w, 2, 0, 0, H_gtk_print_settings_set_scale, pl_tur);
-  Xg_define_procedure(gtk_print_settings_get_print_pages, gxg_gtk_print_settings_get_print_pages_w, 1, 0, 0, H_gtk_print_settings_get_print_pages, pl_tu);
-  Xg_define_procedure(gtk_print_settings_set_print_pages, gxg_gtk_print_settings_set_print_pages_w, 2, 0, 0, H_gtk_print_settings_set_print_pages, pl_tut);
+  Xg_define_procedure(gtk_print_settings_get_print_pages, gxg_gtk_print_settings_get_print_pages_w, 1, 0, 0, H_gtk_print_settings_get_print_pages, pl_iu);
+  Xg_define_procedure(gtk_print_settings_set_print_pages, gxg_gtk_print_settings_set_print_pages_w, 2, 0, 0, H_gtk_print_settings_set_print_pages, pl_tui);
   Xg_define_procedure(gtk_print_settings_get_page_ranges, gxg_gtk_print_settings_get_page_ranges_w, 2, 0, 0, H_gtk_print_settings_get_page_ranges, pl_pu);
   Xg_define_procedure(gtk_print_settings_set_page_ranges, gxg_gtk_print_settings_set_page_ranges_w, 3, 0, 0, H_gtk_print_settings_set_page_ranges, pl_tuui);
-  Xg_define_procedure(gtk_print_settings_get_page_set, gxg_gtk_print_settings_get_page_set_w, 1, 0, 0, H_gtk_print_settings_get_page_set, pl_tu);
-  Xg_define_procedure(gtk_print_settings_set_page_set, gxg_gtk_print_settings_set_page_set_w, 2, 0, 0, H_gtk_print_settings_set_page_set, pl_tut);
+  Xg_define_procedure(gtk_print_settings_get_page_set, gxg_gtk_print_settings_get_page_set_w, 1, 0, 0, H_gtk_print_settings_get_page_set, pl_iu);
+  Xg_define_procedure(gtk_print_settings_set_page_set, gxg_gtk_print_settings_set_page_set_w, 2, 0, 0, H_gtk_print_settings_set_page_set, pl_tui);
   Xg_define_procedure(gtk_print_settings_get_default_source, gxg_gtk_print_settings_get_default_source_w, 1, 0, 0, H_gtk_print_settings_get_default_source, pl_su);
   Xg_define_procedure(gtk_print_settings_set_default_source, gxg_gtk_print_settings_set_default_source_w, 2, 0, 0, H_gtk_print_settings_set_default_source, pl_tus);
   Xg_define_procedure(gtk_print_settings_get_media_type, gxg_gtk_print_settings_get_media_type_w, 1, 0, 0, H_gtk_print_settings_get_media_type, pl_su);
@@ -42402,11 +42412,8 @@ static void define_functions(void)
   Xg_define_procedure(gtk_scrollbar_new, gxg_gtk_scrollbar_new_w, 2, 0, 0, H_gtk_scrollbar_new, pl_pgu);
   Xg_define_procedure(gtk_separator_new, gxg_gtk_separator_new_w, 1, 0, 0, H_gtk_separator_new, pl_pg);
   Xg_define_procedure(gtk_widget_device_is_shadowed, gxg_gtk_widget_device_is_shadowed_w, 2, 0, 0, H_gtk_widget_device_is_shadowed, pl_bu);
-  Xg_define_procedure(gtk_widget_set_device_events, gxg_gtk_widget_set_device_events_w, 3, 0, 0, H_gtk_widget_set_device_events, pl_tuug);
-  Xg_define_procedure(gtk_widget_add_device_events, gxg_gtk_widget_add_device_events_w, 3, 0, 0, H_gtk_widget_add_device_events, pl_tuug);
   Xg_define_procedure(gtk_widget_get_support_multidevice, gxg_gtk_widget_get_support_multidevice_w, 1, 0, 0, H_gtk_widget_get_support_multidevice, pl_bu);
   Xg_define_procedure(gtk_widget_set_support_multidevice, gxg_gtk_widget_set_support_multidevice_w, 2, 0, 0, H_gtk_widget_set_support_multidevice, pl_tub);
-  Xg_define_procedure(gtk_widget_get_device_events, gxg_gtk_widget_get_device_events_w, 2, 0, 0, H_gtk_widget_get_device_events, pl_gu);
   Xg_define_procedure(gtk_icon_view_get_item_row, gxg_gtk_icon_view_get_item_row_w, 2, 0, 0, H_gtk_icon_view_get_item_row, pl_iu);
   Xg_define_procedure(gtk_icon_view_get_item_column, gxg_gtk_icon_view_get_item_column_w, 2, 0, 0, H_gtk_icon_view_get_item_column, pl_iu);
   Xg_define_procedure(gtk_statusbar_remove_all, gxg_gtk_statusbar_remove_all_w, 2, 0, 0, H_gtk_statusbar_remove_all, pl_tui);
@@ -42975,9 +42982,9 @@ static void define_functions(void)
   Xg_define_procedure(gtk_widget_set_clip, gxg_gtk_widget_set_clip_w, 2, 0, 0, H_gtk_widget_set_clip, pl_tu);
   Xg_define_procedure(gtk_widget_get_clip, gxg_gtk_widget_get_clip_w, 2, 0, 0, H_gtk_widget_get_clip, pl_tu);
   Xg_define_procedure(gtk_gesture_get_device, gxg_gtk_gesture_get_device_w, 1, 0, 0, H_gtk_gesture_get_device, pl_pu);
-  Xg_define_procedure(gtk_gesture_set_state, gxg_gtk_gesture_set_state_w, 2, 0, 0, H_gtk_gesture_set_state, pl_but);
-  Xg_define_procedure(gtk_gesture_get_sequence_state, gxg_gtk_gesture_get_sequence_state_w, 2, 0, 0, H_gtk_gesture_get_sequence_state, pl_tu);
-  Xg_define_procedure(gtk_gesture_set_sequence_state, gxg_gtk_gesture_set_sequence_state_w, 3, 0, 0, H_gtk_gesture_set_sequence_state, pl_buut);
+  Xg_define_procedure(gtk_gesture_set_state, gxg_gtk_gesture_set_state_w, 2, 0, 0, H_gtk_gesture_set_state, pl_bui);
+  Xg_define_procedure(gtk_gesture_get_sequence_state, gxg_gtk_gesture_get_sequence_state_w, 2, 0, 0, H_gtk_gesture_get_sequence_state, pl_iu);
+  Xg_define_procedure(gtk_gesture_set_sequence_state, gxg_gtk_gesture_set_sequence_state_w, 3, 0, 0, H_gtk_gesture_set_sequence_state, pl_buui);
   Xg_define_procedure(gtk_gesture_get_sequences, gxg_gtk_gesture_get_sequences_w, 1, 0, 0, H_gtk_gesture_get_sequences, pl_pu);
   Xg_define_procedure(gtk_gesture_get_last_updated_sequence, gxg_gtk_gesture_get_last_updated_sequence_w, 1, 0, 0, H_gtk_gesture_get_last_updated_sequence, pl_pu);
   Xg_define_procedure(gtk_gesture_handles_sequence, gxg_gtk_gesture_handles_sequence_w, 2, 0, 0, H_gtk_gesture_handles_sequence, pl_bu);
@@ -42987,8 +42994,6 @@ static void define_functions(void)
   Xg_define_procedure(gtk_gesture_get_bounding_box_center, gxg_gtk_gesture_get_bounding_box_center_w, 1, 2, 0, H_gtk_gesture_get_bounding_box_center, pl_pu);
   Xg_define_procedure(gtk_gesture_is_active, gxg_gtk_gesture_is_active_w, 1, 0, 0, H_gtk_gesture_is_active, pl_bu);
   Xg_define_procedure(gtk_gesture_is_recognized, gxg_gtk_gesture_is_recognized_w, 1, 0, 0, H_gtk_gesture_is_recognized, pl_bu);
-  Xg_define_procedure(gtk_gesture_get_window, gxg_gtk_gesture_get_window_w, 1, 0, 0, H_gtk_gesture_get_window, pl_pu);
-  Xg_define_procedure(gtk_gesture_set_window, gxg_gtk_gesture_set_window_w, 2, 0, 0, H_gtk_gesture_set_window, pl_tu);
   Xg_define_procedure(gtk_gesture_group, gxg_gtk_gesture_group_w, 2, 0, 0, H_gtk_gesture_group, pl_tu);
   Xg_define_procedure(gtk_gesture_ungroup, gxg_gtk_gesture_ungroup_w, 1, 0, 0, H_gtk_gesture_ungroup, pl_tu);
   Xg_define_procedure(gtk_gesture_get_group, gxg_gtk_gesture_get_group_w, 1, 0, 0, H_gtk_gesture_get_group, pl_pu);
@@ -43020,8 +43025,8 @@ static void define_functions(void)
   Xg_define_procedure(gtk_event_controller_get_widget, gxg_gtk_event_controller_get_widget_w, 1, 0, 0, H_gtk_event_controller_get_widget, pl_pu);
   Xg_define_procedure(gtk_event_controller_handle_event, gxg_gtk_event_controller_handle_event_w, 2, 0, 0, H_gtk_event_controller_handle_event, pl_bu);
   Xg_define_procedure(gtk_event_controller_reset, gxg_gtk_event_controller_reset_w, 1, 0, 0, H_gtk_event_controller_reset, pl_tu);
-  Xg_define_procedure(gtk_event_controller_get_propagation_phase, gxg_gtk_event_controller_get_propagation_phase_w, 1, 0, 0, H_gtk_event_controller_get_propagation_phase, pl_tu);
-  Xg_define_procedure(gtk_event_controller_set_propagation_phase, gxg_gtk_event_controller_set_propagation_phase_w, 2, 0, 0, H_gtk_event_controller_set_propagation_phase, pl_tut);
+  Xg_define_procedure(gtk_event_controller_get_propagation_phase, gxg_gtk_event_controller_get_propagation_phase_w, 1, 0, 0, H_gtk_event_controller_get_propagation_phase, pl_gu);
+  Xg_define_procedure(gtk_event_controller_set_propagation_phase, gxg_gtk_event_controller_set_propagation_phase_w, 2, 0, 0, H_gtk_event_controller_set_propagation_phase, pl_tug);
   Xg_define_procedure(gtk_icon_theme_add_resource_path, gxg_gtk_icon_theme_add_resource_path_w, 2, 0, 0, H_gtk_icon_theme_add_resource_path, pl_tus);
   Xg_define_procedure(gtk_list_box_row_set_activatable, gxg_gtk_list_box_row_set_activatable_w, 2, 0, 0, H_gtk_list_box_row_set_activatable, pl_tub);
   Xg_define_procedure(gtk_list_box_row_get_activatable, gxg_gtk_list_box_row_get_activatable_w, 1, 0, 0, H_gtk_list_box_row_get_activatable, pl_bu);
@@ -43250,8 +43255,8 @@ static void define_functions(void)
   Xg_define_procedure(gdk_window_new_toplevel, gxg_gdk_window_new_toplevel_w, 4, 0, 0, H_gdk_window_new_toplevel, pl_pui);
   Xg_define_procedure(gdk_window_new_popup, gxg_gdk_window_new_popup_w, 3, 0, 0, H_gdk_window_new_popup, pl_puiu);
   Xg_define_procedure(gdk_window_new_temp, gxg_gdk_window_new_temp_w, 1, 0, 0, H_gdk_window_new_temp, pl_pu);
-  Xg_define_procedure(gdk_window_new_child, gxg_gdk_window_new_child_w, 3, 0, 0, H_gdk_window_new_child, pl_puit);
-  Xg_define_procedure(gdk_window_new_input, gxg_gdk_window_new_input_w, 3, 0, 0, H_gdk_window_new_input, pl_puit);
+  Xg_define_procedure(gdk_window_new_child, gxg_gdk_window_new_child_w, 3, 0, 0, H_gdk_window_new_child, pl_puiu);
+  Xg_define_procedure(gdk_window_new_input, gxg_gdk_window_new_input_w, 3, 0, 0, H_gdk_window_new_input, pl_puiu);
   Xg_define_procedure(gtk_button_set_icon_name, gxg_gtk_button_set_icon_name_w, 2, 0, 0, H_gtk_button_set_icon_name, pl_tus);
   Xg_define_procedure(gtk_button_get_icon_name, gxg_gtk_button_get_icon_name_w, 1, 0, 0, H_gtk_button_get_icon_name, pl_su);
   Xg_define_procedure(gtk_drawing_area_set_content_width, gxg_gtk_drawing_area_set_content_width_w, 2, 0, 0, H_gtk_drawing_area_set_content_width, pl_tui);
@@ -43285,6 +43290,20 @@ static void define_functions(void)
   Xg_define_procedure(gtk_box_pack_end, gxg_gtk_box_pack_end_w, 2, 0, 0, H_gtk_box_pack_end, pl_tu);
   Xg_define_procedure(gtk_widget_insert_after, gxg_gtk_widget_insert_after_w, 3, 0, 0, H_gtk_widget_insert_after, pl_tu);
   Xg_define_procedure(gtk_widget_insert_before, gxg_gtk_widget_insert_before_w, 3, 0, 0, H_gtk_widget_insert_before, pl_tu);
+  Xg_define_procedure(gtk_center_box_new, gxg_gtk_center_box_new_w, 0, 0, 0, H_gtk_center_box_new, pl_p);
+  Xg_define_procedure(gtk_center_box_set_start_widget, gxg_gtk_center_box_set_start_widget_w, 2, 0, 0, H_gtk_center_box_set_start_widget, pl_tu);
+  Xg_define_procedure(gtk_center_box_set_center_widget, gxg_gtk_center_box_set_center_widget_w, 2, 0, 0, H_gtk_center_box_set_center_widget, pl_tu);
+  Xg_define_procedure(gtk_center_box_set_end_widget, gxg_gtk_center_box_set_end_widget_w, 2, 0, 0, H_gtk_center_box_set_end_widget, pl_tu);
+  Xg_define_procedure(gtk_center_box_get_start_widget, gxg_gtk_center_box_get_start_widget_w, 1, 0, 0, H_gtk_center_box_get_start_widget, pl_pu);
+  Xg_define_procedure(gtk_center_box_get_center_widget, gxg_gtk_center_box_get_center_widget_w, 1, 0, 0, H_gtk_center_box_get_center_widget, pl_pu);
+  Xg_define_procedure(gtk_center_box_get_end_widget, gxg_gtk_center_box_get_end_widget_w, 1, 0, 0, H_gtk_center_box_get_end_widget, pl_pu);
+  Xg_define_procedure(gtk_center_box_set_baseline_position, gxg_gtk_center_box_set_baseline_position_w, 2, 0, 0, H_gtk_center_box_set_baseline_position, pl_tug);
+  Xg_define_procedure(gtk_center_box_get_baseline_position, gxg_gtk_center_box_get_baseline_position_w, 1, 0, 0, H_gtk_center_box_get_baseline_position, pl_gu);
+  Xg_define_procedure(gdk_event_set_coords, gxg_gdk_event_set_coords_w, 3, 0, 0, H_gdk_event_set_coords, pl_tur);
+  Xg_define_procedure(gdk_event_set_user_data, gxg_gdk_event_set_user_data_w, 2, 0, 0, H_gdk_event_set_user_data, pl_tu);
+  Xg_define_procedure(gdk_event_get_user_data, gxg_gdk_event_get_user_data_w, 1, 0, 0, H_gdk_event_get_user_data, pl_pu);
+  Xg_define_procedure(gdk_rectangle_contains_point, gxg_gdk_rectangle_contains_point_w, 3, 0, 0, H_gdk_rectangle_contains_point, pl_bui);
+  Xg_define_procedure(gtk_get_event_target, gxg_gtk_get_event_target_w, 1, 0, 0, H_gtk_get_event_target, pl_pu);
 #endif
 
   Xg_define_procedure(cairo_create, gxg_cairo_create_w, 1, 0, 0, H_cairo_create, pl_pu);
@@ -43499,7 +43518,7 @@ static void define_functions(void)
   Xg_define_procedure(cairo_glyph_free, gxg_cairo_glyph_free_w, 1, 0, 0, H_cairo_glyph_free, pl_tu);
   Xg_define_procedure(cairo_text_cluster_allocate, gxg_cairo_text_cluster_allocate_w, 1, 0, 0, H_cairo_text_cluster_allocate, pl_pi);
   Xg_define_procedure(cairo_text_cluster_free, gxg_cairo_text_cluster_free_w, 1, 0, 0, H_cairo_text_cluster_free, pl_tu);
-  Xg_define_procedure(cairo_show_text_glyphs, gxg_cairo_show_text_glyphs_w, 0, 0, 1, H_cairo_show_text_glyphs, pl_tusiuiuit);
+  Xg_define_procedure(cairo_show_text_glyphs, gxg_cairo_show_text_glyphs_w, 0, 0, 1, H_cairo_show_text_glyphs, pl_tusiuiui);
   Xg_define_procedure(cairo_scaled_font_text_to_glyphs, gxg_cairo_scaled_font_text_to_glyphs_w, 0, 0, 1, H_cairo_scaled_font_text_to_glyphs, pl_gurrsiu);
   Xg_define_procedure(cairo_scaled_font_get_scale_matrix, gxg_cairo_scaled_font_get_scale_matrix_w, 2, 0, 0, H_cairo_scaled_font_get_scale_matrix, pl_tu);
   Xg_define_procedure(cairo_toy_font_face_create, gxg_cairo_toy_font_face_create_w, 3, 0, 0, H_cairo_toy_font_face_create, pl_psg);
@@ -43697,7 +43716,6 @@ static void define_functions(void)
   Xg_define_procedure(GTK_RECENT_MANAGER, gxg_GTK_RECENT_MANAGER_w, 1, 0, 0, "(GTK_RECENT_MANAGER obj) casts obj to GTK_RECENT_MANAGER", pl_bpt);
   Xg_define_procedure(GTK_PRINT_CONTEXT, gxg_GTK_PRINT_CONTEXT_w, 1, 0, 0, "(GTK_PRINT_CONTEXT obj) casts obj to GTK_PRINT_CONTEXT", pl_bpt);
   Xg_define_procedure(GTK_PRINT_OPERATION, gxg_GTK_PRINT_OPERATION_w, 1, 0, 0, "(GTK_PRINT_OPERATION obj) casts obj to GTK_PRINT_OPERATION", pl_bpt);
-  Xg_define_procedure(GTK_PRINT_OPERATION_PREVIEW, gxg_GTK_PRINT_OPERATION_PREVIEW_w, 1, 0, 0, "(GTK_PRINT_OPERATION_PREVIEW obj) casts obj to GTK_PRINT_OPERATION_PREVIEW", pl_bpt);
   Xg_define_procedure(GTK_PRINT_SETTINGS, gxg_GTK_PRINT_SETTINGS_w, 1, 0, 0, "(GTK_PRINT_SETTINGS obj) casts obj to GTK_PRINT_SETTINGS", pl_bpt);
   Xg_define_procedure(GTK_TOOLTIP, gxg_GTK_TOOLTIP_w, 1, 0, 0, "(GTK_TOOLTIP obj) casts obj to GTK_TOOLTIP", pl_bpt);
 #if GTK_CHECK_VERSION(2, 18, 0)
@@ -43793,6 +43811,10 @@ static void define_functions(void)
   Xg_define_procedure(GTK_SHORTCUT_LABEL, gxg_GTK_SHORTCUT_LABEL_w, 1, 0, 0, "(GTK_SHORTCUT_LABEL obj) casts obj to GTK_SHORTCUT_LABEL", pl_bpt);
 #endif
 
+#if GTK_CHECK_VERSION(3, 99, 0)
+  Xg_define_procedure(GTK_CENTER_BOX, gxg_GTK_CENTER_BOX_w, 1, 0, 0, "(GTK_CENTER_BOX obj) casts obj to GTK_CENTER_BOX", pl_bpt);
+#endif
+
   Xg_define_procedure(c-array->list, c_array_to_xen_list_w, 2, 0, 0, NULL, NULL);
   Xg_define_procedure(list->c-array, xen_list_to_c_array_w, 2, 0, 0, NULL, NULL);
   Xg_define_procedure(make-target-entry, gxg_make_target_entry_w, 1, 0, 0, H_make_target_entry, NULL);
@@ -43806,408 +43828,227 @@ static void define_functions(void)
   Xg_define_procedure(gtk_init, gxg_gtk_init_w, 0, 2, 0, H_gtk_init, NULL);
   Xg_define_procedure(gtk_init_check, gxg_gtk_init_check_w, 0, 2, 0, H_gtk_init_check, NULL);
 #endif
-  Xg_define_procedure(GDK_IS_DRAG_CONTEXT, gxg_GDK_IS_DRAG_CONTEXT_w, 1, 0, 0,
-                      "(GDK_IS_DRAG_CONTEXT obj): " PROC_TRUE " if obj is a GDK_IS_DRAG_CONTEXT", pl_bt);
-  Xg_define_procedure(GDK_IS_DEVICE, gxg_GDK_IS_DEVICE_w, 1, 0, 0,
-                      "(GDK_IS_DEVICE obj): " PROC_TRUE " if obj is a GDK_IS_DEVICE", pl_bt);
-  Xg_define_procedure(GDK_IS_KEYMAP, gxg_GDK_IS_KEYMAP_w, 1, 0, 0,
-                      "(GDK_IS_KEYMAP obj): " PROC_TRUE " if obj is a GDK_IS_KEYMAP", pl_bt);
-  Xg_define_procedure(GDK_IS_WINDOW, gxg_GDK_IS_WINDOW_w, 1, 0, 0,
-                      "(GDK_IS_WINDOW obj): " PROC_TRUE " if obj is a GDK_IS_WINDOW", pl_bt);
-  Xg_define_procedure(GDK_IS_PIXBUF, gxg_GDK_IS_PIXBUF_w, 1, 0, 0,
-                      "(GDK_IS_PIXBUF obj): " PROC_TRUE " if obj is a GDK_IS_PIXBUF", pl_bt);
-  Xg_define_procedure(GDK_IS_PIXBUF_ANIMATION, gxg_GDK_IS_PIXBUF_ANIMATION_w, 1, 0, 0,
-                      "(GDK_IS_PIXBUF_ANIMATION obj): " PROC_TRUE " if obj is a GDK_IS_PIXBUF_ANIMATION", pl_bt);
-  Xg_define_procedure(GDK_IS_PIXBUF_ANIMATION_ITER, gxg_GDK_IS_PIXBUF_ANIMATION_ITER_w, 1, 0, 0,
-                      "(GDK_IS_PIXBUF_ANIMATION_ITER obj): " PROC_TRUE " if obj is a GDK_IS_PIXBUF_ANIMATION_ITER", pl_bt);
-  Xg_define_procedure(GTK_IS_ACCEL_GROUP, gxg_GTK_IS_ACCEL_GROUP_w, 1, 0, 0,
-                      "(GTK_IS_ACCEL_GROUP obj): " PROC_TRUE " if obj is a GTK_IS_ACCEL_GROUP", pl_bt);
-  Xg_define_procedure(GTK_IS_ACCEL_LABEL, gxg_GTK_IS_ACCEL_LABEL_w, 1, 0, 0,
-                      "(GTK_IS_ACCEL_LABEL obj): " PROC_TRUE " if obj is a GTK_IS_ACCEL_LABEL", pl_bt);
-  Xg_define_procedure(GTK_IS_ACCESSIBLE, gxg_GTK_IS_ACCESSIBLE_w, 1, 0, 0,
-                      "(GTK_IS_ACCESSIBLE obj): " PROC_TRUE " if obj is a GTK_IS_ACCESSIBLE", pl_bt);
-  Xg_define_procedure(GTK_IS_ADJUSTMENT, gxg_GTK_IS_ADJUSTMENT_w, 1, 0, 0,
-                      "(GTK_IS_ADJUSTMENT obj): " PROC_TRUE " if obj is a GTK_IS_ADJUSTMENT", pl_bt);
-  Xg_define_procedure(GTK_IS_ASPECT_FRAME, gxg_GTK_IS_ASPECT_FRAME_w, 1, 0, 0,
-                      "(GTK_IS_ASPECT_FRAME obj): " PROC_TRUE " if obj is a GTK_IS_ASPECT_FRAME", pl_bt);
-  Xg_define_procedure(GTK_IS_BUTTON_BOX, gxg_GTK_IS_BUTTON_BOX_w, 1, 0, 0,
-                      "(GTK_IS_BUTTON_BOX obj): " PROC_TRUE " if obj is a GTK_IS_BUTTON_BOX", pl_bt);
-  Xg_define_procedure(GTK_IS_BIN, gxg_GTK_IS_BIN_w, 1, 0, 0,
-                      "(GTK_IS_BIN obj): " PROC_TRUE " if obj is a GTK_IS_BIN", pl_bt);
-  Xg_define_procedure(GTK_IS_BOX, gxg_GTK_IS_BOX_w, 1, 0, 0,
-                      "(GTK_IS_BOX obj): " PROC_TRUE " if obj is a GTK_IS_BOX", pl_bt);
-  Xg_define_procedure(GTK_IS_BUTTON, gxg_GTK_IS_BUTTON_w, 1, 0, 0,
-                      "(GTK_IS_BUTTON obj): " PROC_TRUE " if obj is a GTK_IS_BUTTON", pl_bt);
-  Xg_define_procedure(GTK_IS_CALENDAR, gxg_GTK_IS_CALENDAR_w, 1, 0, 0,
-                      "(GTK_IS_CALENDAR obj): " PROC_TRUE " if obj is a GTK_IS_CALENDAR", pl_bt);
-  Xg_define_procedure(GTK_IS_CELL_EDITABLE, gxg_GTK_IS_CELL_EDITABLE_w, 1, 0, 0,
-                      "(GTK_IS_CELL_EDITABLE obj): " PROC_TRUE " if obj is a GTK_IS_CELL_EDITABLE", pl_bt);
-  Xg_define_procedure(GTK_IS_CELL_RENDERER, gxg_GTK_IS_CELL_RENDERER_w, 1, 0, 0,
-                      "(GTK_IS_CELL_RENDERER obj): " PROC_TRUE " if obj is a GTK_IS_CELL_RENDERER", pl_bt);
-  Xg_define_procedure(GTK_IS_CELL_RENDERER_PIXBUF, gxg_GTK_IS_CELL_RENDERER_PIXBUF_w, 1, 0, 0,
-                      "(GTK_IS_CELL_RENDERER_PIXBUF obj): " PROC_TRUE " if obj is a GTK_IS_CELL_RENDERER_PIXBUF", pl_bt);
-  Xg_define_procedure(GTK_IS_CELL_RENDERER_TEXT, gxg_GTK_IS_CELL_RENDERER_TEXT_w, 1, 0, 0,
-                      "(GTK_IS_CELL_RENDERER_TEXT obj): " PROC_TRUE " if obj is a GTK_IS_CELL_RENDERER_TEXT", pl_bt);
-  Xg_define_procedure(GTK_IS_CELL_RENDERER_TOGGLE, gxg_GTK_IS_CELL_RENDERER_TOGGLE_w, 1, 0, 0,
-                      "(GTK_IS_CELL_RENDERER_TOGGLE obj): " PROC_TRUE " if obj is a GTK_IS_CELL_RENDERER_TOGGLE", pl_bt);
-  Xg_define_procedure(GTK_IS_CHECK_BUTTON, gxg_GTK_IS_CHECK_BUTTON_w, 1, 0, 0,
-                      "(GTK_IS_CHECK_BUTTON obj): " PROC_TRUE " if obj is a GTK_IS_CHECK_BUTTON", pl_bt);
-  Xg_define_procedure(GTK_IS_CHECK_MENU_ITEM, gxg_GTK_IS_CHECK_MENU_ITEM_w, 1, 0, 0,
-                      "(GTK_IS_CHECK_MENU_ITEM obj): " PROC_TRUE " if obj is a GTK_IS_CHECK_MENU_ITEM", pl_bt);
-  Xg_define_procedure(GTK_IS_CONTAINER, gxg_GTK_IS_CONTAINER_w, 1, 0, 0,
-                      "(GTK_IS_CONTAINER obj): " PROC_TRUE " if obj is a GTK_IS_CONTAINER", pl_bt);
-  Xg_define_procedure(GTK_IS_DIALOG, gxg_GTK_IS_DIALOG_w, 1, 0, 0,
-                      "(GTK_IS_DIALOG obj): " PROC_TRUE " if obj is a GTK_IS_DIALOG", pl_bt);
-  Xg_define_procedure(GTK_IS_DRAWING_AREA, gxg_GTK_IS_DRAWING_AREA_w, 1, 0, 0,
-                      "(GTK_IS_DRAWING_AREA obj): " PROC_TRUE " if obj is a GTK_IS_DRAWING_AREA", pl_bt);
-  Xg_define_procedure(GTK_IS_EDITABLE, gxg_GTK_IS_EDITABLE_w, 1, 0, 0,
-                      "(GTK_IS_EDITABLE obj): " PROC_TRUE " if obj is a GTK_IS_EDITABLE", pl_bt);
-  Xg_define_procedure(GTK_IS_ENTRY, gxg_GTK_IS_ENTRY_w, 1, 0, 0,
-                      "(GTK_IS_ENTRY obj): " PROC_TRUE " if obj is a GTK_IS_ENTRY", pl_bt);
-  Xg_define_procedure(GTK_IS_EVENT_BOX, gxg_GTK_IS_EVENT_BOX_w, 1, 0, 0,
-                      "(GTK_IS_EVENT_BOX obj): " PROC_TRUE " if obj is a GTK_IS_EVENT_BOX", pl_bt);
-  Xg_define_procedure(GTK_IS_FIXED, gxg_GTK_IS_FIXED_w, 1, 0, 0,
-                      "(GTK_IS_FIXED obj): " PROC_TRUE " if obj is a GTK_IS_FIXED", pl_bt);
-  Xg_define_procedure(GTK_IS_FRAME, gxg_GTK_IS_FRAME_w, 1, 0, 0,
-                      "(GTK_IS_FRAME obj): " PROC_TRUE " if obj is a GTK_IS_FRAME", pl_bt);
-  Xg_define_procedure(GTK_IS_IMAGE, gxg_GTK_IS_IMAGE_w, 1, 0, 0,
-                      "(GTK_IS_IMAGE obj): " PROC_TRUE " if obj is a GTK_IS_IMAGE", pl_bt);
-  Xg_define_procedure(GTK_IS_IM_CONTEXT, gxg_GTK_IS_IM_CONTEXT_w, 1, 0, 0,
-                      "(GTK_IS_IM_CONTEXT obj): " PROC_TRUE " if obj is a GTK_IS_IM_CONTEXT", pl_bt);
-  Xg_define_procedure(GTK_IS_IM_CONTEXT_SIMPLE, gxg_GTK_IS_IM_CONTEXT_SIMPLE_w, 1, 0, 0,
-                      "(GTK_IS_IM_CONTEXT_SIMPLE obj): " PROC_TRUE " if obj is a GTK_IS_IM_CONTEXT_SIMPLE", pl_bt);
-  Xg_define_procedure(GTK_IS_INVISIBLE, gxg_GTK_IS_INVISIBLE_w, 1, 0, 0,
-                      "(GTK_IS_INVISIBLE obj): " PROC_TRUE " if obj is a GTK_IS_INVISIBLE", pl_bt);
-  Xg_define_procedure(GTK_IS_LABEL, gxg_GTK_IS_LABEL_w, 1, 0, 0,
-                      "(GTK_IS_LABEL obj): " PROC_TRUE " if obj is a GTK_IS_LABEL", pl_bt);
-  Xg_define_procedure(GTK_IS_LAYOUT, gxg_GTK_IS_LAYOUT_w, 1, 0, 0,
-                      "(GTK_IS_LAYOUT obj): " PROC_TRUE " if obj is a GTK_IS_LAYOUT", pl_bt);
-  Xg_define_procedure(GTK_IS_LIST_STORE, gxg_GTK_IS_LIST_STORE_w, 1, 0, 0,
-                      "(GTK_IS_LIST_STORE obj): " PROC_TRUE " if obj is a GTK_IS_LIST_STORE", pl_bt);
-  Xg_define_procedure(GTK_IS_MENU_BAR, gxg_GTK_IS_MENU_BAR_w, 1, 0, 0,
-                      "(GTK_IS_MENU_BAR obj): " PROC_TRUE " if obj is a GTK_IS_MENU_BAR", pl_bt);
-  Xg_define_procedure(GTK_IS_MENU, gxg_GTK_IS_MENU_w, 1, 0, 0,
-                      "(GTK_IS_MENU obj): " PROC_TRUE " if obj is a GTK_IS_MENU", pl_bt);
-  Xg_define_procedure(GTK_IS_MENU_ITEM, gxg_GTK_IS_MENU_ITEM_w, 1, 0, 0,
-                      "(GTK_IS_MENU_ITEM obj): " PROC_TRUE " if obj is a GTK_IS_MENU_ITEM", pl_bt);
-  Xg_define_procedure(GTK_IS_MENU_SHELL, gxg_GTK_IS_MENU_SHELL_w, 1, 0, 0,
-                      "(GTK_IS_MENU_SHELL obj): " PROC_TRUE " if obj is a GTK_IS_MENU_SHELL", pl_bt);
-  Xg_define_procedure(GTK_IS_NOTEBOOK, gxg_GTK_IS_NOTEBOOK_w, 1, 0, 0,
-                      "(GTK_IS_NOTEBOOK obj): " PROC_TRUE " if obj is a GTK_IS_NOTEBOOK", pl_bt);
-  Xg_define_procedure(GTK_IS_PANED, gxg_GTK_IS_PANED_w, 1, 0, 0,
-                      "(GTK_IS_PANED obj): " PROC_TRUE " if obj is a GTK_IS_PANED", pl_bt);
-  Xg_define_procedure(GTK_IS_PROGRESS_BAR, gxg_GTK_IS_PROGRESS_BAR_w, 1, 0, 0,
-                      "(GTK_IS_PROGRESS_BAR obj): " PROC_TRUE " if obj is a GTK_IS_PROGRESS_BAR", pl_bt);
-  Xg_define_procedure(GTK_IS_RADIO_BUTTON, gxg_GTK_IS_RADIO_BUTTON_w, 1, 0, 0,
-                      "(GTK_IS_RADIO_BUTTON obj): " PROC_TRUE " if obj is a GTK_IS_RADIO_BUTTON", pl_bt);
-  Xg_define_procedure(GTK_IS_RADIO_MENU_ITEM, gxg_GTK_IS_RADIO_MENU_ITEM_w, 1, 0, 0,
-                      "(GTK_IS_RADIO_MENU_ITEM obj): " PROC_TRUE " if obj is a GTK_IS_RADIO_MENU_ITEM", pl_bt);
-  Xg_define_procedure(GTK_IS_RANGE, gxg_GTK_IS_RANGE_w, 1, 0, 0,
-                      "(GTK_IS_RANGE obj): " PROC_TRUE " if obj is a GTK_IS_RANGE", pl_bt);
-  Xg_define_procedure(GTK_IS_SCALE, gxg_GTK_IS_SCALE_w, 1, 0, 0,
-                      "(GTK_IS_SCALE obj): " PROC_TRUE " if obj is a GTK_IS_SCALE", pl_bt);
-  Xg_define_procedure(GTK_IS_SCROLLBAR, gxg_GTK_IS_SCROLLBAR_w, 1, 0, 0,
-                      "(GTK_IS_SCROLLBAR obj): " PROC_TRUE " if obj is a GTK_IS_SCROLLBAR", pl_bt);
-  Xg_define_procedure(GTK_IS_SCROLLED_WINDOW, gxg_GTK_IS_SCROLLED_WINDOW_w, 1, 0, 0,
-                      "(GTK_IS_SCROLLED_WINDOW obj): " PROC_TRUE " if obj is a GTK_IS_SCROLLED_WINDOW", pl_bt);
-  Xg_define_procedure(GTK_IS_SEPARATOR, gxg_GTK_IS_SEPARATOR_w, 1, 0, 0,
-                      "(GTK_IS_SEPARATOR obj): " PROC_TRUE " if obj is a GTK_IS_SEPARATOR", pl_bt);
-  Xg_define_procedure(GTK_IS_SEPARATOR_MENU_ITEM, gxg_GTK_IS_SEPARATOR_MENU_ITEM_w, 1, 0, 0,
-                      "(GTK_IS_SEPARATOR_MENU_ITEM obj): " PROC_TRUE " if obj is a GTK_IS_SEPARATOR_MENU_ITEM", pl_bt);
-  Xg_define_procedure(GTK_IS_SETTINGS, gxg_GTK_IS_SETTINGS_w, 1, 0, 0,
-                      "(GTK_IS_SETTINGS obj): " PROC_TRUE " if obj is a GTK_IS_SETTINGS", pl_bt);
-  Xg_define_procedure(GTK_IS_SIZE_GROUP, gxg_GTK_IS_SIZE_GROUP_w, 1, 0, 0,
-                      "(GTK_IS_SIZE_GROUP obj): " PROC_TRUE " if obj is a GTK_IS_SIZE_GROUP", pl_bt);
-  Xg_define_procedure(GTK_IS_SPIN_BUTTON, gxg_GTK_IS_SPIN_BUTTON_w, 1, 0, 0,
-                      "(GTK_IS_SPIN_BUTTON obj): " PROC_TRUE " if obj is a GTK_IS_SPIN_BUTTON", pl_bt);
-  Xg_define_procedure(GTK_IS_STATUSBAR, gxg_GTK_IS_STATUSBAR_w, 1, 0, 0,
-                      "(GTK_IS_STATUSBAR obj): " PROC_TRUE " if obj is a GTK_IS_STATUSBAR", pl_bt);
-  Xg_define_procedure(GTK_IS_TEXT_BUFFER, gxg_GTK_IS_TEXT_BUFFER_w, 1, 0, 0,
-                      "(GTK_IS_TEXT_BUFFER obj): " PROC_TRUE " if obj is a GTK_IS_TEXT_BUFFER", pl_bt);
-  Xg_define_procedure(GTK_IS_TEXT_CHILD_ANCHOR, gxg_GTK_IS_TEXT_CHILD_ANCHOR_w, 1, 0, 0,
-                      "(GTK_IS_TEXT_CHILD_ANCHOR obj): " PROC_TRUE " if obj is a GTK_IS_TEXT_CHILD_ANCHOR", pl_bt);
-  Xg_define_procedure(GTK_IS_TEXT_MARK, gxg_GTK_IS_TEXT_MARK_w, 1, 0, 0,
-                      "(GTK_IS_TEXT_MARK obj): " PROC_TRUE " if obj is a GTK_IS_TEXT_MARK", pl_bt);
-  Xg_define_procedure(GTK_IS_TEXT_TAG, gxg_GTK_IS_TEXT_TAG_w, 1, 0, 0,
-                      "(GTK_IS_TEXT_TAG obj): " PROC_TRUE " if obj is a GTK_IS_TEXT_TAG", pl_bt);
-  Xg_define_procedure(GTK_IS_TEXT_TAG_TABLE, gxg_GTK_IS_TEXT_TAG_TABLE_w, 1, 0, 0,
-                      "(GTK_IS_TEXT_TAG_TABLE obj): " PROC_TRUE " if obj is a GTK_IS_TEXT_TAG_TABLE", pl_bt);
-  Xg_define_procedure(GTK_IS_TEXT_VIEW, gxg_GTK_IS_TEXT_VIEW_w, 1, 0, 0,
-                      "(GTK_IS_TEXT_VIEW obj): " PROC_TRUE " if obj is a GTK_IS_TEXT_VIEW", pl_bt);
-  Xg_define_procedure(GTK_IS_TOGGLE_BUTTON, gxg_GTK_IS_TOGGLE_BUTTON_w, 1, 0, 0,
-                      "(GTK_IS_TOGGLE_BUTTON obj): " PROC_TRUE " if obj is a GTK_IS_TOGGLE_BUTTON", pl_bt);
-  Xg_define_procedure(GTK_IS_TOOLBAR, gxg_GTK_IS_TOOLBAR_w, 1, 0, 0,
-                      "(GTK_IS_TOOLBAR obj): " PROC_TRUE " if obj is a GTK_IS_TOOLBAR", pl_bt);
-  Xg_define_procedure(GTK_IS_TREE_DRAG_SOURCE, gxg_GTK_IS_TREE_DRAG_SOURCE_w, 1, 0, 0,
-                      "(GTK_IS_TREE_DRAG_SOURCE obj): " PROC_TRUE " if obj is a GTK_IS_TREE_DRAG_SOURCE", pl_bt);
-  Xg_define_procedure(GTK_IS_TREE_DRAG_DEST, gxg_GTK_IS_TREE_DRAG_DEST_w, 1, 0, 0,
-                      "(GTK_IS_TREE_DRAG_DEST obj): " PROC_TRUE " if obj is a GTK_IS_TREE_DRAG_DEST", pl_bt);
-  Xg_define_procedure(GTK_IS_TREE_MODEL, gxg_GTK_IS_TREE_MODEL_w, 1, 0, 0,
-                      "(GTK_IS_TREE_MODEL obj): " PROC_TRUE " if obj is a GTK_IS_TREE_MODEL", pl_bt);
-  Xg_define_procedure(GTK_IS_TREE_MODEL_SORT, gxg_GTK_IS_TREE_MODEL_SORT_w, 1, 0, 0,
-                      "(GTK_IS_TREE_MODEL_SORT obj): " PROC_TRUE " if obj is a GTK_IS_TREE_MODEL_SORT", pl_bt);
-  Xg_define_procedure(GTK_IS_TREE_SELECTION, gxg_GTK_IS_TREE_SELECTION_w, 1, 0, 0,
-                      "(GTK_IS_TREE_SELECTION obj): " PROC_TRUE " if obj is a GTK_IS_TREE_SELECTION", pl_bt);
-  Xg_define_procedure(GTK_IS_TREE_SORTABLE, gxg_GTK_IS_TREE_SORTABLE_w, 1, 0, 0,
-                      "(GTK_IS_TREE_SORTABLE obj): " PROC_TRUE " if obj is a GTK_IS_TREE_SORTABLE", pl_bt);
-  Xg_define_procedure(GTK_IS_TREE_STORE, gxg_GTK_IS_TREE_STORE_w, 1, 0, 0,
-                      "(GTK_IS_TREE_STORE obj): " PROC_TRUE " if obj is a GTK_IS_TREE_STORE", pl_bt);
-  Xg_define_procedure(GTK_IS_TREE_VIEW_COLUMN, gxg_GTK_IS_TREE_VIEW_COLUMN_w, 1, 0, 0,
-                      "(GTK_IS_TREE_VIEW_COLUMN obj): " PROC_TRUE " if obj is a GTK_IS_TREE_VIEW_COLUMN", pl_bt);
-  Xg_define_procedure(GTK_IS_TREE_VIEW, gxg_GTK_IS_TREE_VIEW_w, 1, 0, 0,
-                      "(GTK_IS_TREE_VIEW obj): " PROC_TRUE " if obj is a GTK_IS_TREE_VIEW", pl_bt);
-  Xg_define_procedure(GTK_IS_VIEWPORT, gxg_GTK_IS_VIEWPORT_w, 1, 0, 0,
-                      "(GTK_IS_VIEWPORT obj): " PROC_TRUE " if obj is a GTK_IS_VIEWPORT", pl_bt);
-  Xg_define_procedure(GTK_IS_WIDGET, gxg_GTK_IS_WIDGET_w, 1, 0, 0,
-                      "(GTK_IS_WIDGET obj): " PROC_TRUE " if obj is a GTK_IS_WIDGET", pl_bt);
-  Xg_define_procedure(GTK_IS_WINDOW, gxg_GTK_IS_WINDOW_w, 1, 0, 0,
-                      "(GTK_IS_WINDOW obj): " PROC_TRUE " if obj is a GTK_IS_WINDOW", pl_bt);
-  Xg_define_procedure(PANGO_IS_CONTEXT, gxg_PANGO_IS_CONTEXT_w, 1, 0, 0,
-                      "(PANGO_IS_CONTEXT obj): " PROC_TRUE " if obj is a PANGO_IS_CONTEXT", pl_bt);
-  Xg_define_procedure(PANGO_IS_FONT_FAMILY, gxg_PANGO_IS_FONT_FAMILY_w, 1, 0, 0,
-                      "(PANGO_IS_FONT_FAMILY obj): " PROC_TRUE " if obj is a PANGO_IS_FONT_FAMILY", pl_bt);
-  Xg_define_procedure(PANGO_IS_FONT_FACE, gxg_PANGO_IS_FONT_FACE_w, 1, 0, 0,
-                      "(PANGO_IS_FONT_FACE obj): " PROC_TRUE " if obj is a PANGO_IS_FONT_FACE", pl_bt);
-  Xg_define_procedure(PANGO_IS_FONT, gxg_PANGO_IS_FONT_w, 1, 0, 0,
-                      "(PANGO_IS_FONT obj): " PROC_TRUE " if obj is a PANGO_IS_FONT", pl_bt);
-  Xg_define_procedure(PANGO_IS_FONT_MAP, gxg_PANGO_IS_FONT_MAP_w, 1, 0, 0,
-                      "(PANGO_IS_FONT_MAP obj): " PROC_TRUE " if obj is a PANGO_IS_FONT_MAP", pl_bt);
-  Xg_define_procedure(PANGO_IS_LAYOUT, gxg_PANGO_IS_LAYOUT_w, 1, 0, 0,
-                      "(PANGO_IS_LAYOUT obj): " PROC_TRUE " if obj is a PANGO_IS_LAYOUT", pl_bt);
-  Xg_define_procedure(G_IS_OBJECT, gxg_G_IS_OBJECT_w, 1, 0, 0,
-                      "(G_IS_OBJECT obj): " PROC_TRUE " if obj is a G_IS_OBJECT", pl_bt);
-  Xg_define_procedure(GDK_IS_SCREEN, gxg_GDK_IS_SCREEN_w, 1, 0, 0,
-                      "(GDK_IS_SCREEN obj): " PROC_TRUE " if obj is a GDK_IS_SCREEN", pl_bt);
-  Xg_define_procedure(GDK_IS_DISPLAY, gxg_GDK_IS_DISPLAY_w, 1, 0, 0,
-                      "(GDK_IS_DISPLAY obj): " PROC_TRUE " if obj is a GDK_IS_DISPLAY", pl_bt);
-  Xg_define_procedure(GTK_IS_FILE_CHOOSER_DIALOG, gxg_GTK_IS_FILE_CHOOSER_DIALOG_w, 1, 0, 0,
-                      "(GTK_IS_FILE_CHOOSER_DIALOG obj): " PROC_TRUE " if obj is a GTK_IS_FILE_CHOOSER_DIALOG", pl_bt);
-  Xg_define_procedure(GTK_IS_FILE_CHOOSER_WIDGET, gxg_GTK_IS_FILE_CHOOSER_WIDGET_w, 1, 0, 0,
-                      "(GTK_IS_FILE_CHOOSER_WIDGET obj): " PROC_TRUE " if obj is a GTK_IS_FILE_CHOOSER_WIDGET", pl_bt);
-  Xg_define_procedure(GTK_IS_TREE_MODEL_FILTER, gxg_GTK_IS_TREE_MODEL_FILTER_w, 1, 0, 0,
-                      "(GTK_IS_TREE_MODEL_FILTER obj): " PROC_TRUE " if obj is a GTK_IS_TREE_MODEL_FILTER", pl_bt);
-  Xg_define_procedure(GTK_IS_COMBO_BOX, gxg_GTK_IS_COMBO_BOX_w, 1, 0, 0,
-                      "(GTK_IS_COMBO_BOX obj): " PROC_TRUE " if obj is a GTK_IS_COMBO_BOX", pl_bt);
-  Xg_define_procedure(GTK_IS_EXPANDER, gxg_GTK_IS_EXPANDER_w, 1, 0, 0,
-                      "(GTK_IS_EXPANDER obj): " PROC_TRUE " if obj is a GTK_IS_EXPANDER", pl_bt);
-  Xg_define_procedure(GTK_IS_FONT_BUTTON, gxg_GTK_IS_FONT_BUTTON_w, 1, 0, 0,
-                      "(GTK_IS_FONT_BUTTON obj): " PROC_TRUE " if obj is a GTK_IS_FONT_BUTTON", pl_bt);
-  Xg_define_procedure(GTK_IS_COLOR_BUTTON, gxg_GTK_IS_COLOR_BUTTON_w, 1, 0, 0,
-                      "(GTK_IS_COLOR_BUTTON obj): " PROC_TRUE " if obj is a GTK_IS_COLOR_BUTTON", pl_bt);
-  Xg_define_procedure(GTK_IS_ENTRY_COMPLETION, gxg_GTK_IS_ENTRY_COMPLETION_w, 1, 0, 0,
-                      "(GTK_IS_ENTRY_COMPLETION obj): " PROC_TRUE " if obj is a GTK_IS_ENTRY_COMPLETION", pl_bt);
-  Xg_define_procedure(GTK_IS_RADIO_TOOL_BUTTON, gxg_GTK_IS_RADIO_TOOL_BUTTON_w, 1, 0, 0,
-                      "(GTK_IS_RADIO_TOOL_BUTTON obj): " PROC_TRUE " if obj is a GTK_IS_RADIO_TOOL_BUTTON", pl_bt);
-  Xg_define_procedure(GTK_IS_SEPARATOR_TOOL_ITEM, gxg_GTK_IS_SEPARATOR_TOOL_ITEM_w, 1, 0, 0,
-                      "(GTK_IS_SEPARATOR_TOOL_ITEM obj): " PROC_TRUE " if obj is a GTK_IS_SEPARATOR_TOOL_ITEM", pl_bt);
-  Xg_define_procedure(GTK_IS_TOGGLE_TOOL_BUTTON, gxg_GTK_IS_TOGGLE_TOOL_BUTTON_w, 1, 0, 0,
-                      "(GTK_IS_TOGGLE_TOOL_BUTTON obj): " PROC_TRUE " if obj is a GTK_IS_TOGGLE_TOOL_BUTTON", pl_bt);
-  Xg_define_procedure(GTK_IS_FILE_FILTER, gxg_GTK_IS_FILE_FILTER_w, 1, 0, 0,
-                      "(GTK_IS_FILE_FILTER obj): " PROC_TRUE " if obj is a GTK_IS_FILE_FILTER", pl_bt);
-  Xg_define_procedure(GTK_IS_CELL_LAYOUT, gxg_GTK_IS_CELL_LAYOUT_w, 1, 0, 0,
-                      "(GTK_IS_CELL_LAYOUT obj): " PROC_TRUE " if obj is a GTK_IS_CELL_LAYOUT", pl_bt);
-  Xg_define_procedure(GTK_IS_CLIPBOARD, gxg_GTK_IS_CLIPBOARD_w, 1, 0, 0,
-                      "(GTK_IS_CLIPBOARD obj): " PROC_TRUE " if obj is a GTK_IS_CLIPBOARD", pl_bt);
-  Xg_define_procedure(GTK_IS_FILE_CHOOSER, gxg_GTK_IS_FILE_CHOOSER_w, 1, 0, 0,
-                      "(GTK_IS_FILE_CHOOSER obj): " PROC_TRUE " if obj is a GTK_IS_FILE_CHOOSER", pl_bt);
-  Xg_define_procedure(GTK_IS_ICON_THEME, gxg_GTK_IS_ICON_THEME_w, 1, 0, 0,
-                      "(GTK_IS_ICON_THEME obj): " PROC_TRUE " if obj is a GTK_IS_ICON_THEME", pl_bt);
-  Xg_define_procedure(GTK_IS_TOOL_BUTTON, gxg_GTK_IS_TOOL_BUTTON_w, 1, 0, 0,
-                      "(GTK_IS_TOOL_BUTTON obj): " PROC_TRUE " if obj is a GTK_IS_TOOL_BUTTON", pl_bt);
-  Xg_define_procedure(GTK_IS_TOOL_ITEM, gxg_GTK_IS_TOOL_ITEM_w, 1, 0, 0,
-                      "(GTK_IS_TOOL_ITEM obj): " PROC_TRUE " if obj is a GTK_IS_TOOL_ITEM", pl_bt);
-  Xg_define_procedure(GTK_IS_ACCEL_MAP, gxg_GTK_IS_ACCEL_MAP_w, 1, 0, 0,
-                      "(GTK_IS_ACCEL_MAP obj): " PROC_TRUE " if obj is a GTK_IS_ACCEL_MAP", pl_bt);
-  Xg_define_procedure(GTK_IS_CELL_VIEW, gxg_GTK_IS_CELL_VIEW_w, 1, 0, 0,
-                      "(GTK_IS_CELL_VIEW obj): " PROC_TRUE " if obj is a GTK_IS_CELL_VIEW", pl_bt);
-  Xg_define_procedure(GTK_IS_ABOUT_DIALOG, gxg_GTK_IS_ABOUT_DIALOG_w, 1, 0, 0,
-                      "(GTK_IS_ABOUT_DIALOG obj): " PROC_TRUE " if obj is a GTK_IS_ABOUT_DIALOG", pl_bt);
-  Xg_define_procedure(GTK_IS_CELL_RENDERER_COMBO, gxg_GTK_IS_CELL_RENDERER_COMBO_w, 1, 0, 0,
-                      "(GTK_IS_CELL_RENDERER_COMBO obj): " PROC_TRUE " if obj is a GTK_IS_CELL_RENDERER_COMBO", pl_bt);
-  Xg_define_procedure(GTK_IS_CELL_RENDERER_PROGRESS, gxg_GTK_IS_CELL_RENDERER_PROGRESS_w, 1, 0, 0,
-                      "(GTK_IS_CELL_RENDERER_PROGRESS obj): " PROC_TRUE " if obj is a GTK_IS_CELL_RENDERER_PROGRESS", pl_bt);
-  Xg_define_procedure(GTK_IS_ICON_VIEW, gxg_GTK_IS_ICON_VIEW_w, 1, 0, 0,
-                      "(GTK_IS_ICON_VIEW obj): " PROC_TRUE " if obj is a GTK_IS_ICON_VIEW", pl_bt);
-  Xg_define_procedure(GTK_IS_FILE_CHOOSER_BUTTON, gxg_GTK_IS_FILE_CHOOSER_BUTTON_w, 1, 0, 0,
-                      "(GTK_IS_FILE_CHOOSER_BUTTON obj): " PROC_TRUE " if obj is a GTK_IS_FILE_CHOOSER_BUTTON", pl_bt);
-  Xg_define_procedure(GTK_IS_MENU_TOOL_BUTTON, gxg_GTK_IS_MENU_TOOL_BUTTON_w, 1, 0, 0,
-                      "(GTK_IS_MENU_TOOL_BUTTON obj): " PROC_TRUE " if obj is a GTK_IS_MENU_TOOL_BUTTON", pl_bt);
-  Xg_define_procedure(GTK_IS_ASSISTANT, gxg_GTK_IS_ASSISTANT_w, 1, 0, 0,
-                      "(GTK_IS_ASSISTANT obj): " PROC_TRUE " if obj is a GTK_IS_ASSISTANT", pl_bt);
-  Xg_define_procedure(GTK_IS_CELL_RENDERER_ACCEL, gxg_GTK_IS_CELL_RENDERER_ACCEL_w, 1, 0, 0,
-                      "(GTK_IS_CELL_RENDERER_ACCEL obj): " PROC_TRUE " if obj is a GTK_IS_CELL_RENDERER_ACCEL", pl_bt);
-  Xg_define_procedure(GTK_IS_CELL_RENDERER_SPIN, gxg_GTK_IS_CELL_RENDERER_SPIN_w, 1, 0, 0,
-                      "(GTK_IS_CELL_RENDERER_SPIN obj): " PROC_TRUE " if obj is a GTK_IS_CELL_RENDERER_SPIN", pl_bt);
-  Xg_define_procedure(GTK_IS_LINK_BUTTON, gxg_GTK_IS_LINK_BUTTON_w, 1, 0, 0,
-                      "(GTK_IS_LINK_BUTTON obj): " PROC_TRUE " if obj is a GTK_IS_LINK_BUTTON", pl_bt);
-  Xg_define_procedure(GTK_IS_RECENT_CHOOSER_DIALOG, gxg_GTK_IS_RECENT_CHOOSER_DIALOG_w, 1, 0, 0,
-                      "(GTK_IS_RECENT_CHOOSER_DIALOG obj): " PROC_TRUE " if obj is a GTK_IS_RECENT_CHOOSER_DIALOG", pl_bt);
-  Xg_define_procedure(GTK_IS_RECENT_CHOOSER, gxg_GTK_IS_RECENT_CHOOSER_w, 1, 0, 0,
-                      "(GTK_IS_RECENT_CHOOSER obj): " PROC_TRUE " if obj is a GTK_IS_RECENT_CHOOSER", pl_bt);
-  Xg_define_procedure(GTK_IS_RECENT_CHOOSER_MENU, gxg_GTK_IS_RECENT_CHOOSER_MENU_w, 1, 0, 0,
-                      "(GTK_IS_RECENT_CHOOSER_MENU obj): " PROC_TRUE " if obj is a GTK_IS_RECENT_CHOOSER_MENU", pl_bt);
-  Xg_define_procedure(GTK_IS_RECENT_CHOOSER_WIDGET, gxg_GTK_IS_RECENT_CHOOSER_WIDGET_w, 1, 0, 0,
-                      "(GTK_IS_RECENT_CHOOSER_WIDGET obj): " PROC_TRUE " if obj is a GTK_IS_RECENT_CHOOSER_WIDGET", pl_bt);
-  Xg_define_procedure(GTK_IS_RECENT_FILTER, gxg_GTK_IS_RECENT_FILTER_w, 1, 0, 0,
-                      "(GTK_IS_RECENT_FILTER obj): " PROC_TRUE " if obj is a GTK_IS_RECENT_FILTER", pl_bt);
-  Xg_define_procedure(GTK_IS_RECENT_MANAGER, gxg_GTK_IS_RECENT_MANAGER_w, 1, 0, 0,
-                      "(GTK_IS_RECENT_MANAGER obj): " PROC_TRUE " if obj is a GTK_IS_RECENT_MANAGER", pl_bt);
-  Xg_define_procedure(GTK_IS_PRINT_CONTEXT, gxg_GTK_IS_PRINT_CONTEXT_w, 1, 0, 0,
-                      "(GTK_IS_PRINT_CONTEXT obj): " PROC_TRUE " if obj is a GTK_IS_PRINT_CONTEXT", pl_bt);
-  Xg_define_procedure(GTK_IS_PRINT_OPERATION, gxg_GTK_IS_PRINT_OPERATION_w, 1, 0, 0,
-                      "(GTK_IS_PRINT_OPERATION obj): " PROC_TRUE " if obj is a GTK_IS_PRINT_OPERATION", pl_bt);
-  Xg_define_procedure(GTK_IS_PRINT_OPERATION_PREVIEW, gxg_GTK_IS_PRINT_OPERATION_PREVIEW_w, 1, 0, 0,
-                      "(GTK_IS_PRINT_OPERATION_PREVIEW obj): " PROC_TRUE " if obj is a GTK_IS_PRINT_OPERATION_PREVIEW", pl_bt);
-  Xg_define_procedure(GTK_IS_PRINT_SETTINGS, gxg_GTK_IS_PRINT_SETTINGS_w, 1, 0, 0,
-                      "(GTK_IS_PRINT_SETTINGS obj): " PROC_TRUE " if obj is a GTK_IS_PRINT_SETTINGS", pl_bt);
-  Xg_define_procedure(GTK_IS_TOOLTIP, gxg_GTK_IS_TOOLTIP_w, 1, 0, 0,
-                      "(GTK_IS_TOOLTIP obj): " PROC_TRUE " if obj is a GTK_IS_TOOLTIP", pl_bt);
+  Xg_define_procedure(GDK_IS_DRAG_CONTEXT, gxg_GDK_IS_DRAG_CONTEXT_w, 1, 0, 0, "(GDK_IS_DRAG_CONTEXT obj): " PROC_TRUE " if obj is a GdkDragContext*", pl_bt);
+  Xg_define_procedure(GDK_IS_DEVICE, gxg_GDK_IS_DEVICE_w, 1, 0, 0, "(GDK_IS_DEVICE obj): " PROC_TRUE " if obj is a GdkDevice*", pl_bt);
+  Xg_define_procedure(GDK_IS_KEYMAP, gxg_GDK_IS_KEYMAP_w, 1, 0, 0, "(GDK_IS_KEYMAP obj): " PROC_TRUE " if obj is a GdkKeymap*", pl_bt);
+  Xg_define_procedure(GDK_IS_WINDOW, gxg_GDK_IS_WINDOW_w, 1, 0, 0, "(GDK_IS_WINDOW obj): " PROC_TRUE " if obj is a GdkWindow*", pl_bt);
+  Xg_define_procedure(GDK_IS_PIXBUF, gxg_GDK_IS_PIXBUF_w, 1, 0, 0, "(GDK_IS_PIXBUF obj): " PROC_TRUE " if obj is a GdkPixbuf*", pl_bt);
+  Xg_define_procedure(GDK_IS_PIXBUF_ANIMATION, gxg_GDK_IS_PIXBUF_ANIMATION_w, 1, 0, 0, "(GDK_IS_PIXBUF_ANIMATION obj): " PROC_TRUE " if obj is a GdkPixbufAnimation*", pl_bt);
+  Xg_define_procedure(GDK_IS_PIXBUF_ANIMATION_ITER, gxg_GDK_IS_PIXBUF_ANIMATION_ITER_w, 1, 0, 0, "(GDK_IS_PIXBUF_ANIMATION_ITER obj): " PROC_TRUE " if obj is a GdkPixbufAnimationIter*", pl_bt);
+  Xg_define_procedure(GTK_IS_ACCEL_GROUP, gxg_GTK_IS_ACCEL_GROUP_w, 1, 0, 0, "(GTK_IS_ACCEL_GROUP obj): " PROC_TRUE " if obj is a GtkAccelGroup*", pl_bt);
+  Xg_define_procedure(GTK_IS_ACCEL_LABEL, gxg_GTK_IS_ACCEL_LABEL_w, 1, 0, 0, "(GTK_IS_ACCEL_LABEL obj): " PROC_TRUE " if obj is a GtkAccelLabel*", pl_bt);
+  Xg_define_procedure(GTK_IS_ACCESSIBLE, gxg_GTK_IS_ACCESSIBLE_w, 1, 0, 0, "(GTK_IS_ACCESSIBLE obj): " PROC_TRUE " if obj is a GtkAccessible*", pl_bt);
+  Xg_define_procedure(GTK_IS_ADJUSTMENT, gxg_GTK_IS_ADJUSTMENT_w, 1, 0, 0, "(GTK_IS_ADJUSTMENT obj): " PROC_TRUE " if obj is a GtkAdjustment*", pl_bt);
+  Xg_define_procedure(GTK_IS_ASPECT_FRAME, gxg_GTK_IS_ASPECT_FRAME_w, 1, 0, 0, "(GTK_IS_ASPECT_FRAME obj): " PROC_TRUE " if obj is a GtkAspectFrame*", pl_bt);
+  Xg_define_procedure(GTK_IS_BUTTON_BOX, gxg_GTK_IS_BUTTON_BOX_w, 1, 0, 0, "(GTK_IS_BUTTON_BOX obj): " PROC_TRUE " if obj is a GtkButtonBox*", pl_bt);
+  Xg_define_procedure(GTK_IS_BIN, gxg_GTK_IS_BIN_w, 1, 0, 0, "(GTK_IS_BIN obj): " PROC_TRUE " if obj is a GtkBin*", pl_bt);
+  Xg_define_procedure(GTK_IS_BOX, gxg_GTK_IS_BOX_w, 1, 0, 0, "(GTK_IS_BOX obj): " PROC_TRUE " if obj is a GtkBox*", pl_bt);
+  Xg_define_procedure(GTK_IS_BUTTON, gxg_GTK_IS_BUTTON_w, 1, 0, 0, "(GTK_IS_BUTTON obj): " PROC_TRUE " if obj is a GtkButton*", pl_bt);
+  Xg_define_procedure(GTK_IS_CALENDAR, gxg_GTK_IS_CALENDAR_w, 1, 0, 0, "(GTK_IS_CALENDAR obj): " PROC_TRUE " if obj is a GtkCalendar*", pl_bt);
+  Xg_define_procedure(GTK_IS_CELL_EDITABLE, gxg_GTK_IS_CELL_EDITABLE_w, 1, 0, 0, "(GTK_IS_CELL_EDITABLE obj): " PROC_TRUE " if obj is a GtkCellEditable*", pl_bt);
+  Xg_define_procedure(GTK_IS_CELL_RENDERER, gxg_GTK_IS_CELL_RENDERER_w, 1, 0, 0, "(GTK_IS_CELL_RENDERER obj): " PROC_TRUE " if obj is a GtkCellRenderer*", pl_bt);
+  Xg_define_procedure(GTK_IS_CELL_RENDERER_PIXBUF, gxg_GTK_IS_CELL_RENDERER_PIXBUF_w, 1, 0, 0, "(GTK_IS_CELL_RENDERER_PIXBUF obj): " PROC_TRUE " if obj is a GtkCellRendererPixbuf*", pl_bt);
+  Xg_define_procedure(GTK_IS_CELL_RENDERER_TEXT, gxg_GTK_IS_CELL_RENDERER_TEXT_w, 1, 0, 0, "(GTK_IS_CELL_RENDERER_TEXT obj): " PROC_TRUE " if obj is a GtkCellRendererText*", pl_bt);
+  Xg_define_procedure(GTK_IS_CELL_RENDERER_TOGGLE, gxg_GTK_IS_CELL_RENDERER_TOGGLE_w, 1, 0, 0, "(GTK_IS_CELL_RENDERER_TOGGLE obj): " PROC_TRUE " if obj is a GtkCellRendererToggle*", pl_bt);
+  Xg_define_procedure(GTK_IS_CHECK_BUTTON, gxg_GTK_IS_CHECK_BUTTON_w, 1, 0, 0, "(GTK_IS_CHECK_BUTTON obj): " PROC_TRUE " if obj is a GtkCheckButton*", pl_bt);
+  Xg_define_procedure(GTK_IS_CHECK_MENU_ITEM, gxg_GTK_IS_CHECK_MENU_ITEM_w, 1, 0, 0, "(GTK_IS_CHECK_MENU_ITEM obj): " PROC_TRUE " if obj is a GtkCheckMenuItem*", pl_bt);
+  Xg_define_procedure(GTK_IS_CONTAINER, gxg_GTK_IS_CONTAINER_w, 1, 0, 0, "(GTK_IS_CONTAINER obj): " PROC_TRUE " if obj is a GtkContainer*", pl_bt);
+  Xg_define_procedure(GTK_IS_DIALOG, gxg_GTK_IS_DIALOG_w, 1, 0, 0, "(GTK_IS_DIALOG obj): " PROC_TRUE " if obj is a GtkDialog*", pl_bt);
+  Xg_define_procedure(GTK_IS_DRAWING_AREA, gxg_GTK_IS_DRAWING_AREA_w, 1, 0, 0, "(GTK_IS_DRAWING_AREA obj): " PROC_TRUE " if obj is a GtkDrawingArea*", pl_bt);
+  Xg_define_procedure(GTK_IS_EDITABLE, gxg_GTK_IS_EDITABLE_w, 1, 0, 0, "(GTK_IS_EDITABLE obj): " PROC_TRUE " if obj is a GtkEditable*", pl_bt);
+  Xg_define_procedure(GTK_IS_ENTRY, gxg_GTK_IS_ENTRY_w, 1, 0, 0, "(GTK_IS_ENTRY obj): " PROC_TRUE " if obj is a GtkEntry*", pl_bt);
+  Xg_define_procedure(GTK_IS_EVENT_BOX, gxg_GTK_IS_EVENT_BOX_w, 1, 0, 0, "(GTK_IS_EVENT_BOX obj): " PROC_TRUE " if obj is a GtkEventBox*", pl_bt);
+  Xg_define_procedure(GTK_IS_FIXED, gxg_GTK_IS_FIXED_w, 1, 0, 0, "(GTK_IS_FIXED obj): " PROC_TRUE " if obj is a GtkFixed*", pl_bt);
+  Xg_define_procedure(GTK_IS_FRAME, gxg_GTK_IS_FRAME_w, 1, 0, 0, "(GTK_IS_FRAME obj): " PROC_TRUE " if obj is a GtkFrame*", pl_bt);
+  Xg_define_procedure(GTK_IS_IMAGE, gxg_GTK_IS_IMAGE_w, 1, 0, 0, "(GTK_IS_IMAGE obj): " PROC_TRUE " if obj is a GtkImage*", pl_bt);
+  Xg_define_procedure(GTK_IS_IM_CONTEXT, gxg_GTK_IS_IM_CONTEXT_w, 1, 0, 0, "(GTK_IS_IM_CONTEXT obj): " PROC_TRUE " if obj is a GtkIMContext*", pl_bt);
+  Xg_define_procedure(GTK_IS_IM_CONTEXT_SIMPLE, gxg_GTK_IS_IM_CONTEXT_SIMPLE_w, 1, 0, 0, "(GTK_IS_IM_CONTEXT_SIMPLE obj): " PROC_TRUE " if obj is a GtkIMContextSimple*", pl_bt);
+  Xg_define_procedure(GTK_IS_INVISIBLE, gxg_GTK_IS_INVISIBLE_w, 1, 0, 0, "(GTK_IS_INVISIBLE obj): " PROC_TRUE " if obj is a GtkInvisible*", pl_bt);
+  Xg_define_procedure(GTK_IS_LABEL, gxg_GTK_IS_LABEL_w, 1, 0, 0, "(GTK_IS_LABEL obj): " PROC_TRUE " if obj is a GtkLabel*", pl_bt);
+  Xg_define_procedure(GTK_IS_LAYOUT, gxg_GTK_IS_LAYOUT_w, 1, 0, 0, "(GTK_IS_LAYOUT obj): " PROC_TRUE " if obj is a GtkLayout*", pl_bt);
+  Xg_define_procedure(GTK_IS_LIST_STORE, gxg_GTK_IS_LIST_STORE_w, 1, 0, 0, "(GTK_IS_LIST_STORE obj): " PROC_TRUE " if obj is a GtkListStore*", pl_bt);
+  Xg_define_procedure(GTK_IS_MENU_BAR, gxg_GTK_IS_MENU_BAR_w, 1, 0, 0, "(GTK_IS_MENU_BAR obj): " PROC_TRUE " if obj is a GtkMenuBar*", pl_bt);
+  Xg_define_procedure(GTK_IS_MENU, gxg_GTK_IS_MENU_w, 1, 0, 0, "(GTK_IS_MENU obj): " PROC_TRUE " if obj is a GtkMenu*", pl_bt);
+  Xg_define_procedure(GTK_IS_MENU_ITEM, gxg_GTK_IS_MENU_ITEM_w, 1, 0, 0, "(GTK_IS_MENU_ITEM obj): " PROC_TRUE " if obj is a GtkMenuItem*", pl_bt);
+  Xg_define_procedure(GTK_IS_MENU_SHELL, gxg_GTK_IS_MENU_SHELL_w, 1, 0, 0, "(GTK_IS_MENU_SHELL obj): " PROC_TRUE " if obj is a GtkMenuShell*", pl_bt);
+  Xg_define_procedure(GTK_IS_NOTEBOOK, gxg_GTK_IS_NOTEBOOK_w, 1, 0, 0, "(GTK_IS_NOTEBOOK obj): " PROC_TRUE " if obj is a GtkNotebook*", pl_bt);
+  Xg_define_procedure(GTK_IS_PANED, gxg_GTK_IS_PANED_w, 1, 0, 0, "(GTK_IS_PANED obj): " PROC_TRUE " if obj is a GtkPaned*", pl_bt);
+  Xg_define_procedure(GTK_IS_PROGRESS_BAR, gxg_GTK_IS_PROGRESS_BAR_w, 1, 0, 0, "(GTK_IS_PROGRESS_BAR obj): " PROC_TRUE " if obj is a GtkProgressBar*", pl_bt);
+  Xg_define_procedure(GTK_IS_RADIO_BUTTON, gxg_GTK_IS_RADIO_BUTTON_w, 1, 0, 0, "(GTK_IS_RADIO_BUTTON obj): " PROC_TRUE " if obj is a GtkRadioButton*", pl_bt);
+  Xg_define_procedure(GTK_IS_RADIO_MENU_ITEM, gxg_GTK_IS_RADIO_MENU_ITEM_w, 1, 0, 0, "(GTK_IS_RADIO_MENU_ITEM obj): " PROC_TRUE " if obj is a GtkRadioMenuItem*", pl_bt);
+  Xg_define_procedure(GTK_IS_RANGE, gxg_GTK_IS_RANGE_w, 1, 0, 0, "(GTK_IS_RANGE obj): " PROC_TRUE " if obj is a GtkRange*", pl_bt);
+  Xg_define_procedure(GTK_IS_SCALE, gxg_GTK_IS_SCALE_w, 1, 0, 0, "(GTK_IS_SCALE obj): " PROC_TRUE " if obj is a GtkScale*", pl_bt);
+  Xg_define_procedure(GTK_IS_SCROLLBAR, gxg_GTK_IS_SCROLLBAR_w, 1, 0, 0, "(GTK_IS_SCROLLBAR obj): " PROC_TRUE " if obj is a GtkScrollbar*", pl_bt);
+  Xg_define_procedure(GTK_IS_SCROLLED_WINDOW, gxg_GTK_IS_SCROLLED_WINDOW_w, 1, 0, 0, "(GTK_IS_SCROLLED_WINDOW obj): " PROC_TRUE " if obj is a GtkScrolledWindow*", pl_bt);
+  Xg_define_procedure(GTK_IS_SEPARATOR, gxg_GTK_IS_SEPARATOR_w, 1, 0, 0, "(GTK_IS_SEPARATOR obj): " PROC_TRUE " if obj is a GtkSeparator*", pl_bt);
+  Xg_define_procedure(GTK_IS_SEPARATOR_MENU_ITEM, gxg_GTK_IS_SEPARATOR_MENU_ITEM_w, 1, 0, 0, "(GTK_IS_SEPARATOR_MENU_ITEM obj): " PROC_TRUE " if obj is a GtkSeparatorMenuItem*", pl_bt);
+  Xg_define_procedure(GTK_IS_SETTINGS, gxg_GTK_IS_SETTINGS_w, 1, 0, 0, "(GTK_IS_SETTINGS obj): " PROC_TRUE " if obj is a GtkSettings*", pl_bt);
+  Xg_define_procedure(GTK_IS_SIZE_GROUP, gxg_GTK_IS_SIZE_GROUP_w, 1, 0, 0, "(GTK_IS_SIZE_GROUP obj): " PROC_TRUE " if obj is a GtkSizeGroup*", pl_bt);
+  Xg_define_procedure(GTK_IS_SPIN_BUTTON, gxg_GTK_IS_SPIN_BUTTON_w, 1, 0, 0, "(GTK_IS_SPIN_BUTTON obj): " PROC_TRUE " if obj is a GtkSpinButton*", pl_bt);
+  Xg_define_procedure(GTK_IS_STATUSBAR, gxg_GTK_IS_STATUSBAR_w, 1, 0, 0, "(GTK_IS_STATUSBAR obj): " PROC_TRUE " if obj is a GtkStatusbar*", pl_bt);
+  Xg_define_procedure(GTK_IS_TEXT_BUFFER, gxg_GTK_IS_TEXT_BUFFER_w, 1, 0, 0, "(GTK_IS_TEXT_BUFFER obj): " PROC_TRUE " if obj is a GtkTextBuffer*", pl_bt);
+  Xg_define_procedure(GTK_IS_TEXT_CHILD_ANCHOR, gxg_GTK_IS_TEXT_CHILD_ANCHOR_w, 1, 0, 0, "(GTK_IS_TEXT_CHILD_ANCHOR obj): " PROC_TRUE " if obj is a GtkTextChildAnchor*", pl_bt);
+  Xg_define_procedure(GTK_IS_TEXT_MARK, gxg_GTK_IS_TEXT_MARK_w, 1, 0, 0, "(GTK_IS_TEXT_MARK obj): " PROC_TRUE " if obj is a GtkTextMark*", pl_bt);
+  Xg_define_procedure(GTK_IS_TEXT_TAG, gxg_GTK_IS_TEXT_TAG_w, 1, 0, 0, "(GTK_IS_TEXT_TAG obj): " PROC_TRUE " if obj is a GtkTextTag*", pl_bt);
+  Xg_define_procedure(GTK_IS_TEXT_TAG_TABLE, gxg_GTK_IS_TEXT_TAG_TABLE_w, 1, 0, 0, "(GTK_IS_TEXT_TAG_TABLE obj): " PROC_TRUE " if obj is a GtkTextTagTable*", pl_bt);
+  Xg_define_procedure(GTK_IS_TEXT_VIEW, gxg_GTK_IS_TEXT_VIEW_w, 1, 0, 0, "(GTK_IS_TEXT_VIEW obj): " PROC_TRUE " if obj is a GtkTextView*", pl_bt);
+  Xg_define_procedure(GTK_IS_TOGGLE_BUTTON, gxg_GTK_IS_TOGGLE_BUTTON_w, 1, 0, 0, "(GTK_IS_TOGGLE_BUTTON obj): " PROC_TRUE " if obj is a GtkToggleButton*", pl_bt);
+  Xg_define_procedure(GTK_IS_TOOLBAR, gxg_GTK_IS_TOOLBAR_w, 1, 0, 0, "(GTK_IS_TOOLBAR obj): " PROC_TRUE " if obj is a GtkToolbar*", pl_bt);
+  Xg_define_procedure(GTK_IS_TREE_DRAG_SOURCE, gxg_GTK_IS_TREE_DRAG_SOURCE_w, 1, 0, 0, "(GTK_IS_TREE_DRAG_SOURCE obj): " PROC_TRUE " if obj is a GtkTreeDragSource*", pl_bt);
+  Xg_define_procedure(GTK_IS_TREE_DRAG_DEST, gxg_GTK_IS_TREE_DRAG_DEST_w, 1, 0, 0, "(GTK_IS_TREE_DRAG_DEST obj): " PROC_TRUE " if obj is a GtkTreeDragDest*", pl_bt);
+  Xg_define_procedure(GTK_IS_TREE_MODEL, gxg_GTK_IS_TREE_MODEL_w, 1, 0, 0, "(GTK_IS_TREE_MODEL obj): " PROC_TRUE " if obj is a GtkTreeModel*", pl_bt);
+  Xg_define_procedure(GTK_IS_TREE_MODEL_SORT, gxg_GTK_IS_TREE_MODEL_SORT_w, 1, 0, 0, "(GTK_IS_TREE_MODEL_SORT obj): " PROC_TRUE " if obj is a GtkTreeModelSort*", pl_bt);
+  Xg_define_procedure(GTK_IS_TREE_SELECTION, gxg_GTK_IS_TREE_SELECTION_w, 1, 0, 0, "(GTK_IS_TREE_SELECTION obj): " PROC_TRUE " if obj is a GtkTreeSelection*", pl_bt);
+  Xg_define_procedure(GTK_IS_TREE_SORTABLE, gxg_GTK_IS_TREE_SORTABLE_w, 1, 0, 0, "(GTK_IS_TREE_SORTABLE obj): " PROC_TRUE " if obj is a GtkTreeSortable*", pl_bt);
+  Xg_define_procedure(GTK_IS_TREE_STORE, gxg_GTK_IS_TREE_STORE_w, 1, 0, 0, "(GTK_IS_TREE_STORE obj): " PROC_TRUE " if obj is a GtkTreeStore*", pl_bt);
+  Xg_define_procedure(GTK_IS_TREE_VIEW_COLUMN, gxg_GTK_IS_TREE_VIEW_COLUMN_w, 1, 0, 0, "(GTK_IS_TREE_VIEW_COLUMN obj): " PROC_TRUE " if obj is a GtkTreeViewColumn*", pl_bt);
+  Xg_define_procedure(GTK_IS_TREE_VIEW, gxg_GTK_IS_TREE_VIEW_w, 1, 0, 0, "(GTK_IS_TREE_VIEW obj): " PROC_TRUE " if obj is a GtkTreeView*", pl_bt);
+  Xg_define_procedure(GTK_IS_VIEWPORT, gxg_GTK_IS_VIEWPORT_w, 1, 0, 0, "(GTK_IS_VIEWPORT obj): " PROC_TRUE " if obj is a GtkViewport*", pl_bt);
+  Xg_define_procedure(GTK_IS_WIDGET, gxg_GTK_IS_WIDGET_w, 1, 0, 0, "(GTK_IS_WIDGET obj): " PROC_TRUE " if obj is a GtkWidget*", pl_bt);
+  Xg_define_procedure(GTK_IS_WINDOW, gxg_GTK_IS_WINDOW_w, 1, 0, 0, "(GTK_IS_WINDOW obj): " PROC_TRUE " if obj is a GtkWindow*", pl_bt);
+  Xg_define_procedure(PANGO_IS_CONTEXT, gxg_PANGO_IS_CONTEXT_w, 1, 0, 0, "(PANGO_IS_CONTEXT obj): " PROC_TRUE " if obj is a PangoContext*", pl_bt);
+  Xg_define_procedure(PANGO_IS_FONT_FAMILY, gxg_PANGO_IS_FONT_FAMILY_w, 1, 0, 0, "(PANGO_IS_FONT_FAMILY obj): " PROC_TRUE " if obj is a PangoFontFamily*", pl_bt);
+  Xg_define_procedure(PANGO_IS_FONT_FACE, gxg_PANGO_IS_FONT_FACE_w, 1, 0, 0, "(PANGO_IS_FONT_FACE obj): " PROC_TRUE " if obj is a PangoFontFace*", pl_bt);
+  Xg_define_procedure(PANGO_IS_FONT, gxg_PANGO_IS_FONT_w, 1, 0, 0, "(PANGO_IS_FONT obj): " PROC_TRUE " if obj is a PangoFont*", pl_bt);
+  Xg_define_procedure(PANGO_IS_FONT_MAP, gxg_PANGO_IS_FONT_MAP_w, 1, 0, 0, "(PANGO_IS_FONT_MAP obj): " PROC_TRUE " if obj is a PangoFontMap*", pl_bt);
+  Xg_define_procedure(PANGO_IS_LAYOUT, gxg_PANGO_IS_LAYOUT_w, 1, 0, 0, "(PANGO_IS_LAYOUT obj): " PROC_TRUE " if obj is a PangoLayout*", pl_bt);
+  Xg_define_procedure(G_IS_OBJECT, gxg_G_IS_OBJECT_w, 1, 0, 0, "(G_IS_OBJECT obj): " PROC_TRUE " if obj is a GObject*", pl_bt);
+  Xg_define_procedure(GDK_IS_SCREEN, gxg_GDK_IS_SCREEN_w, 1, 0, 0, "(GDK_IS_SCREEN obj): " PROC_TRUE " if obj is a GdkScreen*", pl_bt);
+  Xg_define_procedure(GDK_IS_DISPLAY, gxg_GDK_IS_DISPLAY_w, 1, 0, 0, "(GDK_IS_DISPLAY obj): " PROC_TRUE " if obj is a GdkDisplay*", pl_bt);
+  Xg_define_procedure(GTK_IS_FILE_CHOOSER_DIALOG, gxg_GTK_IS_FILE_CHOOSER_DIALOG_w, 1, 0, 0, "(GTK_IS_FILE_CHOOSER_DIALOG obj): " PROC_TRUE " if obj is a GtkFileChooserDialog*", pl_bt);
+  Xg_define_procedure(GTK_IS_FILE_CHOOSER_WIDGET, gxg_GTK_IS_FILE_CHOOSER_WIDGET_w, 1, 0, 0, "(GTK_IS_FILE_CHOOSER_WIDGET obj): " PROC_TRUE " if obj is a GtkFileChooserWidget*", pl_bt);
+  Xg_define_procedure(GTK_IS_TREE_MODEL_FILTER, gxg_GTK_IS_TREE_MODEL_FILTER_w, 1, 0, 0, "(GTK_IS_TREE_MODEL_FILTER obj): " PROC_TRUE " if obj is a GtkTreeModelFilter*", pl_bt);
+  Xg_define_procedure(GTK_IS_COMBO_BOX, gxg_GTK_IS_COMBO_BOX_w, 1, 0, 0, "(GTK_IS_COMBO_BOX obj): " PROC_TRUE " if obj is a GtkComboBox*", pl_bt);
+  Xg_define_procedure(GTK_IS_EXPANDER, gxg_GTK_IS_EXPANDER_w, 1, 0, 0, "(GTK_IS_EXPANDER obj): " PROC_TRUE " if obj is a GtkExpander*", pl_bt);
+  Xg_define_procedure(GTK_IS_FONT_BUTTON, gxg_GTK_IS_FONT_BUTTON_w, 1, 0, 0, "(GTK_IS_FONT_BUTTON obj): " PROC_TRUE " if obj is a GtkFontButton*", pl_bt);
+  Xg_define_procedure(GTK_IS_COLOR_BUTTON, gxg_GTK_IS_COLOR_BUTTON_w, 1, 0, 0, "(GTK_IS_COLOR_BUTTON obj): " PROC_TRUE " if obj is a GtkColorButton*", pl_bt);
+  Xg_define_procedure(GTK_IS_ENTRY_COMPLETION, gxg_GTK_IS_ENTRY_COMPLETION_w, 1, 0, 0, "(GTK_IS_ENTRY_COMPLETION obj): " PROC_TRUE " if obj is a GtkEntryCompletion*", pl_bt);
+  Xg_define_procedure(GTK_IS_RADIO_TOOL_BUTTON, gxg_GTK_IS_RADIO_TOOL_BUTTON_w, 1, 0, 0, "(GTK_IS_RADIO_TOOL_BUTTON obj): " PROC_TRUE " if obj is a GtkRadioToolButton*", pl_bt);
+  Xg_define_procedure(GTK_IS_SEPARATOR_TOOL_ITEM, gxg_GTK_IS_SEPARATOR_TOOL_ITEM_w, 1, 0, 0, "(GTK_IS_SEPARATOR_TOOL_ITEM obj): " PROC_TRUE " if obj is a GtkSeparatorToolItem*", pl_bt);
+  Xg_define_procedure(GTK_IS_TOGGLE_TOOL_BUTTON, gxg_GTK_IS_TOGGLE_TOOL_BUTTON_w, 1, 0, 0, "(GTK_IS_TOGGLE_TOOL_BUTTON obj): " PROC_TRUE " if obj is a GtkToggleToolButton*", pl_bt);
+  Xg_define_procedure(GTK_IS_FILE_FILTER, gxg_GTK_IS_FILE_FILTER_w, 1, 0, 0, "(GTK_IS_FILE_FILTER obj): " PROC_TRUE " if obj is a GtkFileFilter*", pl_bt);
+  Xg_define_procedure(GTK_IS_CELL_LAYOUT, gxg_GTK_IS_CELL_LAYOUT_w, 1, 0, 0, "(GTK_IS_CELL_LAYOUT obj): " PROC_TRUE " if obj is a GtkCellLayout*", pl_bt);
+  Xg_define_procedure(GTK_IS_CLIPBOARD, gxg_GTK_IS_CLIPBOARD_w, 1, 0, 0, "(GTK_IS_CLIPBOARD obj): " PROC_TRUE " if obj is a GtkClipboard*", pl_bt);
+  Xg_define_procedure(GTK_IS_FILE_CHOOSER, gxg_GTK_IS_FILE_CHOOSER_w, 1, 0, 0, "(GTK_IS_FILE_CHOOSER obj): " PROC_TRUE " if obj is a GtkFileChooser*", pl_bt);
+  Xg_define_procedure(GTK_IS_ICON_THEME, gxg_GTK_IS_ICON_THEME_w, 1, 0, 0, "(GTK_IS_ICON_THEME obj): " PROC_TRUE " if obj is a GtkIconTheme*", pl_bt);
+  Xg_define_procedure(GTK_IS_TOOL_BUTTON, gxg_GTK_IS_TOOL_BUTTON_w, 1, 0, 0, "(GTK_IS_TOOL_BUTTON obj): " PROC_TRUE " if obj is a GtkToolButton*", pl_bt);
+  Xg_define_procedure(GTK_IS_TOOL_ITEM, gxg_GTK_IS_TOOL_ITEM_w, 1, 0, 0, "(GTK_IS_TOOL_ITEM obj): " PROC_TRUE " if obj is a GtkToolItem*", pl_bt);
+  Xg_define_procedure(GTK_IS_ACCEL_MAP, gxg_GTK_IS_ACCEL_MAP_w, 1, 0, 0, "(GTK_IS_ACCEL_MAP obj): " PROC_TRUE " if obj is a GtkAccelMap", pl_bt);
+  Xg_define_procedure(GTK_IS_CELL_VIEW, gxg_GTK_IS_CELL_VIEW_w, 1, 0, 0, "(GTK_IS_CELL_VIEW obj): " PROC_TRUE " if obj is a GtkCellView*", pl_bt);
+  Xg_define_procedure(GTK_IS_ABOUT_DIALOG, gxg_GTK_IS_ABOUT_DIALOG_w, 1, 0, 0, "(GTK_IS_ABOUT_DIALOG obj): " PROC_TRUE " if obj is a GtkAboutDialog*", pl_bt);
+  Xg_define_procedure(GTK_IS_CELL_RENDERER_COMBO, gxg_GTK_IS_CELL_RENDERER_COMBO_w, 1, 0, 0, "(GTK_IS_CELL_RENDERER_COMBO obj): " PROC_TRUE " if obj is a GtkCellRendererCombo*", pl_bt);
+  Xg_define_procedure(GTK_IS_CELL_RENDERER_PROGRESS, gxg_GTK_IS_CELL_RENDERER_PROGRESS_w, 1, 0, 0, "(GTK_IS_CELL_RENDERER_PROGRESS obj): " PROC_TRUE " if obj is a GtkCellRendererProgress*", pl_bt);
+  Xg_define_procedure(GTK_IS_ICON_VIEW, gxg_GTK_IS_ICON_VIEW_w, 1, 0, 0, "(GTK_IS_ICON_VIEW obj): " PROC_TRUE " if obj is a GtkIconView*", pl_bt);
+  Xg_define_procedure(GTK_IS_FILE_CHOOSER_BUTTON, gxg_GTK_IS_FILE_CHOOSER_BUTTON_w, 1, 0, 0, "(GTK_IS_FILE_CHOOSER_BUTTON obj): " PROC_TRUE " if obj is a GtkFileChooserButton*", pl_bt);
+  Xg_define_procedure(GTK_IS_MENU_TOOL_BUTTON, gxg_GTK_IS_MENU_TOOL_BUTTON_w, 1, 0, 0, "(GTK_IS_MENU_TOOL_BUTTON obj): " PROC_TRUE " if obj is a GtkMenuToolButton*", pl_bt);
+  Xg_define_procedure(GTK_IS_ASSISTANT, gxg_GTK_IS_ASSISTANT_w, 1, 0, 0, "(GTK_IS_ASSISTANT obj): " PROC_TRUE " if obj is a GtkAssistant*", pl_bt);
+  Xg_define_procedure(GTK_IS_CELL_RENDERER_ACCEL, gxg_GTK_IS_CELL_RENDERER_ACCEL_w, 1, 0, 0, "(GTK_IS_CELL_RENDERER_ACCEL obj): " PROC_TRUE " if obj is a GtkCellRendererAccel*", pl_bt);
+  Xg_define_procedure(GTK_IS_CELL_RENDERER_SPIN, gxg_GTK_IS_CELL_RENDERER_SPIN_w, 1, 0, 0, "(GTK_IS_CELL_RENDERER_SPIN obj): " PROC_TRUE " if obj is a GtkCellRendererSpin*", pl_bt);
+  Xg_define_procedure(GTK_IS_LINK_BUTTON, gxg_GTK_IS_LINK_BUTTON_w, 1, 0, 0, "(GTK_IS_LINK_BUTTON obj): " PROC_TRUE " if obj is a GtkLinkButton*", pl_bt);
+  Xg_define_procedure(GTK_IS_RECENT_CHOOSER_DIALOG, gxg_GTK_IS_RECENT_CHOOSER_DIALOG_w, 1, 0, 0, "(GTK_IS_RECENT_CHOOSER_DIALOG obj): " PROC_TRUE " if obj is a GtkRecentChooserDialog*", pl_bt);
+  Xg_define_procedure(GTK_IS_RECENT_CHOOSER, gxg_GTK_IS_RECENT_CHOOSER_w, 1, 0, 0, "(GTK_IS_RECENT_CHOOSER obj): " PROC_TRUE " if obj is a GtkRecentChooser*", pl_bt);
+  Xg_define_procedure(GTK_IS_RECENT_CHOOSER_MENU, gxg_GTK_IS_RECENT_CHOOSER_MENU_w, 1, 0, 0, "(GTK_IS_RECENT_CHOOSER_MENU obj): " PROC_TRUE " if obj is a GtkRecentChooserMenu*", pl_bt);
+  Xg_define_procedure(GTK_IS_RECENT_CHOOSER_WIDGET, gxg_GTK_IS_RECENT_CHOOSER_WIDGET_w, 1, 0, 0, "(GTK_IS_RECENT_CHOOSER_WIDGET obj): " PROC_TRUE " if obj is a GtkRecentChooserWidget*", pl_bt);
+  Xg_define_procedure(GTK_IS_RECENT_FILTER, gxg_GTK_IS_RECENT_FILTER_w, 1, 0, 0, "(GTK_IS_RECENT_FILTER obj): " PROC_TRUE " if obj is a GtkRecentFilter*", pl_bt);
+  Xg_define_procedure(GTK_IS_RECENT_MANAGER, gxg_GTK_IS_RECENT_MANAGER_w, 1, 0, 0, "(GTK_IS_RECENT_MANAGER obj): " PROC_TRUE " if obj is a GtkRecentManager*", pl_bt);
+  Xg_define_procedure(GTK_IS_PRINT_CONTEXT, gxg_GTK_IS_PRINT_CONTEXT_w, 1, 0, 0, "(GTK_IS_PRINT_CONTEXT obj): " PROC_TRUE " if obj is a GtkPrintContext*", pl_bt);
+  Xg_define_procedure(GTK_IS_PRINT_OPERATION, gxg_GTK_IS_PRINT_OPERATION_w, 1, 0, 0, "(GTK_IS_PRINT_OPERATION obj): " PROC_TRUE " if obj is a GtkPrintOperation*", pl_bt);
+  Xg_define_procedure(GTK_IS_PRINT_SETTINGS, gxg_GTK_IS_PRINT_SETTINGS_w, 1, 0, 0, "(GTK_IS_PRINT_SETTINGS obj): " PROC_TRUE " if obj is a GtkPrintSettings*", pl_bt);
+  Xg_define_procedure(GTK_IS_TOOLTIP, gxg_GTK_IS_TOOLTIP_w, 1, 0, 0, "(GTK_IS_TOOLTIP obj): " PROC_TRUE " if obj is a GtkTooltip*", pl_bt);
 #if GTK_CHECK_VERSION(2, 18, 0)
-  Xg_define_procedure(GTK_IS_INFO_BAR, gxg_GTK_IS_INFO_BAR_w, 1, 0, 0,
-                      "(GTK_IS_INFO_BAR obj): " PROC_TRUE " if obj is a GTK_IS_INFO_BAR", pl_bt);
-  Xg_define_procedure(GTK_IS_ENTRY_BUFFER, gxg_GTK_IS_ENTRY_BUFFER_w, 1, 0, 0,
-                      "(GTK_IS_ENTRY_BUFFER obj): " PROC_TRUE " if obj is a GTK_IS_ENTRY_BUFFER", pl_bt);
+  Xg_define_procedure(GTK_IS_INFO_BAR, gxg_GTK_IS_INFO_BAR_w, 1, 0, 0, "(GTK_IS_INFO_BAR obj): " PROC_TRUE " if obj is a GtkInfoBar*", pl_bt);
+  Xg_define_procedure(GTK_IS_ENTRY_BUFFER, gxg_GTK_IS_ENTRY_BUFFER_w, 1, 0, 0, "(GTK_IS_ENTRY_BUFFER obj): " PROC_TRUE " if obj is a GtkEntryBuffer*", pl_bt);
 #endif
 
 #if GTK_CHECK_VERSION(2, 20, 0)
-  Xg_define_procedure(GTK_IS_SPINNER, gxg_GTK_IS_SPINNER_w, 1, 0, 0,
-                      "(GTK_IS_SPINNER obj): " PROC_TRUE " if obj is a GTK_IS_SPINNER", pl_bt);
-  Xg_define_procedure(GTK_IS_CELL_RENDERER_SPINNER, gxg_GTK_IS_CELL_RENDERER_SPINNER_w, 1, 0, 0,
-                      "(GTK_IS_CELL_RENDERER_SPINNER obj): " PROC_TRUE " if obj is a GTK_IS_CELL_RENDERER_SPINNER", pl_bt);
-  Xg_define_procedure(GTK_IS_TOOL_PALETTE, gxg_GTK_IS_TOOL_PALETTE_w, 1, 0, 0,
-                      "(GTK_IS_TOOL_PALETTE obj): " PROC_TRUE " if obj is a GTK_IS_TOOL_PALETTE", pl_bt);
-  Xg_define_procedure(GTK_IS_TOOL_ITEM_GROUP, gxg_GTK_IS_TOOL_ITEM_GROUP_w, 1, 0, 0,
-                      "(GTK_IS_TOOL_ITEM_GROUP obj): " PROC_TRUE " if obj is a GTK_IS_TOOL_ITEM_GROUP", pl_bt);
+  Xg_define_procedure(GTK_IS_SPINNER, gxg_GTK_IS_SPINNER_w, 1, 0, 0, "(GTK_IS_SPINNER obj): " PROC_TRUE " if obj is a GtkSpinner*", pl_bt);
+  Xg_define_procedure(GTK_IS_CELL_RENDERER_SPINNER, gxg_GTK_IS_CELL_RENDERER_SPINNER_w, 1, 0, 0, "(GTK_IS_CELL_RENDERER_SPINNER obj): " PROC_TRUE " if obj is a GtkCellRendererSpinner*", pl_bt);
+  Xg_define_procedure(GTK_IS_TOOL_PALETTE, gxg_GTK_IS_TOOL_PALETTE_w, 1, 0, 0, "(GTK_IS_TOOL_PALETTE obj): " PROC_TRUE " if obj is a GtkToolPalette*", pl_bt);
+  Xg_define_procedure(GTK_IS_TOOL_ITEM_GROUP, gxg_GTK_IS_TOOL_ITEM_GROUP_w, 1, 0, 0, "(GTK_IS_TOOL_ITEM_GROUP obj): " PROC_TRUE " if obj is a GtkToolItemGroup*", pl_bt);
 #endif
 
 #if GTK_CHECK_VERSION(3, 0, 0)
-  Xg_define_procedure(GTK_IS_COMBO_BOX_TEXT, gxg_GTK_IS_COMBO_BOX_TEXT_w, 1, 0, 0,
-                      "(GTK_IS_COMBO_BOX_TEXT obj): " PROC_TRUE " if obj is a GTK_IS_COMBO_BOX_TEXT", pl_bt);
-  Xg_define_procedure(GTK_IS_GRID, gxg_GTK_IS_GRID_w, 1, 0, 0,
-                      "(GTK_IS_GRID obj): " PROC_TRUE " if obj is a GTK_IS_GRID", pl_bt);
-  Xg_define_procedure(GTK_IS_SCROLLABLE, gxg_GTK_IS_SCROLLABLE_w, 1, 0, 0,
-                      "(GTK_IS_SCROLLABLE obj): " PROC_TRUE " if obj is a GTK_IS_SCROLLABLE", pl_bt);
-  Xg_define_procedure(GTK_IS_SWITCH, gxg_GTK_IS_SWITCH_w, 1, 0, 0,
-                      "(GTK_IS_SWITCH obj): " PROC_TRUE " if obj is a GTK_IS_SWITCH", pl_bt);
-  Xg_define_procedure(GTK_IS_ORIENTABLE, gxg_GTK_IS_ORIENTABLE_w, 1, 0, 0,
-                      "(GTK_IS_ORIENTABLE obj): " PROC_TRUE " if obj is a GTK_IS_ORIENTABLE", pl_bt);
-  Xg_define_procedure(GTK_IS_WINDOW_GROUP, gxg_GTK_IS_WINDOW_GROUP_w, 1, 0, 0,
-                      "(GTK_IS_WINDOW_GROUP obj): " PROC_TRUE " if obj is a GTK_IS_WINDOW_GROUP", pl_bt);
-  Xg_define_procedure(GTK_IS_TOOL_SHELL, gxg_GTK_IS_TOOL_SHELL_w, 1, 0, 0,
-                      "(GTK_IS_TOOL_SHELL obj): " PROC_TRUE " if obj is a GTK_IS_TOOL_SHELL", pl_bt);
+  Xg_define_procedure(GTK_IS_COMBO_BOX_TEXT, gxg_GTK_IS_COMBO_BOX_TEXT_w, 1, 0, 0, "(GTK_IS_COMBO_BOX_TEXT obj): " PROC_TRUE " if obj is a GtkComboBoxText*", pl_bt);
+  Xg_define_procedure(GTK_IS_GRID, gxg_GTK_IS_GRID_w, 1, 0, 0, "(GTK_IS_GRID obj): " PROC_TRUE " if obj is a GtkGrid*", pl_bt);
+  Xg_define_procedure(GTK_IS_SCROLLABLE, gxg_GTK_IS_SCROLLABLE_w, 1, 0, 0, "(GTK_IS_SCROLLABLE obj): " PROC_TRUE " if obj is a GtkScrollable*", pl_bt);
+  Xg_define_procedure(GTK_IS_SWITCH, gxg_GTK_IS_SWITCH_w, 1, 0, 0, "(GTK_IS_SWITCH obj): " PROC_TRUE " if obj is a GtkSwitch*", pl_bt);
+  Xg_define_procedure(GTK_IS_ORIENTABLE, gxg_GTK_IS_ORIENTABLE_w, 1, 0, 0, "(GTK_IS_ORIENTABLE obj): " PROC_TRUE " if obj is a GtkOrientable*", pl_bt);
+  Xg_define_procedure(GTK_IS_WINDOW_GROUP, gxg_GTK_IS_WINDOW_GROUP_w, 1, 0, 0, "(GTK_IS_WINDOW_GROUP obj): " PROC_TRUE " if obj is a GtkWindowGroup*", pl_bt);
+  Xg_define_procedure(GTK_IS_TOOL_SHELL, gxg_GTK_IS_TOOL_SHELL_w, 1, 0, 0, "(GTK_IS_TOOL_SHELL obj): " PROC_TRUE " if obj is a GtkToolShell*", pl_bt);
 #endif
 
 #if GTK_CHECK_VERSION(3, 2, 0)
-  Xg_define_procedure(GTK_IS_OVERLAY, gxg_GTK_IS_OVERLAY_w, 1, 0, 0,
-                      "(GTK_IS_OVERLAY obj): " PROC_TRUE " if obj is a GTK_IS_OVERLAY", pl_bt);
-  Xg_define_procedure(GTK_IS_FONT_CHOOSER, gxg_GTK_IS_FONT_CHOOSER_w, 1, 0, 0,
-                      "(GTK_IS_FONT_CHOOSER obj): " PROC_TRUE " if obj is a GTK_IS_FONT_CHOOSER", pl_bt);
-  Xg_define_procedure(GTK_IS_FONT_CHOOSER_DIALOG, gxg_GTK_IS_FONT_CHOOSER_DIALOG_w, 1, 0, 0,
-                      "(GTK_IS_FONT_CHOOSER_DIALOG obj): " PROC_TRUE " if obj is a GTK_IS_FONT_CHOOSER_DIALOG", pl_bt);
-  Xg_define_procedure(GTK_IS_FONT_CHOOSER_WIDGET, gxg_GTK_IS_FONT_CHOOSER_WIDGET_w, 1, 0, 0,
-                      "(GTK_IS_FONT_CHOOSER_WIDGET obj): " PROC_TRUE " if obj is a GTK_IS_FONT_CHOOSER_WIDGET", pl_bt);
+  Xg_define_procedure(GTK_IS_OVERLAY, gxg_GTK_IS_OVERLAY_w, 1, 0, 0, "(GTK_IS_OVERLAY obj): " PROC_TRUE " if obj is a GtkOverlay*", pl_bt);
+  Xg_define_procedure(GTK_IS_FONT_CHOOSER, gxg_GTK_IS_FONT_CHOOSER_w, 1, 0, 0, "(GTK_IS_FONT_CHOOSER obj): " PROC_TRUE " if obj is a GtkFontChooser*", pl_bt);
+  Xg_define_procedure(GTK_IS_FONT_CHOOSER_DIALOG, gxg_GTK_IS_FONT_CHOOSER_DIALOG_w, 1, 0, 0, "(GTK_IS_FONT_CHOOSER_DIALOG obj): " PROC_TRUE " if obj is a GtkFontChooserDialog*", pl_bt);
+  Xg_define_procedure(GTK_IS_FONT_CHOOSER_WIDGET, gxg_GTK_IS_FONT_CHOOSER_WIDGET_w, 1, 0, 0, "(GTK_IS_FONT_CHOOSER_WIDGET obj): " PROC_TRUE " if obj is a GtkFontChooserWidget*", pl_bt);
 #endif
 
 #if GTK_CHECK_VERSION(3, 4, 0)
-  Xg_define_procedure(GTK_IS_APPLICATION_WINDOW, gxg_GTK_IS_APPLICATION_WINDOW_w, 1, 0, 0,
-                      "(GTK_IS_APPLICATION_WINDOW obj): " PROC_TRUE " if obj is a GTK_IS_APPLICATION_WINDOW", pl_bt);
-  Xg_define_procedure(GTK_IS_COLOR_CHOOSER_DIALOG, gxg_GTK_IS_COLOR_CHOOSER_DIALOG_w, 1, 0, 0,
-                      "(GTK_IS_COLOR_CHOOSER_DIALOG obj): " PROC_TRUE " if obj is a GTK_IS_COLOR_CHOOSER_DIALOG", pl_bt);
-  Xg_define_procedure(GTK_IS_COLOR_CHOOSER_WIDGET, gxg_GTK_IS_COLOR_CHOOSER_WIDGET_w, 1, 0, 0,
-                      "(GTK_IS_COLOR_CHOOSER_WIDGET obj): " PROC_TRUE " if obj is a GTK_IS_COLOR_CHOOSER_WIDGET", pl_bt);
+  Xg_define_procedure(GTK_IS_APPLICATION_WINDOW, gxg_GTK_IS_APPLICATION_WINDOW_w, 1, 0, 0, "(GTK_IS_APPLICATION_WINDOW obj): " PROC_TRUE " if obj is a GtkApplicationWindow*", pl_bt);
+  Xg_define_procedure(GTK_IS_COLOR_CHOOSER_DIALOG, gxg_GTK_IS_COLOR_CHOOSER_DIALOG_w, 1, 0, 0, "(GTK_IS_COLOR_CHOOSER_DIALOG obj): " PROC_TRUE " if obj is a GtkColorChooserDialog*", pl_bt);
+  Xg_define_procedure(GTK_IS_COLOR_CHOOSER_WIDGET, gxg_GTK_IS_COLOR_CHOOSER_WIDGET_w, 1, 0, 0, "(GTK_IS_COLOR_CHOOSER_WIDGET obj): " PROC_TRUE " if obj is a GtkColorWidget*", pl_bt);
 #endif
 
 #if GTK_CHECK_VERSION(3, 6, 0)
-  Xg_define_procedure(GTK_IS_MENU_BUTTON, gxg_GTK_IS_MENU_BUTTON_w, 1, 0, 0,
-                      "(GTK_IS_MENU_BUTTON obj): " PROC_TRUE " if obj is a GTK_IS_MENU_BUTTON", pl_bt);
-  Xg_define_procedure(GTK_IS_SEARCH_ENTRY, gxg_GTK_IS_SEARCH_ENTRY_w, 1, 0, 0,
-                      "(GTK_IS_SEARCH_ENTRY obj): " PROC_TRUE " if obj is a GTK_IS_SEARCH_ENTRY", pl_bt);
-  Xg_define_procedure(GTK_IS_LEVEL_BAR, gxg_GTK_IS_LEVEL_BAR_w, 1, 0, 0,
-                      "(GTK_IS_LEVEL_BAR obj): " PROC_TRUE " if obj is a GTK_IS_LEVEL_BAR", pl_bt);
+  Xg_define_procedure(GTK_IS_MENU_BUTTON, gxg_GTK_IS_MENU_BUTTON_w, 1, 0, 0, "(GTK_IS_MENU_BUTTON obj): " PROC_TRUE " if obj is a GtkMenuButton*", pl_bt);
+  Xg_define_procedure(GTK_IS_SEARCH_ENTRY, gxg_GTK_IS_SEARCH_ENTRY_w, 1, 0, 0, "(GTK_IS_SEARCH_ENTRY obj): " PROC_TRUE " if obj is a GtkWidget*", pl_bt);
+  Xg_define_procedure(GTK_IS_LEVEL_BAR, gxg_GTK_IS_LEVEL_BAR_w, 1, 0, 0, "(GTK_IS_LEVEL_BAR obj): " PROC_TRUE " if obj is a GtkLevelBar*", pl_bt);
 #endif
 
 #if GTK_CHECK_VERSION(3, 10, 0)
-  Xg_define_procedure(GTK_IS_PLACES_SIDEBAR, gxg_GTK_IS_PLACES_SIDEBAR_w, 1, 0, 0,
-                      "(GTK_IS_PLACES_SIDEBAR obj): " PROC_TRUE " if obj is a GTK_IS_PLACES_SIDEBAR", pl_bt);
-  Xg_define_procedure(GTK_IS_STACK_SWITCHER, gxg_GTK_IS_STACK_SWITCHER_w, 1, 0, 0,
-                      "(GTK_IS_STACK_SWITCHER obj): " PROC_TRUE " if obj is a GTK_IS_STACK_SWITCHER", pl_bt);
-  Xg_define_procedure(GTK_IS_STACK, gxg_GTK_IS_STACK_w, 1, 0, 0,
-                      "(GTK_IS_STACK obj): " PROC_TRUE " if obj is a GTK_IS_STACK", pl_bt);
-  Xg_define_procedure(GTK_IS_REVEALER, gxg_GTK_IS_REVEALER_w, 1, 0, 0,
-                      "(GTK_IS_REVEALER obj): " PROC_TRUE " if obj is a GTK_IS_REVEALER", pl_bt);
-  Xg_define_procedure(GTK_IS_HEADER_BAR, gxg_GTK_IS_HEADER_BAR_w, 1, 0, 0,
-                      "(GTK_IS_HEADER_BAR obj): " PROC_TRUE " if obj is a GTK_IS_HEADER_BAR", pl_bt);
-  Xg_define_procedure(GTK_IS_LIST_BOX, gxg_GTK_IS_LIST_BOX_w, 1, 0, 0,
-                      "(GTK_IS_LIST_BOX obj): " PROC_TRUE " if obj is a GTK_IS_LIST_BOX", pl_bt);
-  Xg_define_procedure(GTK_IS_LIST_BOX_ROW, gxg_GTK_IS_LIST_BOX_ROW_w, 1, 0, 0,
-                      "(GTK_IS_LIST_BOX_ROW obj): " PROC_TRUE " if obj is a GTK_IS_LIST_BOX_ROW", pl_bt);
-  Xg_define_procedure(GTK_IS_SEARCH_BAR, gxg_GTK_IS_SEARCH_BAR_w, 1, 0, 0,
-                      "(GTK_IS_SEARCH_BAR obj): " PROC_TRUE " if obj is a GTK_IS_SEARCH_BAR", pl_bt);
+  Xg_define_procedure(GTK_IS_PLACES_SIDEBAR, gxg_GTK_IS_PLACES_SIDEBAR_w, 1, 0, 0, "(GTK_IS_PLACES_SIDEBAR obj): " PROC_TRUE " if obj is a GtkPlacesSidebar*", pl_bt);
+  Xg_define_procedure(GTK_IS_STACK_SWITCHER, gxg_GTK_IS_STACK_SWITCHER_w, 1, 0, 0, "(GTK_IS_STACK_SWITCHER obj): " PROC_TRUE " if obj is a GtkStackSwitcher*", pl_bt);
+  Xg_define_procedure(GTK_IS_STACK, gxg_GTK_IS_STACK_w, 1, 0, 0, "(GTK_IS_STACK obj): " PROC_TRUE " if obj is a GtkStack*", pl_bt);
+  Xg_define_procedure(GTK_IS_REVEALER, gxg_GTK_IS_REVEALER_w, 1, 0, 0, "(GTK_IS_REVEALER obj): " PROC_TRUE " if obj is a GtkRevealer*", pl_bt);
+  Xg_define_procedure(GTK_IS_HEADER_BAR, gxg_GTK_IS_HEADER_BAR_w, 1, 0, 0, "(GTK_IS_HEADER_BAR obj): " PROC_TRUE " if obj is a GtkHeaderBar*", pl_bt);
+  Xg_define_procedure(GTK_IS_LIST_BOX, gxg_GTK_IS_LIST_BOX_w, 1, 0, 0, "(GTK_IS_LIST_BOX obj): " PROC_TRUE " if obj is a GtkListBox*", pl_bt);
+  Xg_define_procedure(GTK_IS_LIST_BOX_ROW, gxg_GTK_IS_LIST_BOX_ROW_w, 1, 0, 0, "(GTK_IS_LIST_BOX_ROW obj): " PROC_TRUE " if obj is a GtkListBoxRow*", pl_bt);
+  Xg_define_procedure(GTK_IS_SEARCH_BAR, gxg_GTK_IS_SEARCH_BAR_w, 1, 0, 0, "(GTK_IS_SEARCH_BAR obj): " PROC_TRUE " if obj is a GtkSearchBar*", pl_bt);
 #endif
 
 #if GTK_CHECK_VERSION(3, 12, 0)
-  Xg_define_procedure(GTK_IS_FLOW_BOX, gxg_GTK_IS_FLOW_BOX_w, 1, 0, 0,
-                      "(GTK_IS_FLOW_BOX obj): " PROC_TRUE " if obj is a GTK_IS_FLOW_BOX", pl_bt);
-  Xg_define_procedure(GTK_IS_FLOW_BOX_CHILD, gxg_GTK_IS_FLOW_BOX_CHILD_w, 1, 0, 0,
-                      "(GTK_IS_FLOW_BOX_CHILD obj): " PROC_TRUE " if obj is a GTK_IS_FLOW_BOX_CHILD", pl_bt);
-  Xg_define_procedure(GTK_IS_ACTION_BAR, gxg_GTK_IS_ACTION_BAR_w, 1, 0, 0,
-                      "(GTK_IS_ACTION_BAR obj): " PROC_TRUE " if obj is a GTK_IS_ACTION_BAR", pl_bt);
-  Xg_define_procedure(GTK_IS_POPOVER, gxg_GTK_IS_POPOVER_w, 1, 0, 0,
-                      "(GTK_IS_POPOVER obj): " PROC_TRUE " if obj is a GTK_IS_POPOVER", pl_bt);
+  Xg_define_procedure(GTK_IS_FLOW_BOX, gxg_GTK_IS_FLOW_BOX_w, 1, 0, 0, "(GTK_IS_FLOW_BOX obj): " PROC_TRUE " if obj is a GtkFlowBox*", pl_bt);
+  Xg_define_procedure(GTK_IS_FLOW_BOX_CHILD, gxg_GTK_IS_FLOW_BOX_CHILD_w, 1, 0, 0, "(GTK_IS_FLOW_BOX_CHILD obj): " PROC_TRUE " if obj is a GtkFlowBoxChild*", pl_bt);
+  Xg_define_procedure(GTK_IS_ACTION_BAR, gxg_GTK_IS_ACTION_BAR_w, 1, 0, 0, "(GTK_IS_ACTION_BAR obj): " PROC_TRUE " if obj is a GtkActionBar*", pl_bt);
+  Xg_define_procedure(GTK_IS_POPOVER, gxg_GTK_IS_POPOVER_w, 1, 0, 0, "(GTK_IS_POPOVER obj): " PROC_TRUE " if obj is a GtkPopover*", pl_bt);
 #endif
 
 #if GTK_CHECK_VERSION(3, 14, 0)
-  Xg_define_procedure(GTK_IS_GESTURE, gxg_GTK_IS_GESTURE_w, 1, 0, 0,
-                      "(GTK_IS_GESTURE obj): " PROC_TRUE " if obj is a GTK_IS_GESTURE", pl_bt);
-  Xg_define_procedure(GTK_IS_GESTURE_DRAG, gxg_GTK_IS_GESTURE_DRAG_w, 1, 0, 0,
-                      "(GTK_IS_GESTURE_DRAG obj): " PROC_TRUE " if obj is a GTK_IS_GESTURE_DRAG", pl_bt);
-  Xg_define_procedure(GTK_IS_GESTURE_LONG_PRESS, gxg_GTK_IS_GESTURE_LONG_PRESS_w, 1, 0, 0,
-                      "(GTK_IS_GESTURE_LONG_PRESS obj): " PROC_TRUE " if obj is a GTK_IS_GESTURE_LONG_PRESS", pl_bt);
-  Xg_define_procedure(GTK_IS_GESTURE_ZOOM, gxg_GTK_IS_GESTURE_ZOOM_w, 1, 0, 0,
-                      "(GTK_IS_GESTURE_ZOOM obj): " PROC_TRUE " if obj is a GTK_IS_GESTURE_ZOOM", pl_bt);
-  Xg_define_procedure(GTK_IS_GESTURE_SWIPE, gxg_GTK_IS_GESTURE_SWIPE_w, 1, 0, 0,
-                      "(GTK_IS_GESTURE_SWIPE obj): " PROC_TRUE " if obj is a GTK_IS_GESTURE_SWIPE", pl_bt);
-  Xg_define_procedure(GTK_IS_GESTURE_SINGLE, gxg_GTK_IS_GESTURE_SINGLE_w, 1, 0, 0,
-                      "(GTK_IS_GESTURE_SINGLE obj): " PROC_TRUE " if obj is a GTK_IS_GESTURE_SINGLE", pl_bt);
-  Xg_define_procedure(GTK_IS_GESTURE_PAN, gxg_GTK_IS_GESTURE_PAN_w, 1, 0, 0,
-                      "(GTK_IS_GESTURE_PAN obj): " PROC_TRUE " if obj is a GTK_IS_GESTURE_PAN", pl_bt);
-  Xg_define_procedure(GTK_IS_GESTURE_MULTI_PRESS, gxg_GTK_IS_GESTURE_MULTI_PRESS_w, 1, 0, 0,
-                      "(GTK_IS_GESTURE_MULTI_PRESS obj): " PROC_TRUE " if obj is a GTK_IS_GESTURE_MULTI_PRESS", pl_bt);
-  Xg_define_procedure(GTK_IS_GESTURE_ROTATE, gxg_GTK_IS_GESTURE_ROTATE_w, 1, 0, 0,
-                      "(GTK_IS_GESTURE_ROTATE obj): " PROC_TRUE " if obj is a GTK_IS_GESTURE_ROTATE", pl_bt);
-  Xg_define_procedure(GTK_IS_EVENT_CONTROLLER, gxg_GTK_IS_EVENT_CONTROLLER_w, 1, 0, 0,
-                      "(GTK_IS_EVENT_CONTROLLER obj): " PROC_TRUE " if obj is a GTK_IS_EVENT_CONTROLLER", pl_bt);
+  Xg_define_procedure(GTK_IS_GESTURE, gxg_GTK_IS_GESTURE_w, 1, 0, 0, "(GTK_IS_GESTURE obj): " PROC_TRUE " if obj is a GtkGesture*", pl_bt);
+  Xg_define_procedure(GTK_IS_GESTURE_DRAG, gxg_GTK_IS_GESTURE_DRAG_w, 1, 0, 0, "(GTK_IS_GESTURE_DRAG obj): " PROC_TRUE " if obj is a GtkGestureDrag*", pl_bt);
+  Xg_define_procedure(GTK_IS_GESTURE_LONG_PRESS, gxg_GTK_IS_GESTURE_LONG_PRESS_w, 1, 0, 0, "(GTK_IS_GESTURE_LONG_PRESS obj): " PROC_TRUE " if obj is a GtkGestureLongPress*", pl_bt);
+  Xg_define_procedure(GTK_IS_GESTURE_ZOOM, gxg_GTK_IS_GESTURE_ZOOM_w, 1, 0, 0, "(GTK_IS_GESTURE_ZOOM obj): " PROC_TRUE " if obj is a GtkGestureZoom*", pl_bt);
+  Xg_define_procedure(GTK_IS_GESTURE_SWIPE, gxg_GTK_IS_GESTURE_SWIPE_w, 1, 0, 0, "(GTK_IS_GESTURE_SWIPE obj): " PROC_TRUE " if obj is a GtkGestureSwipe*", pl_bt);
+  Xg_define_procedure(GTK_IS_GESTURE_SINGLE, gxg_GTK_IS_GESTURE_SINGLE_w, 1, 0, 0, "(GTK_IS_GESTURE_SINGLE obj): " PROC_TRUE " if obj is a GtkGestureSingle*", pl_bt);
+  Xg_define_procedure(GTK_IS_GESTURE_PAN, gxg_GTK_IS_GESTURE_PAN_w, 1, 0, 0, "(GTK_IS_GESTURE_PAN obj): " PROC_TRUE " if obj is a GtkGesturePan*", pl_bt);
+  Xg_define_procedure(GTK_IS_GESTURE_MULTI_PRESS, gxg_GTK_IS_GESTURE_MULTI_PRESS_w, 1, 0, 0, "(GTK_IS_GESTURE_MULTI_PRESS obj): " PROC_TRUE " if obj is a GtkGestureMultiPress*", pl_bt);
+  Xg_define_procedure(GTK_IS_GESTURE_ROTATE, gxg_GTK_IS_GESTURE_ROTATE_w, 1, 0, 0, "(GTK_IS_GESTURE_ROTATE obj): " PROC_TRUE " if obj is a GtkGestureRotate*", pl_bt);
+  Xg_define_procedure(GTK_IS_EVENT_CONTROLLER, gxg_GTK_IS_EVENT_CONTROLLER_w, 1, 0, 0, "(GTK_IS_EVENT_CONTROLLER obj): " PROC_TRUE " if obj is a GtkEventController*", pl_bt);
 #endif
 
 #if GTK_CHECK_VERSION(3, 16, 0)
-  Xg_define_procedure(GTK_IS_GL_AREA, gxg_GTK_IS_GL_AREA_w, 1, 0, 0,
-                      "(GTK_IS_GL_AREA obj): " PROC_TRUE " if obj is a GTK_IS_GL_AREA", pl_bt);
-  Xg_define_procedure(GDK_IS_GL_CONTEXT, gxg_GDK_IS_GL_CONTEXT_w, 1, 0, 0,
-                      "(GDK_IS_GL_CONTEXT obj): " PROC_TRUE " if obj is a GDK_IS_GL_CONTEXT", pl_bt);
-  Xg_define_procedure(GTK_IS_POPOVER_MENU, gxg_GTK_IS_POPOVER_MENU_w, 1, 0, 0,
-                      "(GTK_IS_POPOVER_MENU obj): " PROC_TRUE " if obj is a GTK_IS_POPOVER_MENU", pl_bt);
-  Xg_define_procedure(GTK_IS_STACK_SIDEBAR, gxg_GTK_IS_STACK_SIDEBAR_w, 1, 0, 0,
-                      "(GTK_IS_STACK_SIDEBAR obj): " PROC_TRUE " if obj is a GTK_IS_STACK_SIDEBAR", pl_bt);
+  Xg_define_procedure(GTK_IS_GL_AREA, gxg_GTK_IS_GL_AREA_w, 1, 0, 0, "(GTK_IS_GL_AREA obj): " PROC_TRUE " if obj is a GtkGLArea*", pl_bt);
+  Xg_define_procedure(GDK_IS_GL_CONTEXT, gxg_GDK_IS_GL_CONTEXT_w, 1, 0, 0, "(GDK_IS_GL_CONTEXT obj): " PROC_TRUE " if obj is a GdkGLContext*", pl_bt);
+  Xg_define_procedure(GTK_IS_POPOVER_MENU, gxg_GTK_IS_POPOVER_MENU_w, 1, 0, 0, "(GTK_IS_POPOVER_MENU obj): " PROC_TRUE " if obj is a GtkPopoverMenu*", pl_bt);
+  Xg_define_procedure(GTK_IS_STACK_SIDEBAR, gxg_GTK_IS_STACK_SIDEBAR_w, 1, 0, 0, "(GTK_IS_STACK_SIDEBAR obj): " PROC_TRUE " if obj is a GtkStackSidebar*", pl_bt);
 #endif
 
 #if GTK_CHECK_VERSION(3, 20, 0)
-  Xg_define_procedure(GDK_IS_SEAT, gxg_GDK_IS_SEAT_w, 1, 0, 0,
-                      "(GDK_IS_SEAT obj): " PROC_TRUE " if obj is a GDK_IS_SEAT", pl_bt);
+  Xg_define_procedure(GDK_IS_SEAT, gxg_GDK_IS_SEAT_w, 1, 0, 0, "(GDK_IS_SEAT obj): " PROC_TRUE " if obj is a GdkSeat*", pl_bt);
 #endif
 
 #if GTK_CHECK_VERSION(3, 22, 0)
-  Xg_define_procedure(GDK_IS_DEVICE_TOOL, gxg_GDK_IS_DEVICE_TOOL_w, 1, 0, 0,
-                      "(GDK_IS_DEVICE_TOOL obj): " PROC_TRUE " if obj is a GDK_IS_DEVICE_TOOL", pl_bt);
-  Xg_define_procedure(GDK_IS_MONITOR, gxg_GDK_IS_MONITOR_w, 1, 0, 0,
-                      "(GDK_IS_MONITOR obj): " PROC_TRUE " if obj is a GDK_IS_MONITOR", pl_bt);
-  Xg_define_procedure(GDK_IS_DRAWING_CONTEXT, gxg_GDK_IS_DRAWING_CONTEXT_w, 1, 0, 0,
-                      "(GDK_IS_DRAWING_CONTEXT obj): " PROC_TRUE " if obj is a GDK_IS_DRAWING_CONTEXT", pl_bt);
-  Xg_define_procedure(GDK_IS_DEVICE_PAD, gxg_GDK_IS_DEVICE_PAD_w, 1, 0, 0,
-                      "(GDK_IS_DEVICE_PAD obj): " PROC_TRUE " if obj is a GDK_IS_DEVICE_PAD", pl_bt);
-  Xg_define_procedure(GTK_IS_PAD_CONTROLLER, gxg_GTK_IS_PAD_CONTROLLER_w, 1, 0, 0,
-                      "(GTK_IS_PAD_CONTROLLER obj): " PROC_TRUE " if obj is a GTK_IS_PAD_CONTROLLER", pl_bt);
-  Xg_define_procedure(GTK_IS_SHORTCUT_LABEL, gxg_GTK_IS_SHORTCUT_LABEL_w, 1, 0, 0,
-                      "(GTK_IS_SHORTCUT_LABEL obj): " PROC_TRUE " if obj is a GTK_IS_SHORTCUT_LABEL", pl_bt);
+  Xg_define_procedure(GDK_IS_DEVICE_TOOL, gxg_GDK_IS_DEVICE_TOOL_w, 1, 0, 0, "(GDK_IS_DEVICE_TOOL obj): " PROC_TRUE " if obj is a GdkDeviceTool*", pl_bt);
+  Xg_define_procedure(GDK_IS_MONITOR, gxg_GDK_IS_MONITOR_w, 1, 0, 0, "(GDK_IS_MONITOR obj): " PROC_TRUE " if obj is a GdkMonitor*", pl_bt);
+  Xg_define_procedure(GDK_IS_DRAWING_CONTEXT, gxg_GDK_IS_DRAWING_CONTEXT_w, 1, 0, 0, "(GDK_IS_DRAWING_CONTEXT obj): " PROC_TRUE " if obj is a GdkDrawingContext*", pl_bt);
+  Xg_define_procedure(GDK_IS_DEVICE_PAD, gxg_GDK_IS_DEVICE_PAD_w, 1, 0, 0, "(GDK_IS_DEVICE_PAD obj): " PROC_TRUE " if obj is a GdkDevicePad*", pl_bt);
+  Xg_define_procedure(GTK_IS_PAD_CONTROLLER, gxg_GTK_IS_PAD_CONTROLLER_w, 1, 0, 0, "(GTK_IS_PAD_CONTROLLER obj): " PROC_TRUE " if obj is a GtkPadController*", pl_bt);
+  Xg_define_procedure(GTK_IS_SHORTCUT_LABEL, gxg_GTK_IS_SHORTCUT_LABEL_w, 1, 0, 0, "(GTK_IS_SHORTCUT_LABEL obj): " PROC_TRUE " if obj is a GtkShortcutLabel*", pl_bt);
+#endif
+
+#if GTK_CHECK_VERSION(3, 99, 0)
+  Xg_define_procedure(GTK_IS_CENTER_BOX, gxg_GTK_IS_CENTER_BOX_w, 1, 0, 0, "(GTK_IS_CENTER_BOX obj): " PROC_TRUE " if obj is a GtkCenterBox*", pl_bt);
 #endif
 
 #if GTK_CHECK_VERSION(3, 0, 0)
@@ -45345,6 +45186,10 @@ static void define_integers(void)
 #endif
 
 #if GTK_CHECK_VERSION(3, 14, 0)
+  define_integer(GTK_PHASE_NONE);
+  define_integer(GTK_PHASE_CAPTURE);
+  define_integer(GTK_PHASE_BUBBLE);
+  define_integer(GTK_PHASE_TARGET);
   define_integer(GTK_TEXT_VIEW_LAYER_BELOW);
   define_integer(GTK_TEXT_VIEW_LAYER_ABOVE);
 #endif
@@ -45654,10 +45499,10 @@ static void define_atoms(void)
 
 static void define_symbols(void)
 {
+  xg_GtkCenterBox__symbol = C_string_to_Xen_symbol("GtkCenterBox_");
   xg_GtkCheckButton__symbol = C_string_to_Xen_symbol("GtkCheckButton_");
   xg_GdkDrawContext__symbol = C_string_to_Xen_symbol("GdkDrawContext_");
   xg_GtkDrawingAreaDrawFunc_symbol = C_string_to_Xen_symbol("GtkDrawingAreaDrawFunc");
-  xg_const_symbol = C_string_to_Xen_symbol("const");
   xg_GtkShortcutLabel__symbol = C_string_to_Xen_symbol("GtkShortcutLabel_");
   xg_GtkPadActionType_symbol = C_string_to_Xen_symbol("GtkPadActionType");
   xg_GtkPadActionEntry__symbol = C_string_to_Xen_symbol("GtkPadActionEntry_");
@@ -45807,7 +45652,6 @@ static void define_symbols(void)
   xg_GtkPaperSize__symbol = C_string_to_Xen_symbol("GtkPaperSize_");
   xg_GtkPageOrientation_symbol = C_string_to_Xen_symbol("GtkPageOrientation");
   xg_GtkPrintSettingsFunc_symbol = C_string_to_Xen_symbol("GtkPrintSettingsFunc");
-  xg_GtkPrintOperationPreview__symbol = C_string_to_Xen_symbol("GtkPrintOperationPreview_");
   xg_GtkPageSetupDoneFunc_symbol = C_string_to_Xen_symbol("GtkPageSetupDoneFunc");
   xg_GtkPrintStatus_symbol = C_string_to_Xen_symbol("GtkPrintStatus");
   xg_GtkPrintOperationAction_symbol = C_string_to_Xen_symbol("GtkPrintOperationAction");
@@ -46234,7 +46078,7 @@ static void define_strings(void)
 /* -------------------------------- lint -------------------------------- */
 
 #if HAVE_SCHEME
-typedef struct {const char *name, *type; long long int value;} enummer_t;
+typedef struct {const char *name, *type; int64_t value;} enummer_t;
 static enummer_t enum_info[] = {
 #if GTK_CHECK_VERSION(2, 0, 0)
         {"G_NORMALIZE_DEFAULT", "GNormalizeMode", G_NORMALIZE_DEFAULT},
@@ -47147,6 +46991,10 @@ static enummer_t enum_info[] = {
         {"GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN", "GtkStackTransitionType", GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN},
 #endif
 #if GTK_CHECK_VERSION(3, 14, 0)
+        {"GTK_PHASE_NONE", "GtkPropagationPhase", GTK_PHASE_NONE},
+        {"GTK_PHASE_CAPTURE", "GtkPropagationPhase", GTK_PHASE_CAPTURE},
+        {"GTK_PHASE_BUBBLE", "GtkPropagationPhase", GTK_PHASE_BUBBLE},
+        {"GTK_PHASE_TARGET", "GtkPropagationPhase", GTK_PHASE_TARGET},
         {"GTK_TEXT_VIEW_LAYER_BELOW", "GtkTextViewLayer", GTK_TEXT_VIEW_LAYER_BELOW},
         {"GTK_TEXT_VIEW_LAYER_ABOVE", "GtkTextViewLayer", GTK_TEXT_VIEW_LAYER_ABOVE},
 #endif
@@ -47314,10 +47162,10 @@ static enummer_t enum_info[] = {
 #endif
         {NULL, NULL, 0}};
 
-static s7_pointer enum_value_to_name(s7_scheme *sc, long long int val, const char *type) 
+static s7_pointer enum_value_to_name(s7_scheme *sc, int64_t val, const char *type) 
 { 
   int k; 
-  long long int range_min = 0, range_max = 0; 
+  int64_t range_min = 0, range_max = 0; 
   bool range_set = false; 
   for (k = 0; ; k++) 
     { 
@@ -47347,12 +47195,12 @@ static s7_pointer enum_value_to_name(s7_scheme *sc, long long int val, const cha
       char *range_string; 
       s7_pointer str; 
       range_string = (char *)malloc(256 * sizeof(char)); 
-      snprintf(range_string, 256, "between %lld and %lld", range_min, range_max); 
+      snprintf(range_string, 256, "between %" PRId64 " and %" PRId64, range_min, range_max); 
       str = s7_make_string(sc, range_string); 
       free(range_string); 
       return(str);                            /* ... value should be between <min> and <max> */ 
     } 
-  return(s_integer); 
+  return(s7_make_symbol(sc, "integer?")); 
 }
 
 static s7_pointer g_gtk_enum_t(s7_scheme *sc, s7_pointer args) 
@@ -47366,7 +47214,7 @@ static s7_pointer g_gtk_enum_t(s7_scheme *sc, s7_pointer args)
   arg = s7_list_ref(sc, form, arg_number); 
   if ((!s7_is_integer(arg)) && 
       (!s7_is_symbol(arg))) 
-    return(s_integer); 
+    return(s7_make_symbol(sc, "integer?")); 
   func = s7_car(form); 
   doc_string = s7_procedure_documentation(sc, func); 
   p = strchr(doc_string, (int)'('); 
@@ -47408,18 +47256,18 @@ static s7_pointer g_gtk_enum_t(s7_scheme *sc, s7_pointer args)
 			  return(enum_value_to_name(sc, et.value, type)); /* here the type is wrong, so try to find the correct name */ 
 			} 
 		    } 
-		  return(s_integer);                                      /* here we got no matches, so return 'integer? */ 
+		  return(s7_make_symbol(sc, "integer?"));               /* here we got no matches, so return 'integer? */ 
 		} 
 	      return(enum_value_to_name(sc, s7_integer(arg), type));      /* here arg is an integer */ 
 	    } 
 	} 
     } 
-  return(s_integer); 
+  return(s7_make_symbol(sc, "integer?")); 
 }
 
 static void define_lint(void)
 {
-  s7_define_typed_function(s7, "gtk_enum_t?", g_gtk_enum_t, 2, 0, 0, "lint helper", pl_bti);
+  s7_define_safe_function(s7, "gtk_enum_t?", g_gtk_enum_t, 2, 0, 0, "lint helper");
 }
 #endif
 
@@ -47428,11 +47276,19 @@ static void define_lint(void)
 
 static bool xg_already_inited = false;
 
+#if HAVE_SCHEME
+void Init_libxg(s7_scheme *sc);
+void Init_libxg(s7_scheme *sc)
+#else
 void Init_libxg(void);
 void Init_libxg(void)
+#endif
 {
   if (!xg_already_inited)
     {
+ #if HAVE_SCHEME
+      s7_xen_initialize(sc);
+ #endif
       define_symbols();
       define_xm_obj();
       define_integers();
@@ -47454,7 +47310,7 @@ void Init_libxg(void)
           Xen_provide_feature("gtk2");
         #endif
       #endif
-      Xen_define("xg-version", C_string_to_Xen_string("25-Jun-17"));
+      Xen_define("xg-version", C_string_to_Xen_string("01-Aug-17"));
       xg_already_inited = true;
 #if HAVE_SCHEME
 #if USE_SND
diff --git a/xm.c b/xm.c
index dbd149f..a9e999f 100644
--- a/xm.c
+++ b/xm.c
@@ -13,10 +13,12 @@
 #define HAVE_XP 0
 
 
-#define XM_DATE "27-Dec-16"
+#define XM_DATE "27-Jul-17"
 
 /* HISTORY: 
  *
+ *   27-Jul-17: updated Init_libxm to pass s7 pointer in scheme.
+ *   --------
  *   27-Dec-16: changed XmNuserData type (in XtGetValues) to long long int.
  *   --------
  *   29-Oct-15: removed ->string.
@@ -42,7 +44,7 @@
  *   16-Oct:    removed Gauche support.
  *   1-Oct:     XtAppAddInput condition arg is a mess.
  *   10-Sep:    XtAppAddInput condition arg is an int.
- *   1-Sep-08:  S7 support.
+ *   1-Sep-08:  s7 support.
  *   --------
  *   26-Aug:    removed WITH_GTK_AND_X11 switch.
  *   21-Apr:    Gauche additions.
@@ -16097,7 +16099,7 @@ static XtActionsRec *make_action_rec(int len, Xen larg2)
   Xen arg2;
   arg2 = Xen_copy_arg(larg2);
   gcloc = xm_protect(arg2);
-  act = (XtActionsRec *)calloc((unsigned int)len, sizeof(XtActionsRec));
+  act = (XtActionsRec *)calloc((size_t)len, sizeof(XtActionsRec));
   for (i = 0; i < len; i++, arg2 = Xen_cdr(arg2))
     {
       Xen pair;
@@ -25561,8 +25563,13 @@ static void define_Atoms(void)
 
 static bool xm_already_inited = false;
 
+#if HAVE_SCHEME
+void Init_libxm(s7_scheme *sc);
+void Init_libxm(s7_scheme *sc)
+#else
 void Init_libxm(void);
 void Init_libxm(void)
+#endif
 {
   /* perhaps nicer here to check the features list for 'xm */
   if (!xm_already_inited)
@@ -25603,7 +25610,6 @@ void Init_libxm(void)
       xm_already_inited = true;
     }
 }
-
 #else
 void Init_libxm(void);
 void Init_libxm(void)

-- 
snd packaging



More information about the pkg-multimedia-commits mailing list