+extern SCM scm_object_address (SCM obj);
+extern SCM scm_unhash_name (SCM name);
+extern SCM scm_gc_stats (void);
+extern void scm_gc_start (const char *what);
+extern void scm_gc_end (void);
+extern SCM scm_gc (void);
+extern void scm_gc_for_alloc (struct scm_freelist_t *freelist);
+#ifdef GUILE_NEW_GC_SCHEME
+extern SCM scm_gc_for_newcell (struct scm_freelist_t *master, SCM *freelist);
+#if 0
+extern void scm_alloc_cluster (struct scm_freelist_t *master);
+#endif
+#else
+extern SCM scm_gc_for_newcell (struct scm_freelist_t *freelist);
+#endif
+extern void scm_igc (const char *what);
+extern void scm_gc_mark (SCM p);
+extern void scm_mark_locations (SCM_STACKITEM x[], scm_sizet n);
+extern int scm_cellp (SCM value);
+extern void scm_gc_sweep (void);
+extern void * scm_must_malloc (scm_sizet len, const char *what);
+extern void * scm_must_realloc (void *where,
+ scm_sizet olen, scm_sizet len,
+ const char *what);
+extern void scm_done_malloc (long size);
+extern void scm_must_free (void *obj);
+extern void scm_remember (SCM * ptr);
+extern SCM scm_return_first (SCM elt, ...);
+extern int scm_return_first_int (int x, ...);
+extern SCM scm_permanent_object (SCM obj);
+extern SCM scm_protect_object (SCM obj);
+extern SCM scm_unprotect_object (SCM obj);
+#ifdef GUILE_NEW_GC_SCHEME
+extern int scm_init_storage (scm_sizet init_heap_size, int trig,
+ scm_sizet init_heap2_size, int trig2,
+ scm_sizet max_segment_size);
+#else
+extern int scm_init_storage (scm_sizet init_heap_size,
+ scm_sizet init_heap2_size);
+#endif
+extern void scm_init_gc (void);