/*===========================================================================*/
/*   (Llib/weakhash.scm)                                                     */
/*   Bigloo (4.5b)                                                           */
/*   Inria -- Sophia Antipolis (c)       Fri Dec 22 05:17:06 PM CET 2023     */
/*===========================================================================*/
/* COMPILATION: (/home/serrano/prgm/project/bigloo/bigloo/bin/bigloo -ldopt -L/home/serrano/prgm/project/bigloo/bigloo/libbacktrace/home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b  -srfi enable-gmp -srfi bigloo-unsafe -O3 -fcfa-arithmetic -q -lib-dir /home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b -rm -copt -w -lib-dir /home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b -mklib -cc gcc -fsharing -q -no-hello -unsafe -safee -O4 -stdc -c Llib/weakhash.scm -indent -o objs/obj_u/Llib/weakhash.c) */
/* GC selection */
#define THE_GC BOEHM_GC

/* unsafe mode */
#define BIGLOO_UNSAFE 1

/* traces mode */
#define BIGLOO_TRACE 0

/* standard Bigloo include */
#include <bigloo.h>

#ifdef __cplusplus
extern "C"
{
#endif
#ifndef BGL_MODULE_TYPE_DEFINITIONS
#define BGL_MODULE_TYPE_DEFINITIONS
#ifndef BGL___WEAKHASH_TYPE_DEFINITIONS
#define BGL___WEAKHASH_TYPE_DEFINITIONS
#endif													// BGL___WEAKHASH_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	BGL_EXPORTED_DECL obj_t BGl_weakzd2hashtablezd2putz12z12zz__weakhashz00(obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_weakzd2hashtablezd2getz00zz__weakhashz00(obj_t,
		obj_t);
	static obj_t BGl_z62zc3z04anonymousza31345ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_z62zc3z04anonymousza31418ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_weakzd2hashtablezd2forzd2eachzd2zz__weakhashz00(obj_t, obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2forzd2eachzb0zz__weakhashz00(obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_weakzd2hashtablezd2keyzd2listzd2zz__weakhashz00(obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2keyzd2listzb0zz__weakhashz00(obj_t,
		obj_t);
	static obj_t BGl_z62zc3z04anonymousza31532ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zz__weakhashz00 = BUNSPEC;
	static obj_t BGl_traversezd2bucketszd2zz__weakhashz00(obj_t, obj_t, long,
		obj_t);
	static obj_t BGl_z62zc3z04anonymousza31428ze3ze5zz__weakhashz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_weakzd2hashtablezd2updatez12z12zz__weakhashz00(obj_t, obj_t, obj_t,
		obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2getz62zz__weakhashz00(obj_t, obj_t,
		obj_t);
	extern obj_t BGl_typezd2errorzd2zz__errorz00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zz__weakhashz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__threadz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__bexitz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__hashz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__paramz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	static obj_t BGl_removez00zz__weakhashz00 = BUNSPEC;
	extern long BGl_hashtablezd2siza7ez75zz__hashz00(obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2clearz12z70zz__weakhashz00(obj_t,
		obj_t);
	static obj_t BGl_weakzd2oldzd2hashtablezd2addz12zc0zz__weakhashz00(obj_t,
		obj_t, obj_t, obj_t, obj_t);
	static bool_t BGl_weakzd2oldzd2hashtablezd2removez12zc0zz__weakhashz00(obj_t,
		obj_t);
	extern bool_t BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(obj_t);
	static obj_t BGl_toplevelzd2initzd2zz__weakhashz00(void);
	static obj_t BGl_z62zc3z04anonymousza31454ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_weakzd2oldzd2hashtablezd2putz12zc0zz__weakhashz00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_keepgoingz00zz__weakhashz00 = BUNSPEC;
	extern void bgl_weakptr_ref_set(obj_t, obj_t);
	extern obj_t BGl_formatz00zz__r4_output_6_10_3z00(obj_t, obj_t);
	static bool_t
		BGl_weakzd2keyszd2hashtablezd2containszf3z21zz__weakhashz00(obj_t, obj_t);
	static obj_t BGl_cnstzd2initzd2zz__weakhashz00(void);
	static obj_t BGl_weakzd2oldzd2hashtablezd2expandz12zc0zz__weakhashz00(obj_t);
	static obj_t BGl_genericzd2initzd2zz__weakhashz00(void);
	static bool_t BGl_weakzd2oldzd2hashtablezd2filterz12zc0zz__weakhashz00(obj_t,
		obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2removez12z70zz__weakhashz00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2ze3vectorz81zz__weakhashz00(obj_t,
		obj_t);
	static bool_t BGl_weakzd2keyszd2hashtablezd2removez12zc0zz__weakhashz00(obj_t,
		obj_t);
	static obj_t BGl_importedzd2moduleszd2initz00zz__weakhashz00(void);
	static obj_t BGl_gczd2rootszd2initz00zz__weakhashz00(void);
	static obj_t BGl_z62zc3z04anonymousza31456ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_z62zc3z04anonymousza31448ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_weakzd2keyszd2hashtablezd2getzd2zz__weakhashz00(obj_t,
		obj_t);
	static obj_t BGl_objectzd2initzd2zz__weakhashz00(void);
	extern obj_t BGl_copyzd2vectorzd2zz__r4_vectors_6_8z00(obj_t, long);
	extern obj_t BGl_2za2za2zz__r4_numbers_6_5z00(obj_t, obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2expandz12z70zz__weakhashz00(obj_t,
		obj_t);
	static obj_t BGl_weakzd2keyszd2hashtablezd2expandz12zc0zz__weakhashz00(obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2filterz12z70zz__weakhashz00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2addz12z70zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t, obj_t, obj_t);
	static bool_t BGl_weakzd2keyszd2hashtablezd2filterz12zc0zz__weakhashz00(obj_t,
		obj_t);
	static bool_t BGl_keyszd2traversezd2hashz00zz__weakhashz00(obj_t, obj_t);
	extern obj_t bgl_weakptr_data(obj_t);
	extern obj_t bgl_weakptr_ref(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_weakzd2hashtablezd2mapz00zz__weakhashz00(obj_t,
		obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2putz12z70zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2ze3listz81zz__weakhashz00(obj_t,
		obj_t);
	static obj_t BGl_weakzd2oldzd2hashtablezd2getzd2zz__weakhashz00(obj_t, obj_t);
	extern obj_t BGl_filterz12z12zz__r4_control_features_6_9z00(obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31411ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t);
	extern obj_t bstring_to_symbol(obj_t);
	BGL_EXPORTED_DECL bool_t
		BGl_weakzd2hashtablezd2containszf3zf3zz__weakhashz00(obj_t, obj_t);
	static bool_t
		BGl_weakzd2oldzd2hashtablezd2containszf3z21zz__weakhashz00(obj_t, obj_t);
	extern obj_t make_vector(long, obj_t);
	static obj_t BGl_symbol2184z00zz__weakhashz00 = BUNSPEC;
	BGL_EXPORTED_DECL obj_t
		BGl_weakzd2hashtablezd2ze3listze3zz__weakhashz00(obj_t);
	static obj_t BGl_z62zc3z04anonymousza31420ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2mapz62zz__weakhashz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_z62zc3z04anonymousza31484ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31638ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_weakzd2oldzd2hashtablezd2updatez12zc0zz__weakhashz00(obj_t,
		obj_t, obj_t, obj_t);
	static obj_t BGl_methodzd2initzd2zz__weakhashz00(void);
	extern obj_t bgl_make_weakptr(obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31590ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31469ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_weakzd2hashtablezd2removez12z12zz__weakhashz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_weakzd2hashtablezd2ze3vectorze3zz__weakhashz00(obj_t);
	static obj_t BGl_z62zc3z04anonymousza31422ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2updatez12z70zz__weakhashz00(obj_t,
		obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_weakzd2keyszd2hashtablezd2updatez12zc0zz__weakhashz00(obj_t,
		obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_weakzd2hashtablezd2expandz12z12zz__weakhashz00(obj_t);
	static obj_t BGl_removestopz00zz__weakhashz00 = BUNSPEC;
	BGL_EXPORTED_DECL obj_t
		BGl_weakzd2hashtablezd2filterz12z12zz__weakhashz00(obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31682ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t);
	extern long BGl_getzd2hashnumberzd2persistentz00zz__hashz00(obj_t);
	extern long BGl_getzd2hashnumberzd2zz__hashz00(obj_t);
	static obj_t BGl_weakzd2keyszd2hashtablezd2addz12zc0zz__weakhashz00(obj_t,
		obj_t, obj_t, obj_t, obj_t);
	extern bool_t BGl_hashtablezd2weakzd2datazf3zf3zz__hashz00(obj_t);
	static bool_t BGl_oldzd2traversezd2hashz00zz__weakhashz00(obj_t, obj_t);
	extern obj_t BGl_errorz00zz__errorz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_gcz00zz__biglooz00(obj_t);
	static obj_t BGl_weakzd2keyszd2hashtablezd2putz12zc0zz__weakhashz00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2containszf3z91zz__weakhashz00(obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_weakzd2hashtablezd2clearz12z12zz__weakhashz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_weakzd2hashtablezd2addz12z12zz__weakhashz00(obj_t,
		obj_t, obj_t, obj_t, obj_t);
	static obj_t *__cnst;


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2filterz12zd2envzc0zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2196z00,
		BGl_z62weakzd2hashtablezd2filterz12z70zz__weakhashz00, 0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string2172z00zz__weakhashz00,
		BgL_bgl_string2172za700za7za7_2197za7,
		"/tmp/bigloo/runtime/Llib/weakhash.scm", 37);
	      DEFINE_STRING(BGl_string2173z00zz__weakhashz00,
		BgL_bgl_string2173za700za7za7_2198za7, "&weak-hashtable->vector", 23);
	      DEFINE_STRING(BGl_string2174z00zz__weakhashz00,
		BgL_bgl_string2174za700za7za7_2199za7, "struct", 6);
	      DEFINE_STRING(BGl_string2175z00zz__weakhashz00,
		BgL_bgl_string2175za700za7za7_2200za7, "&weak-hashtable->list", 21);
	      DEFINE_STRING(BGl_string2176z00zz__weakhashz00,
		BgL_bgl_string2176za700za7za7_2201za7, "&weak-hashtable-key-list", 24);
	      DEFINE_STRING(BGl_string2177z00zz__weakhashz00,
		BgL_bgl_string2177za700za7za7_2202za7, "&weak-hashtable-map", 19);
	      DEFINE_STRING(BGl_string2178z00zz__weakhashz00,
		BgL_bgl_string2178za700za7za7_2203za7, "procedure", 9);
	      DEFINE_STRING(BGl_string2179z00zz__weakhashz00,
		BgL_bgl_string2179za700za7za7_2204za7, "&weak-hashtable-for-each", 24);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2171z00zz__weakhashz00,
		BgL_bgl_za762za7c3za704anonymo2205za7,
		BGl_z62zc3z04anonymousza31345ze3ze5zz__weakhashz00, 0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string2180z00zz__weakhashz00,
		BgL_bgl_string2180za700za7za7_2206za7, "&weak-hashtable-filter!", 23);
	      DEFINE_STRING(BGl_string2183z00zz__weakhashz00,
		BgL_bgl_string2183za700za7za7_2207za7, "&weak-hashtable-clear!", 22);
	      DEFINE_STRING(BGl_string2185z00zz__weakhashz00,
		BgL_bgl_string2185za700za7za7_2208za7, "persistent", 10);
	      DEFINE_STRING(BGl_string2186z00zz__weakhashz00,
		BgL_bgl_string2186za700za7za7_2209za7, "&weak-hashtable-contains?", 25);
	      DEFINE_STRING(BGl_string2187z00zz__weakhashz00,
		BgL_bgl_string2187za700za7za7_2210za7, "&weak-hashtable-get", 19);
	      DEFINE_STRING(BGl_string2188z00zz__weakhashz00,
		BgL_bgl_string2188za700za7za7_2211za7, "&weak-hashtable-put!", 20);
	      DEFINE_STRING(BGl_string2189z00zz__weakhashz00,
		BgL_bgl_string2189za700za7za7_2212za7, "&weak-hashtable-update!", 23);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2clearz12zd2envzc0zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2213z00,
		BGl_z62weakzd2hashtablezd2clearz12z70zz__weakhashz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2ze3vectorzd2envz31zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2214z00,
		BGl_z62weakzd2hashtablezd2ze3vectorz81zz__weakhashz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2181z00zz__weakhashz00,
		BgL_bgl_za762za7c3za704anonymo2215za7,
		BGl_z62zc3z04anonymousza31454ze3ze5zz__weakhashz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2182z00zz__weakhashz00,
		BgL_bgl_za762za7c3za704anonymo2216za7,
		BGl_z62zc3z04anonymousza31456ze3ze5zz__weakhashz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2mapzd2envzd2zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2217z00,
		BGl_z62weakzd2hashtablezd2mapz62zz__weakhashz00, 0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string2190z00zz__weakhashz00,
		BgL_bgl_string2190za700za7za7_2218za7, "&weak-hashtable-add!", 20);
	      DEFINE_STRING(BGl_string2191z00zz__weakhashz00,
		BgL_bgl_string2191za700za7za7_2219za7, "&weak-hashtable-remove!", 23);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2getzd2envzd2zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2220z00,
		BGl_z62weakzd2hashtablezd2getz62zz__weakhashz00, 0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string2192z00zz__weakhashz00,
		BgL_bgl_string2192za700za7za7_2221za7,
		"Hashtable too large (new-len=~a/~a, size=~a)", 44);
	      DEFINE_STRING(BGl_string2193z00zz__weakhashz00,
		BgL_bgl_string2193za700za7za7_2222za7, "hashtable-put!", 14);
	      DEFINE_STRING(BGl_string2194z00zz__weakhashz00,
		BgL_bgl_string2194za700za7za7_2223za7, "&weak-hashtable-expand!", 23);
	      DEFINE_STRING(BGl_string2195z00zz__weakhashz00,
		BgL_bgl_string2195za700za7za7_2224za7, "__weakhash", 10);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2containszf3zd2envz21zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2225z00,
		BGl_z62weakzd2hashtablezd2containszf3z91zz__weakhashz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2expandz12zd2envzc0zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2226z00,
		BGl_z62weakzd2hashtablezd2expandz12z70zz__weakhashz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2ze3listzd2envz31zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2227z00,
		BGl_z62weakzd2hashtablezd2ze3listz81zz__weakhashz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2updatez12zd2envzc0zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2228z00,
		BGl_z62weakzd2hashtablezd2updatez12z70zz__weakhashz00, 0L, BUNSPEC, 4);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2forzd2eachzd2envz00zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2229z00,
		BGl_z62weakzd2hashtablezd2forzd2eachzb0zz__weakhashz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2addz12zd2envzc0zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2230z00,
		BGl_z62weakzd2hashtablezd2addz12z70zz__weakhashz00, 0L, BUNSPEC, 5);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2removez12zd2envzc0zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2231z00,
		BGl_z62weakzd2hashtablezd2removez12z70zz__weakhashz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2putz12zd2envzc0zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2232z00,
		BGl_z62weakzd2hashtablezd2putz12z70zz__weakhashz00, 0L, BUNSPEC, 3);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2keyzd2listzd2envz00zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2233z00,
		BGl_z62weakzd2hashtablezd2keyzd2listzb0zz__weakhashz00, 0L, BUNSPEC, 1);

/* GC roots registration */
	static obj_t bgl_gc_roots_register()
	{
#if defined( BGL_GC_ROOTS )
#define ADD_ROOT( addr ) (addr > roots_max ? roots_max = addr : (addr < roots_min ? roots_min = addr : 0))
		void *roots_min = (void *) ULONG_MAX, *roots_max = 0;
		     ADD_ROOT((void *) (&BGl_requirezd2initializa7ationz75zz__weakhashz00));
		     ADD_ROOT((void *) (&BGl_removez00zz__weakhashz00));
		     ADD_ROOT((void *) (&BGl_keepgoingz00zz__weakhashz00));
		     ADD_ROOT((void *) (&BGl_symbol2184z00zz__weakhashz00));
		     ADD_ROOT((void *) (&BGl_removestopz00zz__weakhashz00));
#undef ADD_ROOT
		if   (roots_max > 0)
			     GC_add_roots(roots_min, ((void **) roots_max) + 1);
#endif
		     return BUNSPEC;
	}



/* module-initialization */
	BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zz__weakhashz00(long
		BgL_checksumz00_4293, char *BgL_fromz00_4294)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zz__weakhashz00))
				{
					BGl_requirezd2initializa7ationz75zz__weakhashz00 =
						BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zz__weakhashz00();
					BGl_cnstzd2initzd2zz__weakhashz00();
					BGl_importedzd2moduleszd2initz00zz__weakhashz00();
					return BGl_toplevelzd2initzd2zz__weakhashz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zz__weakhashz00(void)
	{
		{	/* Llib/weakhash.scm 18 */
			return (BGl_symbol2184z00zz__weakhashz00 =
				bstring_to_symbol(BGl_string2185z00zz__weakhashz00), BUNSPEC);
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zz__weakhashz00(void)
	{
		{	/* Llib/weakhash.scm 18 */
			return bgl_gc_roots_register();
		}

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zz__weakhashz00(void)
	{
		{	/* Llib/weakhash.scm 18 */
			BGl_keepgoingz00zz__weakhashz00 = MAKE_YOUNG_PAIR(BUNSPEC, BUNSPEC);
			BGl_removez00zz__weakhashz00 = MAKE_YOUNG_PAIR(BUNSPEC, BUNSPEC);
			return (BGl_removestopz00zz__weakhashz00 =
				MAKE_YOUNG_PAIR(BUNSPEC, BUNSPEC), BUNSPEC);
		}

	}



/* traverse-buckets */
	obj_t BGl_traversezd2bucketszd2zz__weakhashz00(obj_t BgL_tablez00_47,
		obj_t BgL_bucketsz00_48, long BgL_iz00_49, obj_t BgL_funz00_50)
	{
		{	/* Llib/weakhash.scm 144 */
			if ((1L == (long) CINT(STRUCT_REF(BgL_tablez00_47, (int) (5L)))))
				{	/* Llib/weakhash.scm 145 */
					obj_t BgL_g1060z00_1290;

					BgL_g1060z00_1290 =
						VECTOR_REF(((obj_t) BgL_bucketsz00_48), BgL_iz00_49);
					{
						obj_t BgL_bucketz00_1292;
						obj_t BgL_lastzd2bucketzd2_1293;

						BgL_bucketz00_1292 = BgL_g1060z00_1290;
						BgL_lastzd2bucketzd2_1293 = BFALSE;
					BgL_zc3z04anonymousza31278ze3z87_1294:
						if (NULLP(BgL_bucketz00_1292))
							{	/* Llib/weakhash.scm 145 */
								return BGl_keepgoingz00zz__weakhashz00;
							}
						else
							{	/* Llib/weakhash.scm 145 */
								obj_t BgL_retz00_1296;

								{	/* Llib/weakhash.scm 153 */
									obj_t BgL_keyz00_1299;

									{	/* Llib/weakhash.scm 153 */
										obj_t BgL_arg1284z00_1301;

										{	/* Llib/weakhash.scm 153 */
											obj_t BgL_pairz00_2559;

											BgL_pairz00_2559 = CAR(((obj_t) BgL_bucketz00_1292));
											BgL_arg1284z00_1301 = CAR(BgL_pairz00_2559);
										}
										BgL_keyz00_1299 =
											bgl_weakptr_data(((obj_t) BgL_arg1284z00_1301));
									}
									if ((BgL_keyz00_1299 == BUNSPEC))
										{	/* Llib/weakhash.scm 154 */
											BgL_retz00_1296 = BGl_removez00zz__weakhashz00;
										}
									else
										{	/* Llib/weakhash.scm 156 */
											obj_t BgL_arg1283z00_1300;

											{	/* Llib/weakhash.scm 156 */
												obj_t BgL_pairz00_2564;

												BgL_pairz00_2564 = CAR(((obj_t) BgL_bucketz00_1292));
												BgL_arg1283z00_1300 = CDR(BgL_pairz00_2564);
											}
											BgL_retz00_1296 =
												((obj_t(*)(obj_t, obj_t, obj_t,
														obj_t))
												PROCEDURE_L_ENTRY(BgL_funz00_50)) (BgL_funz00_50,
												BgL_keyz00_1299, BgL_arg1283z00_1300,
												BgL_bucketz00_1292);
										}
								}
								if ((BgL_retz00_1296 == BGl_keepgoingz00zz__weakhashz00))
									{	/* Llib/weakhash.scm 145 */
										obj_t BgL_arg1281z00_1297;

										BgL_arg1281z00_1297 = CDR(((obj_t) BgL_bucketz00_1292));
										{
											obj_t BgL_lastzd2bucketzd2_4337;
											obj_t BgL_bucketz00_4336;

											BgL_bucketz00_4336 = BgL_arg1281z00_1297;
											BgL_lastzd2bucketzd2_4337 = BgL_bucketz00_1292;
											BgL_lastzd2bucketzd2_1293 = BgL_lastzd2bucketzd2_4337;
											BgL_bucketz00_1292 = BgL_bucketz00_4336;
											goto BgL_zc3z04anonymousza31278ze3z87_1294;
										}
									}
								else
									{	/* Llib/weakhash.scm 145 */
										if ((BgL_retz00_1296 == BGl_removez00zz__weakhashz00))
											{	/* Llib/weakhash.scm 145 */
												{	/* Llib/weakhash.scm 134 */
													long BgL_arg1259z00_2566;

													BgL_arg1259z00_2566 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_47,
																(int) (0L))) - 1L);
													{	/* Llib/weakhash.scm 134 */
														obj_t BgL_auxz00_4346;
														int BgL_tmpz00_4344;

														BgL_auxz00_4346 = BINT(BgL_arg1259z00_2566);
														BgL_tmpz00_4344 = (int) (0L);
														STRUCT_SET(BgL_tablez00_47, BgL_tmpz00_4344,
															BgL_auxz00_4346);
												}}
												if (CBOOL(BgL_lastzd2bucketzd2_1293))
													{	/* Llib/weakhash.scm 136 */
														obj_t BgL_arg1265z00_2568;

														BgL_arg1265z00_2568 =
															CDR(((obj_t) BgL_bucketz00_1292));
														{	/* Llib/weakhash.scm 136 */
															obj_t BgL_tmpz00_4353;

															BgL_tmpz00_4353 =
																((obj_t) BgL_lastzd2bucketzd2_1293);
															SET_CDR(BgL_tmpz00_4353, BgL_arg1265z00_2568);
														}
													}
												else
													{	/* Llib/weakhash.scm 137 */
														obj_t BgL_arg1275z00_2569;

														BgL_arg1275z00_2569 =
															CDR(((obj_t) BgL_bucketz00_1292));
														VECTOR_SET(
															((obj_t) BgL_bucketsz00_48), BgL_iz00_49,
															BgL_arg1275z00_2569);
													}
												BGl_keepgoingz00zz__weakhashz00;
												{	/* Llib/weakhash.scm 145 */
													obj_t BgL_arg1282z00_1298;

													BgL_arg1282z00_1298 =
														CDR(((obj_t) BgL_bucketz00_1292));
													{
														obj_t BgL_bucketz00_4362;

														BgL_bucketz00_4362 = BgL_arg1282z00_1298;
														BgL_bucketz00_1292 = BgL_bucketz00_4362;
														goto BgL_zc3z04anonymousza31278ze3z87_1294;
													}
												}
											}
										else
											{	/* Llib/weakhash.scm 145 */
												if (
													(BgL_retz00_1296 == BGl_removestopz00zz__weakhashz00))
													{	/* Llib/weakhash.scm 145 */
														{	/* Llib/weakhash.scm 134 */
															long BgL_arg1259z00_2579;

															BgL_arg1259z00_2579 =
																(
																(long) CINT(STRUCT_REF(BgL_tablez00_47,
																		(int) (0L))) - 1L);
															{	/* Llib/weakhash.scm 134 */
																obj_t BgL_auxz00_4371;
																int BgL_tmpz00_4369;

																BgL_auxz00_4371 = BINT(BgL_arg1259z00_2579);
																BgL_tmpz00_4369 = (int) (0L);
																STRUCT_SET(BgL_tablez00_47, BgL_tmpz00_4369,
																	BgL_auxz00_4371);
														}}
														if (CBOOL(BgL_lastzd2bucketzd2_1293))
															{	/* Llib/weakhash.scm 136 */
																obj_t BgL_arg1265z00_2581;

																BgL_arg1265z00_2581 =
																	CDR(((obj_t) BgL_bucketz00_1292));
																{	/* Llib/weakhash.scm 136 */
																	obj_t BgL_tmpz00_4378;

																	BgL_tmpz00_4378 =
																		((obj_t) BgL_lastzd2bucketzd2_1293);
																	SET_CDR(BgL_tmpz00_4378, BgL_arg1265z00_2581);
																}
															}
														else
															{	/* Llib/weakhash.scm 137 */
																obj_t BgL_arg1275z00_2582;

																BgL_arg1275z00_2582 =
																	CDR(((obj_t) BgL_bucketz00_1292));
																VECTOR_SET(
																	((obj_t) BgL_bucketsz00_48), BgL_iz00_49,
																	BgL_arg1275z00_2582);
															}
														return BGl_keepgoingz00zz__weakhashz00;
													}
												else
													{	/* Llib/weakhash.scm 145 */
														return BgL_retz00_1296;
													}
											}
									}
							}
					}
				}
			else
				{	/* Llib/weakhash.scm 145 */
					if ((2L == (long) CINT(STRUCT_REF(BgL_tablez00_47, (int) (5L)))))
						{	/* Llib/weakhash.scm 145 */
							obj_t BgL_g1061z00_1305;

							BgL_g1061z00_1305 =
								VECTOR_REF(((obj_t) BgL_bucketsz00_48), BgL_iz00_49);
							{
								obj_t BgL_bucketz00_1307;
								obj_t BgL_lastzd2bucketzd2_1308;

								BgL_bucketz00_1307 = BgL_g1061z00_1305;
								BgL_lastzd2bucketzd2_1308 = BFALSE;
							BgL_zc3z04anonymousza31287ze3z87_1309:
								if (NULLP(BgL_bucketz00_1307))
									{	/* Llib/weakhash.scm 145 */
										return BGl_keepgoingz00zz__weakhashz00;
									}
								else
									{	/* Llib/weakhash.scm 145 */
										obj_t BgL_retz00_1311;

										{	/* Llib/weakhash.scm 159 */
											obj_t BgL_dataz00_1314;

											{	/* Llib/weakhash.scm 159 */
												obj_t BgL_arg1294z00_1316;

												{	/* Llib/weakhash.scm 159 */
													obj_t BgL_pairz00_2598;

													BgL_pairz00_2598 = CAR(((obj_t) BgL_bucketz00_1307));
													BgL_arg1294z00_1316 = CDR(BgL_pairz00_2598);
												}
												BgL_dataz00_1314 =
													bgl_weakptr_data(((obj_t) BgL_arg1294z00_1316));
											}
											if ((BgL_dataz00_1314 == BUNSPEC))
												{	/* Llib/weakhash.scm 160 */
													BgL_retz00_1311 = BGl_removez00zz__weakhashz00;
												}
											else
												{	/* Llib/weakhash.scm 162 */
													obj_t BgL_arg1292z00_1315;

													{	/* Llib/weakhash.scm 162 */
														obj_t BgL_pairz00_2603;

														BgL_pairz00_2603 =
															CAR(((obj_t) BgL_bucketz00_1307));
														BgL_arg1292z00_1315 = CAR(BgL_pairz00_2603);
													}
													BgL_retz00_1311 =
														((obj_t(*)(obj_t, obj_t, obj_t,
																obj_t))
														PROCEDURE_L_ENTRY(BgL_funz00_50)) (BgL_funz00_50,
														BgL_arg1292z00_1315, BgL_dataz00_1314,
														BgL_bucketz00_1307);
												}
										}
										if ((BgL_retz00_1311 == BGl_keepgoingz00zz__weakhashz00))
											{	/* Llib/weakhash.scm 145 */
												obj_t BgL_arg1289z00_1312;

												BgL_arg1289z00_1312 = CDR(((obj_t) BgL_bucketz00_1307));
												{
													obj_t BgL_lastzd2bucketzd2_4415;
													obj_t BgL_bucketz00_4414;

													BgL_bucketz00_4414 = BgL_arg1289z00_1312;
													BgL_lastzd2bucketzd2_4415 = BgL_bucketz00_1307;
													BgL_lastzd2bucketzd2_1308 = BgL_lastzd2bucketzd2_4415;
													BgL_bucketz00_1307 = BgL_bucketz00_4414;
													goto BgL_zc3z04anonymousza31287ze3z87_1309;
												}
											}
										else
											{	/* Llib/weakhash.scm 145 */
												if ((BgL_retz00_1311 == BGl_removez00zz__weakhashz00))
													{	/* Llib/weakhash.scm 145 */
														{	/* Llib/weakhash.scm 134 */
															long BgL_arg1259z00_2605;

															BgL_arg1259z00_2605 =
																(
																(long) CINT(STRUCT_REF(BgL_tablez00_47,
																		(int) (0L))) - 1L);
															{	/* Llib/weakhash.scm 134 */
																obj_t BgL_auxz00_4424;
																int BgL_tmpz00_4422;

																BgL_auxz00_4424 = BINT(BgL_arg1259z00_2605);
																BgL_tmpz00_4422 = (int) (0L);
																STRUCT_SET(BgL_tablez00_47, BgL_tmpz00_4422,
																	BgL_auxz00_4424);
														}}
														if (CBOOL(BgL_lastzd2bucketzd2_1308))
															{	/* Llib/weakhash.scm 136 */
																obj_t BgL_arg1265z00_2607;

																BgL_arg1265z00_2607 =
																	CDR(((obj_t) BgL_bucketz00_1307));
																{	/* Llib/weakhash.scm 136 */
																	obj_t BgL_tmpz00_4431;

																	BgL_tmpz00_4431 =
																		((obj_t) BgL_lastzd2bucketzd2_1308);
																	SET_CDR(BgL_tmpz00_4431, BgL_arg1265z00_2607);
																}
															}
														else
															{	/* Llib/weakhash.scm 137 */
																obj_t BgL_arg1275z00_2608;

																BgL_arg1275z00_2608 =
																	CDR(((obj_t) BgL_bucketz00_1307));
																VECTOR_SET(
																	((obj_t) BgL_bucketsz00_48), BgL_iz00_49,
																	BgL_arg1275z00_2608);
															}
														BGl_keepgoingz00zz__weakhashz00;
														{	/* Llib/weakhash.scm 145 */
															obj_t BgL_arg1291z00_1313;

															BgL_arg1291z00_1313 =
																CDR(((obj_t) BgL_bucketz00_1307));
															{
																obj_t BgL_bucketz00_4440;

																BgL_bucketz00_4440 = BgL_arg1291z00_1313;
																BgL_bucketz00_1307 = BgL_bucketz00_4440;
																goto BgL_zc3z04anonymousza31287ze3z87_1309;
															}
														}
													}
												else
													{	/* Llib/weakhash.scm 145 */
														if (
															(BgL_retz00_1311 ==
																BGl_removestopz00zz__weakhashz00))
															{	/* Llib/weakhash.scm 145 */
																{	/* Llib/weakhash.scm 134 */
																	long BgL_arg1259z00_2618;

																	BgL_arg1259z00_2618 =
																		(
																		(long) CINT(STRUCT_REF(BgL_tablez00_47,
																				(int) (0L))) - 1L);
																	{	/* Llib/weakhash.scm 134 */
																		obj_t BgL_auxz00_4449;
																		int BgL_tmpz00_4447;

																		BgL_auxz00_4449 = BINT(BgL_arg1259z00_2618);
																		BgL_tmpz00_4447 = (int) (0L);
																		STRUCT_SET(BgL_tablez00_47, BgL_tmpz00_4447,
																			BgL_auxz00_4449);
																}}
																if (CBOOL(BgL_lastzd2bucketzd2_1308))
																	{	/* Llib/weakhash.scm 136 */
																		obj_t BgL_arg1265z00_2620;

																		BgL_arg1265z00_2620 =
																			CDR(((obj_t) BgL_bucketz00_1307));
																		{	/* Llib/weakhash.scm 136 */
																			obj_t BgL_tmpz00_4456;

																			BgL_tmpz00_4456 =
																				((obj_t) BgL_lastzd2bucketzd2_1308);
																			SET_CDR(BgL_tmpz00_4456,
																				BgL_arg1265z00_2620);
																		}
																	}
																else
																	{	/* Llib/weakhash.scm 137 */
																		obj_t BgL_arg1275z00_2621;

																		BgL_arg1275z00_2621 =
																			CDR(((obj_t) BgL_bucketz00_1307));
																		VECTOR_SET(
																			((obj_t) BgL_bucketsz00_48), BgL_iz00_49,
																			BgL_arg1275z00_2621);
																	}
																return BGl_keepgoingz00zz__weakhashz00;
															}
														else
															{	/* Llib/weakhash.scm 145 */
																return BgL_retz00_1311;
															}
													}
											}
									}
							}
						}
					else
						{	/* Llib/weakhash.scm 145 */
							if ((3L == (long) CINT(STRUCT_REF(BgL_tablez00_47, (int) (5L)))))
								{	/* Llib/weakhash.scm 145 */
									obj_t BgL_g1062z00_1320;

									BgL_g1062z00_1320 =
										VECTOR_REF(((obj_t) BgL_bucketsz00_48), BgL_iz00_49);
									{
										obj_t BgL_bucketz00_1322;
										obj_t BgL_lastzd2bucketzd2_1323;

										BgL_bucketz00_1322 = BgL_g1062z00_1320;
										BgL_lastzd2bucketzd2_1323 = BFALSE;
									BgL_zc3z04anonymousza31324ze3z87_1324:
										if (NULLP(BgL_bucketz00_1322))
											{	/* Llib/weakhash.scm 145 */
												return BGl_keepgoingz00zz__weakhashz00;
											}
										else
											{	/* Llib/weakhash.scm 145 */
												obj_t BgL_retz00_1326;

												{	/* Llib/weakhash.scm 165 */
													obj_t BgL_keyz00_1329;
													obj_t BgL_dataz00_1330;

													{	/* Llib/weakhash.scm 165 */
														obj_t BgL_arg1332z00_1332;

														{	/* Llib/weakhash.scm 165 */
															obj_t BgL_pairz00_2637;

															BgL_pairz00_2637 =
																CAR(((obj_t) BgL_bucketz00_1322));
															BgL_arg1332z00_1332 = CAR(BgL_pairz00_2637);
														}
														BgL_keyz00_1329 =
															bgl_weakptr_data(((obj_t) BgL_arg1332z00_1332));
													}
													{	/* Llib/weakhash.scm 166 */
														obj_t BgL_arg1333z00_1333;

														{	/* Llib/weakhash.scm 166 */
															obj_t BgL_pairz00_2642;

															BgL_pairz00_2642 =
																CAR(((obj_t) BgL_bucketz00_1322));
															BgL_arg1333z00_1333 = CDR(BgL_pairz00_2642);
														}
														BgL_dataz00_1330 =
															bgl_weakptr_data(((obj_t) BgL_arg1333z00_1333));
													}
													{	/* Llib/weakhash.scm 167 */
														bool_t BgL_test2253z00_4482;

														if ((BgL_keyz00_1329 == BUNSPEC))
															{	/* Llib/weakhash.scm 167 */
																BgL_test2253z00_4482 = ((bool_t) 1);
															}
														else
															{	/* Llib/weakhash.scm 167 */
																BgL_test2253z00_4482 =
																	(BgL_dataz00_1330 == BUNSPEC);
															}
														if (BgL_test2253z00_4482)
															{	/* Llib/weakhash.scm 167 */
																BgL_retz00_1326 = BGl_removez00zz__weakhashz00;
															}
														else
															{	/* Llib/weakhash.scm 167 */
																BgL_retz00_1326 =
																	((obj_t(*)(obj_t, obj_t, obj_t,
																			obj_t))
																	PROCEDURE_L_ENTRY(BgL_funz00_50))
																	(BgL_funz00_50, BgL_keyz00_1329,
																	BgL_dataz00_1330, BgL_bucketz00_1322);
															}
													}
												}
												if (
													(BgL_retz00_1326 == BGl_keepgoingz00zz__weakhashz00))
													{	/* Llib/weakhash.scm 145 */
														obj_t BgL_arg1327z00_1327;

														BgL_arg1327z00_1327 =
															CDR(((obj_t) BgL_bucketz00_1322));
														{
															obj_t BgL_lastzd2bucketzd2_4497;
															obj_t BgL_bucketz00_4496;

															BgL_bucketz00_4496 = BgL_arg1327z00_1327;
															BgL_lastzd2bucketzd2_4497 = BgL_bucketz00_1322;
															BgL_lastzd2bucketzd2_1323 =
																BgL_lastzd2bucketzd2_4497;
															BgL_bucketz00_1322 = BgL_bucketz00_4496;
															goto BgL_zc3z04anonymousza31324ze3z87_1324;
														}
													}
												else
													{	/* Llib/weakhash.scm 145 */
														if (
															(BgL_retz00_1326 == BGl_removez00zz__weakhashz00))
															{	/* Llib/weakhash.scm 145 */
																{	/* Llib/weakhash.scm 134 */
																	long BgL_arg1259z00_2645;

																	BgL_arg1259z00_2645 =
																		(
																		(long) CINT(STRUCT_REF(BgL_tablez00_47,
																				(int) (0L))) - 1L);
																	{	/* Llib/weakhash.scm 134 */
																		obj_t BgL_auxz00_4506;
																		int BgL_tmpz00_4504;

																		BgL_auxz00_4506 = BINT(BgL_arg1259z00_2645);
																		BgL_tmpz00_4504 = (int) (0L);
																		STRUCT_SET(BgL_tablez00_47, BgL_tmpz00_4504,
																			BgL_auxz00_4506);
																}}
																if (CBOOL(BgL_lastzd2bucketzd2_1323))
																	{	/* Llib/weakhash.scm 136 */
																		obj_t BgL_arg1265z00_2647;

																		BgL_arg1265z00_2647 =
																			CDR(((obj_t) BgL_bucketz00_1322));
																		{	/* Llib/weakhash.scm 136 */
																			obj_t BgL_tmpz00_4513;

																			BgL_tmpz00_4513 =
																				((obj_t) BgL_lastzd2bucketzd2_1323);
																			SET_CDR(BgL_tmpz00_4513,
																				BgL_arg1265z00_2647);
																		}
																	}
																else
																	{	/* Llib/weakhash.scm 137 */
																		obj_t BgL_arg1275z00_2648;

																		BgL_arg1275z00_2648 =
																			CDR(((obj_t) BgL_bucketz00_1322));
																		VECTOR_SET(
																			((obj_t) BgL_bucketsz00_48), BgL_iz00_49,
																			BgL_arg1275z00_2648);
																	}
																BGl_keepgoingz00zz__weakhashz00;
																{	/* Llib/weakhash.scm 145 */
																	obj_t BgL_arg1330z00_1328;

																	BgL_arg1330z00_1328 =
																		CDR(((obj_t) BgL_bucketz00_1322));
																	{
																		obj_t BgL_bucketz00_4522;

																		BgL_bucketz00_4522 = BgL_arg1330z00_1328;
																		BgL_bucketz00_1322 = BgL_bucketz00_4522;
																		goto BgL_zc3z04anonymousza31324ze3z87_1324;
																	}
																}
															}
														else
															{	/* Llib/weakhash.scm 145 */
																if (
																	(BgL_retz00_1326 ==
																		BGl_removestopz00zz__weakhashz00))
																	{	/* Llib/weakhash.scm 145 */
																		{	/* Llib/weakhash.scm 134 */
																			long BgL_arg1259z00_2658;

																			BgL_arg1259z00_2658 =
																				(
																				(long) CINT(STRUCT_REF(BgL_tablez00_47,
																						(int) (0L))) - 1L);
																			{	/* Llib/weakhash.scm 134 */
																				obj_t BgL_auxz00_4531;
																				int BgL_tmpz00_4529;

																				BgL_auxz00_4531 =
																					BINT(BgL_arg1259z00_2658);
																				BgL_tmpz00_4529 = (int) (0L);
																				STRUCT_SET(BgL_tablez00_47,
																					BgL_tmpz00_4529, BgL_auxz00_4531);
																		}}
																		if (CBOOL(BgL_lastzd2bucketzd2_1323))
																			{	/* Llib/weakhash.scm 136 */
																				obj_t BgL_arg1265z00_2660;

																				BgL_arg1265z00_2660 =
																					CDR(((obj_t) BgL_bucketz00_1322));
																				{	/* Llib/weakhash.scm 136 */
																					obj_t BgL_tmpz00_4538;

																					BgL_tmpz00_4538 =
																						((obj_t) BgL_lastzd2bucketzd2_1323);
																					SET_CDR(BgL_tmpz00_4538,
																						BgL_arg1265z00_2660);
																				}
																			}
																		else
																			{	/* Llib/weakhash.scm 137 */
																				obj_t BgL_arg1275z00_2661;

																				BgL_arg1275z00_2661 =
																					CDR(((obj_t) BgL_bucketz00_1322));
																				VECTOR_SET(
																					((obj_t) BgL_bucketsz00_48),
																					BgL_iz00_49, BgL_arg1275z00_2661);
																			}
																		return BGl_keepgoingz00zz__weakhashz00;
																	}
																else
																	{	/* Llib/weakhash.scm 145 */
																		return BgL_retz00_1326;
																	}
															}
													}
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 145 */
									obj_t BgL_g1063z00_1335;

									BgL_g1063z00_1335 =
										VECTOR_REF(((obj_t) BgL_bucketsz00_48), BgL_iz00_49);
									{
										obj_t BgL_bucketz00_1337;
										obj_t BgL_lastzd2bucketzd2_1338;

										BgL_bucketz00_1337 = BgL_g1063z00_1335;
										BgL_lastzd2bucketzd2_1338 = BFALSE;
									BgL_zc3z04anonymousza31334ze3z87_1339:
										if (NULLP(BgL_bucketz00_1337))
											{	/* Llib/weakhash.scm 145 */
												return BGl_keepgoingz00zz__weakhashz00;
											}
										else
											{	/* Llib/weakhash.scm 145 */
												obj_t BgL_retz00_1341;

												{	/* Llib/weakhash.scm 173 */
													obj_t BgL_arg1338z00_1344;
													obj_t BgL_arg1339z00_1345;

													{	/* Llib/weakhash.scm 173 */
														obj_t BgL_pairz00_2675;

														BgL_pairz00_2675 =
															CAR(((obj_t) BgL_bucketz00_1337));
														BgL_arg1338z00_1344 = CAR(BgL_pairz00_2675);
													}
													{	/* Llib/weakhash.scm 173 */
														obj_t BgL_pairz00_2679;

														BgL_pairz00_2679 =
															CAR(((obj_t) BgL_bucketz00_1337));
														BgL_arg1339z00_1345 = CDR(BgL_pairz00_2679);
													}
													BgL_retz00_1341 =
														((obj_t(*)(obj_t, obj_t, obj_t,
																obj_t))
														PROCEDURE_L_ENTRY(BgL_funz00_50)) (BgL_funz00_50,
														BgL_arg1338z00_1344, BgL_arg1339z00_1345,
														BgL_bucketz00_1337);
												}
												if (
													(BgL_retz00_1341 == BGl_keepgoingz00zz__weakhashz00))
													{	/* Llib/weakhash.scm 145 */
														obj_t BgL_arg1336z00_1342;

														BgL_arg1336z00_1342 =
															CDR(((obj_t) BgL_bucketz00_1337));
														{
															obj_t BgL_lastzd2bucketzd2_4566;
															obj_t BgL_bucketz00_4565;

															BgL_bucketz00_4565 = BgL_arg1336z00_1342;
															BgL_lastzd2bucketzd2_4566 = BgL_bucketz00_1337;
															BgL_lastzd2bucketzd2_1338 =
																BgL_lastzd2bucketzd2_4566;
															BgL_bucketz00_1337 = BgL_bucketz00_4565;
															goto BgL_zc3z04anonymousza31334ze3z87_1339;
														}
													}
												else
													{	/* Llib/weakhash.scm 145 */
														if (
															(BgL_retz00_1341 == BGl_removez00zz__weakhashz00))
															{	/* Llib/weakhash.scm 145 */
																{	/* Llib/weakhash.scm 134 */
																	long BgL_arg1259z00_2681;

																	BgL_arg1259z00_2681 =
																		(
																		(long) CINT(STRUCT_REF(BgL_tablez00_47,
																				(int) (0L))) - 1L);
																	{	/* Llib/weakhash.scm 134 */
																		obj_t BgL_auxz00_4575;
																		int BgL_tmpz00_4573;

																		BgL_auxz00_4575 = BINT(BgL_arg1259z00_2681);
																		BgL_tmpz00_4573 = (int) (0L);
																		STRUCT_SET(BgL_tablez00_47, BgL_tmpz00_4573,
																			BgL_auxz00_4575);
																}}
																if (CBOOL(BgL_lastzd2bucketzd2_1338))
																	{	/* Llib/weakhash.scm 136 */
																		obj_t BgL_arg1265z00_2683;

																		BgL_arg1265z00_2683 =
																			CDR(((obj_t) BgL_bucketz00_1337));
																		{	/* Llib/weakhash.scm 136 */
																			obj_t BgL_tmpz00_4582;

																			BgL_tmpz00_4582 =
																				((obj_t) BgL_lastzd2bucketzd2_1338);
																			SET_CDR(BgL_tmpz00_4582,
																				BgL_arg1265z00_2683);
																		}
																	}
																else
																	{	/* Llib/weakhash.scm 137 */
																		obj_t BgL_arg1275z00_2684;

																		BgL_arg1275z00_2684 =
																			CDR(((obj_t) BgL_bucketz00_1337));
																		VECTOR_SET(
																			((obj_t) BgL_bucketsz00_48), BgL_iz00_49,
																			BgL_arg1275z00_2684);
																	}
																BGl_keepgoingz00zz__weakhashz00;
																{	/* Llib/weakhash.scm 145 */
																	obj_t BgL_arg1337z00_1343;

																	BgL_arg1337z00_1343 =
																		CDR(((obj_t) BgL_bucketz00_1337));
																	{
																		obj_t BgL_bucketz00_4591;

																		BgL_bucketz00_4591 = BgL_arg1337z00_1343;
																		BgL_bucketz00_1337 = BgL_bucketz00_4591;
																		goto BgL_zc3z04anonymousza31334ze3z87_1339;
																	}
																}
															}
														else
															{	/* Llib/weakhash.scm 145 */
																if (
																	(BgL_retz00_1341 ==
																		BGl_removestopz00zz__weakhashz00))
																	{	/* Llib/weakhash.scm 145 */
																		{	/* Llib/weakhash.scm 134 */
																			long BgL_arg1259z00_2694;

																			BgL_arg1259z00_2694 =
																				(
																				(long) CINT(STRUCT_REF(BgL_tablez00_47,
																						(int) (0L))) - 1L);
																			{	/* Llib/weakhash.scm 134 */
																				obj_t BgL_auxz00_4600;
																				int BgL_tmpz00_4598;

																				BgL_auxz00_4600 =
																					BINT(BgL_arg1259z00_2694);
																				BgL_tmpz00_4598 = (int) (0L);
																				STRUCT_SET(BgL_tablez00_47,
																					BgL_tmpz00_4598, BgL_auxz00_4600);
																		}}
																		if (CBOOL(BgL_lastzd2bucketzd2_1338))
																			{	/* Llib/weakhash.scm 136 */
																				obj_t BgL_arg1265z00_2696;

																				BgL_arg1265z00_2696 =
																					CDR(((obj_t) BgL_bucketz00_1337));
																				{	/* Llib/weakhash.scm 136 */
																					obj_t BgL_tmpz00_4607;

																					BgL_tmpz00_4607 =
																						((obj_t) BgL_lastzd2bucketzd2_1338);
																					SET_CDR(BgL_tmpz00_4607,
																						BgL_arg1265z00_2696);
																				}
																			}
																		else
																			{	/* Llib/weakhash.scm 137 */
																				obj_t BgL_arg1275z00_2697;

																				BgL_arg1275z00_2697 =
																					CDR(((obj_t) BgL_bucketz00_1337));
																				VECTOR_SET(
																					((obj_t) BgL_bucketsz00_48),
																					BgL_iz00_49, BgL_arg1275z00_2697);
																			}
																		return BGl_keepgoingz00zz__weakhashz00;
																	}
																else
																	{	/* Llib/weakhash.scm 145 */
																		return BgL_retz00_1341;
																	}
															}
													}
											}
									}
								}
						}
				}
		}

	}



/* keys-traverse-hash */
	bool_t BGl_keyszd2traversezd2hashz00zz__weakhashz00(obj_t BgL_tablez00_51,
		obj_t BgL_funz00_52)
	{
		{	/* Llib/weakhash.scm 187 */
			BGl_weakzd2keyszd2hashtablezd2filterz12zc0zz__weakhashz00(BgL_tablez00_51,
				BGl_proc2171z00zz__weakhashz00);
			{	/* Llib/weakhash.scm 191 */
				obj_t BgL_bucketsz00_1355;

				BgL_bucketsz00_1355 = STRUCT_REF(BgL_tablez00_51, (int) (2L));
				{	/* Llib/weakhash.scm 192 */

					{
						long BgL_iz00_1358;

						BgL_iz00_1358 = 0L;
						if ((BgL_iz00_1358 == VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1355))))
							{	/* Llib/weakhash.scm 194 */
								return ((bool_t) 0);
							}
						else
							{	/* Llib/weakhash.scm 195 */
								obj_t BgL_bucketz00_1361;

								BgL_bucketz00_1361 =
									VECTOR_REF(((obj_t) BgL_bucketsz00_1355), BgL_iz00_1358);
								{
									obj_t BgL_l1113z00_1363;

									BgL_l1113z00_1363 = BgL_bucketz00_1361;
								BgL_zc3z04anonymousza31348ze3z87_1364:
									if (PAIRP(BgL_l1113z00_1363))
										{	/* Llib/weakhash.scm 196 */
											{	/* Llib/weakhash.scm 197 */
												obj_t BgL_pz00_1366;

												BgL_pz00_1366 = CAR(BgL_l1113z00_1363);
												{	/* Llib/weakhash.scm 197 */
													bool_t BgL_test2268z00_4626;

													{	/* Llib/weakhash.scm 197 */
														obj_t BgL_arg1356z00_1371;

														BgL_arg1356z00_1371 =
															bgl_weakptr_data(((obj_t) BgL_pz00_1366));
														BgL_test2268z00_4626 =
															(BgL_arg1356z00_1371 == BUNSPEC);
													}
													if (BgL_test2268z00_4626)
														{	/* Llib/weakhash.scm 197 */
															BFALSE;
														}
													else
														{	/* Llib/weakhash.scm 198 */
															obj_t BgL_arg1354z00_1369;
															obj_t BgL_arg1355z00_1370;

															BgL_arg1354z00_1369 =
																bgl_weakptr_data(((obj_t) BgL_pz00_1366));
															BgL_arg1355z00_1370 =
																bgl_weakptr_ref(((obj_t) BgL_pz00_1366));
															(VA_PROCEDUREP(BgL_funz00_52) ? ((obj_t(*)(obj_t,
																			...))
																	PROCEDURE_ENTRY(BgL_funz00_52))
																(BgL_funz00_52, BgL_arg1354z00_1369,
																	BgL_arg1355z00_1370, BEOA) : ((obj_t(*)(obj_t,
																			obj_t,
																			obj_t))
																	PROCEDURE_ENTRY(BgL_funz00_52))
																(BgL_funz00_52, BgL_arg1354z00_1369,
																	BgL_arg1355z00_1370));
														}
												}
											}
											{
												obj_t BgL_l1113z00_4639;

												BgL_l1113z00_4639 = CDR(BgL_l1113z00_1363);
												BgL_l1113z00_1363 = BgL_l1113z00_4639;
												goto BgL_zc3z04anonymousza31348ze3z87_1364;
											}
										}
									else
										{	/* Llib/weakhash.scm 196 */
											return ((bool_t) 1);
										}
								}
							}
					}
				}
			}
		}

	}



/* &<@anonymous:1345> */
	obj_t BGl_z62zc3z04anonymousza31345ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4050, obj_t BgL_kz00_4051, obj_t BgL_vz00_4052)
	{
		{	/* Llib/weakhash.scm 189 */
			return BBOOL(((bool_t) 1));
		}

	}



/* old-traverse-hash */
	bool_t BGl_oldzd2traversezd2hashz00zz__weakhashz00(obj_t BgL_tablez00_53,
		obj_t BgL_funz00_54)
	{
		{	/* Llib/weakhash.scm 204 */
			if ((1L == (long) CINT(STRUCT_REF(BgL_tablez00_53, (int) (5L)))))
				{	/* Llib/weakhash.scm 205 */
					obj_t BgL_bucketsz00_1377;

					BgL_bucketsz00_1377 = STRUCT_REF(BgL_tablez00_53, (int) (2L));
					{	/* Llib/weakhash.scm 205 */

						{
							long BgL_iz00_1380;

							BgL_iz00_1380 = 0L;
						BgL_zc3z04anonymousza31360ze3z87_1381:
							if (
								(BgL_iz00_1380 == VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1377))))
								{	/* Llib/weakhash.scm 205 */
									return ((bool_t) 0);
								}
							else
								{	/* Llib/weakhash.scm 205 */
									{	/* Llib/weakhash.scm 205 */
										obj_t BgL_g1064z00_1383;

										BgL_g1064z00_1383 =
											VECTOR_REF(((obj_t) BgL_bucketsz00_1377), BgL_iz00_1380);
										{
											obj_t BgL_bucketz00_1385;
											obj_t BgL_lastzd2bucketzd2_1386;

											BgL_bucketz00_1385 = BgL_g1064z00_1383;
											BgL_lastzd2bucketzd2_1386 = BFALSE;
										BgL_zc3z04anonymousza31362ze3z87_1387:
											if (NULLP(BgL_bucketz00_1385))
												{	/* Llib/weakhash.scm 205 */
													((bool_t) 0);
												}
											else
												{	/* Llib/weakhash.scm 216 */
													obj_t BgL_retz00_1389;

													{	/* Llib/weakhash.scm 216 */
														obj_t BgL_keyz00_1392;

														{	/* Llib/weakhash.scm 216 */
															obj_t BgL_arg1367z00_1394;

															{	/* Llib/weakhash.scm 216 */
																obj_t BgL_pairz00_2728;

																BgL_pairz00_2728 =
																	CAR(((obj_t) BgL_bucketz00_1385));
																BgL_arg1367z00_1394 = CAR(BgL_pairz00_2728);
															}
															BgL_keyz00_1392 =
																bgl_weakptr_data(((obj_t) BgL_arg1367z00_1394));
														}
														if ((BgL_keyz00_1392 == BUNSPEC))
															{	/* Llib/weakhash.scm 217 */
																BgL_retz00_1389 = BGl_removez00zz__weakhashz00;
															}
														else
															{	/* Llib/weakhash.scm 219 */
																obj_t BgL_arg1366z00_1393;

																{	/* Llib/weakhash.scm 219 */
																	obj_t BgL_pairz00_2733;

																	BgL_pairz00_2733 =
																		CAR(((obj_t) BgL_bucketz00_1385));
																	BgL_arg1366z00_1393 = CDR(BgL_pairz00_2733);
																}
																BgL_retz00_1389 =
																	(VA_PROCEDUREP(BgL_funz00_54)
																	? ((obj_t(*)(obj_t,
																				...))
																		PROCEDURE_ENTRY(BgL_funz00_54))
																	(BgL_funz00_54, BgL_keyz00_1392,
																		BgL_arg1366z00_1393,
																		BEOA) : ((obj_t(*)(obj_t, obj_t,
																				obj_t))
																		PROCEDURE_ENTRY(BgL_funz00_54))
																	(BgL_funz00_54, BgL_keyz00_1392,
																		BgL_arg1366z00_1393));
															}
													}
													if ((BgL_retz00_1389 == BGl_removez00zz__weakhashz00))
														{	/* Llib/weakhash.scm 205 */
															{	/* Llib/weakhash.scm 134 */
																long BgL_arg1259z00_2734;

																BgL_arg1259z00_2734 =
																	(
																	(long) CINT(STRUCT_REF(BgL_tablez00_53,
																			(int) (0L))) - 1L);
																{	/* Llib/weakhash.scm 134 */
																	obj_t BgL_auxz00_4680;
																	int BgL_tmpz00_4678;

																	BgL_auxz00_4680 = BINT(BgL_arg1259z00_2734);
																	BgL_tmpz00_4678 = (int) (0L);
																	STRUCT_SET(BgL_tablez00_53, BgL_tmpz00_4678,
																		BgL_auxz00_4680);
															}}
															if (CBOOL(BgL_lastzd2bucketzd2_1386))
																{	/* Llib/weakhash.scm 136 */
																	obj_t BgL_arg1265z00_2736;

																	BgL_arg1265z00_2736 =
																		CDR(((obj_t) BgL_bucketz00_1385));
																	{	/* Llib/weakhash.scm 136 */
																		obj_t BgL_tmpz00_4687;

																		BgL_tmpz00_4687 =
																			((obj_t) BgL_lastzd2bucketzd2_1386);
																		SET_CDR(BgL_tmpz00_4687,
																			BgL_arg1265z00_2736);
																	}
																}
															else
																{	/* Llib/weakhash.scm 137 */
																	obj_t BgL_arg1275z00_2737;

																	BgL_arg1275z00_2737 =
																		CDR(((obj_t) BgL_bucketz00_1385));
																	VECTOR_SET(
																		((obj_t) BgL_bucketsz00_1377),
																		BgL_iz00_1380, BgL_arg1275z00_2737);
																}
															BGl_keepgoingz00zz__weakhashz00;
															{	/* Llib/weakhash.scm 205 */
																obj_t BgL_arg1364z00_1390;

																BgL_arg1364z00_1390 =
																	CDR(((obj_t) BgL_bucketz00_1385));
																{
																	obj_t BgL_bucketz00_4696;

																	BgL_bucketz00_4696 = BgL_arg1364z00_1390;
																	BgL_bucketz00_1385 = BgL_bucketz00_4696;
																	goto BgL_zc3z04anonymousza31362ze3z87_1387;
																}
															}
														}
													else
														{	/* Llib/weakhash.scm 205 */
															obj_t BgL_arg1365z00_1391;

															BgL_arg1365z00_1391 =
																CDR(((obj_t) BgL_bucketz00_1385));
															{
																obj_t BgL_lastzd2bucketzd2_4700;
																obj_t BgL_bucketz00_4699;

																BgL_bucketz00_4699 = BgL_arg1365z00_1391;
																BgL_lastzd2bucketzd2_4700 = BgL_bucketz00_1385;
																BgL_lastzd2bucketzd2_1386 =
																	BgL_lastzd2bucketzd2_4700;
																BgL_bucketz00_1385 = BgL_bucketz00_4699;
																goto BgL_zc3z04anonymousza31362ze3z87_1387;
															}
														}
												}
										}
									}
									{
										long BgL_iz00_4701;

										BgL_iz00_4701 = (BgL_iz00_1380 + 1L);
										BgL_iz00_1380 = BgL_iz00_4701;
										goto BgL_zc3z04anonymousza31360ze3z87_1381;
									}
								}
						}
					}
				}
			else
				{	/* Llib/weakhash.scm 205 */
					if ((2L == (long) CINT(STRUCT_REF(BgL_tablez00_53, (int) (5L)))))
						{	/* Llib/weakhash.scm 205 */
							obj_t BgL_bucketsz00_1400;

							BgL_bucketsz00_1400 = STRUCT_REF(BgL_tablez00_53, (int) (2L));
							{	/* Llib/weakhash.scm 205 */

								{
									long BgL_iz00_1403;

									BgL_iz00_1403 = 0L;
								BgL_zc3z04anonymousza31371ze3z87_1404:
									if (
										(BgL_iz00_1403 ==
											VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1400))))
										{	/* Llib/weakhash.scm 205 */
											return ((bool_t) 0);
										}
									else
										{	/* Llib/weakhash.scm 205 */
											{	/* Llib/weakhash.scm 205 */
												obj_t BgL_g1065z00_1406;

												BgL_g1065z00_1406 =
													VECTOR_REF(
													((obj_t) BgL_bucketsz00_1400), BgL_iz00_1403);
												{
													obj_t BgL_bucketz00_1408;
													obj_t BgL_lastzd2bucketzd2_1409;

													BgL_bucketz00_1408 = BgL_g1065z00_1406;
													BgL_lastzd2bucketzd2_1409 = BFALSE;
												BgL_zc3z04anonymousza31373ze3z87_1410:
													if (NULLP(BgL_bucketz00_1408))
														{	/* Llib/weakhash.scm 205 */
															((bool_t) 0);
														}
													else
														{	/* Llib/weakhash.scm 222 */
															obj_t BgL_retz00_1412;

															{	/* Llib/weakhash.scm 222 */
																obj_t BgL_dataz00_1415;

																{	/* Llib/weakhash.scm 222 */
																	obj_t BgL_arg1379z00_1417;

																	{	/* Llib/weakhash.scm 222 */
																		obj_t BgL_pairz00_2760;

																		BgL_pairz00_2760 =
																			CAR(((obj_t) BgL_bucketz00_1408));
																		BgL_arg1379z00_1417 = CDR(BgL_pairz00_2760);
																	}
																	BgL_dataz00_1415 =
																		bgl_weakptr_data(
																		((obj_t) BgL_arg1379z00_1417));
																}
																if ((BgL_dataz00_1415 == BUNSPEC))
																	{	/* Llib/weakhash.scm 223 */
																		BgL_retz00_1412 =
																			BGl_removez00zz__weakhashz00;
																	}
																else
																	{	/* Llib/weakhash.scm 225 */
																		obj_t BgL_arg1377z00_1416;

																		{	/* Llib/weakhash.scm 225 */
																			obj_t BgL_pairz00_2765;

																			BgL_pairz00_2765 =
																				CAR(((obj_t) BgL_bucketz00_1408));
																			BgL_arg1377z00_1416 =
																				CAR(BgL_pairz00_2765);
																		}
																		BgL_retz00_1412 =
																			(VA_PROCEDUREP(BgL_funz00_54)
																			? ((obj_t(*)(obj_t,
																						...))
																				PROCEDURE_ENTRY(BgL_funz00_54))
																			(BgL_funz00_54, BgL_arg1377z00_1416,
																				BgL_dataz00_1415,
																				BEOA) : ((obj_t(*)(obj_t, obj_t,
																						obj_t))
																				PROCEDURE_ENTRY(BgL_funz00_54))
																			(BgL_funz00_54, BgL_arg1377z00_1416,
																				BgL_dataz00_1415));
																	}
															}
															if (
																(BgL_retz00_1412 ==
																	BGl_removez00zz__weakhashz00))
																{	/* Llib/weakhash.scm 205 */
																	{	/* Llib/weakhash.scm 134 */
																		long BgL_arg1259z00_2766;

																		BgL_arg1259z00_2766 =
																			(
																			(long) CINT(STRUCT_REF(BgL_tablez00_53,
																					(int) (0L))) - 1L);
																		{	/* Llib/weakhash.scm 134 */
																			obj_t BgL_auxz00_4741;
																			int BgL_tmpz00_4739;

																			BgL_auxz00_4741 =
																				BINT(BgL_arg1259z00_2766);
																			BgL_tmpz00_4739 = (int) (0L);
																			STRUCT_SET(BgL_tablez00_53,
																				BgL_tmpz00_4739, BgL_auxz00_4741);
																	}}
																	if (CBOOL(BgL_lastzd2bucketzd2_1409))
																		{	/* Llib/weakhash.scm 136 */
																			obj_t BgL_arg1265z00_2768;

																			BgL_arg1265z00_2768 =
																				CDR(((obj_t) BgL_bucketz00_1408));
																			{	/* Llib/weakhash.scm 136 */
																				obj_t BgL_tmpz00_4748;

																				BgL_tmpz00_4748 =
																					((obj_t) BgL_lastzd2bucketzd2_1409);
																				SET_CDR(BgL_tmpz00_4748,
																					BgL_arg1265z00_2768);
																			}
																		}
																	else
																		{	/* Llib/weakhash.scm 137 */
																			obj_t BgL_arg1275z00_2769;

																			BgL_arg1275z00_2769 =
																				CDR(((obj_t) BgL_bucketz00_1408));
																			VECTOR_SET(
																				((obj_t) BgL_bucketsz00_1400),
																				BgL_iz00_1403, BgL_arg1275z00_2769);
																		}
																	BGl_keepgoingz00zz__weakhashz00;
																	{	/* Llib/weakhash.scm 205 */
																		obj_t BgL_arg1375z00_1413;

																		BgL_arg1375z00_1413 =
																			CDR(((obj_t) BgL_bucketz00_1408));
																		{
																			obj_t BgL_bucketz00_4757;

																			BgL_bucketz00_4757 = BgL_arg1375z00_1413;
																			BgL_bucketz00_1408 = BgL_bucketz00_4757;
																			goto
																				BgL_zc3z04anonymousza31373ze3z87_1410;
																		}
																	}
																}
															else
																{	/* Llib/weakhash.scm 205 */
																	obj_t BgL_arg1376z00_1414;

																	BgL_arg1376z00_1414 =
																		CDR(((obj_t) BgL_bucketz00_1408));
																	{
																		obj_t BgL_lastzd2bucketzd2_4761;
																		obj_t BgL_bucketz00_4760;

																		BgL_bucketz00_4760 = BgL_arg1376z00_1414;
																		BgL_lastzd2bucketzd2_4761 =
																			BgL_bucketz00_1408;
																		BgL_lastzd2bucketzd2_1409 =
																			BgL_lastzd2bucketzd2_4761;
																		BgL_bucketz00_1408 = BgL_bucketz00_4760;
																		goto BgL_zc3z04anonymousza31373ze3z87_1410;
																	}
																}
														}
												}
											}
											{
												long BgL_iz00_4762;

												BgL_iz00_4762 = (BgL_iz00_1403 + 1L);
												BgL_iz00_1403 = BgL_iz00_4762;
												goto BgL_zc3z04anonymousza31371ze3z87_1404;
											}
										}
								}
							}
						}
					else
						{	/* Llib/weakhash.scm 205 */
							if ((3L == (long) CINT(STRUCT_REF(BgL_tablez00_53, (int) (5L)))))
								{	/* Llib/weakhash.scm 205 */
									obj_t BgL_bucketsz00_1423;

									BgL_bucketsz00_1423 = STRUCT_REF(BgL_tablez00_53, (int) (2L));
									{	/* Llib/weakhash.scm 205 */

										{
											long BgL_iz00_1426;

											BgL_iz00_1426 = 0L;
										BgL_zc3z04anonymousza31385ze3z87_1427:
											if (
												(BgL_iz00_1426 ==
													VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1423))))
												{	/* Llib/weakhash.scm 205 */
													return ((bool_t) 0);
												}
											else
												{	/* Llib/weakhash.scm 205 */
													{	/* Llib/weakhash.scm 205 */
														obj_t BgL_g1066z00_1429;

														BgL_g1066z00_1429 =
															VECTOR_REF(
															((obj_t) BgL_bucketsz00_1423), BgL_iz00_1426);
														{
															obj_t BgL_bucketz00_1431;
															obj_t BgL_lastzd2bucketzd2_1432;

															BgL_bucketz00_1431 = BgL_g1066z00_1429;
															BgL_lastzd2bucketzd2_1432 = BFALSE;
														BgL_zc3z04anonymousza31387ze3z87_1433:
															if (NULLP(BgL_bucketz00_1431))
																{	/* Llib/weakhash.scm 205 */
																	((bool_t) 0);
																}
															else
																{	/* Llib/weakhash.scm 228 */
																	obj_t BgL_retz00_1435;

																	{	/* Llib/weakhash.scm 228 */
																		obj_t BgL_keyz00_1438;
																		obj_t BgL_dataz00_1439;

																		{	/* Llib/weakhash.scm 228 */
																			obj_t BgL_arg1392z00_1441;

																			{	/* Llib/weakhash.scm 228 */
																				obj_t BgL_pairz00_2792;

																				BgL_pairz00_2792 =
																					CAR(((obj_t) BgL_bucketz00_1431));
																				BgL_arg1392z00_1441 =
																					CAR(BgL_pairz00_2792);
																			}
																			BgL_keyz00_1438 =
																				bgl_weakptr_data(
																				((obj_t) BgL_arg1392z00_1441));
																		}
																		{	/* Llib/weakhash.scm 229 */
																			obj_t BgL_arg1394z00_1442;

																			{	/* Llib/weakhash.scm 229 */
																				obj_t BgL_pairz00_2797;

																				BgL_pairz00_2797 =
																					CAR(((obj_t) BgL_bucketz00_1431));
																				BgL_arg1394z00_1442 =
																					CDR(BgL_pairz00_2797);
																			}
																			BgL_dataz00_1439 =
																				bgl_weakptr_data(
																				((obj_t) BgL_arg1394z00_1442));
																		}
																		{	/* Llib/weakhash.scm 230 */
																			bool_t BgL_test2284z00_4789;

																			if ((BgL_keyz00_1438 == BUNSPEC))
																				{	/* Llib/weakhash.scm 230 */
																					BgL_test2284z00_4789 = ((bool_t) 1);
																				}
																			else
																				{	/* Llib/weakhash.scm 230 */
																					BgL_test2284z00_4789 =
																						(BgL_dataz00_1439 == BUNSPEC);
																				}
																			if (BgL_test2284z00_4789)
																				{	/* Llib/weakhash.scm 230 */
																					BgL_retz00_1435 =
																						BGl_removez00zz__weakhashz00;
																				}
																			else
																				{	/* Llib/weakhash.scm 230 */
																					BgL_retz00_1435 =
																						(VA_PROCEDUREP(BgL_funz00_54)
																						? ((obj_t(*)(obj_t,
																									...))
																							PROCEDURE_ENTRY(BgL_funz00_54))
																						(BgL_funz00_54, BgL_keyz00_1438,
																							BgL_dataz00_1439,
																							BEOA) : ((obj_t(*)(obj_t, obj_t,
																									obj_t))
																							PROCEDURE_ENTRY(BgL_funz00_54))
																						(BgL_funz00_54, BgL_keyz00_1438,
																							BgL_dataz00_1439));
																				}
																		}
																	}
																	if (
																		(BgL_retz00_1435 ==
																			BGl_removez00zz__weakhashz00))
																		{	/* Llib/weakhash.scm 205 */
																			{	/* Llib/weakhash.scm 134 */
																				long BgL_arg1259z00_2799;

																				BgL_arg1259z00_2799 =
																					(
																					(long)
																					CINT(STRUCT_REF(BgL_tablez00_53,
																							(int) (0L))) - 1L);
																				{	/* Llib/weakhash.scm 134 */
																					obj_t BgL_auxz00_4806;
																					int BgL_tmpz00_4804;

																					BgL_auxz00_4806 =
																						BINT(BgL_arg1259z00_2799);
																					BgL_tmpz00_4804 = (int) (0L);
																					STRUCT_SET(BgL_tablez00_53,
																						BgL_tmpz00_4804, BgL_auxz00_4806);
																			}}
																			if (CBOOL(BgL_lastzd2bucketzd2_1432))
																				{	/* Llib/weakhash.scm 136 */
																					obj_t BgL_arg1265z00_2801;

																					BgL_arg1265z00_2801 =
																						CDR(((obj_t) BgL_bucketz00_1431));
																					{	/* Llib/weakhash.scm 136 */
																						obj_t BgL_tmpz00_4813;

																						BgL_tmpz00_4813 =
																							((obj_t)
																							BgL_lastzd2bucketzd2_1432);
																						SET_CDR(BgL_tmpz00_4813,
																							BgL_arg1265z00_2801);
																					}
																				}
																			else
																				{	/* Llib/weakhash.scm 137 */
																					obj_t BgL_arg1275z00_2802;

																					BgL_arg1275z00_2802 =
																						CDR(((obj_t) BgL_bucketz00_1431));
																					VECTOR_SET(
																						((obj_t) BgL_bucketsz00_1423),
																						BgL_iz00_1426, BgL_arg1275z00_2802);
																				}
																			BGl_keepgoingz00zz__weakhashz00;
																			{	/* Llib/weakhash.scm 205 */
																				obj_t BgL_arg1389z00_1436;

																				BgL_arg1389z00_1436 =
																					CDR(((obj_t) BgL_bucketz00_1431));
																				{
																					obj_t BgL_bucketz00_4822;

																					BgL_bucketz00_4822 =
																						BgL_arg1389z00_1436;
																					BgL_bucketz00_1431 =
																						BgL_bucketz00_4822;
																					goto
																						BgL_zc3z04anonymousza31387ze3z87_1433;
																				}
																			}
																		}
																	else
																		{	/* Llib/weakhash.scm 205 */
																			obj_t BgL_arg1390z00_1437;

																			BgL_arg1390z00_1437 =
																				CDR(((obj_t) BgL_bucketz00_1431));
																			{
																				obj_t BgL_lastzd2bucketzd2_4826;
																				obj_t BgL_bucketz00_4825;

																				BgL_bucketz00_4825 =
																					BgL_arg1390z00_1437;
																				BgL_lastzd2bucketzd2_4826 =
																					BgL_bucketz00_1431;
																				BgL_lastzd2bucketzd2_1432 =
																					BgL_lastzd2bucketzd2_4826;
																				BgL_bucketz00_1431 = BgL_bucketz00_4825;
																				goto
																					BgL_zc3z04anonymousza31387ze3z87_1433;
																			}
																		}
																}
														}
													}
													{
														long BgL_iz00_4827;

														BgL_iz00_4827 = (BgL_iz00_1426 + 1L);
														BgL_iz00_1426 = BgL_iz00_4827;
														goto BgL_zc3z04anonymousza31385ze3z87_1427;
													}
												}
										}
									}
								}
							else
								{	/* Llib/weakhash.scm 205 */
									obj_t BgL_bucketsz00_1446;

									BgL_bucketsz00_1446 = STRUCT_REF(BgL_tablez00_53, (int) (2L));
									{	/* Llib/weakhash.scm 205 */

										{
											long BgL_iz00_1449;

											BgL_iz00_1449 = 0L;
										BgL_zc3z04anonymousza31396ze3z87_1450:
											if (
												(BgL_iz00_1449 ==
													VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1446))))
												{	/* Llib/weakhash.scm 205 */
													return ((bool_t) 0);
												}
											else
												{	/* Llib/weakhash.scm 205 */
													{	/* Llib/weakhash.scm 205 */
														obj_t BgL_g1067z00_1452;

														BgL_g1067z00_1452 =
															VECTOR_REF(
															((obj_t) BgL_bucketsz00_1446), BgL_iz00_1449);
														{
															obj_t BgL_bucketz00_1454;
															obj_t BgL_lastzd2bucketzd2_1455;

															BgL_bucketz00_1454 = BgL_g1067z00_1452;
															BgL_lastzd2bucketzd2_1455 = BFALSE;
														BgL_zc3z04anonymousza31398ze3z87_1456:
															if (NULLP(BgL_bucketz00_1454))
																{	/* Llib/weakhash.scm 205 */
																	((bool_t) 0);
																}
															else
																{	/* Llib/weakhash.scm 236 */
																	obj_t BgL_retz00_1458;

																	{	/* Llib/weakhash.scm 236 */
																		obj_t BgL_arg1402z00_1461;
																		obj_t BgL_arg1403z00_1462;

																		{	/* Llib/weakhash.scm 236 */
																			obj_t BgL_pairz00_2823;

																			BgL_pairz00_2823 =
																				CAR(((obj_t) BgL_bucketz00_1454));
																			BgL_arg1402z00_1461 =
																				CAR(BgL_pairz00_2823);
																		}
																		{	/* Llib/weakhash.scm 236 */
																			obj_t BgL_pairz00_2827;

																			BgL_pairz00_2827 =
																				CAR(((obj_t) BgL_bucketz00_1454));
																			BgL_arg1403z00_1462 =
																				CDR(BgL_pairz00_2827);
																		}
																		BgL_retz00_1458 =
																			(VA_PROCEDUREP(BgL_funz00_54)
																			? ((obj_t(*)(obj_t,
																						...))
																				PROCEDURE_ENTRY(BgL_funz00_54))
																			(BgL_funz00_54, BgL_arg1402z00_1461,
																				BgL_arg1403z00_1462,
																				BEOA) : ((obj_t(*)(obj_t, obj_t,
																						obj_t))
																				PROCEDURE_ENTRY(BgL_funz00_54))
																			(BgL_funz00_54, BgL_arg1402z00_1461,
																				BgL_arg1403z00_1462));
																	}
																	if (
																		(BgL_retz00_1458 ==
																			BGl_removez00zz__weakhashz00))
																		{	/* Llib/weakhash.scm 205 */
																			{	/* Llib/weakhash.scm 134 */
																				long BgL_arg1259z00_2828;

																				BgL_arg1259z00_2828 =
																					(
																					(long)
																					CINT(STRUCT_REF(BgL_tablez00_53,
																							(int) (0L))) - 1L);
																				{	/* Llib/weakhash.scm 134 */
																					obj_t BgL_auxz00_4858;
																					int BgL_tmpz00_4856;

																					BgL_auxz00_4858 =
																						BINT(BgL_arg1259z00_2828);
																					BgL_tmpz00_4856 = (int) (0L);
																					STRUCT_SET(BgL_tablez00_53,
																						BgL_tmpz00_4856, BgL_auxz00_4858);
																			}}
																			if (CBOOL(BgL_lastzd2bucketzd2_1455))
																				{	/* Llib/weakhash.scm 136 */
																					obj_t BgL_arg1265z00_2830;

																					BgL_arg1265z00_2830 =
																						CDR(((obj_t) BgL_bucketz00_1454));
																					{	/* Llib/weakhash.scm 136 */
																						obj_t BgL_tmpz00_4865;

																						BgL_tmpz00_4865 =
																							((obj_t)
																							BgL_lastzd2bucketzd2_1455);
																						SET_CDR(BgL_tmpz00_4865,
																							BgL_arg1265z00_2830);
																					}
																				}
																			else
																				{	/* Llib/weakhash.scm 137 */
																					obj_t BgL_arg1275z00_2831;

																					BgL_arg1275z00_2831 =
																						CDR(((obj_t) BgL_bucketz00_1454));
																					VECTOR_SET(
																						((obj_t) BgL_bucketsz00_1446),
																						BgL_iz00_1449, BgL_arg1275z00_2831);
																				}
																			BGl_keepgoingz00zz__weakhashz00;
																			{	/* Llib/weakhash.scm 205 */
																				obj_t BgL_arg1400z00_1459;

																				BgL_arg1400z00_1459 =
																					CDR(((obj_t) BgL_bucketz00_1454));
																				{
																					obj_t BgL_bucketz00_4874;

																					BgL_bucketz00_4874 =
																						BgL_arg1400z00_1459;
																					BgL_bucketz00_1454 =
																						BgL_bucketz00_4874;
																					goto
																						BgL_zc3z04anonymousza31398ze3z87_1456;
																				}
																			}
																		}
																	else
																		{	/* Llib/weakhash.scm 205 */
																			obj_t BgL_arg1401z00_1460;

																			BgL_arg1401z00_1460 =
																				CDR(((obj_t) BgL_bucketz00_1454));
																			{
																				obj_t BgL_lastzd2bucketzd2_4878;
																				obj_t BgL_bucketz00_4877;

																				BgL_bucketz00_4877 =
																					BgL_arg1401z00_1460;
																				BgL_lastzd2bucketzd2_4878 =
																					BgL_bucketz00_1454;
																				BgL_lastzd2bucketzd2_1455 =
																					BgL_lastzd2bucketzd2_4878;
																				BgL_bucketz00_1454 = BgL_bucketz00_4877;
																				goto
																					BgL_zc3z04anonymousza31398ze3z87_1456;
																			}
																		}
																}
														}
													}
													{
														long BgL_iz00_4879;

														BgL_iz00_4879 = (BgL_iz00_1449 + 1L);
														BgL_iz00_1449 = BgL_iz00_4879;
														goto BgL_zc3z04anonymousza31396ze3z87_1450;
													}
												}
										}
									}
								}
						}
				}
		}

	}



/* weak-hashtable->vector */
	BGL_EXPORTED_DEF obj_t
		BGl_weakzd2hashtablezd2ze3vectorze3zz__weakhashz00(obj_t BgL_tablez00_57)
	{
		{	/* Llib/weakhash.scm 256 */
			{	/* Llib/weakhash.scm 257 */
				obj_t BgL_vecz00_1470;
				obj_t BgL_wz00_4062;

				BgL_vecz00_1470 =
					make_vector(BGl_hashtablezd2siza7ez75zz__hashz00(BgL_tablez00_57),
					BUNSPEC);
				BgL_wz00_4062 = MAKE_CELL(BINT(0L));
				{	/* Llib/weakhash.scm 261 */
					obj_t BgL_zc3z04anonymousza31411ze3z87_4053;

					BgL_zc3z04anonymousza31411ze3z87_4053 =
						MAKE_FX_PROCEDURE
						(BGl_z62zc3z04anonymousza31411ze3ze5zz__weakhashz00, (int) (2L),
						(int) (2L));
					PROCEDURE_SET(BgL_zc3z04anonymousza31411ze3z87_4053, (int) (0L),
						BgL_vecz00_1470);
					PROCEDURE_SET(BgL_zc3z04anonymousza31411ze3z87_4053, (int) (1L),
						((obj_t) BgL_wz00_4062));
					if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_57))
						{	/* Llib/weakhash.scm 249 */
							BGl_keyszd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_57,
								BgL_zc3z04anonymousza31411ze3z87_4053);
						}
					else
						{	/* Llib/weakhash.scm 249 */
							BGl_oldzd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_57,
								BgL_zc3z04anonymousza31411ze3z87_4053);
						}
				}
				{	/* Llib/weakhash.scm 263 */
					bool_t BgL_test2293z00_4896;

					{	/* Llib/weakhash.scm 263 */
						long BgL_arg1414z00_1479;

						BgL_arg1414z00_1479 =
							BGl_hashtablezd2siza7ez75zz__hashz00(BgL_tablez00_57);
						BgL_test2293z00_4896 =
							((long) CINT(CELL_REF(BgL_wz00_4062)) < BgL_arg1414z00_1479);
					}
					if (BgL_test2293z00_4896)
						{	/* Llib/weakhash.scm 263 */
							return
								BGl_copyzd2vectorzd2zz__r4_vectors_6_8z00(BgL_vecz00_1470,
								(long) CINT(CELL_REF(BgL_wz00_4062)));
						}
					else
						{	/* Llib/weakhash.scm 263 */
							return BgL_vecz00_1470;
						}
				}
			}
		}

	}



/* &weak-hashtable->vector */
	obj_t BGl_z62weakzd2hashtablezd2ze3vectorz81zz__weakhashz00(obj_t
		BgL_envz00_4054, obj_t BgL_tablez00_4055)
	{
		{	/* Llib/weakhash.scm 256 */
			{	/* Llib/weakhash.scm 257 */
				obj_t BgL_auxz00_4902;

				if (STRUCTP(BgL_tablez00_4055))
					{	/* Llib/weakhash.scm 257 */
						BgL_auxz00_4902 = BgL_tablez00_4055;
					}
				else
					{
						obj_t BgL_auxz00_4905;

						BgL_auxz00_4905 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(9857L), BGl_string2173z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_tablez00_4055);
						FAILURE(BgL_auxz00_4905, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2ze3vectorze3zz__weakhashz00(BgL_auxz00_4902);
			}
		}

	}



/* &<@anonymous:1411> */
	obj_t BGl_z62zc3z04anonymousza31411ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4056, obj_t BgL_keyz00_4059, obj_t BgL_valz00_4060)
	{
		{	/* Llib/weakhash.scm 260 */
			{	/* Llib/weakhash.scm 261 */
				obj_t BgL_vecz00_4057;
				obj_t BgL_wz00_4058;

				BgL_vecz00_4057 = ((obj_t) PROCEDURE_REF(BgL_envz00_4056, (int) (0L)));
				BgL_wz00_4058 = PROCEDURE_REF(BgL_envz00_4056, (int) (1L));
				{	/* Llib/weakhash.scm 261 */
					long BgL_kz00_4254;

					BgL_kz00_4254 = (long) CINT(CELL_REF(BgL_wz00_4058));
					VECTOR_SET(((obj_t) BgL_vecz00_4057), BgL_kz00_4254, BgL_valz00_4060);
				}
				{	/* Llib/weakhash.scm 262 */
					obj_t BgL_auxz00_4255;

					BgL_auxz00_4255 = ADDFX(CELL_REF(BgL_wz00_4058), BINT(1L));
					return CELL_SET(BgL_wz00_4058, BgL_auxz00_4255);
				}
			}
		}

	}



/* weak-hashtable->list */
	BGL_EXPORTED_DEF obj_t BGl_weakzd2hashtablezd2ze3listze3zz__weakhashz00(obj_t
		BgL_tablez00_58)
	{
		{	/* Llib/weakhash.scm 270 */
			{	/* Llib/weakhash.scm 271 */
				obj_t BgL_resz00_4072;

				BgL_resz00_4072 = MAKE_CELL(BNIL);
				{	/* Llib/weakhash.scm 274 */
					obj_t BgL_zc3z04anonymousza31418ze3z87_4064;

					BgL_zc3z04anonymousza31418ze3z87_4064 =
						MAKE_FX_PROCEDURE
						(BGl_z62zc3z04anonymousza31418ze3ze5zz__weakhashz00, (int) (2L),
						(int) (1L));
					PROCEDURE_SET(BgL_zc3z04anonymousza31418ze3z87_4064, (int) (0L),
						((obj_t) BgL_resz00_4072));
					if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_58))
						{	/* Llib/weakhash.scm 249 */
							BGl_keyszd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_58,
								BgL_zc3z04anonymousza31418ze3z87_4064);
						}
					else
						{	/* Llib/weakhash.scm 249 */
							BGl_oldzd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_58,
								BgL_zc3z04anonymousza31418ze3z87_4064);
						}
				}
				return CELL_REF(BgL_resz00_4072);
			}
		}

	}



/* &weak-hashtable->list */
	obj_t BGl_z62weakzd2hashtablezd2ze3listz81zz__weakhashz00(obj_t
		BgL_envz00_4065, obj_t BgL_tablez00_4066)
	{
		{	/* Llib/weakhash.scm 270 */
			{	/* Llib/weakhash.scm 271 */
				obj_t BgL_auxz00_4930;

				if (STRUCTP(BgL_tablez00_4066))
					{	/* Llib/weakhash.scm 271 */
						BgL_auxz00_4930 = BgL_tablez00_4066;
					}
				else
					{
						obj_t BgL_auxz00_4933;

						BgL_auxz00_4933 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(10362L), BGl_string2175z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_tablez00_4066);
						FAILURE(BgL_auxz00_4933, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2ze3listze3zz__weakhashz00(BgL_auxz00_4930);
			}
		}

	}



/* &<@anonymous:1418> */
	obj_t BGl_z62zc3z04anonymousza31418ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4067, obj_t BgL_keyz00_4069, obj_t BgL_valz00_4070)
	{
		{	/* Llib/weakhash.scm 273 */
			{	/* Llib/weakhash.scm 274 */
				obj_t BgL_resz00_4068;

				BgL_resz00_4068 = PROCEDURE_REF(BgL_envz00_4067, (int) (0L));
				{	/* Llib/weakhash.scm 274 */
					obj_t BgL_auxz00_4256;

					BgL_auxz00_4256 =
						MAKE_YOUNG_PAIR(BgL_valz00_4070, CELL_REF(BgL_resz00_4068));
					return CELL_SET(BgL_resz00_4068, BgL_auxz00_4256);
				}
			}
		}

	}



/* weak-hashtable-key-list */
	BGL_EXPORTED_DEF obj_t
		BGl_weakzd2hashtablezd2keyzd2listzd2zz__weakhashz00(obj_t BgL_tablez00_59)
	{
		{	/* Llib/weakhash.scm 280 */
			{	/* Llib/weakhash.scm 281 */
				obj_t BgL_resz00_4082;

				BgL_resz00_4082 = MAKE_CELL(BNIL);
				{	/* Llib/weakhash.scm 284 */
					obj_t BgL_zc3z04anonymousza31420ze3z87_4074;

					BgL_zc3z04anonymousza31420ze3z87_4074 =
						MAKE_FX_PROCEDURE
						(BGl_z62zc3z04anonymousza31420ze3ze5zz__weakhashz00, (int) (2L),
						(int) (1L));
					PROCEDURE_SET(BgL_zc3z04anonymousza31420ze3z87_4074, (int) (0L),
						((obj_t) BgL_resz00_4082));
					if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_59))
						{	/* Llib/weakhash.scm 249 */
							BGl_keyszd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_59,
								BgL_zc3z04anonymousza31420ze3z87_4074);
						}
					else
						{	/* Llib/weakhash.scm 249 */
							BGl_oldzd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_59,
								BgL_zc3z04anonymousza31420ze3z87_4074);
						}
				}
				return CELL_REF(BgL_resz00_4082);
			}
		}

	}



/* &weak-hashtable-key-list */
	obj_t BGl_z62weakzd2hashtablezd2keyzd2listzb0zz__weakhashz00(obj_t
		BgL_envz00_4075, obj_t BgL_tablez00_4076)
	{
		{	/* Llib/weakhash.scm 280 */
			{	/* Llib/weakhash.scm 281 */
				obj_t BgL_auxz00_4951;

				if (STRUCTP(BgL_tablez00_4076))
					{	/* Llib/weakhash.scm 281 */
						BgL_auxz00_4951 = BgL_tablez00_4076;
					}
				else
					{
						obj_t BgL_auxz00_4954;

						BgL_auxz00_4954 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(10745L), BGl_string2176z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_tablez00_4076);
						FAILURE(BgL_auxz00_4954, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2keyzd2listzd2zz__weakhashz00(BgL_auxz00_4951);
			}
		}

	}



/* &<@anonymous:1420> */
	obj_t BGl_z62zc3z04anonymousza31420ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4077, obj_t BgL_keyz00_4079, obj_t BgL_valz00_4080)
	{
		{	/* Llib/weakhash.scm 283 */
			{	/* Llib/weakhash.scm 284 */
				obj_t BgL_resz00_4078;

				BgL_resz00_4078 = PROCEDURE_REF(BgL_envz00_4077, (int) (0L));
				{	/* Llib/weakhash.scm 284 */
					obj_t BgL_auxz00_4257;

					BgL_auxz00_4257 =
						MAKE_YOUNG_PAIR(BgL_keyz00_4079, CELL_REF(BgL_resz00_4078));
					return CELL_SET(BgL_resz00_4078, BgL_auxz00_4257);
				}
			}
		}

	}



/* weak-hashtable-map */
	BGL_EXPORTED_DEF obj_t BGl_weakzd2hashtablezd2mapz00zz__weakhashz00(obj_t
		BgL_tablez00_60, obj_t BgL_funz00_61)
	{
		{	/* Llib/weakhash.scm 290 */
			{	/* Llib/weakhash.scm 291 */
				obj_t BgL_resz00_4094;

				BgL_resz00_4094 = MAKE_CELL(BNIL);
				{	/* Llib/weakhash.scm 294 */
					obj_t BgL_zc3z04anonymousza31422ze3z87_4084;

					BgL_zc3z04anonymousza31422ze3z87_4084 =
						MAKE_FX_PROCEDURE
						(BGl_z62zc3z04anonymousza31422ze3ze5zz__weakhashz00, (int) (2L),
						(int) (2L));
					PROCEDURE_SET(BgL_zc3z04anonymousza31422ze3z87_4084, (int) (0L),
						BgL_funz00_61);
					PROCEDURE_SET(BgL_zc3z04anonymousza31422ze3z87_4084, (int) (1L),
						((obj_t) BgL_resz00_4094));
					if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_60))
						{	/* Llib/weakhash.scm 249 */
							BGl_keyszd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_60,
								BgL_zc3z04anonymousza31422ze3z87_4084);
						}
					else
						{	/* Llib/weakhash.scm 249 */
							BGl_oldzd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_60,
								BgL_zc3z04anonymousza31422ze3z87_4084);
						}
				}
				return CELL_REF(BgL_resz00_4094);
			}
		}

	}



/* &weak-hashtable-map */
	obj_t BGl_z62weakzd2hashtablezd2mapz62zz__weakhashz00(obj_t BgL_envz00_4085,
		obj_t BgL_tablez00_4086, obj_t BgL_funz00_4087)
	{
		{	/* Llib/weakhash.scm 290 */
			{	/* Llib/weakhash.scm 291 */
				obj_t BgL_auxz00_4981;
				obj_t BgL_auxz00_4974;

				if (PROCEDUREP(BgL_funz00_4087))
					{	/* Llib/weakhash.scm 291 */
						BgL_auxz00_4981 = BgL_funz00_4087;
					}
				else
					{
						obj_t BgL_auxz00_4984;

						BgL_auxz00_4984 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(11138L), BGl_string2177z00zz__weakhashz00,
							BGl_string2178z00zz__weakhashz00, BgL_funz00_4087);
						FAILURE(BgL_auxz00_4984, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_4086))
					{	/* Llib/weakhash.scm 291 */
						BgL_auxz00_4974 = BgL_tablez00_4086;
					}
				else
					{
						obj_t BgL_auxz00_4977;

						BgL_auxz00_4977 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(11138L), BGl_string2177z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_tablez00_4086);
						FAILURE(BgL_auxz00_4977, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2mapz00zz__weakhashz00(BgL_auxz00_4974,
					BgL_auxz00_4981);
			}
		}

	}



/* &<@anonymous:1422> */
	obj_t BGl_z62zc3z04anonymousza31422ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4088, obj_t BgL_keyz00_4091, obj_t BgL_valz00_4092)
	{
		{	/* Llib/weakhash.scm 293 */
			{	/* Llib/weakhash.scm 294 */
				obj_t BgL_funz00_4089;
				obj_t BgL_resz00_4090;

				BgL_funz00_4089 = ((obj_t) PROCEDURE_REF(BgL_envz00_4088, (int) (0L)));
				BgL_resz00_4090 = PROCEDURE_REF(BgL_envz00_4088, (int) (1L));
				{	/* Llib/weakhash.scm 294 */
					obj_t BgL_auxz00_4258;

					{	/* Llib/weakhash.scm 294 */
						obj_t BgL_arg1423z00_4259;

						BgL_arg1423z00_4259 =
							(VA_PROCEDUREP(BgL_funz00_4089) ? ((obj_t(*)(obj_t,
										...)) PROCEDURE_ENTRY(BgL_funz00_4089)) (BgL_funz00_4089,
								BgL_keyz00_4091, BgL_valz00_4092, BEOA) : ((obj_t(*)(obj_t,
										obj_t,
										obj_t)) PROCEDURE_ENTRY(BgL_funz00_4089)) (BgL_funz00_4089,
								BgL_keyz00_4091, BgL_valz00_4092));
						BgL_auxz00_4258 =
							MAKE_YOUNG_PAIR(BgL_arg1423z00_4259, CELL_REF(BgL_resz00_4090));
					}
					return CELL_SET(BgL_resz00_4090, BgL_auxz00_4258);
				}
			}
		}

	}



/* weak-hashtable-for-each */
	BGL_EXPORTED_DEF obj_t
		BGl_weakzd2hashtablezd2forzd2eachzd2zz__weakhashz00(obj_t BgL_tablez00_62,
		obj_t BgL_funz00_63)
	{
		{	/* Llib/weakhash.scm 300 */
			if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_62))
				{	/* Llib/weakhash.scm 249 */
					return
						BBOOL(BGl_keyszd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_62,
							BgL_funz00_63));
				}
			else
				{	/* Llib/weakhash.scm 249 */
					return
						BBOOL(BGl_oldzd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_62,
							BgL_funz00_63));
				}
		}

	}



/* &weak-hashtable-for-each */
	obj_t BGl_z62weakzd2hashtablezd2forzd2eachzb0zz__weakhashz00(obj_t
		BgL_envz00_4096, obj_t BgL_tablez00_4097, obj_t BgL_funz00_4098)
	{
		{	/* Llib/weakhash.scm 300 */
			{	/* Llib/weakhash.scm 249 */
				obj_t BgL_auxz00_5013;
				obj_t BgL_auxz00_5006;

				if (PROCEDUREP(BgL_funz00_4098))
					{	/* Llib/weakhash.scm 249 */
						BgL_auxz00_5013 = BgL_funz00_4098;
					}
				else
					{
						obj_t BgL_auxz00_5016;

						BgL_auxz00_5016 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(9474L), BGl_string2179z00zz__weakhashz00,
							BGl_string2178z00zz__weakhashz00, BgL_funz00_4098);
						FAILURE(BgL_auxz00_5016, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_4097))
					{	/* Llib/weakhash.scm 249 */
						BgL_auxz00_5006 = BgL_tablez00_4097;
					}
				else
					{
						obj_t BgL_auxz00_5009;

						BgL_auxz00_5009 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(9474L), BGl_string2179z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_tablez00_4097);
						FAILURE(BgL_auxz00_5009, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2forzd2eachzd2zz__weakhashz00(BgL_auxz00_5006,
					BgL_auxz00_5013);
			}
		}

	}



/* weak-keys-hashtable-filter! */
	bool_t BGl_weakzd2keyszd2hashtablezd2filterz12zc0zz__weakhashz00(obj_t
		BgL_tablez00_64, obj_t BgL_funz00_65)
	{
		{	/* Llib/weakhash.scm 306 */
			{	/* Llib/weakhash.scm 307 */
				obj_t BgL_bucketsz00_1501;

				BgL_bucketsz00_1501 = STRUCT_REF(BgL_tablez00_64, (int) (2L));
				{	/* Llib/weakhash.scm 308 */

					{
						long BgL_iz00_1504;

						BgL_iz00_1504 = 0L;
					BgL_zc3z04anonymousza31424ze3z87_1505:
						if ((BgL_iz00_1504 < VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1501))))
							{	/* Llib/weakhash.scm 311 */
								obj_t BgL_bucketz00_1507;
								obj_t BgL_countz00_4105;

								BgL_bucketz00_1507 =
									VECTOR_REF(((obj_t) BgL_bucketsz00_1501), BgL_iz00_1504);
								BgL_countz00_4105 = MAKE_CELL(BINT(0L));
								{	/* Llib/weakhash.scm 315 */
									obj_t BgL_arg1426z00_1509;

									{	/* Llib/weakhash.scm 315 */
										obj_t BgL_zc3z04anonymousza31428ze3z87_4099;

										BgL_zc3z04anonymousza31428ze3z87_4099 =
											MAKE_FX_PROCEDURE
											(BGl_z62zc3z04anonymousza31428ze3ze5zz__weakhashz00,
											(int) (1L), (int) (2L));
										PROCEDURE_SET(BgL_zc3z04anonymousza31428ze3z87_4099,
											(int) (0L), ((obj_t) BgL_countz00_4105));
										PROCEDURE_SET(BgL_zc3z04anonymousza31428ze3z87_4099,
											(int) (1L), ((obj_t) BgL_funz00_65));
										BgL_arg1426z00_1509 =
											BGl_filterz12z12zz__r4_control_features_6_9z00
											(BgL_zc3z04anonymousza31428ze3z87_4099,
											BgL_bucketz00_1507);
									}
									VECTOR_SET(
										((obj_t) BgL_bucketsz00_1501), BgL_iz00_1504,
										BgL_arg1426z00_1509);
								}
								{	/* Llib/weakhash.scm 322 */
									long BgL_arg1442z00_1528;

									BgL_arg1442z00_1528 =
										(
										(long) CINT(STRUCT_REF(BgL_tablez00_64,
												(int) (0L))) -
										(long) CINT(CELL_REF(BgL_countz00_4105)));
									{	/* Llib/weakhash.scm 322 */
										obj_t BgL_auxz00_5049;
										int BgL_tmpz00_5047;

										BgL_auxz00_5049 = BINT(BgL_arg1442z00_1528);
										BgL_tmpz00_5047 = (int) (0L);
										STRUCT_SET(BgL_tablez00_64, BgL_tmpz00_5047,
											BgL_auxz00_5049);
								}}
								{
									long BgL_iz00_5052;

									BgL_iz00_5052 = (BgL_iz00_1504 + 1L);
									BgL_iz00_1504 = BgL_iz00_5052;
									goto BgL_zc3z04anonymousza31424ze3z87_1505;
								}
							}
						else
							{	/* Llib/weakhash.scm 310 */
								return ((bool_t) 0);
							}
					}
				}
			}
		}

	}



/* &<@anonymous:1428> */
	obj_t BGl_z62zc3z04anonymousza31428ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4100, obj_t BgL_vz00_4103)
	{
		{	/* Llib/weakhash.scm 314 */
			{	/* Llib/weakhash.scm 315 */
				obj_t BgL_countz00_4101;
				obj_t BgL_funz00_4102;

				BgL_countz00_4101 = PROCEDURE_REF(BgL_envz00_4100, (int) (0L));
				BgL_funz00_4102 = PROCEDURE_REF(BgL_envz00_4100, (int) (1L));
				{	/* Llib/weakhash.scm 315 */
					bool_t BgL_tmpz00_5058;

					{	/* Llib/weakhash.scm 315 */
						bool_t BgL_test2306z00_5059;

						{	/* Llib/weakhash.scm 315 */
							bool_t BgL_test2307z00_5060;

							{	/* Llib/weakhash.scm 315 */
								obj_t BgL_arg1441z00_4260;

								BgL_arg1441z00_4260 = bgl_weakptr_data(((obj_t) BgL_vz00_4103));
								BgL_test2307z00_5060 = (BgL_arg1441z00_4260 == BUNSPEC);
							}
							if (BgL_test2307z00_5060)
								{	/* Llib/weakhash.scm 315 */
									BgL_test2306z00_5059 = ((bool_t) 1);
								}
							else
								{	/* Llib/weakhash.scm 316 */
									bool_t BgL_test2308z00_5064;

									{	/* Llib/weakhash.scm 316 */
										obj_t BgL_arg1439z00_4261;
										obj_t BgL_arg1440z00_4262;

										BgL_arg1439z00_4261 =
											bgl_weakptr_data(((obj_t) BgL_vz00_4103));
										BgL_arg1440z00_4262 =
											bgl_weakptr_ref(((obj_t) BgL_vz00_4103));
										BgL_test2308z00_5064 =
											CBOOL(
											(VA_PROCEDUREP(BgL_funz00_4102) ? ((obj_t(*)(obj_t,
															...))
													PROCEDURE_ENTRY(BgL_funz00_4102)) (BgL_funz00_4102,
													BgL_arg1439z00_4261, BgL_arg1440z00_4262,
													BEOA) : ((obj_t(*)(obj_t, obj_t,
															obj_t))
													PROCEDURE_ENTRY(BgL_funz00_4102)) (BgL_funz00_4102,
													BgL_arg1439z00_4261, BgL_arg1440z00_4262)));
									}
									if (BgL_test2308z00_5064)
										{	/* Llib/weakhash.scm 316 */
											BgL_test2306z00_5059 = ((bool_t) 0);
										}
									else
										{	/* Llib/weakhash.scm 316 */
											BgL_test2306z00_5059 = ((bool_t) 1);
										}
								}
						}
						if (BgL_test2306z00_5059)
							{	/* Llib/weakhash.scm 315 */
								{	/* Llib/weakhash.scm 318 */
									obj_t BgL_auxz00_4263;

									BgL_auxz00_4263 =
										ADDFX(CELL_REF(BgL_countz00_4101), BINT(1L));
									CELL_SET(BgL_countz00_4101, BgL_auxz00_4263);
								}
								BgL_tmpz00_5058 = ((bool_t) 0);
							}
						else
							{	/* Llib/weakhash.scm 315 */
								BgL_tmpz00_5058 = ((bool_t) 1);
							}
					}
					return BBOOL(BgL_tmpz00_5058);
				}
			}
		}

	}



/* weak-old-hashtable-filter! */
	bool_t BGl_weakzd2oldzd2hashtablezd2filterz12zc0zz__weakhashz00(obj_t
		BgL_tablez00_66, obj_t BgL_funz00_67)
	{
		{	/* Llib/weakhash.scm 328 */
			{	/* Llib/weakhash.scm 329 */
				obj_t BgL_bucketsz00_1532;

				BgL_bucketsz00_1532 = STRUCT_REF(BgL_tablez00_66, (int) (2L));
				{	/* Llib/weakhash.scm 330 */

					{
						long BgL_iz00_1535;

						BgL_iz00_1535 = 0L;
					BgL_zc3z04anonymousza31445ze3z87_1536:
						if ((BgL_iz00_1535 < VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1532))))
							{	/* Llib/weakhash.scm 332 */
								{	/* Llib/weakhash.scm 336 */
									obj_t BgL_zc3z04anonymousza31448ze3z87_4107;

									{
										int BgL_tmpz00_5084;

										BgL_tmpz00_5084 = (int) (1L);
										BgL_zc3z04anonymousza31448ze3z87_4107 =
											MAKE_L_PROCEDURE
											(BGl_z62zc3z04anonymousza31448ze3ze5zz__weakhashz00,
											BgL_tmpz00_5084);
									}
									PROCEDURE_L_SET(BgL_zc3z04anonymousza31448ze3z87_4107,
										(int) (0L), ((obj_t) BgL_funz00_67));
									BGl_traversezd2bucketszd2zz__weakhashz00(BgL_tablez00_66,
										BgL_bucketsz00_1532, BgL_iz00_1535,
										BgL_zc3z04anonymousza31448ze3z87_4107);
								}
								{
									long BgL_iz00_5091;

									BgL_iz00_5091 = (BgL_iz00_1535 + 1L);
									BgL_iz00_1535 = BgL_iz00_5091;
									goto BgL_zc3z04anonymousza31445ze3z87_1536;
								}
							}
						else
							{	/* Llib/weakhash.scm 332 */
								return ((bool_t) 0);
							}
					}
				}
			}
		}

	}



/* &<@anonymous:1448> */
	obj_t BGl_z62zc3z04anonymousza31448ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4108, obj_t BgL_keyz00_4110, obj_t BgL_valz00_4111,
		obj_t BgL_bucketz00_4112)
	{
		{	/* Llib/weakhash.scm 335 */
			{	/* Llib/weakhash.scm 336 */
				obj_t BgL_funz00_4109;

				BgL_funz00_4109 = PROCEDURE_L_REF(BgL_envz00_4108, (int) (0L));
				if (CBOOL(
						(VA_PROCEDUREP(BgL_funz00_4109) ? ((obj_t(*)(obj_t,
										...)) PROCEDURE_ENTRY(BgL_funz00_4109)) (BgL_funz00_4109,
								BgL_keyz00_4110, BgL_valz00_4111, BEOA) : ((obj_t(*)(obj_t,
										obj_t,
										obj_t)) PROCEDURE_ENTRY(BgL_funz00_4109)) (BgL_funz00_4109,
								BgL_keyz00_4110, BgL_valz00_4111))))
					{	/* Llib/weakhash.scm 336 */
						return BGl_keepgoingz00zz__weakhashz00;
					}
				else
					{	/* Llib/weakhash.scm 336 */
						return BGl_removez00zz__weakhashz00;
					}
			}
		}

	}



/* weak-hashtable-filter! */
	BGL_EXPORTED_DEF obj_t
		BGl_weakzd2hashtablezd2filterz12z12zz__weakhashz00(obj_t BgL_tablez00_68,
		obj_t BgL_funz00_69)
	{
		{	/* Llib/weakhash.scm 344 */
			if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_68))
				{	/* Llib/weakhash.scm 345 */
					return
						BBOOL(BGl_weakzd2keyszd2hashtablezd2filterz12zc0zz__weakhashz00
						(BgL_tablez00_68, BgL_funz00_69));
				}
			else
				{	/* Llib/weakhash.scm 345 */
					return
						BBOOL(BGl_weakzd2oldzd2hashtablezd2filterz12zc0zz__weakhashz00
						(BgL_tablez00_68, BgL_funz00_69));
				}
		}

	}



/* &weak-hashtable-filter! */
	obj_t BGl_z62weakzd2hashtablezd2filterz12z70zz__weakhashz00(obj_t
		BgL_envz00_4113, obj_t BgL_tablez00_4114, obj_t BgL_funz00_4115)
	{
		{	/* Llib/weakhash.scm 344 */
			{	/* Llib/weakhash.scm 345 */
				obj_t BgL_auxz00_5115;
				obj_t BgL_auxz00_5108;

				if (PROCEDUREP(BgL_funz00_4115))
					{	/* Llib/weakhash.scm 345 */
						BgL_auxz00_5115 = BgL_funz00_4115;
					}
				else
					{
						obj_t BgL_auxz00_5118;

						BgL_auxz00_5118 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(13294L), BGl_string2180z00zz__weakhashz00,
							BGl_string2178z00zz__weakhashz00, BgL_funz00_4115);
						FAILURE(BgL_auxz00_5118, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_4114))
					{	/* Llib/weakhash.scm 345 */
						BgL_auxz00_5108 = BgL_tablez00_4114;
					}
				else
					{
						obj_t BgL_auxz00_5111;

						BgL_auxz00_5111 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(13294L), BGl_string2180z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_tablez00_4114);
						FAILURE(BgL_auxz00_5111, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2filterz12z12zz__weakhashz00(BgL_auxz00_5108,
					BgL_auxz00_5115);
			}
		}

	}



/* weak-hashtable-clear! */
	BGL_EXPORTED_DEF obj_t BGl_weakzd2hashtablezd2clearz12z12zz__weakhashz00(obj_t
		BgL_tablez00_70)
	{
		{	/* Llib/weakhash.scm 352 */
			if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_70))
				{	/* Llib/weakhash.scm 353 */
					return
						BBOOL(BGl_weakzd2keyszd2hashtablezd2filterz12zc0zz__weakhashz00
						(BgL_tablez00_70, BGl_proc2181z00zz__weakhashz00));
				}
			else
				{	/* Llib/weakhash.scm 353 */
					return
						BBOOL(BGl_weakzd2oldzd2hashtablezd2filterz12zc0zz__weakhashz00
						(BgL_tablez00_70, BGl_proc2182z00zz__weakhashz00));
				}
		}

	}



/* &weak-hashtable-clear! */
	obj_t BGl_z62weakzd2hashtablezd2clearz12z70zz__weakhashz00(obj_t
		BgL_envz00_4118, obj_t BgL_tablez00_4119)
	{
		{	/* Llib/weakhash.scm 352 */
			{	/* Llib/weakhash.scm 353 */
				obj_t BgL_auxz00_5129;

				if (STRUCTP(BgL_tablez00_4119))
					{	/* Llib/weakhash.scm 353 */
						BgL_auxz00_5129 = BgL_tablez00_4119;
					}
				else
					{
						obj_t BgL_auxz00_5132;

						BgL_auxz00_5132 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(13701L), BGl_string2183z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_tablez00_4119);
						FAILURE(BgL_auxz00_5132, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2clearz12z12zz__weakhashz00(BgL_auxz00_5129);
			}
		}

	}



/* &<@anonymous:1454> */
	obj_t BGl_z62zc3z04anonymousza31454ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4120, obj_t BgL_kz00_4121, obj_t BgL_vz00_4122)
	{
		{	/* Llib/weakhash.scm 354 */
			return BBOOL(((bool_t) 0));
		}

	}



/* &<@anonymous:1456> */
	obj_t BGl_z62zc3z04anonymousza31456ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4123, obj_t BgL_kz00_4124, obj_t BgL_vz00_4125)
	{
		{	/* Llib/weakhash.scm 355 */
			return BBOOL(((bool_t) 0));
		}

	}



/* weak-keys-hashtable-contains? */
	bool_t BGl_weakzd2keyszd2hashtablezd2containszf3z21zz__weakhashz00(obj_t
		BgL_tablez00_71, obj_t BgL_keyz00_72)
	{
		{	/* Llib/weakhash.scm 360 */
			{	/* Llib/weakhash.scm 361 */
				obj_t BgL_bucketsz00_1559;

				BgL_bucketsz00_1559 = STRUCT_REF(BgL_tablez00_71, (int) (2L));
				{	/* Llib/weakhash.scm 362 */
					long BgL_bucketzd2numzd2_1561;

					{	/* Llib/weakhash.scm 363 */
						long BgL_arg1465z00_1574;

						{	/* Llib/weakhash.scm 363 */
							obj_t BgL_hashnz00_2900;

							BgL_hashnz00_2900 = STRUCT_REF(BgL_tablez00_71, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_2900))
								{	/* Llib/weakhash.scm 363 */
									obj_t BgL_arg1254z00_2902;

									BgL_arg1254z00_2902 =
										(VA_PROCEDUREP(BgL_hashnz00_2900) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_hashnz00_2900)) (BgL_hashnz00_2900,
											BgL_keyz00_72, BEOA) : ((obj_t(*)(obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_hashnz00_2900)) (BgL_hashnz00_2900,
											BgL_keyz00_72));
									{	/* Llib/weakhash.scm 363 */
										long BgL_nz00_2904;

										BgL_nz00_2904 = (long) CINT(BgL_arg1254z00_2902);
										if ((BgL_nz00_2904 < 0L))
											{	/* Llib/weakhash.scm 363 */
												BgL_arg1465z00_1574 = NEG(BgL_nz00_2904);
											}
										else
											{	/* Llib/weakhash.scm 363 */
												BgL_arg1465z00_1574 = BgL_nz00_2904;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 363 */
									if ((BgL_hashnz00_2900 == BGl_symbol2184z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 363 */
											BgL_arg1465z00_1574 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_72);
										}
									else
										{	/* Llib/weakhash.scm 363 */
											BgL_arg1465z00_1574 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_72);
										}
								}
						}
						{	/* Llib/weakhash.scm 363 */
							long BgL_n1z00_2908;
							long BgL_n2z00_2909;

							BgL_n1z00_2908 = BgL_arg1465z00_1574;
							BgL_n2z00_2909 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1559));
							{	/* Llib/weakhash.scm 363 */
								bool_t BgL_test2319z00_5159;

								{	/* Llib/weakhash.scm 363 */
									long BgL_arg1970z00_2911;

									BgL_arg1970z00_2911 =
										(((BgL_n1z00_2908) | (BgL_n2z00_2909)) & -2147483648);
									BgL_test2319z00_5159 = (BgL_arg1970z00_2911 == 0L);
								}
								if (BgL_test2319z00_5159)
									{	/* Llib/weakhash.scm 363 */
										int32_t BgL_arg1967z00_2912;

										{	/* Llib/weakhash.scm 363 */
											int32_t BgL_arg1968z00_2913;
											int32_t BgL_arg1969z00_2914;

											BgL_arg1968z00_2913 = (int32_t) (BgL_n1z00_2908);
											BgL_arg1969z00_2914 = (int32_t) (BgL_n2z00_2909);
											BgL_arg1967z00_2912 =
												(BgL_arg1968z00_2913 % BgL_arg1969z00_2914);
										}
										{	/* Llib/weakhash.scm 363 */
											long BgL_arg2082z00_2919;

											BgL_arg2082z00_2919 = (long) (BgL_arg1967z00_2912);
											BgL_bucketzd2numzd2_1561 = (long) (BgL_arg2082z00_2919);
									}}
								else
									{	/* Llib/weakhash.scm 363 */
										BgL_bucketzd2numzd2_1561 =
											(BgL_n1z00_2908 % BgL_n2z00_2909);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 363 */
						obj_t BgL_bucketz00_1562;

						BgL_bucketz00_1562 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1559), BgL_bucketzd2numzd2_1561);
						{	/* Llib/weakhash.scm 364 */

							{
								obj_t BgL_bucketz00_1564;

								BgL_bucketz00_1564 = BgL_bucketz00_1562;
							BgL_zc3z04anonymousza31457ze3z87_1565:
								if (NULLP(BgL_bucketz00_1564))
									{	/* Llib/weakhash.scm 367 */
										return ((bool_t) 0);
									}
								else
									{	/* Llib/weakhash.scm 369 */
										bool_t BgL_test2321z00_5172;

										{	/* Llib/weakhash.scm 369 */
											obj_t BgL_arg1463z00_1571;

											{	/* Llib/weakhash.scm 369 */
												obj_t BgL_arg1464z00_1572;

												BgL_arg1464z00_1572 = CAR(((obj_t) BgL_bucketz00_1564));
												BgL_arg1463z00_1571 =
													bgl_weakptr_data(((obj_t) BgL_arg1464z00_1572));
											}
											{	/* Llib/weakhash.scm 369 */
												obj_t BgL_eqtz00_2925;

												BgL_eqtz00_2925 =
													STRUCT_REF(BgL_tablez00_71, (int) (3L));
												if (PROCEDUREP(BgL_eqtz00_2925))
													{	/* Llib/weakhash.scm 369 */
														BgL_test2321z00_5172 =
															CBOOL(
															(VA_PROCEDUREP(BgL_eqtz00_2925)
																? ((obj_t(*)(obj_t,
																			...))
																	PROCEDURE_ENTRY(BgL_eqtz00_2925))
																(BgL_eqtz00_2925, BgL_arg1463z00_1571,
																	BgL_keyz00_72, BEOA) : ((obj_t(*)(obj_t,
																			obj_t,
																			obj_t))
																	PROCEDURE_ENTRY(BgL_eqtz00_2925))
																(BgL_eqtz00_2925, BgL_arg1463z00_1571,
																	BgL_keyz00_72)));
													}
												else
													{	/* Llib/weakhash.scm 369 */
														if ((BgL_arg1463z00_1571 == BgL_keyz00_72))
															{	/* Llib/weakhash.scm 369 */
																BgL_test2321z00_5172 = ((bool_t) 1);
															}
														else
															{	/* Llib/weakhash.scm 369 */
																if (STRINGP(BgL_arg1463z00_1571))
																	{	/* Llib/weakhash.scm 369 */
																		if (STRINGP(BgL_keyz00_72))
																			{	/* Llib/weakhash.scm 369 */
																				long BgL_l1z00_2932;

																				BgL_l1z00_2932 =
																					STRING_LENGTH(BgL_arg1463z00_1571);
																				if (
																					(BgL_l1z00_2932 ==
																						STRING_LENGTH(BgL_keyz00_72)))
																					{	/* Llib/weakhash.scm 369 */
																						int BgL_arg1846z00_2935;

																						{	/* Llib/weakhash.scm 369 */
																							char *BgL_auxz00_5199;
																							char *BgL_tmpz00_5197;

																							BgL_auxz00_5199 =
																								BSTRING_TO_STRING
																								(BgL_keyz00_72);
																							BgL_tmpz00_5197 =
																								BSTRING_TO_STRING
																								(BgL_arg1463z00_1571);
																							BgL_arg1846z00_2935 =
																								memcmp(BgL_tmpz00_5197,
																								BgL_auxz00_5199,
																								BgL_l1z00_2932);
																						}
																						BgL_test2321z00_5172 =
																							(
																							(long) (BgL_arg1846z00_2935) ==
																							0L);
																					}
																				else
																					{	/* Llib/weakhash.scm 369 */
																						BgL_test2321z00_5172 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/weakhash.scm 369 */
																				BgL_test2321z00_5172 = ((bool_t) 0);
																			}
																	}
																else
																	{	/* Llib/weakhash.scm 369 */
																		BgL_test2321z00_5172 = ((bool_t) 0);
																	}
															}
													}
											}
										}
										if (BgL_test2321z00_5172)
											{	/* Llib/weakhash.scm 369 */
												return ((bool_t) 1);
											}
										else
											{	/* Llib/weakhash.scm 372 */
												obj_t BgL_arg1462z00_1570;

												BgL_arg1462z00_1570 = CDR(((obj_t) BgL_bucketz00_1564));
												{
													obj_t BgL_bucketz00_5206;

													BgL_bucketz00_5206 = BgL_arg1462z00_1570;
													BgL_bucketz00_1564 = BgL_bucketz00_5206;
													goto BgL_zc3z04anonymousza31457ze3z87_1565;
												}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* weak-old-hashtable-contains? */
	bool_t BGl_weakzd2oldzd2hashtablezd2containszf3z21zz__weakhashz00(obj_t
		BgL_tablez00_73, obj_t BgL_keyz00_74)
	{
		{	/* Llib/weakhash.scm 377 */
			{	/* Llib/weakhash.scm 378 */
				obj_t BgL_bucketsz00_1575;

				BgL_bucketsz00_1575 = STRUCT_REF(BgL_tablez00_73, (int) (2L));
				{	/* Llib/weakhash.scm 379 */
					long BgL_bucketzd2numzd2_1577;

					{	/* Llib/weakhash.scm 380 */
						long BgL_arg1471z00_1586;

						{	/* Llib/weakhash.scm 380 */
							obj_t BgL_hashnz00_2944;

							BgL_hashnz00_2944 = STRUCT_REF(BgL_tablez00_73, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_2944))
								{	/* Llib/weakhash.scm 380 */
									obj_t BgL_arg1254z00_2946;

									BgL_arg1254z00_2946 =
										(VA_PROCEDUREP(BgL_hashnz00_2944) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_hashnz00_2944)) (BgL_hashnz00_2944,
											BgL_keyz00_74, BEOA) : ((obj_t(*)(obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_hashnz00_2944)) (BgL_hashnz00_2944,
											BgL_keyz00_74));
									{	/* Llib/weakhash.scm 380 */
										long BgL_nz00_2948;

										BgL_nz00_2948 = (long) CINT(BgL_arg1254z00_2946);
										if ((BgL_nz00_2948 < 0L))
											{	/* Llib/weakhash.scm 380 */
												BgL_arg1471z00_1586 = NEG(BgL_nz00_2948);
											}
										else
											{	/* Llib/weakhash.scm 380 */
												BgL_arg1471z00_1586 = BgL_nz00_2948;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 380 */
									if ((BgL_hashnz00_2944 == BGl_symbol2184z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 380 */
											BgL_arg1471z00_1586 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_74);
										}
									else
										{	/* Llib/weakhash.scm 380 */
											BgL_arg1471z00_1586 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_74);
										}
								}
						}
						{	/* Llib/weakhash.scm 380 */
							long BgL_n1z00_2952;
							long BgL_n2z00_2953;

							BgL_n1z00_2952 = BgL_arg1471z00_1586;
							BgL_n2z00_2953 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1575));
							{	/* Llib/weakhash.scm 380 */
								bool_t BgL_test2330z00_5227;

								{	/* Llib/weakhash.scm 380 */
									long BgL_arg1970z00_2955;

									BgL_arg1970z00_2955 =
										(((BgL_n1z00_2952) | (BgL_n2z00_2953)) & -2147483648);
									BgL_test2330z00_5227 = (BgL_arg1970z00_2955 == 0L);
								}
								if (BgL_test2330z00_5227)
									{	/* Llib/weakhash.scm 380 */
										int32_t BgL_arg1967z00_2956;

										{	/* Llib/weakhash.scm 380 */
											int32_t BgL_arg1968z00_2957;
											int32_t BgL_arg1969z00_2958;

											BgL_arg1968z00_2957 = (int32_t) (BgL_n1z00_2952);
											BgL_arg1969z00_2958 = (int32_t) (BgL_n2z00_2953);
											BgL_arg1967z00_2956 =
												(BgL_arg1968z00_2957 % BgL_arg1969z00_2958);
										}
										{	/* Llib/weakhash.scm 380 */
											long BgL_arg2082z00_2963;

											BgL_arg2082z00_2963 = (long) (BgL_arg1967z00_2956);
											BgL_bucketzd2numzd2_1577 = (long) (BgL_arg2082z00_2963);
									}}
								else
									{	/* Llib/weakhash.scm 380 */
										BgL_bucketzd2numzd2_1577 =
											(BgL_n1z00_2952 % BgL_n2z00_2953);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 380 */
						obj_t BgL_retz00_1578;

						{	/* Llib/weakhash.scm 383 */
							obj_t BgL_zc3z04anonymousza31469ze3z87_4126;

							{
								int BgL_tmpz00_5236;

								BgL_tmpz00_5236 = (int) (2L);
								BgL_zc3z04anonymousza31469ze3z87_4126 =
									MAKE_L_PROCEDURE
									(BGl_z62zc3z04anonymousza31469ze3ze5zz__weakhashz00,
									BgL_tmpz00_5236);
							}
							PROCEDURE_L_SET(BgL_zc3z04anonymousza31469ze3z87_4126,
								(int) (0L), BgL_tablez00_73);
							PROCEDURE_L_SET(BgL_zc3z04anonymousza31469ze3z87_4126,
								(int) (1L), BgL_keyz00_74);
							BgL_retz00_1578 =
								BGl_traversezd2bucketszd2zz__weakhashz00(BgL_tablez00_73,
								BgL_bucketsz00_1575, BgL_bucketzd2numzd2_1577,
								BgL_zc3z04anonymousza31469ze3z87_4126);
						}
						{	/* Llib/weakhash.scm 381 */

							if ((BgL_retz00_1578 == BGl_keepgoingz00zz__weakhashz00))
								{	/* Llib/weakhash.scm 386 */
									return ((bool_t) 0);
								}
							else
								{	/* Llib/weakhash.scm 386 */
									return ((bool_t) 1);
								}
						}
					}
				}
			}
		}

	}



/* &<@anonymous:1469> */
	obj_t BGl_z62zc3z04anonymousza31469ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4127, obj_t BgL_bkeyz00_4130, obj_t BgL_valz00_4131,
		obj_t BgL_bucketz00_4132)
	{
		{	/* Llib/weakhash.scm 382 */
			{	/* Llib/weakhash.scm 383 */
				obj_t BgL_tablez00_4128;
				obj_t BgL_keyz00_4129;

				BgL_tablez00_4128 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4127, (int) (0L)));
				BgL_keyz00_4129 = PROCEDURE_L_REF(BgL_envz00_4127, (int) (1L));
				{	/* Llib/weakhash.scm 383 */
					bool_t BgL_test2332z00_5251;

					{	/* Llib/weakhash.scm 383 */
						obj_t BgL_eqtz00_4264;

						BgL_eqtz00_4264 = STRUCT_REF(BgL_tablez00_4128, (int) (3L));
						if (PROCEDUREP(BgL_eqtz00_4264))
							{	/* Llib/weakhash.scm 383 */
								BgL_test2332z00_5251 =
									CBOOL(
									(VA_PROCEDUREP(BgL_eqtz00_4264) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_eqtz00_4264)) (BgL_eqtz00_4264,
											BgL_keyz00_4129, BgL_bkeyz00_4130,
											BEOA) : ((obj_t(*)(obj_t, obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_eqtz00_4264)) (BgL_eqtz00_4264,
											BgL_keyz00_4129, BgL_bkeyz00_4130)));
							}
						else
							{	/* Llib/weakhash.scm 383 */
								if ((BgL_keyz00_4129 == BgL_bkeyz00_4130))
									{	/* Llib/weakhash.scm 383 */
										BgL_test2332z00_5251 = ((bool_t) 1);
									}
								else
									{	/* Llib/weakhash.scm 383 */
										if (STRINGP(BgL_keyz00_4129))
											{	/* Llib/weakhash.scm 383 */
												if (STRINGP(BgL_bkeyz00_4130))
													{	/* Llib/weakhash.scm 383 */
														long BgL_l1z00_4265;

														BgL_l1z00_4265 = STRING_LENGTH(BgL_keyz00_4129);
														if (
															(BgL_l1z00_4265 ==
																STRING_LENGTH(BgL_bkeyz00_4130)))
															{	/* Llib/weakhash.scm 383 */
																int BgL_arg1846z00_4266;

																{	/* Llib/weakhash.scm 383 */
																	char *BgL_auxz00_5274;
																	char *BgL_tmpz00_5272;

																	BgL_auxz00_5274 =
																		BSTRING_TO_STRING(BgL_bkeyz00_4130);
																	BgL_tmpz00_5272 =
																		BSTRING_TO_STRING(BgL_keyz00_4129);
																	BgL_arg1846z00_4266 =
																		memcmp(BgL_tmpz00_5272, BgL_auxz00_5274,
																		BgL_l1z00_4265);
																}
																BgL_test2332z00_5251 =
																	((long) (BgL_arg1846z00_4266) == 0L);
															}
														else
															{	/* Llib/weakhash.scm 383 */
																BgL_test2332z00_5251 = ((bool_t) 0);
															}
													}
												else
													{	/* Llib/weakhash.scm 383 */
														BgL_test2332z00_5251 = ((bool_t) 0);
													}
											}
										else
											{	/* Llib/weakhash.scm 383 */
												BgL_test2332z00_5251 = ((bool_t) 0);
											}
									}
							}
					}
					if (BgL_test2332z00_5251)
						{	/* Llib/weakhash.scm 383 */
							return BTRUE;
						}
					else
						{	/* Llib/weakhash.scm 383 */
							return BGl_keepgoingz00zz__weakhashz00;
						}
				}
			}
		}

	}



/* weak-hashtable-contains? */
	BGL_EXPORTED_DEF bool_t
		BGl_weakzd2hashtablezd2containszf3zf3zz__weakhashz00(obj_t BgL_tablez00_75,
		obj_t BgL_keyz00_76)
	{
		{	/* Llib/weakhash.scm 391 */
			if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_75))
				{	/* Llib/weakhash.scm 392 */
					BGL_TAIL return
						BGl_weakzd2keyszd2hashtablezd2containszf3z21zz__weakhashz00
						(BgL_tablez00_75, BgL_keyz00_76);
				}
			else
				{	/* Llib/weakhash.scm 392 */
					BGL_TAIL return
						BGl_weakzd2oldzd2hashtablezd2containszf3z21zz__weakhashz00
						(BgL_tablez00_75, BgL_keyz00_76);
				}
		}

	}



/* &weak-hashtable-contains? */
	obj_t BGl_z62weakzd2hashtablezd2containszf3z91zz__weakhashz00(obj_t
		BgL_envz00_4133, obj_t BgL_tablez00_4134, obj_t BgL_keyz00_4135)
	{
		{	/* Llib/weakhash.scm 391 */
			{	/* Llib/weakhash.scm 392 */
				bool_t BgL_tmpz00_5283;

				{	/* Llib/weakhash.scm 392 */
					obj_t BgL_auxz00_5284;

					if (STRUCTP(BgL_tablez00_4134))
						{	/* Llib/weakhash.scm 392 */
							BgL_auxz00_5284 = BgL_tablez00_4134;
						}
					else
						{
							obj_t BgL_auxz00_5287;

							BgL_auxz00_5287 =
								BGl_typezd2errorzd2zz__errorz00
								(BGl_string2172z00zz__weakhashz00, BINT(15453L),
								BGl_string2186z00zz__weakhashz00,
								BGl_string2174z00zz__weakhashz00, BgL_tablez00_4134);
							FAILURE(BgL_auxz00_5287, BFALSE, BFALSE);
						}
					BgL_tmpz00_5283 =
						BGl_weakzd2hashtablezd2containszf3zf3zz__weakhashz00
						(BgL_auxz00_5284, BgL_keyz00_4135);
				}
				return BBOOL(BgL_tmpz00_5283);
			}
		}

	}



/* weak-keys-hashtable-get */
	obj_t BGl_weakzd2keyszd2hashtablezd2getzd2zz__weakhashz00(obj_t
		BgL_tablez00_77, obj_t BgL_keyz00_78)
	{
		{	/* Llib/weakhash.scm 399 */
			{	/* Llib/weakhash.scm 400 */
				obj_t BgL_bucketsz00_1588;

				BgL_bucketsz00_1588 = STRUCT_REF(BgL_tablez00_77, (int) (2L));
				{	/* Llib/weakhash.scm 401 */
					long BgL_bucketzd2numzd2_1590;

					{	/* Llib/weakhash.scm 402 */
						long BgL_arg1482z00_1604;

						{	/* Llib/weakhash.scm 402 */
							obj_t BgL_hashnz00_2985;

							BgL_hashnz00_2985 = STRUCT_REF(BgL_tablez00_77, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_2985))
								{	/* Llib/weakhash.scm 402 */
									obj_t BgL_arg1254z00_2987;

									BgL_arg1254z00_2987 =
										(VA_PROCEDUREP(BgL_hashnz00_2985) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_hashnz00_2985)) (BgL_hashnz00_2985,
											BgL_keyz00_78, BEOA) : ((obj_t(*)(obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_hashnz00_2985)) (BgL_hashnz00_2985,
											BgL_keyz00_78));
									{	/* Llib/weakhash.scm 402 */
										long BgL_nz00_2989;

										BgL_nz00_2989 = (long) CINT(BgL_arg1254z00_2987);
										if ((BgL_nz00_2989 < 0L))
											{	/* Llib/weakhash.scm 402 */
												BgL_arg1482z00_1604 = NEG(BgL_nz00_2989);
											}
										else
											{	/* Llib/weakhash.scm 402 */
												BgL_arg1482z00_1604 = BgL_nz00_2989;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 402 */
									if ((BgL_hashnz00_2985 == BGl_symbol2184z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 402 */
											BgL_arg1482z00_1604 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_78);
										}
									else
										{	/* Llib/weakhash.scm 402 */
											BgL_arg1482z00_1604 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_78);
										}
								}
						}
						{	/* Llib/weakhash.scm 402 */
							long BgL_n1z00_2993;
							long BgL_n2z00_2994;

							BgL_n1z00_2993 = BgL_arg1482z00_1604;
							BgL_n2z00_2994 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1588));
							{	/* Llib/weakhash.scm 402 */
								bool_t BgL_test2343z00_5313;

								{	/* Llib/weakhash.scm 402 */
									long BgL_arg1970z00_2996;

									BgL_arg1970z00_2996 =
										(((BgL_n1z00_2993) | (BgL_n2z00_2994)) & -2147483648);
									BgL_test2343z00_5313 = (BgL_arg1970z00_2996 == 0L);
								}
								if (BgL_test2343z00_5313)
									{	/* Llib/weakhash.scm 402 */
										int32_t BgL_arg1967z00_2997;

										{	/* Llib/weakhash.scm 402 */
											int32_t BgL_arg1968z00_2998;
											int32_t BgL_arg1969z00_2999;

											BgL_arg1968z00_2998 = (int32_t) (BgL_n1z00_2993);
											BgL_arg1969z00_2999 = (int32_t) (BgL_n2z00_2994);
											BgL_arg1967z00_2997 =
												(BgL_arg1968z00_2998 % BgL_arg1969z00_2999);
										}
										{	/* Llib/weakhash.scm 402 */
											long BgL_arg2082z00_3004;

											BgL_arg2082z00_3004 = (long) (BgL_arg1967z00_2997);
											BgL_bucketzd2numzd2_1590 = (long) (BgL_arg2082z00_3004);
									}}
								else
									{	/* Llib/weakhash.scm 402 */
										BgL_bucketzd2numzd2_1590 =
											(BgL_n1z00_2993 % BgL_n2z00_2994);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 402 */
						obj_t BgL_bucketz00_1591;

						BgL_bucketz00_1591 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1588), BgL_bucketzd2numzd2_1590);
						{	/* Llib/weakhash.scm 403 */

							{
								obj_t BgL_bucketz00_1593;

								BgL_bucketz00_1593 = BgL_bucketz00_1591;
							BgL_zc3z04anonymousza31473ze3z87_1594:
								if (NULLP(BgL_bucketz00_1593))
									{	/* Llib/weakhash.scm 406 */
										return BFALSE;
									}
								else
									{	/* Llib/weakhash.scm 408 */
										bool_t BgL_test2345z00_5326;

										{	/* Llib/weakhash.scm 408 */
											obj_t BgL_arg1480z00_1601;

											{	/* Llib/weakhash.scm 408 */
												obj_t BgL_arg1481z00_1602;

												BgL_arg1481z00_1602 = CAR(((obj_t) BgL_bucketz00_1593));
												BgL_arg1480z00_1601 =
													bgl_weakptr_data(((obj_t) BgL_arg1481z00_1602));
											}
											{	/* Llib/weakhash.scm 408 */
												obj_t BgL_eqtz00_3010;

												BgL_eqtz00_3010 =
													STRUCT_REF(BgL_tablez00_77, (int) (3L));
												if (PROCEDUREP(BgL_eqtz00_3010))
													{	/* Llib/weakhash.scm 408 */
														BgL_test2345z00_5326 =
															CBOOL(
															(VA_PROCEDUREP(BgL_eqtz00_3010)
																? ((obj_t(*)(obj_t,
																			...))
																	PROCEDURE_ENTRY(BgL_eqtz00_3010))
																(BgL_eqtz00_3010, BgL_arg1480z00_1601,
																	BgL_keyz00_78, BEOA) : ((obj_t(*)(obj_t,
																			obj_t,
																			obj_t))
																	PROCEDURE_ENTRY(BgL_eqtz00_3010))
																(BgL_eqtz00_3010, BgL_arg1480z00_1601,
																	BgL_keyz00_78)));
													}
												else
													{	/* Llib/weakhash.scm 408 */
														if ((BgL_arg1480z00_1601 == BgL_keyz00_78))
															{	/* Llib/weakhash.scm 408 */
																BgL_test2345z00_5326 = ((bool_t) 1);
															}
														else
															{	/* Llib/weakhash.scm 408 */
																if (STRINGP(BgL_arg1480z00_1601))
																	{	/* Llib/weakhash.scm 408 */
																		if (STRINGP(BgL_keyz00_78))
																			{	/* Llib/weakhash.scm 408 */
																				long BgL_l1z00_3017;

																				BgL_l1z00_3017 =
																					STRING_LENGTH(BgL_arg1480z00_1601);
																				if (
																					(BgL_l1z00_3017 ==
																						STRING_LENGTH(BgL_keyz00_78)))
																					{	/* Llib/weakhash.scm 408 */
																						int BgL_arg1846z00_3020;

																						{	/* Llib/weakhash.scm 408 */
																							char *BgL_auxz00_5353;
																							char *BgL_tmpz00_5351;

																							BgL_auxz00_5353 =
																								BSTRING_TO_STRING
																								(BgL_keyz00_78);
																							BgL_tmpz00_5351 =
																								BSTRING_TO_STRING
																								(BgL_arg1480z00_1601);
																							BgL_arg1846z00_3020 =
																								memcmp(BgL_tmpz00_5351,
																								BgL_auxz00_5353,
																								BgL_l1z00_3017);
																						}
																						BgL_test2345z00_5326 =
																							(
																							(long) (BgL_arg1846z00_3020) ==
																							0L);
																					}
																				else
																					{	/* Llib/weakhash.scm 408 */
																						BgL_test2345z00_5326 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/weakhash.scm 408 */
																				BgL_test2345z00_5326 = ((bool_t) 0);
																			}
																	}
																else
																	{	/* Llib/weakhash.scm 408 */
																		BgL_test2345z00_5326 = ((bool_t) 0);
																	}
															}
													}
											}
										}
										if (BgL_test2345z00_5326)
											{	/* Llib/weakhash.scm 409 */
												obj_t BgL_arg1478z00_1599;

												BgL_arg1478z00_1599 = CAR(((obj_t) BgL_bucketz00_1593));
												return bgl_weakptr_ref(((obj_t) BgL_arg1478z00_1599));
											}
										else
											{	/* Llib/weakhash.scm 411 */
												obj_t BgL_arg1479z00_1600;

												BgL_arg1479z00_1600 = CDR(((obj_t) BgL_bucketz00_1593));
												{
													obj_t BgL_bucketz00_5364;

													BgL_bucketz00_5364 = BgL_arg1479z00_1600;
													BgL_bucketz00_1593 = BgL_bucketz00_5364;
													goto BgL_zc3z04anonymousza31473ze3z87_1594;
												}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* weak-old-hashtable-get */
	obj_t BGl_weakzd2oldzd2hashtablezd2getzd2zz__weakhashz00(obj_t
		BgL_tablez00_79, obj_t BgL_keyz00_80)
	{
		{	/* Llib/weakhash.scm 416 */
			{	/* Llib/weakhash.scm 417 */
				obj_t BgL_bucketsz00_1605;

				BgL_bucketsz00_1605 = STRUCT_REF(BgL_tablez00_79, (int) (2L));
				{	/* Llib/weakhash.scm 418 */
					long BgL_bucketzd2numzd2_1607;

					{	/* Llib/weakhash.scm 419 */
						long BgL_arg1487z00_1616;

						{	/* Llib/weakhash.scm 419 */
							obj_t BgL_hashnz00_3031;

							BgL_hashnz00_3031 = STRUCT_REF(BgL_tablez00_79, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_3031))
								{	/* Llib/weakhash.scm 419 */
									obj_t BgL_arg1254z00_3033;

									BgL_arg1254z00_3033 =
										(VA_PROCEDUREP(BgL_hashnz00_3031) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_hashnz00_3031)) (BgL_hashnz00_3031,
											BgL_keyz00_80, BEOA) : ((obj_t(*)(obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_hashnz00_3031)) (BgL_hashnz00_3031,
											BgL_keyz00_80));
									{	/* Llib/weakhash.scm 419 */
										long BgL_nz00_3035;

										BgL_nz00_3035 = (long) CINT(BgL_arg1254z00_3033);
										if ((BgL_nz00_3035 < 0L))
											{	/* Llib/weakhash.scm 419 */
												BgL_arg1487z00_1616 = NEG(BgL_nz00_3035);
											}
										else
											{	/* Llib/weakhash.scm 419 */
												BgL_arg1487z00_1616 = BgL_nz00_3035;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 419 */
									if ((BgL_hashnz00_3031 == BGl_symbol2184z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 419 */
											BgL_arg1487z00_1616 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_80);
										}
									else
										{	/* Llib/weakhash.scm 419 */
											BgL_arg1487z00_1616 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_80);
										}
								}
						}
						{	/* Llib/weakhash.scm 419 */
							long BgL_n1z00_3039;
							long BgL_n2z00_3040;

							BgL_n1z00_3039 = BgL_arg1487z00_1616;
							BgL_n2z00_3040 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1605));
							{	/* Llib/weakhash.scm 419 */
								bool_t BgL_test2354z00_5385;

								{	/* Llib/weakhash.scm 419 */
									long BgL_arg1970z00_3042;

									BgL_arg1970z00_3042 =
										(((BgL_n1z00_3039) | (BgL_n2z00_3040)) & -2147483648);
									BgL_test2354z00_5385 = (BgL_arg1970z00_3042 == 0L);
								}
								if (BgL_test2354z00_5385)
									{	/* Llib/weakhash.scm 419 */
										int32_t BgL_arg1967z00_3043;

										{	/* Llib/weakhash.scm 419 */
											int32_t BgL_arg1968z00_3044;
											int32_t BgL_arg1969z00_3045;

											BgL_arg1968z00_3044 = (int32_t) (BgL_n1z00_3039);
											BgL_arg1969z00_3045 = (int32_t) (BgL_n2z00_3040);
											BgL_arg1967z00_3043 =
												(BgL_arg1968z00_3044 % BgL_arg1969z00_3045);
										}
										{	/* Llib/weakhash.scm 419 */
											long BgL_arg2082z00_3050;

											BgL_arg2082z00_3050 = (long) (BgL_arg1967z00_3043);
											BgL_bucketzd2numzd2_1607 = (long) (BgL_arg2082z00_3050);
									}}
								else
									{	/* Llib/weakhash.scm 419 */
										BgL_bucketzd2numzd2_1607 =
											(BgL_n1z00_3039 % BgL_n2z00_3040);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 419 */
						obj_t BgL_retz00_1608;

						{	/* Llib/weakhash.scm 422 */
							obj_t BgL_zc3z04anonymousza31484ze3z87_4136;

							{
								int BgL_tmpz00_5394;

								BgL_tmpz00_5394 = (int) (2L);
								BgL_zc3z04anonymousza31484ze3z87_4136 =
									MAKE_L_PROCEDURE
									(BGl_z62zc3z04anonymousza31484ze3ze5zz__weakhashz00,
									BgL_tmpz00_5394);
							}
							PROCEDURE_L_SET(BgL_zc3z04anonymousza31484ze3z87_4136,
								(int) (0L), BgL_tablez00_79);
							PROCEDURE_L_SET(BgL_zc3z04anonymousza31484ze3z87_4136,
								(int) (1L), BgL_keyz00_80);
							BgL_retz00_1608 =
								BGl_traversezd2bucketszd2zz__weakhashz00(BgL_tablez00_79,
								BgL_bucketsz00_1605, BgL_bucketzd2numzd2_1607,
								BgL_zc3z04anonymousza31484ze3z87_4136);
						}
						{	/* Llib/weakhash.scm 420 */

							if ((BgL_retz00_1608 == BGl_keepgoingz00zz__weakhashz00))
								{	/* Llib/weakhash.scm 425 */
									return BFALSE;
								}
							else
								{	/* Llib/weakhash.scm 425 */
									return BgL_retz00_1608;
								}
						}
					}
				}
			}
		}

	}



/* &<@anonymous:1484> */
	obj_t BGl_z62zc3z04anonymousza31484ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4137, obj_t BgL_bkeyz00_4140, obj_t BgL_valz00_4141,
		obj_t BgL_bucketz00_4142)
	{
		{	/* Llib/weakhash.scm 421 */
			{	/* Llib/weakhash.scm 422 */
				obj_t BgL_tablez00_4138;
				obj_t BgL_keyz00_4139;

				BgL_tablez00_4138 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4137, (int) (0L)));
				BgL_keyz00_4139 = PROCEDURE_L_REF(BgL_envz00_4137, (int) (1L));
				{	/* Llib/weakhash.scm 422 */
					bool_t BgL_test2356z00_5409;

					{	/* Llib/weakhash.scm 422 */
						obj_t BgL_eqtz00_4267;

						BgL_eqtz00_4267 = STRUCT_REF(BgL_tablez00_4138, (int) (3L));
						if (PROCEDUREP(BgL_eqtz00_4267))
							{	/* Llib/weakhash.scm 422 */
								BgL_test2356z00_5409 =
									CBOOL(
									(VA_PROCEDUREP(BgL_eqtz00_4267) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_eqtz00_4267)) (BgL_eqtz00_4267,
											BgL_keyz00_4139, BgL_bkeyz00_4140,
											BEOA) : ((obj_t(*)(obj_t, obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_eqtz00_4267)) (BgL_eqtz00_4267,
											BgL_keyz00_4139, BgL_bkeyz00_4140)));
							}
						else
							{	/* Llib/weakhash.scm 422 */
								if ((BgL_keyz00_4139 == BgL_bkeyz00_4140))
									{	/* Llib/weakhash.scm 422 */
										BgL_test2356z00_5409 = ((bool_t) 1);
									}
								else
									{	/* Llib/weakhash.scm 422 */
										if (STRINGP(BgL_keyz00_4139))
											{	/* Llib/weakhash.scm 422 */
												if (STRINGP(BgL_bkeyz00_4140))
													{	/* Llib/weakhash.scm 422 */
														long BgL_l1z00_4268;

														BgL_l1z00_4268 = STRING_LENGTH(BgL_keyz00_4139);
														if (
															(BgL_l1z00_4268 ==
																STRING_LENGTH(BgL_bkeyz00_4140)))
															{	/* Llib/weakhash.scm 422 */
																int BgL_arg1846z00_4269;

																{	/* Llib/weakhash.scm 422 */
																	char *BgL_auxz00_5432;
																	char *BgL_tmpz00_5430;

																	BgL_auxz00_5432 =
																		BSTRING_TO_STRING(BgL_bkeyz00_4140);
																	BgL_tmpz00_5430 =
																		BSTRING_TO_STRING(BgL_keyz00_4139);
																	BgL_arg1846z00_4269 =
																		memcmp(BgL_tmpz00_5430, BgL_auxz00_5432,
																		BgL_l1z00_4268);
																}
																BgL_test2356z00_5409 =
																	((long) (BgL_arg1846z00_4269) == 0L);
															}
														else
															{	/* Llib/weakhash.scm 422 */
																BgL_test2356z00_5409 = ((bool_t) 0);
															}
													}
												else
													{	/* Llib/weakhash.scm 422 */
														BgL_test2356z00_5409 = ((bool_t) 0);
													}
											}
										else
											{	/* Llib/weakhash.scm 422 */
												BgL_test2356z00_5409 = ((bool_t) 0);
											}
									}
							}
					}
					if (BgL_test2356z00_5409)
						{	/* Llib/weakhash.scm 422 */
							return BgL_valz00_4141;
						}
					else
						{	/* Llib/weakhash.scm 422 */
							return BGl_keepgoingz00zz__weakhashz00;
						}
				}
			}
		}

	}



/* weak-hashtable-get */
	BGL_EXPORTED_DEF obj_t BGl_weakzd2hashtablezd2getz00zz__weakhashz00(obj_t
		BgL_tablez00_81, obj_t BgL_keyz00_82)
	{
		{	/* Llib/weakhash.scm 432 */
			if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_81))
				{	/* Llib/weakhash.scm 433 */
					BGL_TAIL return
						BGl_weakzd2keyszd2hashtablezd2getzd2zz__weakhashz00(BgL_tablez00_81,
						BgL_keyz00_82);
				}
			else
				{	/* Llib/weakhash.scm 433 */
					BGL_TAIL return
						BGl_weakzd2oldzd2hashtablezd2getzd2zz__weakhashz00(BgL_tablez00_81,
						BgL_keyz00_82);
				}
		}

	}



/* &weak-hashtable-get */
	obj_t BGl_z62weakzd2hashtablezd2getz62zz__weakhashz00(obj_t BgL_envz00_4143,
		obj_t BgL_tablez00_4144, obj_t BgL_keyz00_4145)
	{
		{	/* Llib/weakhash.scm 432 */
			{	/* Llib/weakhash.scm 433 */
				obj_t BgL_auxz00_5441;

				if (STRUCTP(BgL_tablez00_4144))
					{	/* Llib/weakhash.scm 433 */
						BgL_auxz00_5441 = BgL_tablez00_4144;
					}
				else
					{
						obj_t BgL_auxz00_5444;

						BgL_auxz00_5444 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(17200L), BGl_string2187z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_tablez00_4144);
						FAILURE(BgL_auxz00_5444, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2getz00zz__weakhashz00(BgL_auxz00_5441,
					BgL_keyz00_4145);
			}
		}

	}



/* weak-keys-hashtable-put! */
	obj_t BGl_weakzd2keyszd2hashtablezd2putz12zc0zz__weakhashz00(obj_t
		BgL_tablez00_83, obj_t BgL_keyz00_84, obj_t BgL_objz00_85)
	{
		{	/* Llib/weakhash.scm 440 */
			{	/* Llib/weakhash.scm 441 */
				obj_t BgL_bucketsz00_1618;

				BgL_bucketsz00_1618 = STRUCT_REF(BgL_tablez00_83, (int) (2L));
				{	/* Llib/weakhash.scm 442 */
					long BgL_bucketzd2numzd2_1620;

					{	/* Llib/weakhash.scm 443 */
						long BgL_arg1516z00_1650;

						{	/* Llib/weakhash.scm 443 */
							obj_t BgL_hashnz00_3072;

							BgL_hashnz00_3072 = STRUCT_REF(BgL_tablez00_83, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_3072))
								{	/* Llib/weakhash.scm 443 */
									obj_t BgL_arg1254z00_3074;

									BgL_arg1254z00_3074 =
										(VA_PROCEDUREP(BgL_hashnz00_3072) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_hashnz00_3072)) (BgL_hashnz00_3072,
											BgL_keyz00_84, BEOA) : ((obj_t(*)(obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_hashnz00_3072)) (BgL_hashnz00_3072,
											BgL_keyz00_84));
									{	/* Llib/weakhash.scm 443 */
										long BgL_nz00_3076;

										BgL_nz00_3076 = (long) CINT(BgL_arg1254z00_3074);
										if ((BgL_nz00_3076 < 0L))
											{	/* Llib/weakhash.scm 443 */
												BgL_arg1516z00_1650 = NEG(BgL_nz00_3076);
											}
										else
											{	/* Llib/weakhash.scm 443 */
												BgL_arg1516z00_1650 = BgL_nz00_3076;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 443 */
									if ((BgL_hashnz00_3072 == BGl_symbol2184z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 443 */
											BgL_arg1516z00_1650 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_84);
										}
									else
										{	/* Llib/weakhash.scm 443 */
											BgL_arg1516z00_1650 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_84);
										}
								}
						}
						{	/* Llib/weakhash.scm 443 */
							long BgL_n1z00_3080;
							long BgL_n2z00_3081;

							BgL_n1z00_3080 = BgL_arg1516z00_1650;
							BgL_n2z00_3081 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1618));
							{	/* Llib/weakhash.scm 443 */
								bool_t BgL_test2367z00_5469;

								{	/* Llib/weakhash.scm 443 */
									long BgL_arg1970z00_3083;

									BgL_arg1970z00_3083 =
										(((BgL_n1z00_3080) | (BgL_n2z00_3081)) & -2147483648);
									BgL_test2367z00_5469 = (BgL_arg1970z00_3083 == 0L);
								}
								if (BgL_test2367z00_5469)
									{	/* Llib/weakhash.scm 443 */
										int32_t BgL_arg1967z00_3084;

										{	/* Llib/weakhash.scm 443 */
											int32_t BgL_arg1968z00_3085;
											int32_t BgL_arg1969z00_3086;

											BgL_arg1968z00_3085 = (int32_t) (BgL_n1z00_3080);
											BgL_arg1969z00_3086 = (int32_t) (BgL_n2z00_3081);
											BgL_arg1967z00_3084 =
												(BgL_arg1968z00_3085 % BgL_arg1969z00_3086);
										}
										{	/* Llib/weakhash.scm 443 */
											long BgL_arg2082z00_3091;

											BgL_arg2082z00_3091 = (long) (BgL_arg1967z00_3084);
											BgL_bucketzd2numzd2_1620 = (long) (BgL_arg2082z00_3091);
									}}
								else
									{	/* Llib/weakhash.scm 443 */
										BgL_bucketzd2numzd2_1620 =
											(BgL_n1z00_3080 % BgL_n2z00_3081);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 443 */
						obj_t BgL_bucketz00_1621;

						BgL_bucketz00_1621 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1618), BgL_bucketzd2numzd2_1620);
						{	/* Llib/weakhash.scm 444 */
							obj_t BgL_maxzd2bucketzd2lenz00_1622;

							BgL_maxzd2bucketzd2lenz00_1622 =
								STRUCT_REF(BgL_tablez00_83, (int) (1L));
							{	/* Llib/weakhash.scm 445 */

								if (NULLP(BgL_bucketz00_1621))
									{	/* Llib/weakhash.scm 446 */
										{	/* Llib/weakhash.scm 448 */
											long BgL_arg1491z00_1624;

											BgL_arg1491z00_1624 =
												(
												(long) CINT(STRUCT_REF(BgL_tablez00_83,
														(int) (0L))) + 1L);
											{	/* Llib/weakhash.scm 448 */
												obj_t BgL_auxz00_5490;
												int BgL_tmpz00_5488;

												BgL_auxz00_5490 = BINT(BgL_arg1491z00_1624);
												BgL_tmpz00_5488 = (int) (0L);
												STRUCT_SET(BgL_tablez00_83, BgL_tmpz00_5488,
													BgL_auxz00_5490);
										}}
										{	/* Llib/weakhash.scm 449 */
											obj_t BgL_arg1493z00_1626;

											{	/* Llib/weakhash.scm 449 */
												obj_t BgL_arg1494z00_1627;

												BgL_arg1494z00_1627 =
													bgl_make_weakptr(BgL_keyz00_84, BgL_objz00_85);
												{	/* Llib/weakhash.scm 449 */
													obj_t BgL_list1495z00_1628;

													BgL_list1495z00_1628 =
														MAKE_YOUNG_PAIR(BgL_arg1494z00_1627, BNIL);
													BgL_arg1493z00_1626 = BgL_list1495z00_1628;
											}}
											VECTOR_SET(
												((obj_t) BgL_bucketsz00_1618), BgL_bucketzd2numzd2_1620,
												BgL_arg1493z00_1626);
										}
										return BgL_objz00_85;
									}
								else
									{
										obj_t BgL_buckz00_1630;
										long BgL_countz00_1631;

										BgL_buckz00_1630 = BgL_bucketz00_1621;
										BgL_countz00_1631 = 0L;
									BgL_zc3z04anonymousza31496ze3z87_1632:
										if (NULLP(BgL_buckz00_1630))
											{	/* Llib/weakhash.scm 454 */
												{	/* Llib/weakhash.scm 455 */
													long BgL_arg1498z00_1634;

													BgL_arg1498z00_1634 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_83,
																(int) (0L))) + 1L);
													{	/* Llib/weakhash.scm 455 */
														obj_t BgL_auxz00_5505;
														int BgL_tmpz00_5503;

														BgL_auxz00_5505 = BINT(BgL_arg1498z00_1634);
														BgL_tmpz00_5503 = (int) (0L);
														STRUCT_SET(BgL_tablez00_83, BgL_tmpz00_5503,
															BgL_auxz00_5505);
												}}
												{	/* Llib/weakhash.scm 457 */
													obj_t BgL_arg1500z00_1636;

													BgL_arg1500z00_1636 =
														MAKE_YOUNG_PAIR(bgl_make_weakptr(BgL_keyz00_84,
															BgL_objz00_85), BgL_bucketz00_1621);
													VECTOR_SET(((obj_t) BgL_bucketsz00_1618),
														BgL_bucketzd2numzd2_1620, BgL_arg1500z00_1636);
												}
												if (
													(BgL_countz00_1631 >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_1622)))
													{	/* Llib/weakhash.scm 458 */
														BGl_weakzd2keyszd2hashtablezd2expandz12zc0zz__weakhashz00
															(BgL_tablez00_83);
													}
												else
													{	/* Llib/weakhash.scm 458 */
														BFALSE;
													}
												return BgL_objz00_85;
											}
										else
											{	/* Llib/weakhash.scm 461 */
												bool_t BgL_test2371z00_5516;

												{	/* Llib/weakhash.scm 461 */
													obj_t BgL_arg1512z00_1647;

													{	/* Llib/weakhash.scm 461 */
														obj_t BgL_arg1515z00_1648;

														BgL_arg1515z00_1648 =
															CAR(((obj_t) BgL_buckz00_1630));
														BgL_arg1512z00_1647 =
															bgl_weakptr_data(((obj_t) BgL_arg1515z00_1648));
													}
													{	/* Llib/weakhash.scm 461 */
														obj_t BgL_eqtz00_3111;

														BgL_eqtz00_3111 =
															STRUCT_REF(BgL_tablez00_83, (int) (3L));
														if (PROCEDUREP(BgL_eqtz00_3111))
															{	/* Llib/weakhash.scm 461 */
																BgL_test2371z00_5516 =
																	CBOOL(
																	(VA_PROCEDUREP(BgL_eqtz00_3111)
																		? ((obj_t(*)(obj_t,
																					...))
																			PROCEDURE_ENTRY(BgL_eqtz00_3111))
																		(BgL_eqtz00_3111, BgL_arg1512z00_1647,
																			BgL_keyz00_84, BEOA) : ((obj_t(*)(obj_t,
																					obj_t,
																					obj_t))
																			PROCEDURE_ENTRY(BgL_eqtz00_3111))
																		(BgL_eqtz00_3111, BgL_arg1512z00_1647,
																			BgL_keyz00_84)));
															}
														else
															{	/* Llib/weakhash.scm 461 */
																if ((BgL_arg1512z00_1647 == BgL_keyz00_84))
																	{	/* Llib/weakhash.scm 461 */
																		BgL_test2371z00_5516 = ((bool_t) 1);
																	}
																else
																	{	/* Llib/weakhash.scm 461 */
																		if (STRINGP(BgL_arg1512z00_1647))
																			{	/* Llib/weakhash.scm 461 */
																				if (STRINGP(BgL_keyz00_84))
																					{	/* Llib/weakhash.scm 461 */
																						long BgL_l1z00_3118;

																						BgL_l1z00_3118 =
																							STRING_LENGTH
																							(BgL_arg1512z00_1647);
																						if ((BgL_l1z00_3118 ==
																								STRING_LENGTH(BgL_keyz00_84)))
																							{	/* Llib/weakhash.scm 461 */
																								int BgL_arg1846z00_3121;

																								{	/* Llib/weakhash.scm 461 */
																									char *BgL_auxz00_5543;
																									char *BgL_tmpz00_5541;

																									BgL_auxz00_5543 =
																										BSTRING_TO_STRING
																										(BgL_keyz00_84);
																									BgL_tmpz00_5541 =
																										BSTRING_TO_STRING
																										(BgL_arg1512z00_1647);
																									BgL_arg1846z00_3121 =
																										memcmp(BgL_tmpz00_5541,
																										BgL_auxz00_5543,
																										BgL_l1z00_3118);
																								}
																								BgL_test2371z00_5516 =
																									(
																									(long) (BgL_arg1846z00_3121)
																									== 0L);
																							}
																						else
																							{	/* Llib/weakhash.scm 461 */
																								BgL_test2371z00_5516 =
																									((bool_t) 0);
																							}
																					}
																				else
																					{	/* Llib/weakhash.scm 461 */
																						BgL_test2371z00_5516 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/weakhash.scm 461 */
																				BgL_test2371z00_5516 = ((bool_t) 0);
																			}
																	}
															}
													}
												}
												if (BgL_test2371z00_5516)
													{	/* Llib/weakhash.scm 462 */
														obj_t BgL_oldzd2objzd2_1642;

														{	/* Llib/weakhash.scm 462 */
															obj_t BgL_arg1507z00_1644;

															BgL_arg1507z00_1644 =
																CAR(((obj_t) BgL_buckz00_1630));
															BgL_oldzd2objzd2_1642 =
																bgl_weakptr_ref(((obj_t) BgL_arg1507z00_1644));
														}
														{	/* Llib/weakhash.scm 463 */
															obj_t BgL_arg1506z00_1643;

															BgL_arg1506z00_1643 =
																CAR(((obj_t) BgL_buckz00_1630));
															bgl_weakptr_ref_set(
																((obj_t) BgL_arg1506z00_1643), BgL_objz00_85);
															BUNSPEC;
															BUNSPEC;
														}
														return BgL_oldzd2objzd2_1642;
													}
												else
													{	/* Llib/weakhash.scm 466 */
														obj_t BgL_arg1508z00_1645;
														long BgL_arg1509z00_1646;

														BgL_arg1508z00_1645 =
															CDR(((obj_t) BgL_buckz00_1630));
														BgL_arg1509z00_1646 = (BgL_countz00_1631 + 1L);
														{
															long BgL_countz00_5560;
															obj_t BgL_buckz00_5559;

															BgL_buckz00_5559 = BgL_arg1508z00_1645;
															BgL_countz00_5560 = BgL_arg1509z00_1646;
															BgL_countz00_1631 = BgL_countz00_5560;
															BgL_buckz00_1630 = BgL_buckz00_5559;
															goto BgL_zc3z04anonymousza31496ze3z87_1632;
														}
													}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* weak-old-hashtable-put! */
	obj_t BGl_weakzd2oldzd2hashtablezd2putz12zc0zz__weakhashz00(obj_t
		BgL_tablez00_86, obj_t BgL_keyz00_87, obj_t BgL_objz00_88)
	{
		{	/* Llib/weakhash.scm 471 */
			{	/* Llib/weakhash.scm 472 */
				obj_t BgL_bucketsz00_1651;

				BgL_bucketsz00_1651 = STRUCT_REF(BgL_tablez00_86, (int) (2L));
				{	/* Llib/weakhash.scm 473 */
					long BgL_bucketzd2numzd2_1653;

					{	/* Llib/weakhash.scm 474 */
						long BgL_arg1541z00_1685;

						{	/* Llib/weakhash.scm 474 */
							obj_t BgL_hashnz00_3135;

							BgL_hashnz00_3135 = STRUCT_REF(BgL_tablez00_86, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_3135))
								{	/* Llib/weakhash.scm 474 */
									obj_t BgL_arg1254z00_3137;

									BgL_arg1254z00_3137 =
										(VA_PROCEDUREP(BgL_hashnz00_3135) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_hashnz00_3135)) (BgL_hashnz00_3135,
											BgL_keyz00_87, BEOA) : ((obj_t(*)(obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_hashnz00_3135)) (BgL_hashnz00_3135,
											BgL_keyz00_87));
									{	/* Llib/weakhash.scm 474 */
										long BgL_nz00_3139;

										BgL_nz00_3139 = (long) CINT(BgL_arg1254z00_3137);
										if ((BgL_nz00_3139 < 0L))
											{	/* Llib/weakhash.scm 474 */
												BgL_arg1541z00_1685 = NEG(BgL_nz00_3139);
											}
										else
											{	/* Llib/weakhash.scm 474 */
												BgL_arg1541z00_1685 = BgL_nz00_3139;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 474 */
									if ((BgL_hashnz00_3135 == BGl_symbol2184z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 474 */
											BgL_arg1541z00_1685 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_87);
										}
									else
										{	/* Llib/weakhash.scm 474 */
											BgL_arg1541z00_1685 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_87);
										}
								}
						}
						{	/* Llib/weakhash.scm 474 */
							long BgL_n1z00_3143;
							long BgL_n2z00_3144;

							BgL_n1z00_3143 = BgL_arg1541z00_1685;
							BgL_n2z00_3144 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1651));
							{	/* Llib/weakhash.scm 474 */
								bool_t BgL_test2380z00_5581;

								{	/* Llib/weakhash.scm 474 */
									long BgL_arg1970z00_3146;

									BgL_arg1970z00_3146 =
										(((BgL_n1z00_3143) | (BgL_n2z00_3144)) & -2147483648);
									BgL_test2380z00_5581 = (BgL_arg1970z00_3146 == 0L);
								}
								if (BgL_test2380z00_5581)
									{	/* Llib/weakhash.scm 474 */
										int32_t BgL_arg1967z00_3147;

										{	/* Llib/weakhash.scm 474 */
											int32_t BgL_arg1968z00_3148;
											int32_t BgL_arg1969z00_3149;

											BgL_arg1968z00_3148 = (int32_t) (BgL_n1z00_3143);
											BgL_arg1969z00_3149 = (int32_t) (BgL_n2z00_3144);
											BgL_arg1967z00_3147 =
												(BgL_arg1968z00_3148 % BgL_arg1969z00_3149);
										}
										{	/* Llib/weakhash.scm 474 */
											long BgL_arg2082z00_3154;

											BgL_arg2082z00_3154 = (long) (BgL_arg1967z00_3147);
											BgL_bucketzd2numzd2_1653 = (long) (BgL_arg2082z00_3154);
									}}
								else
									{	/* Llib/weakhash.scm 474 */
										BgL_bucketzd2numzd2_1653 =
											(BgL_n1z00_3143 % BgL_n2z00_3144);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 474 */
						obj_t BgL_bucketz00_1654;

						BgL_bucketz00_1654 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1651), BgL_bucketzd2numzd2_1653);
						{	/* Llib/weakhash.scm 475 */
							obj_t BgL_maxzd2bucketzd2lenz00_1655;

							BgL_maxzd2bucketzd2lenz00_1655 =
								STRUCT_REF(BgL_tablez00_86, (int) (1L));
							{	/* Llib/weakhash.scm 476 */
								obj_t BgL_countz00_4156;

								BgL_countz00_4156 = MAKE_CELL(BINT(0L));
								{	/* Llib/weakhash.scm 477 */
									obj_t BgL_foundz00_1657;

									{	/* Llib/weakhash.scm 482 */
										obj_t BgL_zc3z04anonymousza31532ze3z87_4146;

										{
											int BgL_tmpz00_5595;

											BgL_tmpz00_5595 = (int) (4L);
											BgL_zc3z04anonymousza31532ze3z87_4146 =
												MAKE_L_PROCEDURE
												(BGl_z62zc3z04anonymousza31532ze3ze5zz__weakhashz00,
												BgL_tmpz00_5595);
										}
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31532ze3z87_4146,
											(int) (0L), ((obj_t) BgL_countz00_4156));
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31532ze3z87_4146,
											(int) (1L), BgL_objz00_88);
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31532ze3z87_4146,
											(int) (2L), BgL_tablez00_86);
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31532ze3z87_4146,
											(int) (3L), BgL_keyz00_87);
										BgL_foundz00_1657 =
											BGl_traversezd2bucketszd2zz__weakhashz00(BgL_tablez00_86,
											BgL_bucketsz00_1651, BgL_bucketzd2numzd2_1653,
											BgL_zc3z04anonymousza31532ze3z87_4146);
									}
									{	/* Llib/weakhash.scm 479 */

										if ((BgL_foundz00_1657 == BGl_keepgoingz00zz__weakhashz00))
											{	/* Llib/weakhash.scm 493 */
												{	/* Llib/weakhash.scm 496 */
													long BgL_arg1518z00_1658;

													BgL_arg1518z00_1658 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_86,
																(int) (0L))) + 1L);
													{	/* Llib/weakhash.scm 496 */
														obj_t BgL_auxz00_5616;
														int BgL_tmpz00_5614;

														BgL_auxz00_5616 = BINT(BgL_arg1518z00_1658);
														BgL_tmpz00_5614 = (int) (0L);
														STRUCT_SET(BgL_tablez00_86, BgL_tmpz00_5614,
															BgL_auxz00_5616);
												}}
												{	/* Llib/weakhash.scm 498 */
													obj_t BgL_arg1520z00_1660;

													{	/* Llib/weakhash.scm 498 */
														obj_t BgL_arg1521z00_1661;
														obj_t BgL_arg1522z00_1662;

														{	/* Llib/weakhash.scm 498 */
															obj_t BgL_arg1523z00_1663;
															obj_t BgL_arg1524z00_1664;

															if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00
																(BgL_tablez00_86))
																{	/* Llib/weakhash.scm 499 */

																	BgL_arg1523z00_1663 =
																		bgl_make_weakptr(BgL_keyz00_87, BFALSE);
																}
															else
																{	/* Llib/weakhash.scm 498 */
																	BgL_arg1523z00_1663 = BgL_keyz00_87;
																}
															if (BGl_hashtablezd2weakzd2datazf3zf3zz__hashz00
																(BgL_tablez00_86))
																{	/* Llib/weakhash.scm 502 */

																	BgL_arg1524z00_1664 =
																		bgl_make_weakptr(BgL_objz00_88, BFALSE);
																}
															else
																{	/* Llib/weakhash.scm 501 */
																	BgL_arg1524z00_1664 = BgL_objz00_88;
																}
															BgL_arg1521z00_1661 =
																MAKE_YOUNG_PAIR(BgL_arg1523z00_1663,
																BgL_arg1524z00_1664);
														}
														{	/* Llib/weakhash.scm 506 */
															obj_t BgL_arg1528z00_1671;

															BgL_arg1528z00_1671 =
																STRUCT_REF(BgL_tablez00_86, (int) (2L));
															BgL_arg1522z00_1662 =
																VECTOR_REF(
																((obj_t) BgL_arg1528z00_1671),
																BgL_bucketzd2numzd2_1653);
														}
														BgL_arg1520z00_1660 =
															MAKE_YOUNG_PAIR(BgL_arg1521z00_1661,
															BgL_arg1522z00_1662);
													}
													VECTOR_SET(
														((obj_t) BgL_bucketsz00_1651),
														BgL_bucketzd2numzd2_1653, BgL_arg1520z00_1660);
												}
												if (
													((long) CINT(CELL_REF(BgL_countz00_4156)) >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_1655)))
													{	/* Llib/weakhash.scm 508 */
														if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00
															(BgL_tablez00_86))
															{	/* Llib/weakhash.scm 877 */
																BGl_weakzd2keyszd2hashtablezd2expandz12zc0zz__weakhashz00
																	(BgL_tablez00_86);
															}
														else
															{	/* Llib/weakhash.scm 877 */
																BGl_weakzd2oldzd2hashtablezd2expandz12zc0zz__weakhashz00
																	(BgL_tablez00_86);
															}
													}
												else
													{	/* Llib/weakhash.scm 508 */
														BFALSE;
													}
												return BgL_objz00_88;
											}
										else
											{	/* Llib/weakhash.scm 493 */
												return BgL_foundz00_1657;
											}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &<@anonymous:1532> */
	obj_t BGl_z62zc3z04anonymousza31532ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4147, obj_t BgL_bkeyz00_4152, obj_t BgL_valz00_4153,
		obj_t BgL_bucketz00_4154)
	{
		{	/* Llib/weakhash.scm 481 */
			{	/* Llib/weakhash.scm 482 */
				obj_t BgL_countz00_4148;
				obj_t BgL_objz00_4149;
				obj_t BgL_tablez00_4150;
				obj_t BgL_keyz00_4151;

				BgL_countz00_4148 = PROCEDURE_L_REF(BgL_envz00_4147, (int) (0L));
				BgL_objz00_4149 = PROCEDURE_L_REF(BgL_envz00_4147, (int) (1L));
				BgL_tablez00_4150 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4147, (int) (2L)));
				BgL_keyz00_4151 = PROCEDURE_L_REF(BgL_envz00_4147, (int) (3L));
				{	/* Llib/weakhash.scm 482 */
					obj_t BgL_auxz00_4270;

					BgL_auxz00_4270 = ADDFX(CELL_REF(BgL_countz00_4148), BINT(1L));
					CELL_SET(BgL_countz00_4148, BgL_auxz00_4270);
				}
				{	/* Llib/weakhash.scm 483 */
					bool_t BgL_test2386z00_5652;

					{	/* Llib/weakhash.scm 483 */
						obj_t BgL_eqtz00_4271;

						BgL_eqtz00_4271 = STRUCT_REF(BgL_tablez00_4150, (int) (3L));
						if (PROCEDUREP(BgL_eqtz00_4271))
							{	/* Llib/weakhash.scm 483 */
								BgL_test2386z00_5652 =
									CBOOL(
									(VA_PROCEDUREP(BgL_eqtz00_4271) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_eqtz00_4271)) (BgL_eqtz00_4271,
											BgL_bkeyz00_4152, BgL_keyz00_4151,
											BEOA) : ((obj_t(*)(obj_t, obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_eqtz00_4271)) (BgL_eqtz00_4271,
											BgL_bkeyz00_4152, BgL_keyz00_4151)));
							}
						else
							{	/* Llib/weakhash.scm 483 */
								if ((BgL_bkeyz00_4152 == BgL_keyz00_4151))
									{	/* Llib/weakhash.scm 483 */
										BgL_test2386z00_5652 = ((bool_t) 1);
									}
								else
									{	/* Llib/weakhash.scm 483 */
										if (STRINGP(BgL_bkeyz00_4152))
											{	/* Llib/weakhash.scm 483 */
												if (STRINGP(BgL_keyz00_4151))
													{	/* Llib/weakhash.scm 483 */
														long BgL_l1z00_4272;

														BgL_l1z00_4272 = STRING_LENGTH(BgL_bkeyz00_4152);
														if (
															(BgL_l1z00_4272 ==
																STRING_LENGTH(BgL_keyz00_4151)))
															{	/* Llib/weakhash.scm 483 */
																int BgL_arg1846z00_4273;

																{	/* Llib/weakhash.scm 483 */
																	char *BgL_auxz00_5675;
																	char *BgL_tmpz00_5673;

																	BgL_auxz00_5675 =
																		BSTRING_TO_STRING(BgL_keyz00_4151);
																	BgL_tmpz00_5673 =
																		BSTRING_TO_STRING(BgL_bkeyz00_4152);
																	BgL_arg1846z00_4273 =
																		memcmp(BgL_tmpz00_5673, BgL_auxz00_5675,
																		BgL_l1z00_4272);
																}
																BgL_test2386z00_5652 =
																	((long) (BgL_arg1846z00_4273) == 0L);
															}
														else
															{	/* Llib/weakhash.scm 483 */
																BgL_test2386z00_5652 = ((bool_t) 0);
															}
													}
												else
													{	/* Llib/weakhash.scm 483 */
														BgL_test2386z00_5652 = ((bool_t) 0);
													}
											}
										else
											{	/* Llib/weakhash.scm 483 */
												BgL_test2386z00_5652 = ((bool_t) 0);
											}
									}
							}
					}
					if (BgL_test2386z00_5652)
						{	/* Llib/weakhash.scm 483 */
							{	/* Llib/weakhash.scm 485 */
								obj_t BgL_arg1534z00_4274;
								obj_t BgL_arg1535z00_4275;

								BgL_arg1534z00_4274 = CAR(((obj_t) BgL_bucketz00_4154));
								if (BGl_hashtablezd2weakzd2datazf3zf3zz__hashz00
									(BgL_tablez00_4150))
									{	/* Llib/weakhash.scm 487 */

										BgL_arg1535z00_4275 =
											bgl_make_weakptr(BgL_objz00_4149, BFALSE);
									}
								else
									{	/* Llib/weakhash.scm 486 */
										BgL_arg1535z00_4275 = BgL_objz00_4149;
									}
								{	/* Llib/weakhash.scm 485 */
									obj_t BgL_tmpz00_5685;

									BgL_tmpz00_5685 = ((obj_t) BgL_arg1534z00_4274);
									SET_CDR(BgL_tmpz00_5685, BgL_arg1535z00_4275);
								}
							}
							return BgL_valz00_4153;
						}
					else
						{	/* Llib/weakhash.scm 483 */
							return BGl_keepgoingz00zz__weakhashz00;
						}
				}
			}
		}

	}



/* weak-hashtable-put! */
	BGL_EXPORTED_DEF obj_t BGl_weakzd2hashtablezd2putz12z12zz__weakhashz00(obj_t
		BgL_tablez00_89, obj_t BgL_keyz00_90, obj_t BgL_objz00_91)
	{
		{	/* Llib/weakhash.scm 515 */
			if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_89))
				{	/* Llib/weakhash.scm 516 */
					BGL_TAIL return
						BGl_weakzd2keyszd2hashtablezd2putz12zc0zz__weakhashz00
						(BgL_tablez00_89, BgL_keyz00_90, BgL_objz00_91);
				}
			else
				{	/* Llib/weakhash.scm 516 */
					BGL_TAIL return
						BGl_weakzd2oldzd2hashtablezd2putz12zc0zz__weakhashz00
						(BgL_tablez00_89, BgL_keyz00_90, BgL_objz00_91);
				}
		}

	}



/* &weak-hashtable-put! */
	obj_t BGl_z62weakzd2hashtablezd2putz12z70zz__weakhashz00(obj_t
		BgL_envz00_4158, obj_t BgL_tablez00_4159, obj_t BgL_keyz00_4160,
		obj_t BgL_objz00_4161)
	{
		{	/* Llib/weakhash.scm 515 */
			{	/* Llib/weakhash.scm 516 */
				obj_t BgL_auxz00_5692;

				if (STRUCTP(BgL_tablez00_4159))
					{	/* Llib/weakhash.scm 516 */
						BgL_auxz00_5692 = BgL_tablez00_4159;
					}
				else
					{
						obj_t BgL_auxz00_5695;

						BgL_auxz00_5695 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(20423L), BGl_string2188z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_tablez00_4159);
						FAILURE(BgL_auxz00_5695, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2putz12z12zz__weakhashz00(BgL_auxz00_5692,
					BgL_keyz00_4160, BgL_objz00_4161);
			}
		}

	}



/* weak-keys-hashtable-update! */
	obj_t BGl_weakzd2keyszd2hashtablezd2updatez12zc0zz__weakhashz00(obj_t
		BgL_tablez00_92, obj_t BgL_keyz00_93, obj_t BgL_procz00_94,
		obj_t BgL_objz00_95)
	{
		{	/* Llib/weakhash.scm 523 */
			{	/* Llib/weakhash.scm 524 */
				obj_t BgL_bucketsz00_1687;

				BgL_bucketsz00_1687 = STRUCT_REF(BgL_tablez00_92, (int) (2L));
				{	/* Llib/weakhash.scm 525 */
					long BgL_bucketzd2numzd2_1689;

					{	/* Llib/weakhash.scm 526 */
						long BgL_arg1575z00_1720;

						{	/* Llib/weakhash.scm 526 */
							obj_t BgL_hashnz00_3199;

							BgL_hashnz00_3199 = STRUCT_REF(BgL_tablez00_92, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_3199))
								{	/* Llib/weakhash.scm 526 */
									obj_t BgL_arg1254z00_3201;

									BgL_arg1254z00_3201 =
										(VA_PROCEDUREP(BgL_hashnz00_3199) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_hashnz00_3199)) (BgL_hashnz00_3199,
											BgL_keyz00_93, BEOA) : ((obj_t(*)(obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_hashnz00_3199)) (BgL_hashnz00_3199,
											BgL_keyz00_93));
									{	/* Llib/weakhash.scm 526 */
										long BgL_nz00_3203;

										BgL_nz00_3203 = (long) CINT(BgL_arg1254z00_3201);
										if ((BgL_nz00_3203 < 0L))
											{	/* Llib/weakhash.scm 526 */
												BgL_arg1575z00_1720 = NEG(BgL_nz00_3203);
											}
										else
											{	/* Llib/weakhash.scm 526 */
												BgL_arg1575z00_1720 = BgL_nz00_3203;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 526 */
									if ((BgL_hashnz00_3199 == BGl_symbol2184z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 526 */
											BgL_arg1575z00_1720 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_93);
										}
									else
										{	/* Llib/weakhash.scm 526 */
											BgL_arg1575z00_1720 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_93);
										}
								}
						}
						{	/* Llib/weakhash.scm 526 */
							long BgL_n1z00_3207;
							long BgL_n2z00_3208;

							BgL_n1z00_3207 = BgL_arg1575z00_1720;
							BgL_n2z00_3208 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1687));
							{	/* Llib/weakhash.scm 526 */
								bool_t BgL_test2398z00_5720;

								{	/* Llib/weakhash.scm 526 */
									long BgL_arg1970z00_3210;

									BgL_arg1970z00_3210 =
										(((BgL_n1z00_3207) | (BgL_n2z00_3208)) & -2147483648);
									BgL_test2398z00_5720 = (BgL_arg1970z00_3210 == 0L);
								}
								if (BgL_test2398z00_5720)
									{	/* Llib/weakhash.scm 526 */
										int32_t BgL_arg1967z00_3211;

										{	/* Llib/weakhash.scm 526 */
											int32_t BgL_arg1968z00_3212;
											int32_t BgL_arg1969z00_3213;

											BgL_arg1968z00_3212 = (int32_t) (BgL_n1z00_3207);
											BgL_arg1969z00_3213 = (int32_t) (BgL_n2z00_3208);
											BgL_arg1967z00_3211 =
												(BgL_arg1968z00_3212 % BgL_arg1969z00_3213);
										}
										{	/* Llib/weakhash.scm 526 */
											long BgL_arg2082z00_3218;

											BgL_arg2082z00_3218 = (long) (BgL_arg1967z00_3211);
											BgL_bucketzd2numzd2_1689 = (long) (BgL_arg2082z00_3218);
									}}
								else
									{	/* Llib/weakhash.scm 526 */
										BgL_bucketzd2numzd2_1689 =
											(BgL_n1z00_3207 % BgL_n2z00_3208);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 526 */
						obj_t BgL_bucketz00_1690;

						BgL_bucketz00_1690 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1687), BgL_bucketzd2numzd2_1689);
						{	/* Llib/weakhash.scm 527 */
							obj_t BgL_maxzd2bucketzd2lenz00_1691;

							BgL_maxzd2bucketzd2lenz00_1691 =
								STRUCT_REF(BgL_tablez00_92, (int) (1L));
							{	/* Llib/weakhash.scm 528 */

								if (NULLP(BgL_bucketz00_1690))
									{	/* Llib/weakhash.scm 529 */
										{	/* Llib/weakhash.scm 531 */
											long BgL_arg1544z00_1693;

											BgL_arg1544z00_1693 =
												(
												(long) CINT(STRUCT_REF(BgL_tablez00_92,
														(int) (0L))) + 1L);
											{	/* Llib/weakhash.scm 531 */
												obj_t BgL_auxz00_5741;
												int BgL_tmpz00_5739;

												BgL_auxz00_5741 = BINT(BgL_arg1544z00_1693);
												BgL_tmpz00_5739 = (int) (0L);
												STRUCT_SET(BgL_tablez00_92, BgL_tmpz00_5739,
													BgL_auxz00_5741);
										}}
										{	/* Llib/weakhash.scm 532 */
											obj_t BgL_arg1546z00_1695;

											{	/* Llib/weakhash.scm 532 */
												obj_t BgL_arg1547z00_1696;

												BgL_arg1547z00_1696 =
													MAKE_YOUNG_PAIR(BgL_keyz00_93, BgL_objz00_95);
												{	/* Llib/weakhash.scm 532 */
													obj_t BgL_list1548z00_1697;

													BgL_list1548z00_1697 =
														MAKE_YOUNG_PAIR(BgL_arg1547z00_1696, BNIL);
													BgL_arg1546z00_1695 = BgL_list1548z00_1697;
											}}
											VECTOR_SET(
												((obj_t) BgL_bucketsz00_1687), BgL_bucketzd2numzd2_1689,
												BgL_arg1546z00_1695);
										}
										return BgL_objz00_95;
									}
								else
									{
										obj_t BgL_buckz00_1699;
										long BgL_countz00_1700;

										BgL_buckz00_1699 = BgL_bucketz00_1690;
										BgL_countz00_1700 = 0L;
									BgL_zc3z04anonymousza31549ze3z87_1701:
										if (NULLP(BgL_buckz00_1699))
											{	/* Llib/weakhash.scm 537 */
												{	/* Llib/weakhash.scm 538 */
													long BgL_arg1552z00_1703;

													BgL_arg1552z00_1703 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_92,
																(int) (0L))) + 1L);
													{	/* Llib/weakhash.scm 538 */
														obj_t BgL_auxz00_5756;
														int BgL_tmpz00_5754;

														BgL_auxz00_5756 = BINT(BgL_arg1552z00_1703);
														BgL_tmpz00_5754 = (int) (0L);
														STRUCT_SET(BgL_tablez00_92, BgL_tmpz00_5754,
															BgL_auxz00_5756);
												}}
												{	/* Llib/weakhash.scm 540 */
													obj_t BgL_arg1554z00_1705;

													BgL_arg1554z00_1705 =
														MAKE_YOUNG_PAIR(bgl_make_weakptr(BgL_keyz00_93,
															BgL_objz00_95), BgL_bucketz00_1690);
													VECTOR_SET(((obj_t) BgL_bucketsz00_1687),
														BgL_bucketzd2numzd2_1689, BgL_arg1554z00_1705);
												}
												if (
													(BgL_countz00_1700 >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_1691)))
													{	/* Llib/weakhash.scm 541 */
														BGl_weakzd2keyszd2hashtablezd2expandz12zc0zz__weakhashz00
															(BgL_tablez00_92);
													}
												else
													{	/* Llib/weakhash.scm 541 */
														BFALSE;
													}
												return BgL_objz00_95;
											}
										else
											{	/* Llib/weakhash.scm 544 */
												bool_t BgL_test2402z00_5767;

												{	/* Llib/weakhash.scm 544 */
													obj_t BgL_arg1568z00_1717;

													{	/* Llib/weakhash.scm 544 */
														obj_t BgL_arg1569z00_1718;

														BgL_arg1569z00_1718 =
															CAR(((obj_t) BgL_buckz00_1699));
														BgL_arg1568z00_1717 =
															bgl_weakptr_data(((obj_t) BgL_arg1569z00_1718));
													}
													{	/* Llib/weakhash.scm 544 */
														obj_t BgL_eqtz00_3238;

														BgL_eqtz00_3238 =
															STRUCT_REF(BgL_tablez00_92, (int) (3L));
														if (PROCEDUREP(BgL_eqtz00_3238))
															{	/* Llib/weakhash.scm 544 */
																BgL_test2402z00_5767 =
																	CBOOL(
																	(VA_PROCEDUREP(BgL_eqtz00_3238)
																		? ((obj_t(*)(obj_t,
																					...))
																			PROCEDURE_ENTRY(BgL_eqtz00_3238))
																		(BgL_eqtz00_3238, BgL_arg1568z00_1717,
																			BgL_keyz00_93, BEOA) : ((obj_t(*)(obj_t,
																					obj_t,
																					obj_t))
																			PROCEDURE_ENTRY(BgL_eqtz00_3238))
																		(BgL_eqtz00_3238, BgL_arg1568z00_1717,
																			BgL_keyz00_93)));
															}
														else
															{	/* Llib/weakhash.scm 544 */
																if ((BgL_arg1568z00_1717 == BgL_keyz00_93))
																	{	/* Llib/weakhash.scm 544 */
																		BgL_test2402z00_5767 = ((bool_t) 1);
																	}
																else
																	{	/* Llib/weakhash.scm 544 */
																		if (STRINGP(BgL_arg1568z00_1717))
																			{	/* Llib/weakhash.scm 544 */
																				if (STRINGP(BgL_keyz00_93))
																					{	/* Llib/weakhash.scm 544 */
																						long BgL_l1z00_3245;

																						BgL_l1z00_3245 =
																							STRING_LENGTH
																							(BgL_arg1568z00_1717);
																						if ((BgL_l1z00_3245 ==
																								STRING_LENGTH(BgL_keyz00_93)))
																							{	/* Llib/weakhash.scm 544 */
																								int BgL_arg1846z00_3248;

																								{	/* Llib/weakhash.scm 544 */
																									char *BgL_auxz00_5794;
																									char *BgL_tmpz00_5792;

																									BgL_auxz00_5794 =
																										BSTRING_TO_STRING
																										(BgL_keyz00_93);
																									BgL_tmpz00_5792 =
																										BSTRING_TO_STRING
																										(BgL_arg1568z00_1717);
																									BgL_arg1846z00_3248 =
																										memcmp(BgL_tmpz00_5792,
																										BgL_auxz00_5794,
																										BgL_l1z00_3245);
																								}
																								BgL_test2402z00_5767 =
																									(
																									(long) (BgL_arg1846z00_3248)
																									== 0L);
																							}
																						else
																							{	/* Llib/weakhash.scm 544 */
																								BgL_test2402z00_5767 =
																									((bool_t) 0);
																							}
																					}
																				else
																					{	/* Llib/weakhash.scm 544 */
																						BgL_test2402z00_5767 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/weakhash.scm 544 */
																				BgL_test2402z00_5767 = ((bool_t) 0);
																			}
																	}
															}
													}
												}
												if (BgL_test2402z00_5767)
													{	/* Llib/weakhash.scm 545 */
														obj_t BgL_resz00_1711;

														{	/* Llib/weakhash.scm 545 */
															obj_t BgL_arg1563z00_1713;

															{	/* Llib/weakhash.scm 545 */
																obj_t BgL_arg1564z00_1714;

																BgL_arg1564z00_1714 =
																	CAR(((obj_t) BgL_buckz00_1699));
																BgL_arg1563z00_1713 =
																	bgl_weakptr_ref(
																	((obj_t) BgL_arg1564z00_1714));
															}
															BgL_resz00_1711 =
																(VA_PROCEDUREP(BgL_procz00_94)
																? ((obj_t(*)(obj_t,
																			...))
																	PROCEDURE_ENTRY(BgL_procz00_94))
																(BgL_procz00_94, BgL_arg1563z00_1713,
																	BEOA) : ((obj_t(*)(obj_t,
																			obj_t))
																	PROCEDURE_ENTRY(BgL_procz00_94))
																(BgL_procz00_94, BgL_arg1563z00_1713));
														}
														{	/* Llib/weakhash.scm 546 */
															obj_t BgL_arg1560z00_1712;

															BgL_arg1560z00_1712 =
																CAR(((obj_t) BgL_buckz00_1699));
															bgl_weakptr_ref_set(
																((obj_t) BgL_arg1560z00_1712), BgL_resz00_1711);
															BUNSPEC;
															BUNSPEC;
														}
														return BgL_resz00_1711;
													}
												else
													{	/* Llib/weakhash.scm 549 */
														obj_t BgL_arg1565z00_1715;
														long BgL_arg1567z00_1716;

														BgL_arg1565z00_1715 =
															CDR(((obj_t) BgL_buckz00_1699));
														BgL_arg1567z00_1716 = (BgL_countz00_1700 + 1L);
														{
															long BgL_countz00_5815;
															obj_t BgL_buckz00_5814;

															BgL_buckz00_5814 = BgL_arg1565z00_1715;
															BgL_countz00_5815 = BgL_arg1567z00_1716;
															BgL_countz00_1700 = BgL_countz00_5815;
															BgL_buckz00_1699 = BgL_buckz00_5814;
															goto BgL_zc3z04anonymousza31549ze3z87_1701;
														}
													}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* weak-old-hashtable-update! */
	obj_t BGl_weakzd2oldzd2hashtablezd2updatez12zc0zz__weakhashz00(obj_t
		BgL_tablez00_96, obj_t BgL_keyz00_97, obj_t BgL_procz00_98,
		obj_t BgL_objz00_99)
	{
		{	/* Llib/weakhash.scm 554 */
			{	/* Llib/weakhash.scm 555 */
				obj_t BgL_bucketsz00_1721;

				BgL_bucketsz00_1721 = STRUCT_REF(BgL_tablez00_96, (int) (2L));
				{	/* Llib/weakhash.scm 556 */
					long BgL_bucketzd2numzd2_1723;

					{	/* Llib/weakhash.scm 557 */
						long BgL_arg1597z00_1756;

						{	/* Llib/weakhash.scm 557 */
							obj_t BgL_hashnz00_3262;

							BgL_hashnz00_3262 = STRUCT_REF(BgL_tablez00_96, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_3262))
								{	/* Llib/weakhash.scm 557 */
									obj_t BgL_arg1254z00_3264;

									BgL_arg1254z00_3264 =
										(VA_PROCEDUREP(BgL_hashnz00_3262) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_hashnz00_3262)) (BgL_hashnz00_3262,
											BgL_keyz00_97, BEOA) : ((obj_t(*)(obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_hashnz00_3262)) (BgL_hashnz00_3262,
											BgL_keyz00_97));
									{	/* Llib/weakhash.scm 557 */
										long BgL_nz00_3266;

										BgL_nz00_3266 = (long) CINT(BgL_arg1254z00_3264);
										if ((BgL_nz00_3266 < 0L))
											{	/* Llib/weakhash.scm 557 */
												BgL_arg1597z00_1756 = NEG(BgL_nz00_3266);
											}
										else
											{	/* Llib/weakhash.scm 557 */
												BgL_arg1597z00_1756 = BgL_nz00_3266;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 557 */
									if ((BgL_hashnz00_3262 == BGl_symbol2184z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 557 */
											BgL_arg1597z00_1756 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_97);
										}
									else
										{	/* Llib/weakhash.scm 557 */
											BgL_arg1597z00_1756 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_97);
										}
								}
						}
						{	/* Llib/weakhash.scm 557 */
							long BgL_n1z00_3270;
							long BgL_n2z00_3271;

							BgL_n1z00_3270 = BgL_arg1597z00_1756;
							BgL_n2z00_3271 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1721));
							{	/* Llib/weakhash.scm 557 */
								bool_t BgL_test2411z00_5836;

								{	/* Llib/weakhash.scm 557 */
									long BgL_arg1970z00_3273;

									BgL_arg1970z00_3273 =
										(((BgL_n1z00_3270) | (BgL_n2z00_3271)) & -2147483648);
									BgL_test2411z00_5836 = (BgL_arg1970z00_3273 == 0L);
								}
								if (BgL_test2411z00_5836)
									{	/* Llib/weakhash.scm 557 */
										int32_t BgL_arg1967z00_3274;

										{	/* Llib/weakhash.scm 557 */
											int32_t BgL_arg1968z00_3275;
											int32_t BgL_arg1969z00_3276;

											BgL_arg1968z00_3275 = (int32_t) (BgL_n1z00_3270);
											BgL_arg1969z00_3276 = (int32_t) (BgL_n2z00_3271);
											BgL_arg1967z00_3274 =
												(BgL_arg1968z00_3275 % BgL_arg1969z00_3276);
										}
										{	/* Llib/weakhash.scm 557 */
											long BgL_arg2082z00_3281;

											BgL_arg2082z00_3281 = (long) (BgL_arg1967z00_3274);
											BgL_bucketzd2numzd2_1723 = (long) (BgL_arg2082z00_3281);
									}}
								else
									{	/* Llib/weakhash.scm 557 */
										BgL_bucketzd2numzd2_1723 =
											(BgL_n1z00_3270 % BgL_n2z00_3271);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 557 */
						obj_t BgL_bucketz00_1724;

						BgL_bucketz00_1724 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1721), BgL_bucketzd2numzd2_1723);
						{	/* Llib/weakhash.scm 558 */
							obj_t BgL_maxzd2bucketzd2lenz00_1725;

							BgL_maxzd2bucketzd2lenz00_1725 =
								STRUCT_REF(BgL_tablez00_96, (int) (1L));
							{	/* Llib/weakhash.scm 559 */
								obj_t BgL_countz00_4172;

								BgL_countz00_4172 = MAKE_CELL(BINT(0L));
								{	/* Llib/weakhash.scm 560 */
									obj_t BgL_foundz00_1727;

									{	/* Llib/weakhash.scm 565 */
										obj_t BgL_zc3z04anonymousza31590ze3z87_4162;

										{
											int BgL_tmpz00_5850;

											BgL_tmpz00_5850 = (int) (4L);
											BgL_zc3z04anonymousza31590ze3z87_4162 =
												MAKE_L_PROCEDURE
												(BGl_z62zc3z04anonymousza31590ze3ze5zz__weakhashz00,
												BgL_tmpz00_5850);
										}
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31590ze3z87_4162,
											(int) (0L), ((obj_t) BgL_countz00_4172));
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31590ze3z87_4162,
											(int) (1L), BgL_procz00_98);
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31590ze3z87_4162,
											(int) (2L), BgL_tablez00_96);
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31590ze3z87_4162,
											(int) (3L), BgL_keyz00_97);
										BgL_foundz00_1727 =
											BGl_traversezd2bucketszd2zz__weakhashz00(BgL_tablez00_96,
											BgL_bucketsz00_1721, BgL_bucketzd2numzd2_1723,
											BgL_zc3z04anonymousza31590ze3z87_4162);
									}
									{	/* Llib/weakhash.scm 562 */

										if ((BgL_foundz00_1727 == BGl_keepgoingz00zz__weakhashz00))
											{	/* Llib/weakhash.scm 576 */
												{	/* Llib/weakhash.scm 579 */
													long BgL_arg1576z00_1728;

													BgL_arg1576z00_1728 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_96,
																(int) (0L))) + 1L);
													{	/* Llib/weakhash.scm 579 */
														obj_t BgL_auxz00_5871;
														int BgL_tmpz00_5869;

														BgL_auxz00_5871 = BINT(BgL_arg1576z00_1728);
														BgL_tmpz00_5869 = (int) (0L);
														STRUCT_SET(BgL_tablez00_96, BgL_tmpz00_5869,
															BgL_auxz00_5871);
												}}
												{	/* Llib/weakhash.scm 581 */
													obj_t BgL_arg1578z00_1730;

													{	/* Llib/weakhash.scm 581 */
														obj_t BgL_arg1579z00_1731;
														obj_t BgL_arg1581z00_1732;

														{	/* Llib/weakhash.scm 581 */
															obj_t BgL_arg1582z00_1733;
															obj_t BgL_arg1583z00_1734;

															if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00
																(BgL_tablez00_96))
																{	/* Llib/weakhash.scm 582 */

																	BgL_arg1582z00_1733 =
																		bgl_make_weakptr(BgL_keyz00_97, BFALSE);
																}
															else
																{	/* Llib/weakhash.scm 581 */
																	BgL_arg1582z00_1733 = BgL_keyz00_97;
																}
															if (BGl_hashtablezd2weakzd2datazf3zf3zz__hashz00
																(BgL_tablez00_96))
																{	/* Llib/weakhash.scm 585 */

																	BgL_arg1583z00_1734 =
																		bgl_make_weakptr(BgL_objz00_99, BFALSE);
																}
															else
																{	/* Llib/weakhash.scm 584 */
																	BgL_arg1583z00_1734 = BgL_objz00_99;
																}
															BgL_arg1579z00_1731 =
																MAKE_YOUNG_PAIR(BgL_arg1582z00_1733,
																BgL_arg1583z00_1734);
														}
														{	/* Llib/weakhash.scm 589 */
															obj_t BgL_arg1586z00_1741;

															BgL_arg1586z00_1741 =
																STRUCT_REF(BgL_tablez00_96, (int) (2L));
															BgL_arg1581z00_1732 =
																VECTOR_REF(
																((obj_t) BgL_arg1586z00_1741),
																BgL_bucketzd2numzd2_1723);
														}
														BgL_arg1578z00_1730 =
															MAKE_YOUNG_PAIR(BgL_arg1579z00_1731,
															BgL_arg1581z00_1732);
													}
													VECTOR_SET(
														((obj_t) BgL_bucketsz00_1721),
														BgL_bucketzd2numzd2_1723, BgL_arg1578z00_1730);
												}
												if (
													((long) CINT(CELL_REF(BgL_countz00_4172)) >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_1725)))
													{	/* Llib/weakhash.scm 591 */
														if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00
															(BgL_tablez00_96))
															{	/* Llib/weakhash.scm 877 */
																BGl_weakzd2keyszd2hashtablezd2expandz12zc0zz__weakhashz00
																	(BgL_tablez00_96);
															}
														else
															{	/* Llib/weakhash.scm 877 */
																BGl_weakzd2oldzd2hashtablezd2expandz12zc0zz__weakhashz00
																	(BgL_tablez00_96);
															}
													}
												else
													{	/* Llib/weakhash.scm 591 */
														BFALSE;
													}
												return BgL_objz00_99;
											}
										else
											{	/* Llib/weakhash.scm 576 */
												return BgL_foundz00_1727;
											}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &<@anonymous:1590> */
	obj_t BGl_z62zc3z04anonymousza31590ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4163, obj_t BgL_bkeyz00_4168, obj_t BgL_valz00_4169,
		obj_t BgL_bucketz00_4170)
	{
		{	/* Llib/weakhash.scm 564 */
			{	/* Llib/weakhash.scm 565 */
				obj_t BgL_countz00_4164;
				obj_t BgL_procz00_4165;
				obj_t BgL_tablez00_4166;
				obj_t BgL_keyz00_4167;

				BgL_countz00_4164 = PROCEDURE_L_REF(BgL_envz00_4163, (int) (0L));
				BgL_procz00_4165 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4163, (int) (1L)));
				BgL_tablez00_4166 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4163, (int) (2L)));
				BgL_keyz00_4167 = PROCEDURE_L_REF(BgL_envz00_4163, (int) (3L));
				{	/* Llib/weakhash.scm 565 */
					obj_t BgL_auxz00_4276;

					BgL_auxz00_4276 = ADDFX(CELL_REF(BgL_countz00_4164), BINT(1L));
					CELL_SET(BgL_countz00_4164, BgL_auxz00_4276);
				}
				{	/* Llib/weakhash.scm 566 */
					bool_t BgL_test2417z00_5908;

					{	/* Llib/weakhash.scm 566 */
						obj_t BgL_eqtz00_4277;

						BgL_eqtz00_4277 = STRUCT_REF(BgL_tablez00_4166, (int) (3L));
						if (PROCEDUREP(BgL_eqtz00_4277))
							{	/* Llib/weakhash.scm 566 */
								BgL_test2417z00_5908 =
									CBOOL(
									(VA_PROCEDUREP(BgL_eqtz00_4277) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_eqtz00_4277)) (BgL_eqtz00_4277,
											BgL_bkeyz00_4168, BgL_keyz00_4167,
											BEOA) : ((obj_t(*)(obj_t, obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_eqtz00_4277)) (BgL_eqtz00_4277,
											BgL_bkeyz00_4168, BgL_keyz00_4167)));
							}
						else
							{	/* Llib/weakhash.scm 566 */
								if ((BgL_bkeyz00_4168 == BgL_keyz00_4167))
									{	/* Llib/weakhash.scm 566 */
										BgL_test2417z00_5908 = ((bool_t) 1);
									}
								else
									{	/* Llib/weakhash.scm 566 */
										if (STRINGP(BgL_bkeyz00_4168))
											{	/* Llib/weakhash.scm 566 */
												if (STRINGP(BgL_keyz00_4167))
													{	/* Llib/weakhash.scm 566 */
														long BgL_l1z00_4278;

														BgL_l1z00_4278 = STRING_LENGTH(BgL_bkeyz00_4168);
														if (
															(BgL_l1z00_4278 ==
																STRING_LENGTH(BgL_keyz00_4167)))
															{	/* Llib/weakhash.scm 566 */
																int BgL_arg1846z00_4279;

																{	/* Llib/weakhash.scm 566 */
																	char *BgL_auxz00_5931;
																	char *BgL_tmpz00_5929;

																	BgL_auxz00_5931 =
																		BSTRING_TO_STRING(BgL_keyz00_4167);
																	BgL_tmpz00_5929 =
																		BSTRING_TO_STRING(BgL_bkeyz00_4168);
																	BgL_arg1846z00_4279 =
																		memcmp(BgL_tmpz00_5929, BgL_auxz00_5931,
																		BgL_l1z00_4278);
																}
																BgL_test2417z00_5908 =
																	((long) (BgL_arg1846z00_4279) == 0L);
															}
														else
															{	/* Llib/weakhash.scm 566 */
																BgL_test2417z00_5908 = ((bool_t) 0);
															}
													}
												else
													{	/* Llib/weakhash.scm 566 */
														BgL_test2417z00_5908 = ((bool_t) 0);
													}
											}
										else
											{	/* Llib/weakhash.scm 566 */
												BgL_test2417z00_5908 = ((bool_t) 0);
											}
									}
							}
					}
					if (BgL_test2417z00_5908)
						{	/* Llib/weakhash.scm 567 */
							obj_t BgL_newvalz00_4280;

							BgL_newvalz00_4280 =
								(VA_PROCEDUREP(BgL_procz00_4165) ? ((obj_t(*)(obj_t,
											...))
									PROCEDURE_ENTRY(BgL_procz00_4165)) (BgL_procz00_4165,
									BgL_valz00_4169, BEOA) : ((obj_t(*)(obj_t,
											obj_t))
									PROCEDURE_ENTRY(BgL_procz00_4165)) (BgL_procz00_4165,
									BgL_valz00_4169));
							{	/* Llib/weakhash.scm 568 */
								obj_t BgL_arg1592z00_4281;
								obj_t BgL_arg1595z00_4282;

								BgL_arg1592z00_4281 = CAR(((obj_t) BgL_bucketz00_4170));
								if (BGl_hashtablezd2weakzd2datazf3zf3zz__hashz00
									(BgL_tablez00_4166))
									{	/* Llib/weakhash.scm 570 */

										BgL_arg1595z00_4282 =
											bgl_make_weakptr(BgL_newvalz00_4280, BFALSE);
									}
								else
									{	/* Llib/weakhash.scm 569 */
										BgL_arg1595z00_4282 = BgL_newvalz00_4280;
									}
								{	/* Llib/weakhash.scm 568 */
									obj_t BgL_tmpz00_5945;

									BgL_tmpz00_5945 = ((obj_t) BgL_arg1592z00_4281);
									SET_CDR(BgL_tmpz00_5945, BgL_arg1595z00_4282);
								}
							}
							return BgL_newvalz00_4280;
						}
					else
						{	/* Llib/weakhash.scm 566 */
							return BGl_keepgoingz00zz__weakhashz00;
						}
				}
			}
		}

	}



/* weak-hashtable-update! */
	BGL_EXPORTED_DEF obj_t
		BGl_weakzd2hashtablezd2updatez12z12zz__weakhashz00(obj_t BgL_tablez00_100,
		obj_t BgL_keyz00_101, obj_t BgL_procz00_102, obj_t BgL_objz00_103)
	{
		{	/* Llib/weakhash.scm 598 */
			if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_100))
				{	/* Llib/weakhash.scm 599 */
					BGL_TAIL return
						BGl_weakzd2keyszd2hashtablezd2updatez12zc0zz__weakhashz00
						(BgL_tablez00_100, BgL_keyz00_101, BgL_procz00_102, BgL_objz00_103);
				}
			else
				{	/* Llib/weakhash.scm 599 */
					BGL_TAIL return
						BGl_weakzd2oldzd2hashtablezd2updatez12zc0zz__weakhashz00
						(BgL_tablez00_100, BgL_keyz00_101, BgL_procz00_102, BgL_objz00_103);
				}
		}

	}



/* &weak-hashtable-update! */
	obj_t BGl_z62weakzd2hashtablezd2updatez12z70zz__weakhashz00(obj_t
		BgL_envz00_4174, obj_t BgL_tablez00_4175, obj_t BgL_keyz00_4176,
		obj_t BgL_procz00_4177, obj_t BgL_objz00_4178)
	{
		{	/* Llib/weakhash.scm 598 */
			{	/* Llib/weakhash.scm 599 */
				obj_t BgL_auxz00_5959;
				obj_t BgL_auxz00_5952;

				if (PROCEDUREP(BgL_procz00_4177))
					{	/* Llib/weakhash.scm 599 */
						BgL_auxz00_5959 = BgL_procz00_4177;
					}
				else
					{
						obj_t BgL_auxz00_5962;

						BgL_auxz00_5962 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(23717L), BGl_string2189z00zz__weakhashz00,
							BGl_string2178z00zz__weakhashz00, BgL_procz00_4177);
						FAILURE(BgL_auxz00_5962, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_4175))
					{	/* Llib/weakhash.scm 599 */
						BgL_auxz00_5952 = BgL_tablez00_4175;
					}
				else
					{
						obj_t BgL_auxz00_5955;

						BgL_auxz00_5955 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(23717L), BGl_string2189z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_tablez00_4175);
						FAILURE(BgL_auxz00_5955, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2updatez12z12zz__weakhashz00(BgL_auxz00_5952,
					BgL_keyz00_4176, BgL_auxz00_5959, BgL_objz00_4178);
			}
		}

	}



/* weak-keys-hashtable-add! */
	obj_t BGl_weakzd2keyszd2hashtablezd2addz12zc0zz__weakhashz00(obj_t
		BgL_tablez00_104, obj_t BgL_keyz00_105, obj_t BgL_procz00_106,
		obj_t BgL_objz00_107, obj_t BgL_initz00_108)
	{
		{	/* Llib/weakhash.scm 606 */
			{	/* Llib/weakhash.scm 607 */
				obj_t BgL_bucketsz00_1758;

				BgL_bucketsz00_1758 = STRUCT_REF(BgL_tablez00_104, (int) (2L));
				{	/* Llib/weakhash.scm 608 */
					long BgL_bucketzd2numzd2_1760;

					{	/* Llib/weakhash.scm 609 */
						long BgL_arg1623z00_1793;

						{	/* Llib/weakhash.scm 609 */
							obj_t BgL_hashnz00_3327;

							BgL_hashnz00_3327 = STRUCT_REF(BgL_tablez00_104, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_3327))
								{	/* Llib/weakhash.scm 609 */
									obj_t BgL_arg1254z00_3329;

									BgL_arg1254z00_3329 =
										(VA_PROCEDUREP(BgL_hashnz00_3327) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_hashnz00_3327)) (BgL_hashnz00_3327,
											BgL_keyz00_105, BEOA) : ((obj_t(*)(obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_hashnz00_3327)) (BgL_hashnz00_3327,
											BgL_keyz00_105));
									{	/* Llib/weakhash.scm 609 */
										long BgL_nz00_3331;

										BgL_nz00_3331 = (long) CINT(BgL_arg1254z00_3329);
										if ((BgL_nz00_3331 < 0L))
											{	/* Llib/weakhash.scm 609 */
												BgL_arg1623z00_1793 = NEG(BgL_nz00_3331);
											}
										else
											{	/* Llib/weakhash.scm 609 */
												BgL_arg1623z00_1793 = BgL_nz00_3331;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 609 */
									if ((BgL_hashnz00_3327 == BGl_symbol2184z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 609 */
											BgL_arg1623z00_1793 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_105);
										}
									else
										{	/* Llib/weakhash.scm 609 */
											BgL_arg1623z00_1793 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_105);
										}
								}
						}
						{	/* Llib/weakhash.scm 609 */
							long BgL_n1z00_3335;
							long BgL_n2z00_3336;

							BgL_n1z00_3335 = BgL_arg1623z00_1793;
							BgL_n2z00_3336 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1758));
							{	/* Llib/weakhash.scm 609 */
								bool_t BgL_test2430z00_5987;

								{	/* Llib/weakhash.scm 609 */
									long BgL_arg1970z00_3338;

									BgL_arg1970z00_3338 =
										(((BgL_n1z00_3335) | (BgL_n2z00_3336)) & -2147483648);
									BgL_test2430z00_5987 = (BgL_arg1970z00_3338 == 0L);
								}
								if (BgL_test2430z00_5987)
									{	/* Llib/weakhash.scm 609 */
										int32_t BgL_arg1967z00_3339;

										{	/* Llib/weakhash.scm 609 */
											int32_t BgL_arg1968z00_3340;
											int32_t BgL_arg1969z00_3341;

											BgL_arg1968z00_3340 = (int32_t) (BgL_n1z00_3335);
											BgL_arg1969z00_3341 = (int32_t) (BgL_n2z00_3336);
											BgL_arg1967z00_3339 =
												(BgL_arg1968z00_3340 % BgL_arg1969z00_3341);
										}
										{	/* Llib/weakhash.scm 609 */
											long BgL_arg2082z00_3346;

											BgL_arg2082z00_3346 = (long) (BgL_arg1967z00_3339);
											BgL_bucketzd2numzd2_1760 = (long) (BgL_arg2082z00_3346);
									}}
								else
									{	/* Llib/weakhash.scm 609 */
										BgL_bucketzd2numzd2_1760 =
											(BgL_n1z00_3335 % BgL_n2z00_3336);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 609 */
						obj_t BgL_bucketz00_1761;

						BgL_bucketz00_1761 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1758), BgL_bucketzd2numzd2_1760);
						{	/* Llib/weakhash.scm 610 */
							obj_t BgL_maxzd2bucketzd2lenz00_1762;

							BgL_maxzd2bucketzd2lenz00_1762 =
								STRUCT_REF(BgL_tablez00_104, (int) (1L));
							{	/* Llib/weakhash.scm 611 */

								if (NULLP(BgL_bucketz00_1761))
									{	/* Llib/weakhash.scm 613 */
										obj_t BgL_vz00_1764;

										BgL_vz00_1764 =
											(VA_PROCEDUREP(BgL_procz00_106) ? ((obj_t(*)(obj_t,
														...))
												PROCEDURE_ENTRY(BgL_procz00_106)) (BgL_procz00_106,
												BgL_objz00_107, BgL_initz00_108,
												BEOA) : ((obj_t(*)(obj_t, obj_t,
														obj_t))
												PROCEDURE_ENTRY(BgL_procz00_106)) (BgL_procz00_106,
												BgL_objz00_107, BgL_initz00_108));
										{	/* Llib/weakhash.scm 614 */
											long BgL_arg1600z00_1765;

											BgL_arg1600z00_1765 =
												(
												(long) CINT(STRUCT_REF(BgL_tablez00_104,
														(int) (0L))) + 1L);
											{	/* Llib/weakhash.scm 614 */
												obj_t BgL_auxz00_6013;
												int BgL_tmpz00_6011;

												BgL_auxz00_6013 = BINT(BgL_arg1600z00_1765);
												BgL_tmpz00_6011 = (int) (0L);
												STRUCT_SET(BgL_tablez00_104, BgL_tmpz00_6011,
													BgL_auxz00_6013);
										}}
										{	/* Llib/weakhash.scm 615 */
											obj_t BgL_arg1603z00_1767;

											{	/* Llib/weakhash.scm 615 */
												obj_t BgL_arg1604z00_1768;

												BgL_arg1604z00_1768 =
													MAKE_YOUNG_PAIR(BgL_keyz00_105, BgL_vz00_1764);
												{	/* Llib/weakhash.scm 615 */
													obj_t BgL_list1605z00_1769;

													BgL_list1605z00_1769 =
														MAKE_YOUNG_PAIR(BgL_arg1604z00_1768, BNIL);
													BgL_arg1603z00_1767 = BgL_list1605z00_1769;
											}}
											VECTOR_SET(
												((obj_t) BgL_bucketsz00_1758), BgL_bucketzd2numzd2_1760,
												BgL_arg1603z00_1767);
										}
										return BgL_vz00_1764;
									}
								else
									{
										obj_t BgL_buckz00_1771;
										long BgL_countz00_1772;

										BgL_buckz00_1771 = BgL_bucketz00_1761;
										BgL_countz00_1772 = 0L;
									BgL_zc3z04anonymousza31606ze3z87_1773:
										if (NULLP(BgL_buckz00_1771))
											{	/* Llib/weakhash.scm 621 */
												obj_t BgL_vz00_1775;

												BgL_vz00_1775 =
													(VA_PROCEDUREP(BgL_procz00_106) ? ((obj_t(*)(obj_t,
																...))
														PROCEDURE_ENTRY(BgL_procz00_106)) (BgL_procz00_106,
														BgL_objz00_107, BgL_initz00_108,
														BEOA) : ((obj_t(*)(obj_t, obj_t,
																obj_t))
														PROCEDURE_ENTRY(BgL_procz00_106)) (BgL_procz00_106,
														BgL_objz00_107, BgL_initz00_108));
												{	/* Llib/weakhash.scm 622 */
													long BgL_arg1608z00_1776;

													BgL_arg1608z00_1776 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_104,
																(int) (0L))) + 1L);
													{	/* Llib/weakhash.scm 622 */
														obj_t BgL_auxz00_6033;
														int BgL_tmpz00_6031;

														BgL_auxz00_6033 = BINT(BgL_arg1608z00_1776);
														BgL_tmpz00_6031 = (int) (0L);
														STRUCT_SET(BgL_tablez00_104, BgL_tmpz00_6031,
															BgL_auxz00_6033);
												}}
												{	/* Llib/weakhash.scm 624 */
													obj_t BgL_arg1610z00_1778;

													BgL_arg1610z00_1778 =
														MAKE_YOUNG_PAIR(bgl_make_weakptr(BgL_keyz00_105,
															BgL_vz00_1775), BgL_bucketz00_1761);
													VECTOR_SET(((obj_t) BgL_bucketsz00_1758),
														BgL_bucketzd2numzd2_1760, BgL_arg1610z00_1778);
												}
												if (
													(BgL_countz00_1772 >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_1762)))
													{	/* Llib/weakhash.scm 625 */
														BGl_weakzd2keyszd2hashtablezd2expandz12zc0zz__weakhashz00
															(BgL_tablez00_104);
													}
												else
													{	/* Llib/weakhash.scm 625 */
														BFALSE;
													}
												return BgL_vz00_1775;
											}
										else
											{	/* Llib/weakhash.scm 628 */
												bool_t BgL_test2434z00_6044;

												{	/* Llib/weakhash.scm 628 */
													obj_t BgL_arg1621z00_1790;

													{	/* Llib/weakhash.scm 628 */
														obj_t BgL_arg1622z00_1791;

														BgL_arg1622z00_1791 =
															CAR(((obj_t) BgL_buckz00_1771));
														BgL_arg1621z00_1790 =
															bgl_weakptr_data(((obj_t) BgL_arg1622z00_1791));
													}
													{	/* Llib/weakhash.scm 628 */
														obj_t BgL_eqtz00_3366;

														BgL_eqtz00_3366 =
															STRUCT_REF(BgL_tablez00_104, (int) (3L));
														if (PROCEDUREP(BgL_eqtz00_3366))
															{	/* Llib/weakhash.scm 628 */
																BgL_test2434z00_6044 =
																	CBOOL(
																	(VA_PROCEDUREP(BgL_eqtz00_3366)
																		? ((obj_t(*)(obj_t,
																					...))
																			PROCEDURE_ENTRY(BgL_eqtz00_3366))
																		(BgL_eqtz00_3366, BgL_arg1621z00_1790,
																			BgL_keyz00_105, BEOA) : ((obj_t(*)(obj_t,
																					obj_t,
																					obj_t))
																			PROCEDURE_ENTRY(BgL_eqtz00_3366))
																		(BgL_eqtz00_3366, BgL_arg1621z00_1790,
																			BgL_keyz00_105)));
															}
														else
															{	/* Llib/weakhash.scm 628 */
																if ((BgL_arg1621z00_1790 == BgL_keyz00_105))
																	{	/* Llib/weakhash.scm 628 */
																		BgL_test2434z00_6044 = ((bool_t) 1);
																	}
																else
																	{	/* Llib/weakhash.scm 628 */
																		if (STRINGP(BgL_arg1621z00_1790))
																			{	/* Llib/weakhash.scm 628 */
																				if (STRINGP(BgL_keyz00_105))
																					{	/* Llib/weakhash.scm 628 */
																						long BgL_l1z00_3373;

																						BgL_l1z00_3373 =
																							STRING_LENGTH
																							(BgL_arg1621z00_1790);
																						if ((BgL_l1z00_3373 ==
																								STRING_LENGTH(BgL_keyz00_105)))
																							{	/* Llib/weakhash.scm 628 */
																								int BgL_arg1846z00_3376;

																								{	/* Llib/weakhash.scm 628 */
																									char *BgL_auxz00_6071;
																									char *BgL_tmpz00_6069;

																									BgL_auxz00_6071 =
																										BSTRING_TO_STRING
																										(BgL_keyz00_105);
																									BgL_tmpz00_6069 =
																										BSTRING_TO_STRING
																										(BgL_arg1621z00_1790);
																									BgL_arg1846z00_3376 =
																										memcmp(BgL_tmpz00_6069,
																										BgL_auxz00_6071,
																										BgL_l1z00_3373);
																								}
																								BgL_test2434z00_6044 =
																									(
																									(long) (BgL_arg1846z00_3376)
																									== 0L);
																							}
																						else
																							{	/* Llib/weakhash.scm 628 */
																								BgL_test2434z00_6044 =
																									((bool_t) 0);
																							}
																					}
																				else
																					{	/* Llib/weakhash.scm 628 */
																						BgL_test2434z00_6044 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/weakhash.scm 628 */
																				BgL_test2434z00_6044 = ((bool_t) 0);
																			}
																	}
															}
													}
												}
												if (BgL_test2434z00_6044)
													{	/* Llib/weakhash.scm 629 */
														obj_t BgL_resz00_1784;

														{	/* Llib/weakhash.scm 629 */
															obj_t BgL_arg1617z00_1786;

															{	/* Llib/weakhash.scm 629 */
																obj_t BgL_arg1618z00_1787;

																BgL_arg1618z00_1787 =
																	CAR(((obj_t) BgL_buckz00_1771));
																BgL_arg1617z00_1786 =
																	bgl_weakptr_ref(
																	((obj_t) BgL_arg1618z00_1787));
															}
															BgL_resz00_1784 =
																(VA_PROCEDUREP(BgL_procz00_106)
																? ((obj_t(*)(obj_t,
																			...))
																	PROCEDURE_ENTRY(BgL_procz00_106))
																(BgL_procz00_106, BgL_objz00_107,
																	BgL_arg1617z00_1786, BEOA) : ((obj_t(*)(obj_t,
																			obj_t,
																			obj_t))
																	PROCEDURE_ENTRY(BgL_procz00_106))
																(BgL_procz00_106, BgL_objz00_107,
																	BgL_arg1617z00_1786));
														}
														{	/* Llib/weakhash.scm 630 */
															obj_t BgL_arg1616z00_1785;

															BgL_arg1616z00_1785 =
																CAR(((obj_t) BgL_buckz00_1771));
															bgl_weakptr_ref_set(
																((obj_t) BgL_arg1616z00_1785), BgL_resz00_1784);
															BUNSPEC;
															BUNSPEC;
														}
														return BgL_resz00_1784;
													}
												else
													{	/* Llib/weakhash.scm 633 */
														obj_t BgL_arg1619z00_1788;
														long BgL_arg1620z00_1789;

														BgL_arg1619z00_1788 =
															CDR(((obj_t) BgL_buckz00_1771));
														BgL_arg1620z00_1789 = (BgL_countz00_1772 + 1L);
														{
															long BgL_countz00_6093;
															obj_t BgL_buckz00_6092;

															BgL_buckz00_6092 = BgL_arg1619z00_1788;
															BgL_countz00_6093 = BgL_arg1620z00_1789;
															BgL_countz00_1772 = BgL_countz00_6093;
															BgL_buckz00_1771 = BgL_buckz00_6092;
															goto BgL_zc3z04anonymousza31606ze3z87_1773;
														}
													}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* weak-old-hashtable-add! */
	obj_t BGl_weakzd2oldzd2hashtablezd2addz12zc0zz__weakhashz00(obj_t
		BgL_tablez00_109, obj_t BgL_keyz00_110, obj_t BgL_procz00_111,
		obj_t BgL_objz00_112, obj_t BgL_initz00_113)
	{
		{	/* Llib/weakhash.scm 638 */
			{	/* Llib/weakhash.scm 639 */
				obj_t BgL_bucketsz00_1794;

				BgL_bucketsz00_1794 = STRUCT_REF(BgL_tablez00_109, (int) (2L));
				{	/* Llib/weakhash.scm 640 */
					long BgL_bucketzd2numzd2_1796;

					{	/* Llib/weakhash.scm 641 */
						long BgL_arg1644z00_1833;

						{	/* Llib/weakhash.scm 641 */
							obj_t BgL_hashnz00_3390;

							BgL_hashnz00_3390 = STRUCT_REF(BgL_tablez00_109, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_3390))
								{	/* Llib/weakhash.scm 641 */
									obj_t BgL_arg1254z00_3392;

									BgL_arg1254z00_3392 =
										(VA_PROCEDUREP(BgL_hashnz00_3390) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_hashnz00_3390)) (BgL_hashnz00_3390,
											BgL_keyz00_110, BEOA) : ((obj_t(*)(obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_hashnz00_3390)) (BgL_hashnz00_3390,
											BgL_keyz00_110));
									{	/* Llib/weakhash.scm 641 */
										long BgL_nz00_3394;

										BgL_nz00_3394 = (long) CINT(BgL_arg1254z00_3392);
										if ((BgL_nz00_3394 < 0L))
											{	/* Llib/weakhash.scm 641 */
												BgL_arg1644z00_1833 = NEG(BgL_nz00_3394);
											}
										else
											{	/* Llib/weakhash.scm 641 */
												BgL_arg1644z00_1833 = BgL_nz00_3394;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 641 */
									if ((BgL_hashnz00_3390 == BGl_symbol2184z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 641 */
											BgL_arg1644z00_1833 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_110);
										}
									else
										{	/* Llib/weakhash.scm 641 */
											BgL_arg1644z00_1833 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_110);
										}
								}
						}
						{	/* Llib/weakhash.scm 641 */
							long BgL_n1z00_3398;
							long BgL_n2z00_3399;

							BgL_n1z00_3398 = BgL_arg1644z00_1833;
							BgL_n2z00_3399 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1794));
							{	/* Llib/weakhash.scm 641 */
								bool_t BgL_test2443z00_6114;

								{	/* Llib/weakhash.scm 641 */
									long BgL_arg1970z00_3401;

									BgL_arg1970z00_3401 =
										(((BgL_n1z00_3398) | (BgL_n2z00_3399)) & -2147483648);
									BgL_test2443z00_6114 = (BgL_arg1970z00_3401 == 0L);
								}
								if (BgL_test2443z00_6114)
									{	/* Llib/weakhash.scm 641 */
										int32_t BgL_arg1967z00_3402;

										{	/* Llib/weakhash.scm 641 */
											int32_t BgL_arg1968z00_3403;
											int32_t BgL_arg1969z00_3404;

											BgL_arg1968z00_3403 = (int32_t) (BgL_n1z00_3398);
											BgL_arg1969z00_3404 = (int32_t) (BgL_n2z00_3399);
											BgL_arg1967z00_3402 =
												(BgL_arg1968z00_3403 % BgL_arg1969z00_3404);
										}
										{	/* Llib/weakhash.scm 641 */
											long BgL_arg2082z00_3409;

											BgL_arg2082z00_3409 = (long) (BgL_arg1967z00_3402);
											BgL_bucketzd2numzd2_1796 = (long) (BgL_arg2082z00_3409);
									}}
								else
									{	/* Llib/weakhash.scm 641 */
										BgL_bucketzd2numzd2_1796 =
											(BgL_n1z00_3398 % BgL_n2z00_3399);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 641 */
						obj_t BgL_bucketz00_1797;

						BgL_bucketz00_1797 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1794), BgL_bucketzd2numzd2_1796);
						{	/* Llib/weakhash.scm 642 */
							obj_t BgL_maxzd2bucketzd2lenz00_1798;

							BgL_maxzd2bucketzd2lenz00_1798 =
								STRUCT_REF(BgL_tablez00_109, (int) (1L));
							{	/* Llib/weakhash.scm 643 */
								obj_t BgL_countz00_4189;

								BgL_countz00_4189 = MAKE_CELL(BINT(0L));
								{	/* Llib/weakhash.scm 644 */
									obj_t BgL_foundz00_1800;

									{	/* Llib/weakhash.scm 649 */
										obj_t BgL_zc3z04anonymousza31638ze3z87_4179;

										{
											int BgL_tmpz00_6128;

											BgL_tmpz00_6128 = (int) (4L);
											BgL_zc3z04anonymousza31638ze3z87_4179 =
												MAKE_L_PROCEDURE
												(BGl_z62zc3z04anonymousza31638ze3ze5zz__weakhashz00,
												BgL_tmpz00_6128);
										}
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31638ze3z87_4179,
											(int) (0L), ((obj_t) BgL_countz00_4189));
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31638ze3z87_4179,
											(int) (1L), BgL_procz00_111);
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31638ze3z87_4179,
											(int) (2L), BgL_tablez00_109);
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31638ze3z87_4179,
											(int) (3L), BgL_keyz00_110);
										BgL_foundz00_1800 =
											BGl_traversezd2bucketszd2zz__weakhashz00(BgL_tablez00_109,
											BgL_bucketsz00_1794, BgL_bucketzd2numzd2_1796,
											BgL_zc3z04anonymousza31638ze3z87_4179);
									}
									{	/* Llib/weakhash.scm 646 */

										if ((BgL_foundz00_1800 == BGl_keepgoingz00zz__weakhashz00))
											{	/* Llib/weakhash.scm 662 */
												obj_t BgL_vz00_1801;

												if (BGl_hashtablezd2weakzd2datazf3zf3zz__hashz00
													(BgL_tablez00_109))
													{	/* Llib/weakhash.scm 663 */
														obj_t BgL_arg1635z00_1814;
														obj_t BgL_arg1636z00_1815;

														{	/* Llib/weakhash.scm 663 */

															BgL_arg1635z00_1814 =
																bgl_make_weakptr(BgL_objz00_112, BFALSE);
														}
														{	/* Llib/weakhash.scm 663 */

															BgL_arg1636z00_1815 =
																bgl_make_weakptr(BgL_initz00_113, BFALSE);
														}
														BgL_vz00_1801 =
															(VA_PROCEDUREP(BgL_procz00_111)
															? ((obj_t(*)(obj_t,
																		...))
																PROCEDURE_ENTRY(BgL_procz00_111))
															(BgL_procz00_111, BgL_arg1635z00_1814,
																BgL_arg1636z00_1815, BEOA) : ((obj_t(*)(obj_t,
																		obj_t,
																		obj_t))
																PROCEDURE_ENTRY(BgL_procz00_111))
															(BgL_procz00_111, BgL_arg1635z00_1814,
																BgL_arg1636z00_1815));
													}
												else
													{	/* Llib/weakhash.scm 662 */
														BgL_vz00_1801 =
															(VA_PROCEDUREP(BgL_procz00_111)
															? ((obj_t(*)(obj_t,
																		...))
																PROCEDURE_ENTRY(BgL_procz00_111))
															(BgL_procz00_111, BgL_objz00_112, BgL_initz00_113,
																BEOA) : ((obj_t(*)(obj_t, obj_t,
																		obj_t))
																PROCEDURE_ENTRY(BgL_procz00_111))
															(BgL_procz00_111, BgL_objz00_112,
																BgL_initz00_113));
													}
												{	/* Llib/weakhash.scm 665 */
													long BgL_arg1625z00_1802;

													BgL_arg1625z00_1802 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_109,
																(int) (0L))) + 1L);
													{	/* Llib/weakhash.scm 665 */
														obj_t BgL_auxz00_6163;
														int BgL_tmpz00_6161;

														BgL_auxz00_6163 = BINT(BgL_arg1625z00_1802);
														BgL_tmpz00_6161 = (int) (0L);
														STRUCT_SET(BgL_tablez00_109, BgL_tmpz00_6161,
															BgL_auxz00_6163);
												}}
												{	/* Llib/weakhash.scm 667 */
													obj_t BgL_arg1627z00_1804;

													{	/* Llib/weakhash.scm 667 */
														obj_t BgL_arg1628z00_1805;
														obj_t BgL_arg1629z00_1806;

														{	/* Llib/weakhash.scm 667 */
															obj_t BgL_arg1630z00_1807;

															if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00
																(BgL_tablez00_109))
																{	/* Llib/weakhash.scm 668 */

																	BgL_arg1630z00_1807 =
																		bgl_make_weakptr(BgL_keyz00_110, BFALSE);
																}
															else
																{	/* Llib/weakhash.scm 667 */
																	BgL_arg1630z00_1807 = BgL_keyz00_110;
																}
															BgL_arg1628z00_1805 =
																MAKE_YOUNG_PAIR(BgL_arg1630z00_1807,
																BgL_vz00_1801);
														}
														{	/* Llib/weakhash.scm 673 */
															obj_t BgL_arg1632z00_1811;

															BgL_arg1632z00_1811 =
																STRUCT_REF(BgL_tablez00_109, (int) (2L));
															BgL_arg1629z00_1806 =
																VECTOR_REF(
																((obj_t) BgL_arg1632z00_1811),
																BgL_bucketzd2numzd2_1796);
														}
														BgL_arg1627z00_1804 =
															MAKE_YOUNG_PAIR(BgL_arg1628z00_1805,
															BgL_arg1629z00_1806);
													}
													VECTOR_SET(
														((obj_t) BgL_bucketsz00_1794),
														BgL_bucketzd2numzd2_1796, BgL_arg1627z00_1804);
												}
												if (
													((long) CINT(CELL_REF(BgL_countz00_4189)) >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_1798)))
													{	/* Llib/weakhash.scm 675 */
														if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00
															(BgL_tablez00_109))
															{	/* Llib/weakhash.scm 877 */
																BGl_weakzd2keyszd2hashtablezd2expandz12zc0zz__weakhashz00
																	(BgL_tablez00_109);
															}
														else
															{	/* Llib/weakhash.scm 877 */
																BGl_weakzd2oldzd2hashtablezd2expandz12zc0zz__weakhashz00
																	(BgL_tablez00_109);
															}
													}
												else
													{	/* Llib/weakhash.scm 675 */
														BFALSE;
													}
												return BgL_vz00_1801;
											}
										else
											{	/* Llib/weakhash.scm 660 */
												return BgL_foundz00_1800;
											}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &<@anonymous:1638> */
	obj_t BGl_z62zc3z04anonymousza31638ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4180, obj_t BgL_bkeyz00_4185, obj_t BgL_valz00_4186,
		obj_t BgL_bucketz00_4187)
	{
		{	/* Llib/weakhash.scm 648 */
			{	/* Llib/weakhash.scm 649 */
				obj_t BgL_countz00_4181;
				obj_t BgL_procz00_4182;
				obj_t BgL_tablez00_4183;
				obj_t BgL_keyz00_4184;

				BgL_countz00_4181 = PROCEDURE_L_REF(BgL_envz00_4180, (int) (0L));
				BgL_procz00_4182 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4180, (int) (1L)));
				BgL_tablez00_4183 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4180, (int) (2L)));
				BgL_keyz00_4184 = PROCEDURE_L_REF(BgL_envz00_4180, (int) (3L));
				{	/* Llib/weakhash.scm 649 */
					obj_t BgL_auxz00_4283;

					BgL_auxz00_4283 = ADDFX(CELL_REF(BgL_countz00_4181), BINT(1L));
					CELL_SET(BgL_countz00_4181, BgL_auxz00_4283);
				}
				{	/* Llib/weakhash.scm 650 */
					bool_t BgL_test2449z00_6197;

					{	/* Llib/weakhash.scm 650 */
						obj_t BgL_eqtz00_4284;

						BgL_eqtz00_4284 = STRUCT_REF(BgL_tablez00_4183, (int) (3L));
						if (PROCEDUREP(BgL_eqtz00_4284))
							{	/* Llib/weakhash.scm 650 */
								BgL_test2449z00_6197 =
									CBOOL(
									(VA_PROCEDUREP(BgL_eqtz00_4284) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_eqtz00_4284)) (BgL_eqtz00_4284,
											BgL_bkeyz00_4185, BgL_keyz00_4184,
											BEOA) : ((obj_t(*)(obj_t, obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_eqtz00_4284)) (BgL_eqtz00_4284,
											BgL_bkeyz00_4185, BgL_keyz00_4184)));
							}
						else
							{	/* Llib/weakhash.scm 650 */
								if ((BgL_bkeyz00_4185 == BgL_keyz00_4184))
									{	/* Llib/weakhash.scm 650 */
										BgL_test2449z00_6197 = ((bool_t) 1);
									}
								else
									{	/* Llib/weakhash.scm 650 */
										if (STRINGP(BgL_bkeyz00_4185))
											{	/* Llib/weakhash.scm 650 */
												if (STRINGP(BgL_keyz00_4184))
													{	/* Llib/weakhash.scm 650 */
														long BgL_l1z00_4285;

														BgL_l1z00_4285 = STRING_LENGTH(BgL_bkeyz00_4185);
														if (
															(BgL_l1z00_4285 ==
																STRING_LENGTH(BgL_keyz00_4184)))
															{	/* Llib/weakhash.scm 650 */
																int BgL_arg1846z00_4286;

																{	/* Llib/weakhash.scm 650 */
																	char *BgL_auxz00_6220;
																	char *BgL_tmpz00_6218;

																	BgL_auxz00_6220 =
																		BSTRING_TO_STRING(BgL_keyz00_4184);
																	BgL_tmpz00_6218 =
																		BSTRING_TO_STRING(BgL_bkeyz00_4185);
																	BgL_arg1846z00_4286 =
																		memcmp(BgL_tmpz00_6218, BgL_auxz00_6220,
																		BgL_l1z00_4285);
																}
																BgL_test2449z00_6197 =
																	((long) (BgL_arg1846z00_4286) == 0L);
															}
														else
															{	/* Llib/weakhash.scm 650 */
																BgL_test2449z00_6197 = ((bool_t) 0);
															}
													}
												else
													{	/* Llib/weakhash.scm 650 */
														BgL_test2449z00_6197 = ((bool_t) 0);
													}
											}
										else
											{	/* Llib/weakhash.scm 650 */
												BgL_test2449z00_6197 = ((bool_t) 0);
											}
									}
							}
					}
					if (BgL_test2449z00_6197)
						{	/* Llib/weakhash.scm 651 */
							obj_t BgL_newvalz00_4287;

							BgL_newvalz00_4287 =
								(VA_PROCEDUREP(BgL_procz00_4182) ? ((obj_t(*)(obj_t,
											...))
									PROCEDURE_ENTRY(BgL_procz00_4182)) (BgL_procz00_4182,
									BgL_valz00_4186, BEOA) : ((obj_t(*)(obj_t,
											obj_t))
									PROCEDURE_ENTRY(BgL_procz00_4182)) (BgL_procz00_4182,
									BgL_valz00_4186));
							{	/* Llib/weakhash.scm 652 */
								obj_t BgL_arg1640z00_4288;
								obj_t BgL_arg1642z00_4289;

								BgL_arg1640z00_4288 = CAR(((obj_t) BgL_bucketz00_4187));
								if (BGl_hashtablezd2weakzd2datazf3zf3zz__hashz00
									(BgL_tablez00_4183))
									{	/* Llib/weakhash.scm 654 */

										BgL_arg1642z00_4289 =
											bgl_make_weakptr(BgL_newvalz00_4287, BFALSE);
									}
								else
									{	/* Llib/weakhash.scm 653 */
										BgL_arg1642z00_4289 = BgL_newvalz00_4287;
									}
								{	/* Llib/weakhash.scm 652 */
									obj_t BgL_tmpz00_6234;

									BgL_tmpz00_6234 = ((obj_t) BgL_arg1640z00_4288);
									SET_CDR(BgL_tmpz00_6234, BgL_arg1642z00_4289);
								}
							}
							return BgL_newvalz00_4287;
						}
					else
						{	/* Llib/weakhash.scm 650 */
							return BGl_keepgoingz00zz__weakhashz00;
						}
				}
			}
		}

	}



/* weak-hashtable-add! */
	BGL_EXPORTED_DEF obj_t BGl_weakzd2hashtablezd2addz12z12zz__weakhashz00(obj_t
		BgL_tablez00_114, obj_t BgL_keyz00_115, obj_t BgL_procz00_116,
		obj_t BgL_objz00_117, obj_t BgL_initz00_118)
	{
		{	/* Llib/weakhash.scm 682 */
			if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_114))
				{	/* Llib/weakhash.scm 683 */
					BGL_TAIL return
						BGl_weakzd2keyszd2hashtablezd2addz12zc0zz__weakhashz00
						(BgL_tablez00_114, BgL_keyz00_115, BgL_procz00_116, BgL_objz00_117,
						BgL_initz00_118);
				}
			else
				{	/* Llib/weakhash.scm 683 */
					BGL_TAIL return
						BGl_weakzd2oldzd2hashtablezd2addz12zc0zz__weakhashz00
						(BgL_tablez00_114, BgL_keyz00_115, BgL_procz00_116, BgL_objz00_117,
						BgL_initz00_118);
				}
		}

	}



/* &weak-hashtable-add! */
	obj_t BGl_z62weakzd2hashtablezd2addz12z70zz__weakhashz00(obj_t
		BgL_envz00_4191, obj_t BgL_tablez00_4192, obj_t BgL_keyz00_4193,
		obj_t BgL_procz00_4194, obj_t BgL_objz00_4195, obj_t BgL_initz00_4196)
	{
		{	/* Llib/weakhash.scm 682 */
			{	/* Llib/weakhash.scm 683 */
				obj_t BgL_auxz00_6248;
				obj_t BgL_auxz00_6241;

				if (PROCEDUREP(BgL_procz00_4194))
					{	/* Llib/weakhash.scm 683 */
						BgL_auxz00_6248 = BgL_procz00_4194;
					}
				else
					{
						obj_t BgL_auxz00_6251;

						BgL_auxz00_6251 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(27143L), BGl_string2190z00zz__weakhashz00,
							BGl_string2178z00zz__weakhashz00, BgL_procz00_4194);
						FAILURE(BgL_auxz00_6251, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_4192))
					{	/* Llib/weakhash.scm 683 */
						BgL_auxz00_6241 = BgL_tablez00_4192;
					}
				else
					{
						obj_t BgL_auxz00_6244;

						BgL_auxz00_6244 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(27143L), BGl_string2190z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_tablez00_4192);
						FAILURE(BgL_auxz00_6244, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2addz12z12zz__weakhashz00(BgL_auxz00_6241,
					BgL_keyz00_4193, BgL_auxz00_6248, BgL_objz00_4195, BgL_initz00_4196);
			}
		}

	}



/* weak-keys-hashtable-remove! */
	bool_t BGl_weakzd2keyszd2hashtablezd2removez12zc0zz__weakhashz00(obj_t
		BgL_tablez00_119, obj_t BgL_keyz00_120)
	{
		{	/* Llib/weakhash.scm 690 */
			{	/* Llib/weakhash.scm 691 */
				obj_t BgL_bucketsz00_1835;

				BgL_bucketsz00_1835 = STRUCT_REF(BgL_tablez00_119, (int) (2L));
				{	/* Llib/weakhash.scm 692 */
					long BgL_bucketzd2numzd2_1837;

					{	/* Llib/weakhash.scm 693 */
						long BgL_arg1678z00_1864;

						{	/* Llib/weakhash.scm 693 */
							obj_t BgL_hashnz00_3455;

							BgL_hashnz00_3455 = STRUCT_REF(BgL_tablez00_119, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_3455))
								{	/* Llib/weakhash.scm 693 */
									obj_t BgL_arg1254z00_3457;

									BgL_arg1254z00_3457 =
										(VA_PROCEDUREP(BgL_hashnz00_3455) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_hashnz00_3455)) (BgL_hashnz00_3455,
											BgL_keyz00_120, BEOA) : ((obj_t(*)(obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_hashnz00_3455)) (BgL_hashnz00_3455,
											BgL_keyz00_120));
									{	/* Llib/weakhash.scm 693 */
										long BgL_nz00_3459;

										BgL_nz00_3459 = (long) CINT(BgL_arg1254z00_3457);
										if ((BgL_nz00_3459 < 0L))
											{	/* Llib/weakhash.scm 693 */
												BgL_arg1678z00_1864 = NEG(BgL_nz00_3459);
											}
										else
											{	/* Llib/weakhash.scm 693 */
												BgL_arg1678z00_1864 = BgL_nz00_3459;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 693 */
									if ((BgL_hashnz00_3455 == BGl_symbol2184z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 693 */
											BgL_arg1678z00_1864 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_120);
										}
									else
										{	/* Llib/weakhash.scm 693 */
											BgL_arg1678z00_1864 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_120);
										}
								}
						}
						{	/* Llib/weakhash.scm 693 */
							long BgL_n1z00_3463;
							long BgL_n2z00_3464;

							BgL_n1z00_3463 = BgL_arg1678z00_1864;
							BgL_n2z00_3464 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1835));
							{	/* Llib/weakhash.scm 693 */
								bool_t BgL_test2462z00_6276;

								{	/* Llib/weakhash.scm 693 */
									long BgL_arg1970z00_3466;

									BgL_arg1970z00_3466 =
										(((BgL_n1z00_3463) | (BgL_n2z00_3464)) & -2147483648);
									BgL_test2462z00_6276 = (BgL_arg1970z00_3466 == 0L);
								}
								if (BgL_test2462z00_6276)
									{	/* Llib/weakhash.scm 693 */
										int32_t BgL_arg1967z00_3467;

										{	/* Llib/weakhash.scm 693 */
											int32_t BgL_arg1968z00_3468;
											int32_t BgL_arg1969z00_3469;

											BgL_arg1968z00_3468 = (int32_t) (BgL_n1z00_3463);
											BgL_arg1969z00_3469 = (int32_t) (BgL_n2z00_3464);
											BgL_arg1967z00_3467 =
												(BgL_arg1968z00_3468 % BgL_arg1969z00_3469);
										}
										{	/* Llib/weakhash.scm 693 */
											long BgL_arg2082z00_3474;

											BgL_arg2082z00_3474 = (long) (BgL_arg1967z00_3467);
											BgL_bucketzd2numzd2_1837 = (long) (BgL_arg2082z00_3474);
									}}
								else
									{	/* Llib/weakhash.scm 693 */
										BgL_bucketzd2numzd2_1837 =
											(BgL_n1z00_3463 % BgL_n2z00_3464);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 693 */
						obj_t BgL_bucketz00_1838;

						BgL_bucketz00_1838 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1835), BgL_bucketzd2numzd2_1837);
						{	/* Llib/weakhash.scm 694 */

							if (NULLP(BgL_bucketz00_1838))
								{	/* Llib/weakhash.scm 696 */
									return ((bool_t) 0);
								}
							else
								{	/* Llib/weakhash.scm 698 */
									bool_t BgL_test2464z00_6289;

									{	/* Llib/weakhash.scm 698 */
										obj_t BgL_arg1673z00_1862;

										{	/* Llib/weakhash.scm 698 */
											obj_t BgL_arg1675z00_1863;

											BgL_arg1675z00_1863 = CAR(((obj_t) BgL_bucketz00_1838));
											BgL_arg1673z00_1862 =
												bgl_weakptr_data(((obj_t) BgL_arg1675z00_1863));
										}
										{	/* Llib/weakhash.scm 698 */
											obj_t BgL_eqtz00_3480;

											BgL_eqtz00_3480 =
												STRUCT_REF(BgL_tablez00_119, (int) (3L));
											if (PROCEDUREP(BgL_eqtz00_3480))
												{	/* Llib/weakhash.scm 698 */
													BgL_test2464z00_6289 =
														CBOOL(
														(VA_PROCEDUREP(BgL_eqtz00_3480) ? ((obj_t(*)(obj_t,
																		...))
																PROCEDURE_ENTRY(BgL_eqtz00_3480))
															(BgL_eqtz00_3480, BgL_arg1673z00_1862,
																BgL_keyz00_120, BEOA) : ((obj_t(*)(obj_t, obj_t,
																		obj_t))
																PROCEDURE_ENTRY(BgL_eqtz00_3480))
															(BgL_eqtz00_3480, BgL_arg1673z00_1862,
																BgL_keyz00_120)));
												}
											else
												{	/* Llib/weakhash.scm 698 */
													if ((BgL_arg1673z00_1862 == BgL_keyz00_120))
														{	/* Llib/weakhash.scm 698 */
															BgL_test2464z00_6289 = ((bool_t) 1);
														}
													else
														{	/* Llib/weakhash.scm 698 */
															if (STRINGP(BgL_arg1673z00_1862))
																{	/* Llib/weakhash.scm 698 */
																	if (STRINGP(BgL_keyz00_120))
																		{	/* Llib/weakhash.scm 698 */
																			long BgL_l1z00_3487;

																			BgL_l1z00_3487 =
																				STRING_LENGTH(BgL_arg1673z00_1862);
																			if (
																				(BgL_l1z00_3487 ==
																					STRING_LENGTH(BgL_keyz00_120)))
																				{	/* Llib/weakhash.scm 698 */
																					int BgL_arg1846z00_3490;

																					{	/* Llib/weakhash.scm 698 */
																						char *BgL_auxz00_6316;
																						char *BgL_tmpz00_6314;

																						BgL_auxz00_6316 =
																							BSTRING_TO_STRING(BgL_keyz00_120);
																						BgL_tmpz00_6314 =
																							BSTRING_TO_STRING
																							(BgL_arg1673z00_1862);
																						BgL_arg1846z00_3490 =
																							memcmp(BgL_tmpz00_6314,
																							BgL_auxz00_6316, BgL_l1z00_3487);
																					}
																					BgL_test2464z00_6289 =
																						(
																						(long) (BgL_arg1846z00_3490) == 0L);
																				}
																			else
																				{	/* Llib/weakhash.scm 698 */
																					BgL_test2464z00_6289 = ((bool_t) 0);
																				}
																		}
																	else
																		{	/* Llib/weakhash.scm 698 */
																			BgL_test2464z00_6289 = ((bool_t) 0);
																		}
																}
															else
																{	/* Llib/weakhash.scm 698 */
																	BgL_test2464z00_6289 = ((bool_t) 0);
																}
														}
												}
										}
									}
									if (BgL_test2464z00_6289)
										{	/* Llib/weakhash.scm 698 */
											{	/* Llib/weakhash.scm 699 */
												obj_t BgL_arg1654z00_1843;

												BgL_arg1654z00_1843 = CDR(((obj_t) BgL_bucketz00_1838));
												VECTOR_SET(
													((obj_t) BgL_bucketsz00_1835),
													BgL_bucketzd2numzd2_1837, BgL_arg1654z00_1843);
											}
											{	/* Llib/weakhash.scm 700 */
												long BgL_arg1655z00_1844;

												BgL_arg1655z00_1844 =
													(
													(long) CINT(STRUCT_REF(BgL_tablez00_119,
															(int) (0L))) - 1L);
												{	/* Llib/weakhash.scm 700 */
													obj_t BgL_auxz00_6331;
													int BgL_tmpz00_6329;

													BgL_auxz00_6331 = BINT(BgL_arg1655z00_1844);
													BgL_tmpz00_6329 = (int) (0L);
													STRUCT_SET(BgL_tablez00_119, BgL_tmpz00_6329,
														BgL_auxz00_6331);
											}}
											return ((bool_t) 1);
										}
									else
										{	/* Llib/weakhash.scm 703 */
											obj_t BgL_g1068z00_1846;

											BgL_g1068z00_1846 = CDR(((obj_t) BgL_bucketz00_1838));
											{
												obj_t BgL_bucketz00_1848;
												obj_t BgL_prevz00_1849;

												BgL_bucketz00_1848 = BgL_g1068z00_1846;
												BgL_prevz00_1849 = BgL_bucketz00_1838;
											BgL_zc3z04anonymousza31657ze3z87_1850:
												if (PAIRP(BgL_bucketz00_1848))
													{	/* Llib/weakhash.scm 706 */
														bool_t BgL_test2471z00_6338;

														{	/* Llib/weakhash.scm 706 */
															obj_t BgL_arg1671z00_1859;

															{	/* Llib/weakhash.scm 706 */
																obj_t BgL_arg1672z00_1860;

																BgL_arg1672z00_1860 = CAR(BgL_bucketz00_1848);
																BgL_arg1671z00_1859 =
																	bgl_weakptr_data(
																	((obj_t) BgL_arg1672z00_1860));
															}
															{	/* Llib/weakhash.scm 706 */
																obj_t BgL_eqtz00_3505;

																BgL_eqtz00_3505 =
																	STRUCT_REF(BgL_tablez00_119, (int) (3L));
																if (PROCEDUREP(BgL_eqtz00_3505))
																	{	/* Llib/weakhash.scm 706 */
																		BgL_test2471z00_6338 =
																			CBOOL(
																			(VA_PROCEDUREP(BgL_eqtz00_3505)
																				? ((obj_t(*)(obj_t,
																							...))
																					PROCEDURE_ENTRY(BgL_eqtz00_3505))
																				(BgL_eqtz00_3505, BgL_arg1671z00_1859,
																					BgL_keyz00_120,
																					BEOA) : ((obj_t(*)(obj_t, obj_t,
																							obj_t))
																					PROCEDURE_ENTRY(BgL_eqtz00_3505))
																				(BgL_eqtz00_3505, BgL_arg1671z00_1859,
																					BgL_keyz00_120)));
																	}
																else
																	{	/* Llib/weakhash.scm 706 */
																		if ((BgL_arg1671z00_1859 == BgL_keyz00_120))
																			{	/* Llib/weakhash.scm 706 */
																				BgL_test2471z00_6338 = ((bool_t) 1);
																			}
																		else
																			{	/* Llib/weakhash.scm 706 */
																				if (STRINGP(BgL_arg1671z00_1859))
																					{	/* Llib/weakhash.scm 706 */
																						if (STRINGP(BgL_keyz00_120))
																							{	/* Llib/weakhash.scm 706 */
																								long BgL_l1z00_3512;

																								BgL_l1z00_3512 =
																									STRING_LENGTH
																									(BgL_arg1671z00_1859);
																								if ((BgL_l1z00_3512 ==
																										STRING_LENGTH
																										(BgL_keyz00_120)))
																									{	/* Llib/weakhash.scm 706 */
																										int BgL_arg1846z00_3515;

																										{	/* Llib/weakhash.scm 706 */
																											char *BgL_auxz00_6364;
																											char *BgL_tmpz00_6362;

																											BgL_auxz00_6364 =
																												BSTRING_TO_STRING
																												(BgL_keyz00_120);
																											BgL_tmpz00_6362 =
																												BSTRING_TO_STRING
																												(BgL_arg1671z00_1859);
																											BgL_arg1846z00_3515 =
																												memcmp(BgL_tmpz00_6362,
																												BgL_auxz00_6364,
																												BgL_l1z00_3512);
																										}
																										BgL_test2471z00_6338 =
																											(
																											(long)
																											(BgL_arg1846z00_3515) ==
																											0L);
																									}
																								else
																									{	/* Llib/weakhash.scm 706 */
																										BgL_test2471z00_6338 =
																											((bool_t) 0);
																									}
																							}
																						else
																							{	/* Llib/weakhash.scm 706 */
																								BgL_test2471z00_6338 =
																									((bool_t) 0);
																							}
																					}
																				else
																					{	/* Llib/weakhash.scm 706 */
																						BgL_test2471z00_6338 = ((bool_t) 0);
																					}
																			}
																	}
															}
														}
														if (BgL_test2471z00_6338)
															{	/* Llib/weakhash.scm 706 */
																{	/* Llib/weakhash.scm 708 */
																	obj_t BgL_arg1663z00_1855;

																	BgL_arg1663z00_1855 = CDR(BgL_bucketz00_1848);
																	{	/* Llib/weakhash.scm 708 */
																		obj_t BgL_tmpz00_6370;

																		BgL_tmpz00_6370 =
																			((obj_t) BgL_prevz00_1849);
																		SET_CDR(BgL_tmpz00_6370,
																			BgL_arg1663z00_1855);
																	}
																}
																{	/* Llib/weakhash.scm 710 */
																	long BgL_arg1668z00_1856;

																	BgL_arg1668z00_1856 =
																		(
																		(long) CINT(STRUCT_REF(BgL_tablez00_119,
																				(int) (0L))) - 1L);
																	{	/* Llib/weakhash.scm 709 */
																		obj_t BgL_auxz00_6379;
																		int BgL_tmpz00_6377;

																		BgL_auxz00_6379 = BINT(BgL_arg1668z00_1856);
																		BgL_tmpz00_6377 = (int) (0L);
																		STRUCT_SET(BgL_tablez00_119,
																			BgL_tmpz00_6377, BgL_auxz00_6379);
																}}
																return ((bool_t) 1);
															}
														else
															{
																obj_t BgL_prevz00_6384;
																obj_t BgL_bucketz00_6382;

																BgL_bucketz00_6382 = CDR(BgL_bucketz00_1848);
																BgL_prevz00_6384 = BgL_bucketz00_1848;
																BgL_prevz00_1849 = BgL_prevz00_6384;
																BgL_bucketz00_1848 = BgL_bucketz00_6382;
																goto BgL_zc3z04anonymousza31657ze3z87_1850;
															}
													}
												else
													{	/* Llib/weakhash.scm 705 */
														return ((bool_t) 0);
													}
											}
										}
								}
						}
					}
				}
			}
		}

	}



/* weak-old-hashtable-remove! */
	bool_t BGl_weakzd2oldzd2hashtablezd2removez12zc0zz__weakhashz00(obj_t
		BgL_tablez00_121, obj_t BgL_keyz00_122)
	{
		{	/* Llib/weakhash.scm 718 */
			{	/* Llib/weakhash.scm 719 */
				obj_t BgL_bucketsz00_1865;

				BgL_bucketsz00_1865 = STRUCT_REF(BgL_tablez00_121, (int) (2L));
				{	/* Llib/weakhash.scm 720 */
					long BgL_bucketzd2numzd2_1867;

					{	/* Llib/weakhash.scm 721 */
						long BgL_arg1684z00_1877;

						{	/* Llib/weakhash.scm 721 */
							obj_t BgL_hashnz00_3529;

							BgL_hashnz00_3529 = STRUCT_REF(BgL_tablez00_121, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_3529))
								{	/* Llib/weakhash.scm 721 */
									obj_t BgL_arg1254z00_3531;

									BgL_arg1254z00_3531 =
										(VA_PROCEDUREP(BgL_hashnz00_3529) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_hashnz00_3529)) (BgL_hashnz00_3529,
											BgL_keyz00_122, BEOA) : ((obj_t(*)(obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_hashnz00_3529)) (BgL_hashnz00_3529,
											BgL_keyz00_122));
									{	/* Llib/weakhash.scm 721 */
										long BgL_nz00_3533;

										BgL_nz00_3533 = (long) CINT(BgL_arg1254z00_3531);
										if ((BgL_nz00_3533 < 0L))
											{	/* Llib/weakhash.scm 721 */
												BgL_arg1684z00_1877 = NEG(BgL_nz00_3533);
											}
										else
											{	/* Llib/weakhash.scm 721 */
												BgL_arg1684z00_1877 = BgL_nz00_3533;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 721 */
									if ((BgL_hashnz00_3529 == BGl_symbol2184z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 721 */
											BgL_arg1684z00_1877 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_122);
										}
									else
										{	/* Llib/weakhash.scm 721 */
											BgL_arg1684z00_1877 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_122);
										}
								}
						}
						{	/* Llib/weakhash.scm 721 */
							long BgL_n1z00_3537;
							long BgL_n2z00_3538;

							BgL_n1z00_3537 = BgL_arg1684z00_1877;
							BgL_n2z00_3538 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1865));
							{	/* Llib/weakhash.scm 721 */
								bool_t BgL_test2480z00_6405;

								{	/* Llib/weakhash.scm 721 */
									long BgL_arg1970z00_3540;

									BgL_arg1970z00_3540 =
										(((BgL_n1z00_3537) | (BgL_n2z00_3538)) & -2147483648);
									BgL_test2480z00_6405 = (BgL_arg1970z00_3540 == 0L);
								}
								if (BgL_test2480z00_6405)
									{	/* Llib/weakhash.scm 721 */
										int32_t BgL_arg1967z00_3541;

										{	/* Llib/weakhash.scm 721 */
											int32_t BgL_arg1968z00_3542;
											int32_t BgL_arg1969z00_3543;

											BgL_arg1968z00_3542 = (int32_t) (BgL_n1z00_3537);
											BgL_arg1969z00_3543 = (int32_t) (BgL_n2z00_3538);
											BgL_arg1967z00_3541 =
												(BgL_arg1968z00_3542 % BgL_arg1969z00_3543);
										}
										{	/* Llib/weakhash.scm 721 */
											long BgL_arg2082z00_3548;

											BgL_arg2082z00_3548 = (long) (BgL_arg1967z00_3541);
											BgL_bucketzd2numzd2_1867 = (long) (BgL_arg2082z00_3548);
									}}
								else
									{	/* Llib/weakhash.scm 721 */
										BgL_bucketzd2numzd2_1867 =
											(BgL_n1z00_3537 % BgL_n2z00_3538);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 721 */
						obj_t BgL_bucketz00_1868;

						BgL_bucketz00_1868 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1865), BgL_bucketzd2numzd2_1867);
						{	/* Llib/weakhash.scm 722 */
							obj_t BgL_foundz00_1869;

							{	/* Llib/weakhash.scm 726 */
								obj_t BgL_zc3z04anonymousza31682ze3z87_4197;

								{
									int BgL_tmpz00_6416;

									BgL_tmpz00_6416 = (int) (2L);
									BgL_zc3z04anonymousza31682ze3z87_4197 =
										MAKE_L_PROCEDURE
										(BGl_z62zc3z04anonymousza31682ze3ze5zz__weakhashz00,
										BgL_tmpz00_6416);
								}
								PROCEDURE_L_SET(BgL_zc3z04anonymousza31682ze3z87_4197,
									(int) (0L), BgL_tablez00_121);
								PROCEDURE_L_SET(BgL_zc3z04anonymousza31682ze3z87_4197,
									(int) (1L), BgL_keyz00_122);
								BgL_foundz00_1869 =
									BGl_traversezd2bucketszd2zz__weakhashz00(BgL_tablez00_121,
									BgL_bucketsz00_1865, BgL_bucketzd2numzd2_1867,
									BgL_zc3z04anonymousza31682ze3z87_4197);
							}
							{	/* Llib/weakhash.scm 723 */

								if ((BgL_foundz00_1869 == BGl_keepgoingz00zz__weakhashz00))
									{	/* Llib/weakhash.scm 729 */
										return ((bool_t) 0);
									}
								else
									{	/* Llib/weakhash.scm 729 */
										return ((bool_t) 1);
									}
							}
						}
					}
				}
			}
		}

	}



/* &<@anonymous:1682> */
	obj_t BGl_z62zc3z04anonymousza31682ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4198, obj_t BgL_bkeyz00_4201, obj_t BgL_valz00_4202,
		obj_t BgL_bucketz00_4203)
	{
		{	/* Llib/weakhash.scm 725 */
			{	/* Llib/weakhash.scm 726 */
				obj_t BgL_tablez00_4199;
				obj_t BgL_keyz00_4200;

				BgL_tablez00_4199 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4198, (int) (0L)));
				BgL_keyz00_4200 = PROCEDURE_L_REF(BgL_envz00_4198, (int) (1L));
				{	/* Llib/weakhash.scm 726 */
					bool_t BgL_test2482z00_6431;

					{	/* Llib/weakhash.scm 726 */
						obj_t BgL_eqtz00_4290;

						BgL_eqtz00_4290 = STRUCT_REF(BgL_tablez00_4199, (int) (3L));
						if (PROCEDUREP(BgL_eqtz00_4290))
							{	/* Llib/weakhash.scm 726 */
								BgL_test2482z00_6431 =
									CBOOL(
									(VA_PROCEDUREP(BgL_eqtz00_4290) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_eqtz00_4290)) (BgL_eqtz00_4290,
											BgL_keyz00_4200, BgL_bkeyz00_4201,
											BEOA) : ((obj_t(*)(obj_t, obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_eqtz00_4290)) (BgL_eqtz00_4290,
											BgL_keyz00_4200, BgL_bkeyz00_4201)));
							}
						else
							{	/* Llib/weakhash.scm 726 */
								if ((BgL_keyz00_4200 == BgL_bkeyz00_4201))
									{	/* Llib/weakhash.scm 726 */
										BgL_test2482z00_6431 = ((bool_t) 1);
									}
								else
									{	/* Llib/weakhash.scm 726 */
										if (STRINGP(BgL_keyz00_4200))
											{	/* Llib/weakhash.scm 726 */
												if (STRINGP(BgL_bkeyz00_4201))
													{	/* Llib/weakhash.scm 726 */
														long BgL_l1z00_4291;

														BgL_l1z00_4291 = STRING_LENGTH(BgL_keyz00_4200);
														if (
															(BgL_l1z00_4291 ==
																STRING_LENGTH(BgL_bkeyz00_4201)))
															{	/* Llib/weakhash.scm 726 */
																int BgL_arg1846z00_4292;

																{	/* Llib/weakhash.scm 726 */
																	char *BgL_auxz00_6454;
																	char *BgL_tmpz00_6452;

																	BgL_auxz00_6454 =
																		BSTRING_TO_STRING(BgL_bkeyz00_4201);
																	BgL_tmpz00_6452 =
																		BSTRING_TO_STRING(BgL_keyz00_4200);
																	BgL_arg1846z00_4292 =
																		memcmp(BgL_tmpz00_6452, BgL_auxz00_6454,
																		BgL_l1z00_4291);
																}
																BgL_test2482z00_6431 =
																	((long) (BgL_arg1846z00_4292) == 0L);
															}
														else
															{	/* Llib/weakhash.scm 726 */
																BgL_test2482z00_6431 = ((bool_t) 0);
															}
													}
												else
													{	/* Llib/weakhash.scm 726 */
														BgL_test2482z00_6431 = ((bool_t) 0);
													}
											}
										else
											{	/* Llib/weakhash.scm 726 */
												BgL_test2482z00_6431 = ((bool_t) 0);
											}
									}
							}
					}
					if (BgL_test2482z00_6431)
						{	/* Llib/weakhash.scm 726 */
							return BGl_removestopz00zz__weakhashz00;
						}
					else
						{	/* Llib/weakhash.scm 726 */
							return BGl_keepgoingz00zz__weakhashz00;
						}
				}
			}
		}

	}



/* weak-hashtable-remove! */
	BGL_EXPORTED_DEF obj_t
		BGl_weakzd2hashtablezd2removez12z12zz__weakhashz00(obj_t BgL_tablez00_123,
		obj_t BgL_keyz00_124)
	{
		{	/* Llib/weakhash.scm 734 */
			if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_123))
				{	/* Llib/weakhash.scm 735 */
					return
						BBOOL(BGl_weakzd2keyszd2hashtablezd2removez12zc0zz__weakhashz00
						(BgL_tablez00_123, BgL_keyz00_124));
				}
			else
				{	/* Llib/weakhash.scm 735 */
					return
						BBOOL(BGl_weakzd2oldzd2hashtablezd2removez12zc0zz__weakhashz00
						(BgL_tablez00_123, BgL_keyz00_124));
				}
		}

	}



/* &weak-hashtable-remove! */
	obj_t BGl_z62weakzd2hashtablezd2removez12z70zz__weakhashz00(obj_t
		BgL_envz00_4204, obj_t BgL_tablez00_4205, obj_t BgL_keyz00_4206)
	{
		{	/* Llib/weakhash.scm 734 */
			{	/* Llib/weakhash.scm 735 */
				obj_t BgL_auxz00_6465;

				if (STRUCTP(BgL_tablez00_4205))
					{	/* Llib/weakhash.scm 735 */
						BgL_auxz00_6465 = BgL_tablez00_4205;
					}
				else
					{
						obj_t BgL_auxz00_6468;

						BgL_auxz00_6468 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(29319L), BGl_string2191z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_tablez00_4205);
						FAILURE(BgL_auxz00_6468, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2removez12z12zz__weakhashz00(BgL_auxz00_6465,
					BgL_keyz00_4206);
			}
		}

	}



/* weak-keys-hashtable-expand! */
	obj_t BGl_weakzd2keyszd2hashtablezd2expandz12zc0zz__weakhashz00(obj_t
		BgL_tablez00_125)
	{
		{	/* Llib/weakhash.scm 742 */
			BGl_gcz00zz__biglooz00(BTRUE);
			{	/* Llib/weakhash.scm 746 */
				obj_t BgL_oldzd2buckszd2_1880;

				BgL_oldzd2buckszd2_1880 = STRUCT_REF(BgL_tablez00_125, (int) (2L));
				{	/* Llib/weakhash.scm 747 */
					obj_t BgL_maxzd2bucketzd2lenz00_1882;

					BgL_maxzd2bucketzd2lenz00_1882 =
						STRUCT_REF(BgL_tablez00_125, (int) (1L));
					{	/* Llib/weakhash.scm 748 */

						{
							long BgL_iz00_1884;
							long BgL_siza7eza7_1885;
							bool_t BgL_expandz00_1886;

							BgL_iz00_1884 = 0L;
							BgL_siza7eza7_1885 = 0L;
							BgL_expandz00_1886 = ((bool_t) 0);
						BgL_zc3z04anonymousza31686ze3z87_1887:
							if (
								(BgL_iz00_1884 <
									VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_1880))))
								{	/* Llib/weakhash.scm 754 */
									long BgL_countz00_1889;

									BgL_countz00_1889 = 0L;
									{	/* Llib/weakhash.scm 756 */
										obj_t BgL_arg1689z00_1890;

										{	/* Llib/weakhash.scm 756 */
											obj_t BgL_hook1119z00_1891;

											BgL_hook1119z00_1891 = MAKE_YOUNG_PAIR(BFALSE, BNIL);
											{	/* Llib/weakhash.scm 761 */
												obj_t BgL_g1120z00_1892;

												BgL_g1120z00_1892 =
													VECTOR_REF(
													((obj_t) BgL_oldzd2buckszd2_1880), BgL_iz00_1884);
												{
													obj_t BgL_l1116z00_1894;
													obj_t BgL_h1117z00_1895;

													BgL_l1116z00_1894 = BgL_g1120z00_1892;
													BgL_h1117z00_1895 = BgL_hook1119z00_1891;
												BgL_zc3z04anonymousza31690ze3z87_1896:
													if (NULLP(BgL_l1116z00_1894))
														{	/* Llib/weakhash.scm 761 */
															BgL_arg1689z00_1890 = CDR(BgL_hook1119z00_1891);
														}
													else
														{	/* Llib/weakhash.scm 761 */
															bool_t BgL_test2492z00_6488;

															{	/* Llib/weakhash.scm 757 */
																obj_t BgL_cellz00_1905;

																BgL_cellz00_1905 =
																	CAR(((obj_t) BgL_l1116z00_1894));
																{	/* Llib/weakhash.scm 757 */
																	obj_t BgL_keyz00_1906;

																	BgL_keyz00_1906 =
																		bgl_weakptr_data(
																		((obj_t) BgL_cellz00_1905));
																	if ((BgL_keyz00_1906 == BUNSPEC))
																		{	/* Llib/weakhash.scm 758 */
																			BgL_test2492z00_6488 = ((bool_t) 0);
																		}
																	else
																		{	/* Llib/weakhash.scm 758 */
																			BgL_countz00_1889 =
																				(BgL_countz00_1889 + 1L);
																			BgL_test2492z00_6488 =
																				CBOOL(BgL_keyz00_1906);
																		}
																}
															}
															if (BgL_test2492z00_6488)
																{	/* Llib/weakhash.scm 761 */
																	obj_t BgL_nh1118z00_1901;

																	{	/* Llib/weakhash.scm 761 */
																		obj_t BgL_arg1695z00_1903;

																		BgL_arg1695z00_1903 =
																			CAR(((obj_t) BgL_l1116z00_1894));
																		BgL_nh1118z00_1901 =
																			MAKE_YOUNG_PAIR(BgL_arg1695z00_1903,
																			BNIL);
																	}
																	SET_CDR(BgL_h1117z00_1895,
																		BgL_nh1118z00_1901);
																	{	/* Llib/weakhash.scm 761 */
																		obj_t BgL_arg1693z00_1902;

																		BgL_arg1693z00_1902 =
																			CDR(((obj_t) BgL_l1116z00_1894));
																		{
																			obj_t BgL_h1117z00_6504;
																			obj_t BgL_l1116z00_6503;

																			BgL_l1116z00_6503 = BgL_arg1693z00_1902;
																			BgL_h1117z00_6504 = BgL_nh1118z00_1901;
																			BgL_h1117z00_1895 = BgL_h1117z00_6504;
																			BgL_l1116z00_1894 = BgL_l1116z00_6503;
																			goto
																				BgL_zc3z04anonymousza31690ze3z87_1896;
																		}
																	}
																}
															else
																{	/* Llib/weakhash.scm 761 */
																	obj_t BgL_arg1696z00_1904;

																	BgL_arg1696z00_1904 =
																		CDR(((obj_t) BgL_l1116z00_1894));
																	{
																		obj_t BgL_l1116z00_6507;

																		BgL_l1116z00_6507 = BgL_arg1696z00_1904;
																		BgL_l1116z00_1894 = BgL_l1116z00_6507;
																		goto BgL_zc3z04anonymousza31690ze3z87_1896;
																	}
																}
														}
												}
											}
										}
										VECTOR_SET(
											((obj_t) BgL_oldzd2buckszd2_1880), BgL_iz00_1884,
											BgL_arg1689z00_1890);
									}
									{	/* Llib/weakhash.scm 762 */
										long BgL_arg1698z00_1908;
										long BgL_arg1703z00_1909;
										bool_t BgL_arg1704z00_1910;

										BgL_arg1698z00_1908 = (BgL_iz00_1884 + 1L);
										BgL_arg1703z00_1909 =
											(BgL_siza7eza7_1885 + BgL_countz00_1889);
										if (BgL_expandz00_1886)
											{	/* Llib/weakhash.scm 763 */
												BgL_arg1704z00_1910 = BgL_expandz00_1886;
											}
										else
											{	/* Llib/weakhash.scm 763 */
												BgL_arg1704z00_1910 =
													(BgL_countz00_1889 >
													(long) CINT(BgL_maxzd2bucketzd2lenz00_1882));
											}
										{
											bool_t BgL_expandz00_6517;
											long BgL_siza7eza7_6516;
											long BgL_iz00_6515;

											BgL_iz00_6515 = BgL_arg1698z00_1908;
											BgL_siza7eza7_6516 = BgL_arg1703z00_1909;
											BgL_expandz00_6517 = BgL_arg1704z00_1910;
											BgL_expandz00_1886 = BgL_expandz00_6517;
											BgL_siza7eza7_1885 = BgL_siza7eza7_6516;
											BgL_iz00_1884 = BgL_iz00_6515;
											goto BgL_zc3z04anonymousza31686ze3z87_1887;
										}
									}
								}
							else
								{	/* Llib/weakhash.scm 753 */
									if (BgL_expandz00_1886)
										{	/* Llib/weakhash.scm 765 */
											long BgL_newzd2lenzd2_1912;

											BgL_newzd2lenzd2_1912 =
												(2L * VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_1880)));
											{	/* Llib/weakhash.scm 765 */
												obj_t BgL_maxzd2lenzd2_1913;

												BgL_maxzd2lenzd2_1913 =
													STRUCT_REF(BgL_tablez00_125, (int) (6L));
												{	/* Llib/weakhash.scm 766 */

													{	/* Llib/weakhash.scm 768 */
														obj_t BgL_nmaxz00_1914;

														{	/* Llib/weakhash.scm 768 */
															obj_t BgL_a1121z00_1917;

															BgL_a1121z00_1917 =
																STRUCT_REF(BgL_tablez00_125, (int) (1L));
															{	/* Llib/weakhash.scm 769 */
																obj_t BgL_b1122z00_1918;

																BgL_b1122z00_1918 =
																	STRUCT_REF(BgL_tablez00_125, (int) (7L));
																{	/* Llib/weakhash.scm 768 */

																	{	/* Llib/weakhash.scm 768 */
																		bool_t BgL_test2496z00_6528;

																		if (INTEGERP(BgL_a1121z00_1917))
																			{	/* Llib/weakhash.scm 768 */
																				BgL_test2496z00_6528 =
																					INTEGERP(BgL_b1122z00_1918);
																			}
																		else
																			{	/* Llib/weakhash.scm 768 */
																				BgL_test2496z00_6528 = ((bool_t) 0);
																			}
																		if (BgL_test2496z00_6528)
																			{	/* Llib/weakhash.scm 768 */
																				BgL_nmaxz00_1914 =
																					BINT(
																					((long) CINT(BgL_a1121z00_1917) *
																						(long) CINT(BgL_b1122z00_1918)));
																			}
																		else
																			{	/* Llib/weakhash.scm 768 */
																				BgL_nmaxz00_1914 =
																					BGl_2za2za2zz__r4_numbers_6_5z00
																					(BgL_a1121z00_1917,
																					BgL_b1122z00_1918);
																			}
																	}
																}
															}
														}
														{	/* Llib/weakhash.scm 771 */
															obj_t BgL_arg1706z00_1915;

															if (REALP(BgL_nmaxz00_1914))
																{	/* Llib/weakhash.scm 771 */
																	BgL_arg1706z00_1915 =
																		BINT(
																		(long) (REAL_TO_DOUBLE(BgL_nmaxz00_1914)));
																}
															else
																{	/* Llib/weakhash.scm 771 */
																	BgL_arg1706z00_1915 = BgL_nmaxz00_1914;
																}
															{	/* Llib/weakhash.scm 770 */
																int BgL_tmpz00_6542;

																BgL_tmpz00_6542 = (int) (1L);
																STRUCT_SET(BgL_tablez00_125, BgL_tmpz00_6542,
																	BgL_arg1706z00_1915);
													}}}
													{	/* Llib/weakhash.scm 773 */
														bool_t BgL_test2499z00_6545;

														if (((long) CINT(BgL_maxzd2lenzd2_1913) < 0L))
															{	/* Llib/weakhash.scm 773 */
																BgL_test2499z00_6545 = ((bool_t) 1);
															}
														else
															{	/* Llib/weakhash.scm 773 */
																BgL_test2499z00_6545 =
																	(BgL_newzd2lenzd2_1912 <=
																	(long) CINT(BgL_maxzd2lenzd2_1913));
															}
														if (BgL_test2499z00_6545)
															{	/* Llib/weakhash.scm 774 */
																obj_t BgL_newzd2buckszd2_1922;

																BgL_newzd2buckszd2_1922 =
																	make_vector(BgL_newzd2lenzd2_1912, BNIL);
																{	/* Llib/weakhash.scm 775 */
																	int BgL_tmpz00_6552;

																	BgL_tmpz00_6552 = (int) (2L);
																	STRUCT_SET(BgL_tablez00_125, BgL_tmpz00_6552,
																		BgL_newzd2buckszd2_1922);
																}
																{
																	long BgL_iz00_1924;

																	BgL_iz00_1924 = 0L;
																BgL_zc3z04anonymousza31711ze3z87_1925:
																	if (
																		(BgL_iz00_1924 <
																			VECTOR_LENGTH(
																				((obj_t) BgL_oldzd2buckszd2_1880))))
																		{	/* Llib/weakhash.scm 778 */
																			{	/* Llib/weakhash.scm 779 */
																				obj_t BgL_g1125z00_1927;

																				BgL_g1125z00_1927 =
																					VECTOR_REF(
																					((obj_t) BgL_oldzd2buckszd2_1880),
																					BgL_iz00_1924);
																				{
																					obj_t BgL_l1123z00_1929;

																					BgL_l1123z00_1929 = BgL_g1125z00_1927;
																				BgL_zc3z04anonymousza31713ze3z87_1930:
																					if (PAIRP(BgL_l1123z00_1929))
																						{	/* Llib/weakhash.scm 786 */
																							{	/* Llib/weakhash.scm 780 */
																								obj_t BgL_cellz00_1932;

																								BgL_cellz00_1932 =
																									CAR(BgL_l1123z00_1929);
																								{	/* Llib/weakhash.scm 780 */
																									obj_t BgL_keyz00_1933;

																									BgL_keyz00_1933 =
																										bgl_weakptr_data(
																										((obj_t) BgL_cellz00_1932));
																									{	/* Llib/weakhash.scm 781 */
																										long BgL_nz00_1934;

																										{	/* Llib/weakhash.scm 781 */
																											obj_t BgL_hashnz00_3610;

																											BgL_hashnz00_3610 =
																												STRUCT_REF
																												(BgL_tablez00_125,
																												(int) (4L));
																											if (PROCEDUREP
																												(BgL_hashnz00_3610))
																												{	/* Llib/weakhash.scm 781 */
																													obj_t
																														BgL_arg1254z00_3612;
																													BgL_arg1254z00_3612 =
																														(VA_PROCEDUREP
																														(BgL_hashnz00_3610)
																														? ((obj_t(*)(obj_t,
																																	...))
																															PROCEDURE_ENTRY
																															(BgL_hashnz00_3610))
																														(BgL_hashnz00_3610,
																															BgL_keyz00_1933,
																															BEOA)
																														: ((obj_t(*)(obj_t,
																																	obj_t))
																															PROCEDURE_ENTRY
																															(BgL_hashnz00_3610))
																														(BgL_hashnz00_3610,
																															BgL_keyz00_1933));
																													{	/* Llib/weakhash.scm 781 */
																														long BgL_nz00_3614;

																														BgL_nz00_3614 =
																															(long)
																															CINT
																															(BgL_arg1254z00_3612);
																														if ((BgL_nz00_3614 <
																																0L))
																															{	/* Llib/weakhash.scm 781 */
																																BgL_nz00_1934 =
																																	NEG
																																	(BgL_nz00_3614);
																															}
																														else
																															{	/* Llib/weakhash.scm 781 */
																																BgL_nz00_1934 =
																																	BgL_nz00_3614;
																															}
																													}
																												}
																											else
																												{	/* Llib/weakhash.scm 781 */
																													if (
																														(BgL_hashnz00_3610
																															==
																															BGl_symbol2184z00zz__weakhashz00))
																														{	/* Llib/weakhash.scm 781 */
																															BgL_nz00_1934 =
																																BGl_getzd2hashnumberzd2persistentz00zz__hashz00
																																(BgL_keyz00_1933);
																														}
																													else
																														{	/* Llib/weakhash.scm 781 */
																															BgL_nz00_1934 =
																																BGl_getzd2hashnumberzd2zz__hashz00
																																(BgL_keyz00_1933);
																														}
																												}
																										}
																										{	/* Llib/weakhash.scm 781 */
																											long BgL_hz00_1935;

																											{	/* Llib/weakhash.scm 783 */
																												long BgL_n1z00_3618;
																												long BgL_n2z00_3619;

																												BgL_n1z00_3618 =
																													BgL_nz00_1934;
																												BgL_n2z00_3619 =
																													BgL_newzd2lenzd2_1912;
																												{	/* Llib/weakhash.scm 783 */
																													bool_t
																														BgL_test2506z00_6582;
																													{	/* Llib/weakhash.scm 783 */
																														long
																															BgL_arg1970z00_3621;
																														BgL_arg1970z00_3621
																															=
																															(((BgL_n1z00_3618)
																																|
																																(BgL_n2z00_3619))
																															& -2147483648);
																														BgL_test2506z00_6582
																															=
																															(BgL_arg1970z00_3621
																															== 0L);
																													}
																													if (BgL_test2506z00_6582)
																														{	/* Llib/weakhash.scm 783 */
																															int32_t
																																BgL_arg1967z00_3622;
																															{	/* Llib/weakhash.scm 783 */
																																int32_t
																																	BgL_arg1968z00_3623;
																																int32_t
																																	BgL_arg1969z00_3624;
																																BgL_arg1968z00_3623
																																	=
																																	(int32_t)
																																	(BgL_n1z00_3618);
																																BgL_arg1969z00_3624
																																	=
																																	(int32_t)
																																	(BgL_n2z00_3619);
																																BgL_arg1967z00_3622
																																	=
																																	(BgL_arg1968z00_3623
																																	%
																																	BgL_arg1969z00_3624);
																															}
																															{	/* Llib/weakhash.scm 783 */
																																long
																																	BgL_arg2082z00_3629;
																																BgL_arg2082z00_3629
																																	=
																																	(long)
																																	(BgL_arg1967z00_3622);
																																BgL_hz00_1935 =
																																	(long)
																																	(BgL_arg2082z00_3629);
																														}}
																													else
																														{	/* Llib/weakhash.scm 783 */
																															BgL_hz00_1935 =
																																(BgL_n1z00_3618
																																%
																																BgL_n2z00_3619);
																														}
																												}
																											}
																											{	/* Llib/weakhash.scm 783 */

																												{	/* Llib/weakhash.scm 785 */
																													obj_t
																														BgL_arg1715z00_1936;
																													BgL_arg1715z00_1936 =
																														MAKE_YOUNG_PAIR
																														(BgL_cellz00_1932,
																														VECTOR_REF
																														(BgL_newzd2buckszd2_1922,
																															BgL_hz00_1935));
																													VECTOR_SET
																														(BgL_newzd2buckszd2_1922,
																														BgL_hz00_1935,
																														BgL_arg1715z00_1936);
																												}
																											}
																										}
																									}
																								}
																							}
																							{
																								obj_t BgL_l1123z00_6594;

																								BgL_l1123z00_6594 =
																									CDR(BgL_l1123z00_1929);
																								BgL_l1123z00_1929 =
																									BgL_l1123z00_6594;
																								goto
																									BgL_zc3z04anonymousza31713ze3z87_1930;
																							}
																						}
																					else
																						{	/* Llib/weakhash.scm 786 */
																							((bool_t) 1);
																						}
																				}
																			}
																			{
																				long BgL_iz00_6596;

																				BgL_iz00_6596 = (BgL_iz00_1924 + 1L);
																				BgL_iz00_1924 = BgL_iz00_6596;
																				goto
																					BgL_zc3z04anonymousza31711ze3z87_1925;
																			}
																		}
																	else
																		{	/* Llib/weakhash.scm 789 */
																			obj_t BgL_xz00_4247;

																			{	/* Llib/weakhash.scm 789 */
																				obj_t BgL_auxz00_6600;
																				int BgL_tmpz00_6598;

																				BgL_auxz00_6600 =
																					BINT(BgL_siza7eza7_1885);
																				BgL_tmpz00_6598 = (int) (0L);
																				BgL_xz00_4247 =
																					STRUCT_SET(BgL_tablez00_125,
																					BgL_tmpz00_6598, BgL_auxz00_6600);
																			}
																			return BUNSPEC;
																		}
																}
															}
														else
															{	/* Llib/weakhash.scm 793 */
																obj_t BgL_arg1720z00_1942;

																{	/* Llib/weakhash.scm 793 */
																	long BgL_arg1721z00_1943;

																	BgL_arg1721z00_1943 =
																		BGl_hashtablezd2siza7ez75zz__hashz00
																		(BgL_tablez00_125);
																	{	/* Llib/weakhash.scm 791 */
																		obj_t BgL_list1722z00_1944;

																		{	/* Llib/weakhash.scm 791 */
																			obj_t BgL_arg1723z00_1945;

																			{	/* Llib/weakhash.scm 791 */
																				obj_t BgL_arg1724z00_1946;

																				BgL_arg1724z00_1946 =
																					MAKE_YOUNG_PAIR(BINT
																					(BgL_arg1721z00_1943), BNIL);
																				BgL_arg1723z00_1945 =
																					MAKE_YOUNG_PAIR(BgL_maxzd2lenzd2_1913,
																					BgL_arg1724z00_1946);
																			}
																			BgL_list1722z00_1944 =
																				MAKE_YOUNG_PAIR(BINT
																				(BgL_newzd2lenzd2_1912),
																				BgL_arg1723z00_1945);
																		}
																		BgL_arg1720z00_1942 =
																			BGl_formatz00zz__r4_output_6_10_3z00
																			(BGl_string2192z00zz__weakhashz00,
																			BgL_list1722z00_1944);
																}}
																return
																	BGl_errorz00zz__errorz00
																	(BGl_string2193z00zz__weakhashz00,
																	BgL_arg1720z00_1942, BgL_tablez00_125);
															}
													}
												}
											}
										}
									else
										{	/* Llib/weakhash.scm 764 */
											return BFALSE;
										}
								}
						}
					}
				}
			}
		}

	}



/* weak-old-hashtable-expand! */
	obj_t BGl_weakzd2oldzd2hashtablezd2expandz12zc0zz__weakhashz00(obj_t
		BgL_tablez00_126)
	{
		{	/* Llib/weakhash.scm 799 */
			if ((1L == (long) CINT(STRUCT_REF(BgL_tablez00_126, (int) (5L)))))
				{	/* Llib/weakhash.scm 800 */
					obj_t BgL_oldzd2buckszd2_1951;

					BgL_oldzd2buckszd2_1951 = STRUCT_REF(BgL_tablez00_126, (int) (2L));
					{	/* Llib/weakhash.scm 800 */
						long BgL_newzd2buckszd2lenz00_1953;

						BgL_newzd2buckszd2lenz00_1953 =
							(2L * VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_1951)));
						{	/* Llib/weakhash.scm 800 */
							obj_t BgL_newzd2buckszd2_1954;

							BgL_newzd2buckszd2_1954 =
								make_vector(BgL_newzd2buckszd2lenz00_1953, BNIL);
							{	/* Llib/weakhash.scm 800 */
								obj_t BgL_countz00_1955;

								BgL_countz00_1955 = STRUCT_REF(BgL_tablez00_126, (int) (0L));
								{	/* Llib/weakhash.scm 800 */

									{	/* Llib/weakhash.scm 800 */
										obj_t BgL_nmaxz00_1956;

										{	/* Llib/weakhash.scm 800 */
											obj_t BgL_a1126z00_1959;

											BgL_a1126z00_1959 =
												STRUCT_REF(BgL_tablez00_126, (int) (1L));
											{	/* Llib/weakhash.scm 800 */
												obj_t BgL_b1127z00_1960;

												BgL_b1127z00_1960 =
													STRUCT_REF(BgL_tablez00_126, (int) (7L));
												{	/* Llib/weakhash.scm 800 */

													{	/* Llib/weakhash.scm 800 */
														bool_t BgL_test2508z00_6628;

														if (INTEGERP(BgL_a1126z00_1959))
															{	/* Llib/weakhash.scm 800 */
																BgL_test2508z00_6628 =
																	INTEGERP(BgL_b1127z00_1960);
															}
														else
															{	/* Llib/weakhash.scm 800 */
																BgL_test2508z00_6628 = ((bool_t) 0);
															}
														if (BgL_test2508z00_6628)
															{	/* Llib/weakhash.scm 800 */
																BgL_nmaxz00_1956 =
																	BINT(
																	((long) CINT(BgL_a1126z00_1959) *
																		(long) CINT(BgL_b1127z00_1960)));
															}
														else
															{	/* Llib/weakhash.scm 800 */
																BgL_nmaxz00_1956 =
																	BGl_2za2za2zz__r4_numbers_6_5z00
																	(BgL_a1126z00_1959, BgL_b1127z00_1960);
															}
													}
												}
											}
										}
										{	/* Llib/weakhash.scm 800 */
											obj_t BgL_arg1727z00_1957;

											if (REALP(BgL_nmaxz00_1956))
												{	/* Llib/weakhash.scm 800 */
													BgL_arg1727z00_1957 =
														BINT((long) (REAL_TO_DOUBLE(BgL_nmaxz00_1956)));
												}
											else
												{	/* Llib/weakhash.scm 800 */
													BgL_arg1727z00_1957 = BgL_nmaxz00_1956;
												}
											{	/* Llib/weakhash.scm 800 */
												int BgL_tmpz00_6642;

												BgL_tmpz00_6642 = (int) (1L);
												STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6642,
													BgL_arg1727z00_1957);
									}}}
									{	/* Llib/weakhash.scm 800 */
										int BgL_tmpz00_6645;

										BgL_tmpz00_6645 = (int) (2L);
										STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6645,
											BgL_newzd2buckszd2_1954);
									}
									{
										long BgL_iz00_1963;

										BgL_iz00_1963 = 0L;
									BgL_zc3z04anonymousza31730ze3z87_1964:
										if (
											(BgL_iz00_1963 <
												VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_1951))))
											{	/* Llib/weakhash.scm 800 */
												{	/* Llib/weakhash.scm 800 */
													obj_t BgL_g1130z00_1966;

													BgL_g1130z00_1966 =
														VECTOR_REF(
														((obj_t) BgL_oldzd2buckszd2_1951), BgL_iz00_1963);
													{
														obj_t BgL_l1128z00_1968;

														BgL_l1128z00_1968 = BgL_g1130z00_1966;
													BgL_zc3z04anonymousza31732ze3z87_1969:
														if (PAIRP(BgL_l1128z00_1968))
															{	/* Llib/weakhash.scm 800 */
																{	/* Llib/weakhash.scm 818 */
																	obj_t BgL_cellz00_1971;

																	BgL_cellz00_1971 = CAR(BgL_l1128z00_1968);
																	{	/* Llib/weakhash.scm 818 */
																		obj_t BgL_keyz00_1972;

																		{	/* Llib/weakhash.scm 818 */
																			obj_t BgL_arg1738z00_1977;

																			BgL_arg1738z00_1977 =
																				CAR(((obj_t) BgL_cellz00_1971));
																			BgL_keyz00_1972 =
																				bgl_weakptr_data(
																				((obj_t) BgL_arg1738z00_1977));
																		}
																		if ((BgL_keyz00_1972 == BUNSPEC))
																			{	/* Llib/weakhash.scm 819 */
																				BgL_countz00_1955 =
																					SUBFX(BgL_countz00_1955, BINT(1L));
																			}
																		else
																			{	/* Llib/weakhash.scm 821 */
																				long BgL_hz00_1973;

																				{	/* Llib/weakhash.scm 822 */
																					long BgL_arg1736z00_1976;

																					{	/* Llib/weakhash.scm 822 */
																						obj_t BgL_hashnz00_3659;

																						BgL_hashnz00_3659 =
																							STRUCT_REF(BgL_tablez00_126,
																							(int) (4L));
																						if (PROCEDUREP(BgL_hashnz00_3659))
																							{	/* Llib/weakhash.scm 822 */
																								obj_t BgL_arg1254z00_3661;

																								BgL_arg1254z00_3661 =
																									(VA_PROCEDUREP
																									(BgL_hashnz00_3659)
																									? ((obj_t(*)(obj_t,
																												...))
																										PROCEDURE_ENTRY
																										(BgL_hashnz00_3659))
																									(BgL_hashnz00_3659,
																										BgL_keyz00_1972,
																										BEOA) : ((obj_t(*)(obj_t,
																												obj_t))
																										PROCEDURE_ENTRY
																										(BgL_hashnz00_3659))
																									(BgL_hashnz00_3659,
																										BgL_keyz00_1972));
																								{	/* Llib/weakhash.scm 822 */
																									long BgL_nz00_3663;

																									BgL_nz00_3663 =
																										(long)
																										CINT(BgL_arg1254z00_3661);
																									if ((BgL_nz00_3663 < 0L))
																										{	/* Llib/weakhash.scm 822 */
																											BgL_arg1736z00_1976 =
																												NEG(BgL_nz00_3663);
																										}
																									else
																										{	/* Llib/weakhash.scm 822 */
																											BgL_arg1736z00_1976 =
																												BgL_nz00_3663;
																										}
																								}
																							}
																						else
																							{	/* Llib/weakhash.scm 822 */
																								if (
																									(BgL_hashnz00_3659 ==
																										BGl_symbol2184z00zz__weakhashz00))
																									{	/* Llib/weakhash.scm 822 */
																										BgL_arg1736z00_1976 =
																											BGl_getzd2hashnumberzd2persistentz00zz__hashz00
																											(BgL_keyz00_1972);
																									}
																								else
																									{	/* Llib/weakhash.scm 822 */
																										BgL_arg1736z00_1976 =
																											BGl_getzd2hashnumberzd2zz__hashz00
																											(BgL_keyz00_1972);
																									}
																							}
																					}
																					{	/* Llib/weakhash.scm 821 */
																						long BgL_n1z00_3667;
																						long BgL_n2z00_3668;

																						BgL_n1z00_3667 =
																							BgL_arg1736z00_1976;
																						BgL_n2z00_3668 =
																							BgL_newzd2buckszd2lenz00_1953;
																						{	/* Llib/weakhash.scm 821 */
																							bool_t BgL_test2517z00_6681;

																							{	/* Llib/weakhash.scm 821 */
																								long BgL_arg1970z00_3670;

																								BgL_arg1970z00_3670 =
																									(((BgL_n1z00_3667) |
																										(BgL_n2z00_3668)) &
																									-2147483648);
																								BgL_test2517z00_6681 =
																									(BgL_arg1970z00_3670 == 0L);
																							}
																							if (BgL_test2517z00_6681)
																								{	/* Llib/weakhash.scm 821 */
																									int32_t BgL_arg1967z00_3671;

																									{	/* Llib/weakhash.scm 821 */
																										int32_t BgL_arg1968z00_3672;
																										int32_t BgL_arg1969z00_3673;

																										BgL_arg1968z00_3672 =
																											(int32_t)
																											(BgL_n1z00_3667);
																										BgL_arg1969z00_3673 =
																											(int32_t)
																											(BgL_n2z00_3668);
																										BgL_arg1967z00_3671 =
																											(BgL_arg1968z00_3672 %
																											BgL_arg1969z00_3673);
																									}
																									{	/* Llib/weakhash.scm 821 */
																										long BgL_arg2082z00_3678;

																										BgL_arg2082z00_3678 =
																											(long)
																											(BgL_arg1967z00_3671);
																										BgL_hz00_1973 =
																											(long)
																											(BgL_arg2082z00_3678);
																								}}
																							else
																								{	/* Llib/weakhash.scm 821 */
																									BgL_hz00_1973 =
																										(BgL_n1z00_3667 %
																										BgL_n2z00_3668);
																								}
																						}
																					}
																				}
																				{	/* Llib/weakhash.scm 827 */
																					obj_t BgL_arg1734z00_1974;

																					BgL_arg1734z00_1974 =
																						MAKE_YOUNG_PAIR(BgL_cellz00_1971,
																						VECTOR_REF(BgL_newzd2buckszd2_1954,
																							BgL_hz00_1973));
																					VECTOR_SET(BgL_newzd2buckszd2_1954,
																						BgL_hz00_1973, BgL_arg1734z00_1974);
																				}
																			}
																	}
																}
																{
																	obj_t BgL_l1128z00_6693;

																	BgL_l1128z00_6693 = CDR(BgL_l1128z00_1968);
																	BgL_l1128z00_1968 = BgL_l1128z00_6693;
																	goto BgL_zc3z04anonymousza31732ze3z87_1969;
																}
															}
														else
															{	/* Llib/weakhash.scm 800 */
																((bool_t) 1);
															}
													}
												}
												{
													long BgL_iz00_6695;

													BgL_iz00_6695 = (BgL_iz00_1963 + 1L);
													BgL_iz00_1963 = BgL_iz00_6695;
													goto BgL_zc3z04anonymousza31730ze3z87_1964;
												}
											}
										else
											{	/* Llib/weakhash.scm 800 */
												((bool_t) 0);
											}
									}
									{	/* Llib/weakhash.scm 800 */
										obj_t BgL_vz00_3686;

										BgL_vz00_3686 = BgL_countz00_1955;
										{	/* Llib/weakhash.scm 800 */
											obj_t BgL_xz00_4248;

											{	/* Llib/weakhash.scm 800 */
												int BgL_tmpz00_6697;

												BgL_tmpz00_6697 = (int) (0L);
												BgL_xz00_4248 =
													STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6697,
													BgL_vz00_3686);
											}
											return BUNSPEC;
										}
									}
								}
							}
						}
					}
				}
			else
				{	/* Llib/weakhash.scm 800 */
					if ((2L == (long) CINT(STRUCT_REF(BgL_tablez00_126, (int) (5L)))))
						{	/* Llib/weakhash.scm 800 */
							obj_t BgL_oldzd2buckszd2_1984;

							BgL_oldzd2buckszd2_1984 =
								STRUCT_REF(BgL_tablez00_126, (int) (2L));
							{	/* Llib/weakhash.scm 800 */
								long BgL_newzd2buckszd2lenz00_1986;

								BgL_newzd2buckszd2lenz00_1986 =
									(2L * VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_1984)));
								{	/* Llib/weakhash.scm 800 */
									obj_t BgL_newzd2buckszd2_1987;

									BgL_newzd2buckszd2_1987 =
										make_vector(BgL_newzd2buckszd2lenz00_1986, BNIL);
									{	/* Llib/weakhash.scm 800 */
										obj_t BgL_countz00_1988;

										BgL_countz00_1988 =
											STRUCT_REF(BgL_tablez00_126, (int) (0L));
										{	/* Llib/weakhash.scm 800 */

											{	/* Llib/weakhash.scm 800 */
												obj_t BgL_nmaxz00_1989;

												{	/* Llib/weakhash.scm 800 */
													obj_t BgL_a1131z00_1992;

													BgL_a1131z00_1992 =
														STRUCT_REF(BgL_tablez00_126, (int) (1L));
													{	/* Llib/weakhash.scm 800 */
														obj_t BgL_b1132z00_1993;

														BgL_b1132z00_1993 =
															STRUCT_REF(BgL_tablez00_126, (int) (7L));
														{	/* Llib/weakhash.scm 800 */

															{	/* Llib/weakhash.scm 800 */
																bool_t BgL_test2519z00_6717;

																if (INTEGERP(BgL_a1131z00_1992))
																	{	/* Llib/weakhash.scm 800 */
																		BgL_test2519z00_6717 =
																			INTEGERP(BgL_b1132z00_1993);
																	}
																else
																	{	/* Llib/weakhash.scm 800 */
																		BgL_test2519z00_6717 = ((bool_t) 0);
																	}
																if (BgL_test2519z00_6717)
																	{	/* Llib/weakhash.scm 800 */
																		BgL_nmaxz00_1989 =
																			BINT(
																			((long) CINT(BgL_a1131z00_1992) *
																				(long) CINT(BgL_b1132z00_1993)));
																	}
																else
																	{	/* Llib/weakhash.scm 800 */
																		BgL_nmaxz00_1989 =
																			BGl_2za2za2zz__r4_numbers_6_5z00
																			(BgL_a1131z00_1992, BgL_b1132z00_1993);
																	}
															}
														}
													}
												}
												{	/* Llib/weakhash.scm 800 */
													obj_t BgL_arg1744z00_1990;

													if (REALP(BgL_nmaxz00_1989))
														{	/* Llib/weakhash.scm 800 */
															BgL_arg1744z00_1990 =
																BINT((long) (REAL_TO_DOUBLE(BgL_nmaxz00_1989)));
														}
													else
														{	/* Llib/weakhash.scm 800 */
															BgL_arg1744z00_1990 = BgL_nmaxz00_1989;
														}
													{	/* Llib/weakhash.scm 800 */
														int BgL_tmpz00_6731;

														BgL_tmpz00_6731 = (int) (1L);
														STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6731,
															BgL_arg1744z00_1990);
											}}}
											{	/* Llib/weakhash.scm 800 */
												int BgL_tmpz00_6734;

												BgL_tmpz00_6734 = (int) (2L);
												STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6734,
													BgL_newzd2buckszd2_1987);
											}
											{
												long BgL_iz00_1996;

												BgL_iz00_1996 = 0L;
											BgL_zc3z04anonymousza31747ze3z87_1997:
												if (
													(BgL_iz00_1996 <
														VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_1984))))
													{	/* Llib/weakhash.scm 800 */
														{	/* Llib/weakhash.scm 800 */
															obj_t BgL_g1135z00_1999;

															BgL_g1135z00_1999 =
																VECTOR_REF(
																((obj_t) BgL_oldzd2buckszd2_1984),
																BgL_iz00_1996);
															{
																obj_t BgL_l1133z00_2001;

																BgL_l1133z00_2001 = BgL_g1135z00_1999;
															BgL_zc3z04anonymousza31749ze3z87_2002:
																if (PAIRP(BgL_l1133z00_2001))
																	{	/* Llib/weakhash.scm 800 */
																		{	/* Llib/weakhash.scm 831 */
																			obj_t BgL_cellz00_2004;

																			BgL_cellz00_2004 = CAR(BgL_l1133z00_2001);
																			{	/* Llib/weakhash.scm 831 */
																				obj_t BgL_dataz00_2005;

																				{	/* Llib/weakhash.scm 831 */
																					obj_t BgL_arg1755z00_2011;

																					BgL_arg1755z00_2011 =
																						CDR(((obj_t) BgL_cellz00_2004));
																					BgL_dataz00_2005 =
																						bgl_weakptr_data(
																						((obj_t) BgL_arg1755z00_2011));
																				}
																				if ((BgL_dataz00_2005 == BUNSPEC))
																					{	/* Llib/weakhash.scm 832 */
																						BgL_countz00_1988 =
																							SUBFX(BgL_countz00_1988,
																							BINT(1L));
																					}
																				else
																					{	/* Llib/weakhash.scm 834 */
																						long BgL_hz00_2006;

																						{	/* Llib/weakhash.scm 836 */
																							long BgL_arg1753z00_2009;

																							{	/* Llib/weakhash.scm 836 */
																								obj_t BgL_arg1754z00_2010;

																								BgL_arg1754z00_2010 =
																									CAR(
																									((obj_t) BgL_cellz00_2004));
																								{	/* Llib/weakhash.scm 835 */
																									obj_t BgL_hashnz00_3710;

																									BgL_hashnz00_3710 =
																										STRUCT_REF(BgL_tablez00_126,
																										(int) (4L));
																									if (PROCEDUREP
																										(BgL_hashnz00_3710))
																										{	/* Llib/weakhash.scm 835 */
																											obj_t BgL_arg1254z00_3712;

																											BgL_arg1254z00_3712 =
																												(VA_PROCEDUREP
																												(BgL_hashnz00_3710)
																												? ((obj_t(*)(obj_t,
																															...))
																													PROCEDURE_ENTRY
																													(BgL_hashnz00_3710))
																												(BgL_hashnz00_3710,
																													BgL_arg1754z00_2010,
																													BEOA)
																												: ((obj_t(*)(obj_t,
																															obj_t))
																													PROCEDURE_ENTRY
																													(BgL_hashnz00_3710))
																												(BgL_hashnz00_3710,
																													BgL_arg1754z00_2010));
																											{	/* Llib/weakhash.scm 835 */
																												long BgL_nz00_3714;

																												BgL_nz00_3714 =
																													(long)
																													CINT
																													(BgL_arg1254z00_3712);
																												if ((BgL_nz00_3714 <
																														0L))
																													{	/* Llib/weakhash.scm 835 */
																														BgL_arg1753z00_2009
																															=
																															NEG
																															(BgL_nz00_3714);
																													}
																												else
																													{	/* Llib/weakhash.scm 835 */
																														BgL_arg1753z00_2009
																															= BgL_nz00_3714;
																													}
																											}
																										}
																									else
																										{	/* Llib/weakhash.scm 835 */
																											if (
																												(BgL_hashnz00_3710 ==
																													BGl_symbol2184z00zz__weakhashz00))
																												{	/* Llib/weakhash.scm 835 */
																													BgL_arg1753z00_2009 =
																														BGl_getzd2hashnumberzd2persistentz00zz__hashz00
																														(BgL_arg1754z00_2010);
																												}
																											else
																												{	/* Llib/weakhash.scm 835 */
																													BgL_arg1753z00_2009 =
																														BGl_getzd2hashnumberzd2zz__hashz00
																														(BgL_arg1754z00_2010);
																												}
																										}
																								}
																							}
																							{	/* Llib/weakhash.scm 834 */
																								long BgL_n1z00_3718;
																								long BgL_n2z00_3719;

																								BgL_n1z00_3718 =
																									BgL_arg1753z00_2009;
																								BgL_n2z00_3719 =
																									BgL_newzd2buckszd2lenz00_1986;
																								{	/* Llib/weakhash.scm 834 */
																									bool_t BgL_test2528z00_6772;

																									{	/* Llib/weakhash.scm 834 */
																										long BgL_arg1970z00_3721;

																										BgL_arg1970z00_3721 =
																											(((BgL_n1z00_3718) |
																												(BgL_n2z00_3719)) &
																											-2147483648);
																										BgL_test2528z00_6772 =
																											(BgL_arg1970z00_3721 ==
																											0L);
																									}
																									if (BgL_test2528z00_6772)
																										{	/* Llib/weakhash.scm 834 */
																											int32_t
																												BgL_arg1967z00_3722;
																											{	/* Llib/weakhash.scm 834 */
																												int32_t
																													BgL_arg1968z00_3723;
																												int32_t
																													BgL_arg1969z00_3724;
																												BgL_arg1968z00_3723 =
																													(int32_t)
																													(BgL_n1z00_3718);
																												BgL_arg1969z00_3724 =
																													(int32_t)
																													(BgL_n2z00_3719);
																												BgL_arg1967z00_3722 =
																													(BgL_arg1968z00_3723 %
																													BgL_arg1969z00_3724);
																											}
																											{	/* Llib/weakhash.scm 834 */
																												long
																													BgL_arg2082z00_3729;
																												BgL_arg2082z00_3729 =
																													(long)
																													(BgL_arg1967z00_3722);
																												BgL_hz00_2006 =
																													(long)
																													(BgL_arg2082z00_3729);
																										}}
																									else
																										{	/* Llib/weakhash.scm 834 */
																											BgL_hz00_2006 =
																												(BgL_n1z00_3718 %
																												BgL_n2z00_3719);
																										}
																								}
																							}
																						}
																						{	/* Llib/weakhash.scm 841 */
																							obj_t BgL_arg1751z00_2007;

																							BgL_arg1751z00_2007 =
																								MAKE_YOUNG_PAIR
																								(BgL_cellz00_2004,
																								VECTOR_REF
																								(BgL_newzd2buckszd2_1987,
																									BgL_hz00_2006));
																							VECTOR_SET
																								(BgL_newzd2buckszd2_1987,
																								BgL_hz00_2006,
																								BgL_arg1751z00_2007);
																						}
																					}
																			}
																		}
																		{
																			obj_t BgL_l1133z00_6784;

																			BgL_l1133z00_6784 =
																				CDR(BgL_l1133z00_2001);
																			BgL_l1133z00_2001 = BgL_l1133z00_6784;
																			goto
																				BgL_zc3z04anonymousza31749ze3z87_2002;
																		}
																	}
																else
																	{	/* Llib/weakhash.scm 800 */
																		((bool_t) 1);
																	}
															}
														}
														{
															long BgL_iz00_6786;

															BgL_iz00_6786 = (BgL_iz00_1996 + 1L);
															BgL_iz00_1996 = BgL_iz00_6786;
															goto BgL_zc3z04anonymousza31747ze3z87_1997;
														}
													}
												else
													{	/* Llib/weakhash.scm 800 */
														((bool_t) 0);
													}
											}
											{	/* Llib/weakhash.scm 800 */
												obj_t BgL_vz00_3737;

												BgL_vz00_3737 = BgL_countz00_1988;
												{	/* Llib/weakhash.scm 800 */
													obj_t BgL_xz00_4249;

													{	/* Llib/weakhash.scm 800 */
														int BgL_tmpz00_6788;

														BgL_tmpz00_6788 = (int) (0L);
														BgL_xz00_4249 =
															STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6788,
															BgL_vz00_3737);
													}
													return BUNSPEC;
												}
											}
										}
									}
								}
							}
						}
					else
						{	/* Llib/weakhash.scm 800 */
							if ((3L == (long) CINT(STRUCT_REF(BgL_tablez00_126, (int) (5L)))))
								{	/* Llib/weakhash.scm 800 */
									obj_t BgL_oldzd2buckszd2_2018;

									BgL_oldzd2buckszd2_2018 =
										STRUCT_REF(BgL_tablez00_126, (int) (2L));
									{	/* Llib/weakhash.scm 800 */
										long BgL_newzd2buckszd2lenz00_2020;

										BgL_newzd2buckszd2lenz00_2020 =
											(2L * VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_2018)));
										{	/* Llib/weakhash.scm 800 */
											obj_t BgL_newzd2buckszd2_2021;

											BgL_newzd2buckszd2_2021 =
												make_vector(BgL_newzd2buckszd2lenz00_2020, BNIL);
											{	/* Llib/weakhash.scm 800 */
												obj_t BgL_countz00_2022;

												BgL_countz00_2022 =
													STRUCT_REF(BgL_tablez00_126, (int) (0L));
												{	/* Llib/weakhash.scm 800 */

													{	/* Llib/weakhash.scm 800 */
														obj_t BgL_nmaxz00_2023;

														{	/* Llib/weakhash.scm 800 */
															obj_t BgL_a1136z00_2026;

															BgL_a1136z00_2026 =
																STRUCT_REF(BgL_tablez00_126, (int) (1L));
															{	/* Llib/weakhash.scm 800 */
																obj_t BgL_b1137z00_2027;

																BgL_b1137z00_2027 =
																	STRUCT_REF(BgL_tablez00_126, (int) (7L));
																{	/* Llib/weakhash.scm 800 */

																	{	/* Llib/weakhash.scm 800 */
																		bool_t BgL_test2530z00_6808;

																		if (INTEGERP(BgL_a1136z00_2026))
																			{	/* Llib/weakhash.scm 800 */
																				BgL_test2530z00_6808 =
																					INTEGERP(BgL_b1137z00_2027);
																			}
																		else
																			{	/* Llib/weakhash.scm 800 */
																				BgL_test2530z00_6808 = ((bool_t) 0);
																			}
																		if (BgL_test2530z00_6808)
																			{	/* Llib/weakhash.scm 800 */
																				BgL_nmaxz00_2023 =
																					BINT(
																					((long) CINT(BgL_a1136z00_2026) *
																						(long) CINT(BgL_b1137z00_2027)));
																			}
																		else
																			{	/* Llib/weakhash.scm 800 */
																				BgL_nmaxz00_2023 =
																					BGl_2za2za2zz__r4_numbers_6_5z00
																					(BgL_a1136z00_2026,
																					BgL_b1137z00_2027);
																			}
																	}
																}
															}
														}
														{	/* Llib/weakhash.scm 800 */
															obj_t BgL_arg1760z00_2024;

															if (REALP(BgL_nmaxz00_2023))
																{	/* Llib/weakhash.scm 800 */
																	BgL_arg1760z00_2024 =
																		BINT(
																		(long) (REAL_TO_DOUBLE(BgL_nmaxz00_2023)));
																}
															else
																{	/* Llib/weakhash.scm 800 */
																	BgL_arg1760z00_2024 = BgL_nmaxz00_2023;
																}
															{	/* Llib/weakhash.scm 800 */
																int BgL_tmpz00_6822;

																BgL_tmpz00_6822 = (int) (1L);
																STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6822,
																	BgL_arg1760z00_2024);
													}}}
													{	/* Llib/weakhash.scm 800 */
														int BgL_tmpz00_6825;

														BgL_tmpz00_6825 = (int) (2L);
														STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6825,
															BgL_newzd2buckszd2_2021);
													}
													{
														long BgL_iz00_2030;

														BgL_iz00_2030 = 0L;
													BgL_zc3z04anonymousza31763ze3z87_2031:
														if (
															(BgL_iz00_2030 <
																VECTOR_LENGTH(
																	((obj_t) BgL_oldzd2buckszd2_2018))))
															{	/* Llib/weakhash.scm 800 */
																{	/* Llib/weakhash.scm 800 */
																	obj_t BgL_g1140z00_2033;

																	BgL_g1140z00_2033 =
																		VECTOR_REF(
																		((obj_t) BgL_oldzd2buckszd2_2018),
																		BgL_iz00_2030);
																	{
																		obj_t BgL_l1138z00_2035;

																		BgL_l1138z00_2035 = BgL_g1140z00_2033;
																	BgL_zc3z04anonymousza31765ze3z87_2036:
																		if (PAIRP(BgL_l1138z00_2035))
																			{	/* Llib/weakhash.scm 800 */
																				{	/* Llib/weakhash.scm 845 */
																					obj_t BgL_cellz00_2038;

																					BgL_cellz00_2038 =
																						CAR(BgL_l1138z00_2035);
																					{	/* Llib/weakhash.scm 845 */
																						obj_t BgL_keyz00_2039;
																						obj_t BgL_dataz00_2040;

																						{	/* Llib/weakhash.scm 845 */
																							obj_t BgL_arg1771z00_2046;

																							BgL_arg1771z00_2046 =
																								CAR(((obj_t) BgL_cellz00_2038));
																							BgL_keyz00_2039 =
																								bgl_weakptr_data(
																								((obj_t) BgL_arg1771z00_2046));
																						}
																						{	/* Llib/weakhash.scm 846 */
																							obj_t BgL_arg1773z00_2047;

																							BgL_arg1773z00_2047 =
																								CDR(((obj_t) BgL_cellz00_2038));
																							BgL_dataz00_2040 =
																								bgl_weakptr_data(
																								((obj_t) BgL_arg1773z00_2047));
																						}
																						{	/* Llib/weakhash.scm 847 */
																							bool_t BgL_test2535z00_6845;

																							if ((BgL_keyz00_2039 == BUNSPEC))
																								{	/* Llib/weakhash.scm 847 */
																									BgL_test2535z00_6845 =
																										((bool_t) 1);
																								}
																							else
																								{	/* Llib/weakhash.scm 847 */
																									BgL_test2535z00_6845 =
																										(BgL_dataz00_2040 ==
																										BUNSPEC);
																								}
																							if (BgL_test2535z00_6845)
																								{	/* Llib/weakhash.scm 847 */
																									BgL_countz00_2022 =
																										SUBFX(BgL_countz00_2022,
																										BINT(1L));
																								}
																							else
																								{	/* Llib/weakhash.scm 850 */
																									long BgL_hz00_2042;

																									{	/* Llib/weakhash.scm 851 */
																										long BgL_arg1770z00_2045;

																										{	/* Llib/weakhash.scm 851 */
																											obj_t BgL_hashnz00_3762;

																											BgL_hashnz00_3762 =
																												STRUCT_REF
																												(BgL_tablez00_126,
																												(int) (4L));
																											if (PROCEDUREP
																												(BgL_hashnz00_3762))
																												{	/* Llib/weakhash.scm 851 */
																													obj_t
																														BgL_arg1254z00_3764;
																													BgL_arg1254z00_3764 =
																														(VA_PROCEDUREP
																														(BgL_hashnz00_3762)
																														? ((obj_t(*)(obj_t,
																																	...))
																															PROCEDURE_ENTRY
																															(BgL_hashnz00_3762))
																														(BgL_hashnz00_3762,
																															BgL_keyz00_2039,
																															BEOA)
																														: ((obj_t(*)(obj_t,
																																	obj_t))
																															PROCEDURE_ENTRY
																															(BgL_hashnz00_3762))
																														(BgL_hashnz00_3762,
																															BgL_keyz00_2039));
																													{	/* Llib/weakhash.scm 851 */
																														long BgL_nz00_3766;

																														BgL_nz00_3766 =
																															(long)
																															CINT
																															(BgL_arg1254z00_3764);
																														if ((BgL_nz00_3766 <
																																0L))
																															{	/* Llib/weakhash.scm 851 */
																																BgL_arg1770z00_2045
																																	=
																																	NEG
																																	(BgL_nz00_3766);
																															}
																														else
																															{	/* Llib/weakhash.scm 851 */
																																BgL_arg1770z00_2045
																																	=
																																	BgL_nz00_3766;
																															}
																													}
																												}
																											else
																												{	/* Llib/weakhash.scm 851 */
																													if (
																														(BgL_hashnz00_3762
																															==
																															BGl_symbol2184z00zz__weakhashz00))
																														{	/* Llib/weakhash.scm 851 */
																															BgL_arg1770z00_2045
																																=
																																BGl_getzd2hashnumberzd2persistentz00zz__hashz00
																																(BgL_keyz00_2039);
																														}
																													else
																														{	/* Llib/weakhash.scm 851 */
																															BgL_arg1770z00_2045
																																=
																																BGl_getzd2hashnumberzd2zz__hashz00
																																(BgL_keyz00_2039);
																														}
																												}
																										}
																										{	/* Llib/weakhash.scm 850 */
																											long BgL_n1z00_3770;
																											long BgL_n2z00_3771;

																											BgL_n1z00_3770 =
																												BgL_arg1770z00_2045;
																											BgL_n2z00_3771 =
																												BgL_newzd2buckszd2lenz00_2020;
																											{	/* Llib/weakhash.scm 850 */
																												bool_t
																													BgL_test2540z00_6867;
																												{	/* Llib/weakhash.scm 850 */
																													long
																														BgL_arg1970z00_3773;
																													BgL_arg1970z00_3773 =
																														(((BgL_n1z00_3770) |
																															(BgL_n2z00_3771))
																														& -2147483648);
																													BgL_test2540z00_6867 =
																														(BgL_arg1970z00_3773
																														== 0L);
																												}
																												if (BgL_test2540z00_6867)
																													{	/* Llib/weakhash.scm 850 */
																														int32_t
																															BgL_arg1967z00_3774;
																														{	/* Llib/weakhash.scm 850 */
																															int32_t
																																BgL_arg1968z00_3775;
																															int32_t
																																BgL_arg1969z00_3776;
																															BgL_arg1968z00_3775
																																=
																																(int32_t)
																																(BgL_n1z00_3770);
																															BgL_arg1969z00_3776
																																=
																																(int32_t)
																																(BgL_n2z00_3771);
																															BgL_arg1967z00_3774
																																=
																																(BgL_arg1968z00_3775
																																%
																																BgL_arg1969z00_3776);
																														}
																														{	/* Llib/weakhash.scm 850 */
																															long
																																BgL_arg2082z00_3781;
																															BgL_arg2082z00_3781
																																=
																																(long)
																																(BgL_arg1967z00_3774);
																															BgL_hz00_2042 =
																																(long)
																																(BgL_arg2082z00_3781);
																													}}
																												else
																													{	/* Llib/weakhash.scm 850 */
																														BgL_hz00_2042 =
																															(BgL_n1z00_3770 %
																															BgL_n2z00_3771);
																													}
																											}
																										}
																									}
																									{	/* Llib/weakhash.scm 856 */
																										obj_t BgL_arg1768z00_2043;

																										BgL_arg1768z00_2043 =
																											MAKE_YOUNG_PAIR
																											(BgL_cellz00_2038,
																											VECTOR_REF
																											(BgL_newzd2buckszd2_2021,
																												BgL_hz00_2042));
																										VECTOR_SET
																											(BgL_newzd2buckszd2_2021,
																											BgL_hz00_2042,
																											BgL_arg1768z00_2043);
																									}
																								}
																						}
																					}
																				}
																				{
																					obj_t BgL_l1138z00_6879;

																					BgL_l1138z00_6879 =
																						CDR(BgL_l1138z00_2035);
																					BgL_l1138z00_2035 = BgL_l1138z00_6879;
																					goto
																						BgL_zc3z04anonymousza31765ze3z87_2036;
																				}
																			}
																		else
																			{	/* Llib/weakhash.scm 800 */
																				((bool_t) 1);
																			}
																	}
																}
																{
																	long BgL_iz00_6881;

																	BgL_iz00_6881 = (BgL_iz00_2030 + 1L);
																	BgL_iz00_2030 = BgL_iz00_6881;
																	goto BgL_zc3z04anonymousza31763ze3z87_2031;
																}
															}
														else
															{	/* Llib/weakhash.scm 800 */
																((bool_t) 0);
															}
													}
													{	/* Llib/weakhash.scm 800 */
														obj_t BgL_vz00_3789;

														BgL_vz00_3789 = BgL_countz00_2022;
														{	/* Llib/weakhash.scm 800 */
															obj_t BgL_xz00_4250;

															{	/* Llib/weakhash.scm 800 */
																int BgL_tmpz00_6883;

																BgL_tmpz00_6883 = (int) (0L);
																BgL_xz00_4250 =
																	STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6883,
																	BgL_vz00_3789);
															}
															return BUNSPEC;
														}
													}
												}
											}
										}
									}
								}
							else
								{	/* Llib/weakhash.scm 800 */
									obj_t BgL_oldzd2buckszd2_2052;

									BgL_oldzd2buckszd2_2052 =
										STRUCT_REF(BgL_tablez00_126, (int) (2L));
									{	/* Llib/weakhash.scm 800 */
										long BgL_newzd2buckszd2lenz00_2054;

										BgL_newzd2buckszd2lenz00_2054 =
											(2L * VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_2052)));
										{	/* Llib/weakhash.scm 800 */
											obj_t BgL_newzd2buckszd2_2055;

											BgL_newzd2buckszd2_2055 =
												make_vector(BgL_newzd2buckszd2lenz00_2054, BNIL);
											{	/* Llib/weakhash.scm 800 */
												obj_t BgL_countz00_2056;

												BgL_countz00_2056 =
													STRUCT_REF(BgL_tablez00_126, (int) (0L));
												{	/* Llib/weakhash.scm 800 */

													{	/* Llib/weakhash.scm 800 */
														obj_t BgL_nmaxz00_2057;

														{	/* Llib/weakhash.scm 800 */
															obj_t BgL_a1141z00_2060;

															BgL_a1141z00_2060 =
																STRUCT_REF(BgL_tablez00_126, (int) (1L));
															{	/* Llib/weakhash.scm 800 */
																obj_t BgL_b1142z00_2061;

																BgL_b1142z00_2061 =
																	STRUCT_REF(BgL_tablez00_126, (int) (7L));
																{	/* Llib/weakhash.scm 800 */

																	{	/* Llib/weakhash.scm 800 */
																		bool_t BgL_test2541z00_6898;

																		if (INTEGERP(BgL_a1141z00_2060))
																			{	/* Llib/weakhash.scm 800 */
																				BgL_test2541z00_6898 =
																					INTEGERP(BgL_b1142z00_2061);
																			}
																		else
																			{	/* Llib/weakhash.scm 800 */
																				BgL_test2541z00_6898 = ((bool_t) 0);
																			}
																		if (BgL_test2541z00_6898)
																			{	/* Llib/weakhash.scm 800 */
																				BgL_nmaxz00_2057 =
																					BINT(
																					((long) CINT(BgL_a1141z00_2060) *
																						(long) CINT(BgL_b1142z00_2061)));
																			}
																		else
																			{	/* Llib/weakhash.scm 800 */
																				BgL_nmaxz00_2057 =
																					BGl_2za2za2zz__r4_numbers_6_5z00
																					(BgL_a1141z00_2060,
																					BgL_b1142z00_2061);
																			}
																	}
																}
															}
														}
														{	/* Llib/weakhash.scm 800 */
															obj_t BgL_arg1776z00_2058;

															if (REALP(BgL_nmaxz00_2057))
																{	/* Llib/weakhash.scm 800 */
																	BgL_arg1776z00_2058 =
																		BINT(
																		(long) (REAL_TO_DOUBLE(BgL_nmaxz00_2057)));
																}
															else
																{	/* Llib/weakhash.scm 800 */
																	BgL_arg1776z00_2058 = BgL_nmaxz00_2057;
																}
															{	/* Llib/weakhash.scm 800 */
																int BgL_tmpz00_6912;

																BgL_tmpz00_6912 = (int) (1L);
																STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6912,
																	BgL_arg1776z00_2058);
													}}}
													{	/* Llib/weakhash.scm 800 */
														int BgL_tmpz00_6915;

														BgL_tmpz00_6915 = (int) (2L);
														STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6915,
															BgL_newzd2buckszd2_2055);
													}
													{
														long BgL_iz00_2064;

														BgL_iz00_2064 = 0L;
													BgL_zc3z04anonymousza31779ze3z87_2065:
														if (
															(BgL_iz00_2064 <
																VECTOR_LENGTH(
																	((obj_t) BgL_oldzd2buckszd2_2052))))
															{	/* Llib/weakhash.scm 800 */
																{	/* Llib/weakhash.scm 800 */
																	obj_t BgL_g1145z00_2067;

																	BgL_g1145z00_2067 =
																		VECTOR_REF(
																		((obj_t) BgL_oldzd2buckszd2_2052),
																		BgL_iz00_2064);
																	{
																		obj_t BgL_l1143z00_2069;

																		BgL_l1143z00_2069 = BgL_g1145z00_2067;
																	BgL_zc3z04anonymousza31781ze3z87_2070:
																		if (PAIRP(BgL_l1143z00_2069))
																			{	/* Llib/weakhash.scm 800 */
																				{	/* Llib/weakhash.scm 860 */
																					obj_t BgL_cellz00_2072;

																					BgL_cellz00_2072 =
																						CAR(BgL_l1143z00_2069);
																					{	/* Llib/weakhash.scm 860 */
																						long BgL_hz00_2073;

																						{	/* Llib/weakhash.scm 862 */
																							long BgL_arg1785z00_2076;

																							{	/* Llib/weakhash.scm 862 */
																								obj_t BgL_arg1786z00_2077;

																								BgL_arg1786z00_2077 =
																									CAR(
																									((obj_t) BgL_cellz00_2072));
																								{	/* Llib/weakhash.scm 861 */
																									obj_t BgL_hashnz00_3808;

																									BgL_hashnz00_3808 =
																										STRUCT_REF(BgL_tablez00_126,
																										(int) (4L));
																									if (PROCEDUREP
																										(BgL_hashnz00_3808))
																										{	/* Llib/weakhash.scm 861 */
																											obj_t BgL_arg1254z00_3810;

																											BgL_arg1254z00_3810 =
																												(VA_PROCEDUREP
																												(BgL_hashnz00_3808)
																												? ((obj_t(*)(obj_t,
																															...))
																													PROCEDURE_ENTRY
																													(BgL_hashnz00_3808))
																												(BgL_hashnz00_3808,
																													BgL_arg1786z00_2077,
																													BEOA)
																												: ((obj_t(*)(obj_t,
																															obj_t))
																													PROCEDURE_ENTRY
																													(BgL_hashnz00_3808))
																												(BgL_hashnz00_3808,
																													BgL_arg1786z00_2077));
																											{	/* Llib/weakhash.scm 861 */
																												long BgL_nz00_3812;

																												BgL_nz00_3812 =
																													(long)
																													CINT
																													(BgL_arg1254z00_3810);
																												if ((BgL_nz00_3812 <
																														0L))
																													{	/* Llib/weakhash.scm 861 */
																														BgL_arg1785z00_2076
																															=
																															NEG
																															(BgL_nz00_3812);
																													}
																												else
																													{	/* Llib/weakhash.scm 861 */
																														BgL_arg1785z00_2076
																															= BgL_nz00_3812;
																													}
																											}
																										}
																									else
																										{	/* Llib/weakhash.scm 861 */
																											if (
																												(BgL_hashnz00_3808 ==
																													BGl_symbol2184z00zz__weakhashz00))
																												{	/* Llib/weakhash.scm 861 */
																													BgL_arg1785z00_2076 =
																														BGl_getzd2hashnumberzd2persistentz00zz__hashz00
																														(BgL_arg1786z00_2077);
																												}
																											else
																												{	/* Llib/weakhash.scm 861 */
																													BgL_arg1785z00_2076 =
																														BGl_getzd2hashnumberzd2zz__hashz00
																														(BgL_arg1786z00_2077);
																												}
																										}
																								}
																							}
																							{	/* Llib/weakhash.scm 860 */
																								long BgL_n1z00_3816;
																								long BgL_n2z00_3817;

																								BgL_n1z00_3816 =
																									BgL_arg1785z00_2076;
																								BgL_n2z00_3817 =
																									BgL_newzd2buckszd2lenz00_2054;
																								{	/* Llib/weakhash.scm 860 */
																									bool_t BgL_test2549z00_6945;

																									{	/* Llib/weakhash.scm 860 */
																										long BgL_arg1970z00_3819;

																										BgL_arg1970z00_3819 =
																											(((BgL_n1z00_3816) |
																												(BgL_n2z00_3817)) &
																											-2147483648);
																										BgL_test2549z00_6945 =
																											(BgL_arg1970z00_3819 ==
																											0L);
																									}
																									if (BgL_test2549z00_6945)
																										{	/* Llib/weakhash.scm 860 */
																											int32_t
																												BgL_arg1967z00_3820;
																											{	/* Llib/weakhash.scm 860 */
																												int32_t
																													BgL_arg1968z00_3821;
																												int32_t
																													BgL_arg1969z00_3822;
																												BgL_arg1968z00_3821 =
																													(int32_t)
																													(BgL_n1z00_3816);
																												BgL_arg1969z00_3822 =
																													(int32_t)
																													(BgL_n2z00_3817);
																												BgL_arg1967z00_3820 =
																													(BgL_arg1968z00_3821 %
																													BgL_arg1969z00_3822);
																											}
																											{	/* Llib/weakhash.scm 860 */
																												long
																													BgL_arg2082z00_3827;
																												BgL_arg2082z00_3827 =
																													(long)
																													(BgL_arg1967z00_3820);
																												BgL_hz00_2073 =
																													(long)
																													(BgL_arg2082z00_3827);
																										}}
																									else
																										{	/* Llib/weakhash.scm 860 */
																											BgL_hz00_2073 =
																												(BgL_n1z00_3816 %
																												BgL_n2z00_3817);
																										}
																								}
																							}
																						}
																						{	/* Llib/weakhash.scm 868 */
																							obj_t BgL_arg1783z00_2074;

																							BgL_arg1783z00_2074 =
																								MAKE_YOUNG_PAIR
																								(BgL_cellz00_2072,
																								VECTOR_REF
																								(BgL_newzd2buckszd2_2055,
																									BgL_hz00_2073));
																							VECTOR_SET
																								(BgL_newzd2buckszd2_2055,
																								BgL_hz00_2073,
																								BgL_arg1783z00_2074);
																						}
																					}
																				}
																				{
																					obj_t BgL_l1143z00_6957;

																					BgL_l1143z00_6957 =
																						CDR(BgL_l1143z00_2069);
																					BgL_l1143z00_2069 = BgL_l1143z00_6957;
																					goto
																						BgL_zc3z04anonymousza31781ze3z87_2070;
																				}
																			}
																		else
																			{	/* Llib/weakhash.scm 800 */
																				((bool_t) 1);
																			}
																	}
																}
																{
																	long BgL_iz00_6959;

																	BgL_iz00_6959 = (BgL_iz00_2064 + 1L);
																	BgL_iz00_2064 = BgL_iz00_6959;
																	goto BgL_zc3z04anonymousza31779ze3z87_2065;
																}
															}
														else
															{	/* Llib/weakhash.scm 800 */
																((bool_t) 0);
															}
													}
													{	/* Llib/weakhash.scm 800 */
														obj_t BgL_xz00_4251;

														{	/* Llib/weakhash.scm 800 */
															int BgL_tmpz00_6961;

															BgL_tmpz00_6961 = (int) (0L);
															BgL_xz00_4251 =
																STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6961,
																BgL_countz00_2056);
														}
														return BUNSPEC;
													}
												}
											}
										}
									}
								}
						}
				}
		}

	}



/* weak-hashtable-expand! */
	BGL_EXPORTED_DEF obj_t
		BGl_weakzd2hashtablezd2expandz12z12zz__weakhashz00(obj_t BgL_tablez00_127)
	{
		{	/* Llib/weakhash.scm 876 */
			if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_127))
				{	/* Llib/weakhash.scm 877 */
					BGL_TAIL return
						BGl_weakzd2keyszd2hashtablezd2expandz12zc0zz__weakhashz00
						(BgL_tablez00_127);
				}
			else
				{	/* Llib/weakhash.scm 877 */
					BGL_TAIL return
						BGl_weakzd2oldzd2hashtablezd2expandz12zc0zz__weakhashz00
						(BgL_tablez00_127);
				}
		}

	}



/* &weak-hashtable-expand! */
	obj_t BGl_z62weakzd2hashtablezd2expandz12z70zz__weakhashz00(obj_t
		BgL_envz00_4207, obj_t BgL_tablez00_4208)
	{
		{	/* Llib/weakhash.scm 876 */
			{	/* Llib/weakhash.scm 877 */
				obj_t BgL_auxz00_6968;

				if (STRUCTP(BgL_tablez00_4208))
					{	/* Llib/weakhash.scm 877 */
						BgL_auxz00_6968 = BgL_tablez00_4208;
					}
				else
					{
						obj_t BgL_auxz00_6971;

						BgL_auxz00_6971 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2172z00zz__weakhashz00,
							BINT(34257L), BGl_string2194z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_tablez00_4208);
						FAILURE(BgL_auxz00_6971, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2expandz12z12zz__weakhashz00(BgL_auxz00_6968);
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zz__weakhashz00(void)
	{
		{	/* Llib/weakhash.scm 18 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zz__weakhashz00(void)
	{
		{	/* Llib/weakhash.scm 18 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zz__weakhashz00(void)
	{
		{	/* Llib/weakhash.scm 18 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zz__weakhashz00(void)
	{
		{	/* Llib/weakhash.scm 18 */
			BGl_modulezd2initializa7ationz75zz__errorz00(88804785L,
				BSTRING_TO_STRING(BGl_string2195z00zz__weakhashz00));
			BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(460262918L,
				BSTRING_TO_STRING(BGl_string2195z00zz__weakhashz00));
			BGl_modulezd2initializa7ationz75zz__paramz00(453939141L,
				BSTRING_TO_STRING(BGl_string2195z00zz__weakhashz00));
			BGl_modulezd2initializa7ationz75zz__hashz00(482391669L,
				BSTRING_TO_STRING(BGl_string2195z00zz__weakhashz00));
			BGl_modulezd2initializa7ationz75zz__bexitz00(43287392L,
				BSTRING_TO_STRING(BGl_string2195z00zz__weakhashz00));
			BGl_modulezd2initializa7ationz75zz__objectz00(475449627L,
				BSTRING_TO_STRING(BGl_string2195z00zz__weakhashz00));
			return
				BGl_modulezd2initializa7ationz75zz__threadz00(149516032L,
				BSTRING_TO_STRING(BGl_string2195z00zz__weakhashz00));
		}

	}

#ifdef __cplusplus
}
#endif
